old client structure
This commit is contained in:
@@ -0,0 +1,11 @@
|
||||
<template lang="pug">
|
||||
.container-fluid.text-center
|
||||
.row
|
||||
.col-md-6.offset-3
|
||||
h1 {{ $t('checkOutMobileApps') }}
|
||||
.promo_habitica(style='border-radius:25px;margin:auto;margin-bottom:30px')
|
||||
|
||||
a(href='https://play.google.com/store/apps/details?id=com.habitrpg.android.habitica&utm_source=global_co&utm_medium=prtnr&utm_content=Mar2515&utm_campaign=PartBadge&pcampaignid=MKT-AC-global-none-all-co-pr-py-PartBadges-Oct1515-1&utm_source=global_co&utm_medium=prtnr&utm_content=Mar2515&utm_campaign=PartBadge&pcampaignid=MKT-AC-global-none-all-co-pr-py-PartBadges-Oct1515-1')
|
||||
img(alt='Get it on Google Play', src='https://play.google.com/intl/en_us/badges/images/apps/en-play-badge.png', style='width:139px;height:45px;image-rendering:auto;vertical-align:top')
|
||||
a(href='https://geo.itunes.apple.com/us/app/habitica/id994882113?mt=8', style='display:inline-block;overflow:hidden;background:url(http://linkmaker.itunes.apple.com/images/badges/en-us/badge_appstore-lrg.svg#svgView) no-repeat;background-size:100%;width:152px;height:45px;margin-left:20px;image-rendering:auto')
|
||||
</template>
|
||||
@@ -0,0 +1,37 @@
|
||||
<template lang="pug">
|
||||
.container-fluid.text-center
|
||||
.row
|
||||
.col-md-6.offset-3
|
||||
h1 {{ $t('clearBrowserData') }}
|
||||
|
||||
p(v-html="$t('localStorageTryFirst', localStorageTryFirst) ")
|
||||
br
|
||||
p.text-center
|
||||
button.btn.btn-lg.btn-danger(@click='clearLocalStorage()',
|
||||
popover-trigger='mouseover', :popover="$t('localStorageClearExplanation')")
|
||||
| {{ $t('localStorageClear') }}
|
||||
br
|
||||
p(v-html="$t('localStorageTryNext', localStorageTryNext) ")
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
data () {
|
||||
return {
|
||||
localStorageTryFirst: {
|
||||
linkStart: '<a href="/user/settings/site" target="_blank">',
|
||||
linkEnd: '</a>',
|
||||
},
|
||||
localStorageTryNext: {
|
||||
linkStart: '<a href="https://github.com/HabitRPG/habitica/issues/2760" target="_blank">',
|
||||
linkEnd: '</a>',
|
||||
},
|
||||
};
|
||||
},
|
||||
methods: {
|
||||
clearLocalStorage () {
|
||||
this.$store.dispatch('auth:logout');
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
||||
@@ -0,0 +1,213 @@
|
||||
<template lang="pug">
|
||||
.container-fluid
|
||||
h1 {{ $t('communityGuidelines') }}
|
||||
hr
|
||||
p {{ $t('lastUpdated') }} March 29, 2018
|
||||
|
||||
h2#welcome {{ $t('commGuideHeadingWelcome') }}
|
||||
.media.align-items-center
|
||||
img(src='~assets/images/community-guidelines/intro.png')
|
||||
.media-body
|
||||
p(v-html="$t('commGuidePara001')")
|
||||
p(v-html="$t('commGuidePara002')")
|
||||
p(v-html="$t('commGuidePara003')")
|
||||
p(v-html="$t('commGuidePara004')")
|
||||
|
||||
h2#interactions {{ $t('commGuideHeadingInteractions') }}
|
||||
.media.align-items-center
|
||||
.media-body
|
||||
p(v-html="$t('commGuidePara015')")
|
||||
p(v-html="$t('commGuidePara016')")
|
||||
img(src='~assets/images/community-guidelines/publicSpaces.png')
|
||||
ul
|
||||
li(v-html="$t('commGuideList02A')")
|
||||
li(v-html="$t('commGuideList02B')")
|
||||
li(v-html="$t('commGuideList02C')")
|
||||
li(v-html="$t('commGuideList02D')")
|
||||
li(v-html="$t('commGuideList02E')")
|
||||
li(v-html="$t('commGuideList02F')")
|
||||
li(v-html="$t('commGuideList02G')")
|
||||
li(v-html="$t('commGuideList02H')")
|
||||
li(v-html="$t('commGuideList02I')")
|
||||
li(v-html="$t('commGuideList02J')")
|
||||
li(v-html="$t('commGuideList02K')")
|
||||
li(v-html="$t('commGuideList02L')")
|
||||
p(v-html="$t('commGuidePara019')")
|
||||
p(v-html="$t('commGuidePara020')")
|
||||
p(v-html="$t('commGuidePara020A')")
|
||||
p(v-html="$t('commGuidePara021')")
|
||||
|
||||
h3#tavern {{ $t('commGuideHeadingTavern') }}
|
||||
.media.align-items-center
|
||||
img(src='~assets/images/community-guidelines/tavern.png')
|
||||
.media-body
|
||||
p(v-html="$t('commGuidePara022')")
|
||||
p(v-html="$t('commGuidePara023')")
|
||||
p(v-html="$t('commGuidePara024')")
|
||||
.media.align-items-center
|
||||
.media-body
|
||||
p(v-html="$t('commGuidePara027')")
|
||||
img(src='~assets/images/community-guidelines/backCorner.png')
|
||||
|
||||
h3#guilds {{ $t('commGuideHeadingPublicGuilds') }}
|
||||
.media.align-items-center
|
||||
.media-body
|
||||
p(v-html="$t('commGuidePara029')")
|
||||
p(v-html="$t('commGuidePara031')")
|
||||
img(src='~assets/images/community-guidelines/publicGuilds.png')
|
||||
p(v-html="$t('commGuidePara033')")
|
||||
p(v-html="$t('commGuidePara035')")
|
||||
p(v-html="$t('commGuidePara036')")
|
||||
p(v-html="$t('commGuidePara037')")
|
||||
p(v-html="$t('commGuidePara038')")
|
||||
|
||||
h2#infractions-consequences-restoration {{ $t('commGuideHeadingInfractionsEtc') }}
|
||||
h3#infractions {{ $t('commGuideHeadingInfractions') }}
|
||||
.media.align-items-center
|
||||
img(src='~assets/images/community-guidelines/infractions.png')
|
||||
.media-body
|
||||
p(v-html="$t('commGuidePara050')")
|
||||
p(v-html="$t('commGuidePara051')")
|
||||
h4 {{ $t('commGuideHeadingSevereInfractions') }}
|
||||
p(v-html="$t('commGuidePara052')")
|
||||
p(v-html="$t('commGuidePara053')")
|
||||
ul
|
||||
li(v-html="$t('commGuideList05A')")
|
||||
li(v-html="$t('commGuideList05B')")
|
||||
li(v-html="$t('commGuideList05C')")
|
||||
li(v-html="$t('commGuideList05D')")
|
||||
li(v-html="$t('commGuideList05E')")
|
||||
li(v-html="$t('commGuideList05F')")
|
||||
li(v-html="$t('commGuideList05G')")
|
||||
h4 {{ $t('commGuideHeadingModerateInfractions') }}
|
||||
p(v-html="$t('commGuidePara054')")
|
||||
p(v-html="$t('commGuidePara055')")
|
||||
ul
|
||||
li(v-html="$t('commGuideList06A')")
|
||||
li(v-html="$t('commGuideList06B')")
|
||||
li(v-html="$t('commGuideList06C')")
|
||||
li(v-html="$t('commGuideList06D')")
|
||||
li(v-html="$t('commGuideList06E')")
|
||||
h4 {{ $t('commGuideHeadingMinorInfractions') }}
|
||||
p(v-html="$t('commGuidePara056')")
|
||||
p(v-html="$t('commGuidePara057')")
|
||||
ul
|
||||
li(v-html="$t('commGuideList07A')")
|
||||
li(v-html="$t('commGuideList07B')")
|
||||
p(v-html="$t('commGuidePara057A')")
|
||||
|
||||
h3#consequences {{ $t('commGuideHeadingConsequences') }}
|
||||
.media.align-items-center
|
||||
.media-body
|
||||
p(v-html="$t('commGuidePara058')")
|
||||
p(v-html="$t('commGuidePara059')")
|
||||
img(src='~assets/images/community-guidelines/consequences.png')
|
||||
p(v-html="$t('commGuidePara060')")
|
||||
ul
|
||||
li(v-html="$t('commGuideList08A')")
|
||||
li(v-html="$t('commGuideList08B')")
|
||||
li(v-html="$t('commGuideList08C')")
|
||||
p(v-html="$t('commGuidePara060A')")
|
||||
p(v-html="$t('commGuidePara060B')")
|
||||
h4 {{ $t('commGuideHeadingSevereConsequences') }}
|
||||
ul
|
||||
li(v-html="$t('commGuideList09A')")
|
||||
li(v-html="$t('commGuideList09C')")
|
||||
h4 {{ $t('commGuideHeadingModerateConsequences') }}
|
||||
ul
|
||||
li {{ $t('commGuideList10A') }}
|
||||
ul
|
||||
li {{ $t('commGuideList10A1') }}
|
||||
li(v-html="$t('commGuideList10C')")
|
||||
li(v-html="$t('commGuideList10D')")
|
||||
li(v-html="$t('commGuideList10E')")
|
||||
li(v-html="$t('commGuideList10F')")
|
||||
h4 {{ $t('commGuideHeadingMinorConsequences') }}
|
||||
ul
|
||||
li(v-html="$t('commGuideList11A')")
|
||||
li(v-html="$t('commGuideList11B')")
|
||||
li(v-html="$t('commGuideList11C')")
|
||||
li(v-html="$t('commGuideList11D')")
|
||||
li(v-html="$t('commGuideList11E')")
|
||||
|
||||
h3#restoration {{ $t('commGuideHeadingRestoration') }}
|
||||
.media.align-items-center
|
||||
img(src='~assets/images/community-guidelines/restoration.png')
|
||||
.media-body
|
||||
p(v-html="$t('commGuidePara061')")
|
||||
p(v-html="$t('commGuidePara062')")
|
||||
p(v-html="$t('commGuidePara063')")
|
||||
|
||||
h2#meet-the-mods {{ $t('commGuideHeadingMeet') }}
|
||||
p(v-html="$t('commGuidePara006')")
|
||||
p(v-html="$t('commGuidePara007')")
|
||||
p(v-html="$t('commGuidePara008')")
|
||||
p(v-html="$t('commGuidePara009')")
|
||||
.media.align-items-center
|
||||
img(src='~assets/images/community-guidelines/staff.png')
|
||||
.media-body
|
||||
ul
|
||||
li {{ $t('commGuideAKA', {habitName: 'Beffymaroo', realName: 'Beth'}) }}
|
||||
li {{ $t('commGuideAKA', {habitName: 'Viirus', realName: 'Phillip'}) }}
|
||||
li {{ $t('commGuideAKA', {habitName: 'redphoenix', realName: 'Vicky'}) }} ({{ $t('commGuideOnTrello', {trelloName: 'caffeinatedvee'}) }}, {{ $t('commGuideOnGitHub', {gitHubName: 'veeeeeee'}) }})
|
||||
li {{ $t('commGuideAKA', {habitName: 'Lemoness', realName: 'Leslie'}) }} ({{ $t('commGuideOnTrello', {trelloName: 'lemonesstree'}) }})
|
||||
li {{ $t('commGuideAKA', {habitName: 'SabreCat', realName: 'Sabe'}) }}
|
||||
li {{ $t('commGuideAKA', {habitName: 'paglias', realName: 'Matteo'}) }}
|
||||
li {{ $t('commGuideAKA', {habitName: 'TheHollidayInn', realName: 'Keith'}) }}
|
||||
p(v-html="$t('commGuidePara010')")
|
||||
.media.align-items-center
|
||||
img(src='~assets/images/community-guidelines/moderators.png')
|
||||
.media-body
|
||||
p(v-html="$t('commGuidePara011')")
|
||||
ul
|
||||
li Bailey (It's Bailey {{ $t('commGuidePara011a') }})
|
||||
li Ryan (deilann {{ $t('commGuidePara011b') }})
|
||||
li Cantras
|
||||
li Alys (LadyAlys {{ $t('commGuidePara011c') }})
|
||||
li Fox_town
|
||||
li Blade ({{ $t('commGuideOnGitHub', {gitHubName: 'crookedneighbor'}) }})
|
||||
li Daniel the Bard
|
||||
li shanaqui
|
||||
li Dewines
|
||||
li Megan
|
||||
li Breadstrings
|
||||
p(v-html="$t('commGuidePara012')")
|
||||
p(v-html="$t('commGuidePara013')")
|
||||
p {{ $t('commGuidePara014') }}
|
||||
em lefnire, Slappybag, litenull, Shaner, Bobbyroberts99, wc8
|
||||
|
||||
h2#final {{ $t('commGuideHeadingFinal') }}
|
||||
p(v-html="$t('commGuidePara067')")
|
||||
p(v-html="$t('commGuidePara068')")
|
||||
|
||||
h2#links {{ $t('commGuideHeadingLinks') }}
|
||||
ul
|
||||
li(v-html="$t('commGuideLink01')")
|
||||
li(v-html="$t('commGuideLink02')")
|
||||
li(v-html="$t('commGuideLink03')")
|
||||
li(v-html="$t('commGuideLink04')")
|
||||
li(v-html="$t('commGuideLink05')")
|
||||
li(v-html="$t('commGuideLink06')")
|
||||
li(v-html="$t('commGuideLink07')")
|
||||
p(v-html="$t('commGuidePara069')")
|
||||
ul.list-2col.list-unstyled
|
||||
li Breadstrings
|
||||
li Draayder
|
||||
li Kiwibot
|
||||
li Leephon
|
||||
li Lemoness
|
||||
li Luciferian
|
||||
li Revcleo
|
||||
li Shaner
|
||||
li Starsystemic
|
||||
li UncommonCriminal
|
||||
</template>
|
||||
|
||||
<style lang='scss' scoped>
|
||||
.list-2col {
|
||||
width: 50%;
|
||||
columns: 2;
|
||||
-moz-columns: 2;
|
||||
-webkit-columns: 2;
|
||||
}
|
||||
</style>
|
||||
@@ -0,0 +1,56 @@
|
||||
<template lang="pug">
|
||||
.container-fluid
|
||||
.row
|
||||
.col-md-6.offset-3
|
||||
h1 {{ $t('contactUs') }}
|
||||
|
||||
p
|
||||
| {{ $t('reportAccountProblems') }}
|
||||
| :
|
||||
a(href='mailto:admin@habitica.com') admin@habitica.com
|
||||
br
|
||||
| {{ $t('reportBug') }}
|
||||
| :
|
||||
a(target='_blank', href='/groups/guild/a29da26b-37de-4a71-b0c6-48e72a900dac') Report a Bug guild
|
||||
| or
|
||||
a(target='_blank', href='https://github.com/HabitRPG/habitica/issues?q=is%3Aopen') GitHub
|
||||
span(v-if='this.user')
|
||||
br
|
||||
| {{ $t('reportCommunityIssues') }}
|
||||
| :
|
||||
a(@click.prevent='modForm()', href='') {{ $t('contactForm') }}
|
||||
br
|
||||
| {{ $t('subscriptionPaymentIssues') }}
|
||||
| :
|
||||
a(href='mailto:admin@habitica.com') admin@habitica.com
|
||||
br
|
||||
| {{ $t('generalQuestionsSite') }}
|
||||
| :
|
||||
a(target='_blank', href='/groups/guild/5481ccf3-5d2d-48a9-a871-70a7380cee5a') Habitica Help guild
|
||||
br
|
||||
| {{ $t('businessInquiries') }}
|
||||
| :
|
||||
a(href='mailto:admin@habitica.com') admin@habitica.com
|
||||
br
|
||||
| {{ $t('merchandiseInquiries') }}
|
||||
| :
|
||||
a(href='mailto:admin@habitica.com') admin@habitica.com
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { mapState } from 'client/libs/store';
|
||||
import { goToModForm } from 'client/libs/modform';
|
||||
|
||||
export default {
|
||||
computed: {
|
||||
...mapState({
|
||||
user: 'user.data',
|
||||
}),
|
||||
},
|
||||
methods: {
|
||||
modForm () {
|
||||
goToModForm(this.user);
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
||||
@@ -0,0 +1,97 @@
|
||||
<template lang="pug">
|
||||
.container-fluid(role="tablist")
|
||||
.row
|
||||
.col-12.col-md-6.offset-md-3
|
||||
h1#faq-heading {{ $t('frequentlyAskedQuestions') }}
|
||||
.faq-question(v-for='(heading, index) in headings', :key="index")
|
||||
h2(role="tab", v-b-toggle="heading", @click="handleClick($event)", variant="info") {{ $t(`faqQuestion${index}`) }}
|
||||
b-collapse(:id="heading", :visible="isVisible(heading)", accordion="faq", role="tabpanel")
|
||||
div.card-body(v-markdown="$t('webFaqAnswer' + index, replacements)")
|
||||
hr
|
||||
p(v-markdown="$t('webFaqStillNeedHelp')")
|
||||
</template>
|
||||
|
||||
<style lang='scss' scoped>
|
||||
.card-body {
|
||||
margin-bottom: 1em;
|
||||
}
|
||||
|
||||
.faq-question h2 {
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.faq-question .card-body {
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.static-wrapper .faq-question h2 {
|
||||
margin: 0 0 16px 0;
|
||||
}
|
||||
|
||||
.faq-question a {
|
||||
text-decoration: none;
|
||||
color: #4F2A93;
|
||||
}
|
||||
|
||||
@media only screen and (max-width: 768px) {
|
||||
.container-fluid {
|
||||
margin: auto;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
<script>
|
||||
// @TODO: env.EMAILS.TECH_ASSISTANCE_EMAIL
|
||||
const TECH_ASSISTANCE_EMAIL = 'admin@habitica.com';
|
||||
|
||||
import markdownDirective from 'client/directives/markdown';
|
||||
|
||||
export default {
|
||||
directives: {
|
||||
markdown: markdownDirective,
|
||||
},
|
||||
data () {
|
||||
let headings = [
|
||||
'overview',
|
||||
'set-up-tasks',
|
||||
'sample-tasks',
|
||||
'task-color',
|
||||
'health',
|
||||
'party-with-friends',
|
||||
'pets-mounts',
|
||||
'character-classes',
|
||||
'blue-mana-bar',
|
||||
'monsters-quests',
|
||||
'gems',
|
||||
'bugs-features',
|
||||
'world-boss',
|
||||
];
|
||||
|
||||
const hash = window.location.hash.replace('#', '');
|
||||
|
||||
return {
|
||||
headings,
|
||||
replacements: {
|
||||
techAssistanceEmail: TECH_ASSISTANCE_EMAIL,
|
||||
wikiTechAssistanceEmail: `mailto:${TECH_ASSISTANCE_EMAIL}`,
|
||||
},
|
||||
visible: hash && headings.includes(hash) ? hash : null,
|
||||
// @TODO webFaqStillNeedHelp: {
|
||||
// linkStart: '[',
|
||||
// linkEnd: '](/groups/guild/5481ccf3-5d2d-48a9-a871-70a7380cee5a)',
|
||||
// },
|
||||
// "webFaqStillNeedHelp": "If you have a question that isn't on this list or on the [Wiki FAQ](http://habitica.fandom.com/wiki/FAQ), come ask in the <%= linkStart %>Habitica Help guild<%= linkEnd %>! We're happy to help."
|
||||
};
|
||||
},
|
||||
methods: {
|
||||
isVisible (heading) {
|
||||
return this.visible && this.visible === heading;
|
||||
},
|
||||
handleClick (e) {
|
||||
if (!e) return;
|
||||
const heading = e.target.nextElementSibling.id;
|
||||
history.pushState({}, heading, `#${heading}`);
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
||||
@@ -0,0 +1,105 @@
|
||||
<template lang="pug">
|
||||
.container-fluid.text-center
|
||||
.row
|
||||
.col-md-12
|
||||
h1 {{ $t('marketing1Header') }}
|
||||
.row
|
||||
.col-md-6
|
||||
img(src='~assets/images/marketing/screenshot.png')
|
||||
h2 {{ $t('marketing1Lead1Title') }}
|
||||
p {{ $t('marketing1Lead1') }}
|
||||
.col-md-6
|
||||
img(src='~assets/images/marketing/gear.png')
|
||||
h2 {{ $t('marketing1Lead2Title') }}
|
||||
p {{ $t('marketing1Lead2') }}
|
||||
img(src='~assets/images/marketing/drops.png', style='max-height: 200px;')
|
||||
h2 {{ $t('marketing1Lead3Title') }}
|
||||
p {{ $t('marketing1Lead3') }}
|
||||
hr
|
||||
.row
|
||||
.col-md-12
|
||||
h1 {{ $t('marketing2Header') }}
|
||||
.row
|
||||
.col-md-6
|
||||
img(src='~assets/images/marketing/guild.png')
|
||||
h2 {{ $t('marketing2Lead1Title') }}
|
||||
p {{ $t('marketing2Lead1') }}
|
||||
img(src='~assets/images/marketing/vice3.png')
|
||||
h2 {{ $t('marketing2Lead2Title') }}
|
||||
p(v-markdown='$t("marketing2Lead2")')
|
||||
.col-md-6
|
||||
img(src='~assets/images/marketing/challenge.png')
|
||||
h2 {{ $t('marketing2Lead3Title') }}
|
||||
p {{ $t('marketing2Lead3') }}
|
||||
hr
|
||||
.row
|
||||
.col-md-12
|
||||
h1 {{ $t('marketing3Header') }}
|
||||
.row
|
||||
.col-md-6
|
||||
img(src='~assets/images/marketing/android_iphone.png')
|
||||
h2 {{ $t('footerMobile') }}
|
||||
p(v-markdown='$t("marketing3Lead1")')
|
||||
.col-md-6
|
||||
img(src='~assets/images/marketing/integration.png')
|
||||
h2 {{ $t('marketing3Lead2Title') }}
|
||||
p(v-markdown='$t("marketing3Lead2")')
|
||||
hr
|
||||
.row
|
||||
.col-md-12
|
||||
h1 {{ $t('marketing4Header') }}
|
||||
.row
|
||||
.col-md-6
|
||||
.media
|
||||
img(src='~assets/images/marketing/education.png')
|
||||
.media-body
|
||||
h2 {{ $t('marketing4Lead1Title') }}
|
||||
p {{ $t('marketing4Lead1') }}
|
||||
.col-md-6
|
||||
.media
|
||||
img(src='~assets/images/marketing/wellness.png')
|
||||
.media-body
|
||||
h2 {{ $t('marketing4Lead2Title') }}
|
||||
p {{ $t('marketing4Lead2') }}
|
||||
.row
|
||||
.col-md-6.offset-md-3
|
||||
h2 {{ $t('marketing4Lead3Title') }}
|
||||
img(src='~assets/images/marketing/lefnire.png')
|
||||
p.span
|
||||
span {{ $t('marketing4Lead3-1') }}
|
||||
button.btn.btn-primary(@click='playButtonClick()') {{ $t('playButton') }}
|
||||
p.span
|
||||
span {{ $t('marketing4Lead3-2') }}
|
||||
a.btn.btn-primary(href='/static/plans',target='_blank') {{ $t('contactUs') }}
|
||||
</template>
|
||||
|
||||
<style lang='scss' scoped>
|
||||
.btn {
|
||||
margin-left: 1em;
|
||||
}
|
||||
|
||||
img {
|
||||
box-shadow: 0 0 10px 5px #888;
|
||||
margin: 0.5em;
|
||||
max-width: 500px;
|
||||
|
||||
@media (max-width: 1200px) {
|
||||
max-width: 100%;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
<script>
|
||||
import markdownDirective from 'client/directives/markdown';
|
||||
|
||||
export default {
|
||||
directives: {
|
||||
markdown: markdownDirective,
|
||||
},
|
||||
methods: {
|
||||
playButtonClick () {
|
||||
this.$router.push('/register');
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
||||
@@ -0,0 +1,252 @@
|
||||
<template lang="pug">
|
||||
.group-plan-static.text-center
|
||||
amazon-payments-modal
|
||||
.container
|
||||
.row.top
|
||||
.top-left
|
||||
.col-6.offset-3
|
||||
img.party(src='../../assets/images/group-plans-static/party@3x.png')
|
||||
h1 {{ $t('groupPlanTitle') }}
|
||||
p {{ $t('groupPlanDesc') }}
|
||||
.pricing
|
||||
span Just
|
||||
span.number $9
|
||||
span.bold per month +
|
||||
span.number $3
|
||||
span.bold per member*
|
||||
.text-center
|
||||
button.btn.btn-primary.cta-button(@click="goToNewGroupPage()") {{ $t('getStarted') }}
|
||||
small {{ $t('billedMonthly') }}
|
||||
.top-right
|
||||
.row
|
||||
.text-col.col-12.col-md-6.text-left
|
||||
h2 {{ $t('teamBasedTasksList') }}
|
||||
p {{ $t('teamBasedTasksListDesc') }}
|
||||
.col-12.col-md-6
|
||||
.team-based(v-html='svg.teamBased')
|
||||
.row
|
||||
.col-12.col-md-6
|
||||
.group-management(v-html='svg.groupManagement')
|
||||
.text-col.col-12.col-md-6.text-left
|
||||
h2 {{ $t('groupManagementControls') }}
|
||||
p {{ $t('groupManagementControlsDesc') }}
|
||||
.row
|
||||
.col-12.col-md-6.offset-md-3.text-center
|
||||
img.big-gem(src='../../assets/images/group-plans-static/big-gem@3x.png')
|
||||
h2 {{ $t('inGameBenefits') }}
|
||||
p {{ $t('inGameBenefitsDesc') }}
|
||||
.row
|
||||
.bot-left
|
||||
.col-6.offset-3
|
||||
h2.purple {{ $t('inspireYourParty') }}
|
||||
.pricing
|
||||
span Just
|
||||
span.number $9
|
||||
span.bold per month +
|
||||
span.number $3
|
||||
span.bold per member*
|
||||
.text-center
|
||||
button.btn.btn-primary.cta-button(@click="goToNewGroupPage()") {{ $t('getStarted') }}
|
||||
small {{ $t('billedMonthly') }}
|
||||
.bot-right
|
||||
b-modal#group-plan(title="", size='md', :hide-footer='true', :hide-header='true')
|
||||
div(v-if='modalPage === "account"')
|
||||
h2 {{ $t('letsMakeAccount') }}
|
||||
auth-form(@authenticate='authenticate()')
|
||||
div(v-if='modalPage === "purchaseGroup"')
|
||||
create-group-modal-pages
|
||||
</template>
|
||||
|
||||
<style lang='scss' scoped>
|
||||
@import url('https://fonts.googleapis.com/css?family=Varela+Round');
|
||||
|
||||
h1, h2 {
|
||||
font-family: 'Varela Round', sans-serif;
|
||||
font-weight: normal;
|
||||
}
|
||||
|
||||
.party {
|
||||
width: 386px;
|
||||
margin-top: 4em;
|
||||
}
|
||||
|
||||
.team-based {
|
||||
background-image: url('../../assets/images/group-plans-static/group-management@3x.png');
|
||||
background-size: contain;
|
||||
position: absolute;
|
||||
height: 356px;
|
||||
width: 411px;
|
||||
margin-top: -2em;
|
||||
}
|
||||
|
||||
.group-management {
|
||||
background-image: url('../../assets/images/group-plans-static/team-based@3x.png');
|
||||
background-size: contain;
|
||||
position: absolute;
|
||||
height: 294px;
|
||||
width: 411px;
|
||||
}
|
||||
|
||||
.top-left, .top-right, .bot-left, .bot-right {
|
||||
width: 273px;
|
||||
height: 396px;
|
||||
background-size: contain;
|
||||
position: absolute;
|
||||
}
|
||||
|
||||
.top-left {
|
||||
background-image: url('../../assets/images/group-plans-static/top-left@3x.png');
|
||||
left: 4em;
|
||||
height: 420px;
|
||||
}
|
||||
|
||||
.top-right {
|
||||
background-image: url('../../assets/images/group-plans-static/top-right@3x.png');
|
||||
right: 4em;
|
||||
height: 420px;
|
||||
}
|
||||
|
||||
.bot-left {
|
||||
background-image: url('../../assets/images/group-plans-static/bot-left@3x.png');
|
||||
left: 4em;
|
||||
bottom: 1em;
|
||||
}
|
||||
|
||||
.bot-right {
|
||||
background-image: url('../../assets/images/group-plans-static/bot-right@3x.png');
|
||||
right: 4em;
|
||||
bottom: 1em;
|
||||
}
|
||||
|
||||
h1 {
|
||||
font-size: 42px;
|
||||
color: #34313a;
|
||||
line-height: 1.17;
|
||||
}
|
||||
|
||||
h2 {
|
||||
font-size: 29px;
|
||||
color: #34313a;
|
||||
margin-top: 1em;
|
||||
}
|
||||
|
||||
.purple {
|
||||
color: #6133b4;
|
||||
}
|
||||
|
||||
p {
|
||||
font-size: 20px;
|
||||
color: #878190;
|
||||
}
|
||||
|
||||
.group-plan-static {
|
||||
margin-top: 6em;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.row {
|
||||
margin-top: 10em;
|
||||
margin-bottom: 10em;
|
||||
}
|
||||
|
||||
.text-col {
|
||||
margin-top: 3em;
|
||||
}
|
||||
|
||||
.big-gem {
|
||||
width: 138.5px;
|
||||
}
|
||||
|
||||
.cta-button {
|
||||
font-family: 'Varela Round', sans-serif;
|
||||
font-weight: normal;
|
||||
padding: 1em 2em;
|
||||
margin-top: 1em;
|
||||
margin-bottom: 1em;
|
||||
border-radius: 4px;
|
||||
background-color: #6133b4;
|
||||
box-shadow: inset 0 -4px 0 0 rgba(52, 49, 58, 0.4);
|
||||
font-size: 20px;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.pricing {
|
||||
color: #878190;
|
||||
font-size: 24px;
|
||||
|
||||
span {
|
||||
margin-right: .2em;
|
||||
}
|
||||
|
||||
.bold {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.number {
|
||||
color: #1ca372;
|
||||
font-weight: bold;
|
||||
}
|
||||
}
|
||||
|
||||
small {
|
||||
font-size: 16px;
|
||||
color: #a5a1ac;
|
||||
}
|
||||
</style>
|
||||
|
||||
<script>
|
||||
import * as Analytics from 'client/libs/analytics';
|
||||
import { setup as setupPayments } from 'client/libs/payments';
|
||||
import amazonPaymentsModal from 'client/components/payments/amazonModal';
|
||||
import StaticHeader from './header.vue';
|
||||
import AuthForm from '../auth/authForm.vue';
|
||||
import CreateGroupModalPages from '../group-plans/createGroupModalPages.vue';
|
||||
|
||||
import party from '../../assets/images/group-plans-static/party.svg';
|
||||
|
||||
export default {
|
||||
components: {
|
||||
StaticHeader,
|
||||
AuthForm,
|
||||
CreateGroupModalPages,
|
||||
amazonPaymentsModal,
|
||||
},
|
||||
data () {
|
||||
return {
|
||||
svg: {
|
||||
party,
|
||||
},
|
||||
modalTitle: this.$t('register'),
|
||||
modalPage: 'account',
|
||||
};
|
||||
},
|
||||
mounted () {
|
||||
this.$nextTick(() => {
|
||||
// Load external scripts after the app has been rendered
|
||||
setupPayments();
|
||||
});
|
||||
},
|
||||
methods: {
|
||||
goToNewGroupPage () {
|
||||
Analytics.track({
|
||||
hitType: 'event',
|
||||
eventCategory: 'group-plans-static',
|
||||
eventAction: 'view',
|
||||
eventLabel: 'view-auth-form',
|
||||
});
|
||||
|
||||
this.$root.$emit('bv::show::modal', 'group-plan');
|
||||
},
|
||||
authenticate () {
|
||||
this.modalPage = 'purchaseGroup';
|
||||
|
||||
Analytics.track({
|
||||
hitType: 'event',
|
||||
eventCategory: 'group-plans-static',
|
||||
eventAction: 'view',
|
||||
eventLabel: 'create-group',
|
||||
});
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
||||
@@ -0,0 +1,201 @@
|
||||
<template lang="pug">
|
||||
nav.navbar.navbar-inverse.fixed-top.navbar-expand-sm
|
||||
.navbar-header
|
||||
router-link.nav-item(:to='!isUserLoggedIn ? "/static/home" : "/"')
|
||||
.logo.svg-icon(v-html='icons.purpleLogo', v-if='this.$route.name === "plans"')
|
||||
.logo.svg-icon(v-html='icons.logo', v-else)
|
||||
.collapse.navbar-collapse
|
||||
ul.navbar-nav.mr-auto(v-if='$route.name !== "home"')
|
||||
router-link.nav-item(tag='li', to='/static/features')
|
||||
a.nav-link(v-once) {{ $t('companyAbout') }}
|
||||
router-link.nav-item(tag='li', to='/static/plans')
|
||||
a.nav-link(v-once) {{ $t('groupPlans') }}
|
||||
li.nav-item
|
||||
a.nav-link(href='https://habitica.wordpress.com/', target='_blank') {{ $t('companyBlog') }}
|
||||
li.nav-item
|
||||
a.nav-link(href='http://blog.habitrpg.com/', target='_blank') {{ $t('tumblr') }}
|
||||
router-link.nav-item(tag='li', to='/static/press-kit')
|
||||
a.nav-link(v-once) {{ $t('presskit') }}
|
||||
router-link.nav-item(tag='li', to='/static/contact')
|
||||
a.nav-link(v-once) {{ $t('contactUs') }}
|
||||
ul.navbar-nav.mr-auto(v-else)
|
||||
router-link.nav-item(tag='li', to='/register')
|
||||
a.nav-link(v-once) {{ $t('getStarted') }}
|
||||
li.nav-item
|
||||
a.nav-link(@click='scrollToMobileApp') {{ $t('mobileApps') }}
|
||||
li.nav-item.dropdown
|
||||
a.nav-link.dropdown-toggle(v-once) {{ $t('learnMore') }}
|
||||
.dropdown-menu
|
||||
router-link.dropdown-item(to='/static/faq') {{ $t('faq') }}
|
||||
router-link.dropdown-item(to='/static/plans') {{ $t('groupPlans') }}
|
||||
button.btn.btn-primary.pull-right(@click='playButtonClick()', v-if='$route.name !== "home"') {{ $t('playButtonFull') }}
|
||||
router-link.btn.btn-primary.login-button.pull-right(to='/login', v-if='$route.name === "home"') {{ $t('login') }}
|
||||
</template>
|
||||
|
||||
<style lang='scss' scoped>
|
||||
@import '~client/assets/scss/colors.scss';
|
||||
|
||||
@media only screen and (max-width : 750px) {
|
||||
.login-button {
|
||||
margin: 0 auto !important;
|
||||
margin-top: 1.8em !important;
|
||||
}
|
||||
}
|
||||
|
||||
.home-header, .home-header .btn {
|
||||
font-family: 'Varela Round', sans-serif;
|
||||
font-weight: normal;
|
||||
}
|
||||
|
||||
.btn-primary.pull-right {
|
||||
height: 2.5em;
|
||||
margin: auto 0px auto auto;
|
||||
}
|
||||
|
||||
nav.navbar {
|
||||
background: $purple-100 url(~assets/svg/for-css/bits.svg) right no-repeat;
|
||||
padding-left: 25px;
|
||||
padding-right: 12.5px;
|
||||
height: 56px;
|
||||
box-shadow: 0 1px 2px 0 rgba($black, 0.24);
|
||||
}
|
||||
|
||||
.navbar-header {
|
||||
margin-right: 48px;
|
||||
|
||||
.logo {
|
||||
width: 128px;
|
||||
height: 28px;
|
||||
}
|
||||
}
|
||||
|
||||
.nav-item {
|
||||
.nav-link {
|
||||
font-size: 16px !important;
|
||||
color: $white;
|
||||
line-height: 1.5;
|
||||
padding: 16px 24px;
|
||||
transition: none;
|
||||
}
|
||||
|
||||
&:hover {
|
||||
.nav-link {
|
||||
color: $white;
|
||||
background: $purple-200;
|
||||
}
|
||||
}
|
||||
|
||||
&.active:not(:hover) {
|
||||
.nav-link {
|
||||
box-shadow: 0px -4px 0px $purple-300 inset;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Make the dropdown menu open on hover
|
||||
.dropdown:hover .dropdown-menu {
|
||||
display: block;
|
||||
margin-top: 0; // remove the gap so it doesn't close
|
||||
}
|
||||
|
||||
.dropdown + .dropdown {
|
||||
margin-left: 0px;
|
||||
}
|
||||
|
||||
.dropdown-separated {
|
||||
border-bottom: 1px solid $gray-500;
|
||||
}
|
||||
|
||||
.dropdown-menu:not(.user-dropdown) {
|
||||
border-radius: 0px;
|
||||
border: none;
|
||||
box-shadow: none;
|
||||
padding: 0px;
|
||||
border-bottom-right-radius: 5px;
|
||||
border-bottom-left-radius: 5px;
|
||||
|
||||
.dropdown-item {
|
||||
font-size: 12px;
|
||||
padding-top: .5em !important;
|
||||
box-shadow: none;
|
||||
border: none;
|
||||
text-align: center;
|
||||
color: #4f2a93 !important;
|
||||
|
||||
&.active {
|
||||
background: $purple-300;
|
||||
}
|
||||
|
||||
&:hover {
|
||||
background-color: #9a62ff !important;
|
||||
color: $white !important;
|
||||
|
||||
&:last-child {
|
||||
border-bottom-right-radius: 5px;
|
||||
border-bottom-left-radius: 5px;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.home-header {
|
||||
.nav-item:hover .nav-link {
|
||||
background: transparent;
|
||||
}
|
||||
|
||||
.dropdown-menu {
|
||||
border-radius: 4px;
|
||||
padding-top: .5em;
|
||||
padding-bottom: .5em;
|
||||
|
||||
.dropdown-item {
|
||||
border-radius: 0px !important;
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
<script>
|
||||
import logo from 'assets/svg/logo.svg';
|
||||
import purpleLogo from 'assets/svg/purple-logo.svg';
|
||||
import * as Analytics from 'client/libs/analytics';
|
||||
|
||||
export default {
|
||||
data () {
|
||||
return {
|
||||
icons: Object.freeze({
|
||||
logo,
|
||||
purpleLogo,
|
||||
}),
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
isUserLoggedIn () {
|
||||
return this.$store.state.isUserLoggedIn;
|
||||
},
|
||||
},
|
||||
methods: {
|
||||
playButtonClick () {
|
||||
if (this.isUserLoggedIn) {
|
||||
this.$router.push('/');
|
||||
return;
|
||||
}
|
||||
|
||||
// @TODO duplicate of code in home.vue
|
||||
Analytics.track({
|
||||
hitType: 'event',
|
||||
eventCategory: 'button',
|
||||
eventAction: 'click',
|
||||
eventLabel: 'Play',
|
||||
});
|
||||
|
||||
this.$router.push('/register');
|
||||
},
|
||||
scrollToMobileApp () {
|
||||
document.querySelector('#level-up-anywhere').scrollIntoView({
|
||||
behavior: 'smooth',
|
||||
});
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
||||
@@ -0,0 +1,733 @@
|
||||
<template lang="pug">
|
||||
#front.static-view
|
||||
noscript.banner {{ $t('jsDisabledHeadingFull') }}
|
||||
br
|
||||
a(href='http://www.enable-javascript.com/', target='_blank') {{ $t('jsDisabledLink') }}
|
||||
|
||||
#intro-signup.purple-1
|
||||
.container
|
||||
.row
|
||||
.col-12.col-md-6.col-lg-6
|
||||
img(src='~assets/images/home/home-main@3x.png', width='357px')
|
||||
h1 {{$t('motivateYourself')}}
|
||||
p.section-main {{$t('timeToGetThingsDone', {userCountInMillions})}}
|
||||
.col-12.col-md-6.col-lg-6
|
||||
h3.text-center {{$t('singUpForFree')}}
|
||||
div.text-center
|
||||
button.social-button(@click='socialAuth("facebook")')
|
||||
.svg-icon.social-icon(v-html="icons.facebookIcon")
|
||||
span {{$t('signUpWithSocial', {social: 'Facebook'})}}
|
||||
button.social-button(@click='socialAuth("google")')
|
||||
.svg-icon.social-icon(v-html="icons.googleIcon")
|
||||
span {{$t('signUpWithSocial', {social: 'Google'})}}
|
||||
.strike
|
||||
span {{$t('or')}}
|
||||
.form(@keyup.enter="register()")
|
||||
p.form-text {{$t('usernameLimitations')}}
|
||||
input#usernameInput.form-control(type='text', :placeholder='$t("username")', v-model='username', :class='{"input-valid": usernameValid, "input-invalid": usernameInvalid}')
|
||||
.input-error(v-for="issue in usernameIssues") {{ issue }}
|
||||
input.form-control(type='email', :placeholder='$t("email")', v-model='email', :class='{"input-invalid": emailInvalid, "input-valid": emailValid}')
|
||||
input.form-control(type='password', :placeholder='$t("password")', v-model='password', :class='{"input-valid": password.length > 3}')
|
||||
input.form-control(type='password', :placeholder='$t("confirmPassword")', v-model='passwordConfirm', :class='{"input-invalid": passwordConfirmInvalid, "input-valid": passwordConfirmValid}')
|
||||
p.form-text(v-once, v-html="$t('termsAndAgreement')")
|
||||
button.sign-up(@click="register()") {{$t('signup')}}
|
||||
.col-12
|
||||
.spacer.svg-icon(v-html='icons.spacer')
|
||||
|
||||
#gamify-life.purple-2
|
||||
.container-fluid
|
||||
.pixel-horizontal.svg-icon(v-html='icons.pixelHorizontal')
|
||||
.container
|
||||
.row
|
||||
.col-12.col-sm-6.col-md-6.col-lg-6.offset-sm-3.text-center
|
||||
h2 {{$t('gamifyYourLife')}}
|
||||
p.section-main {{$t('aboutHabitica')}}
|
||||
.row
|
||||
.col-12.col-md-4
|
||||
img.track-habits(src='~assets/images/home/track-habits@3x.png', width='354px', height='228px')
|
||||
strong {{$t('trackYourGoals')}}
|
||||
p {{$t('trackYourGoalsDesc')}}
|
||||
.col-12.col-md-4
|
||||
img(src='~assets/images/home/earn-rewards@3x.png', width='316px', height='244px')
|
||||
strong {{$t('earnRewards')}}
|
||||
p {{$t('earnRewardsDesc')}}
|
||||
.col-12.col-md-4
|
||||
img(src='~assets/images/home/battle-monsters@3x.png', width='303px', height='244px')
|
||||
strong {{$t('battleMonsters')}}
|
||||
p {{$t('battleMonstersDesc')}}
|
||||
.col-12
|
||||
.spacer.svg-icon(v-html='icons.spacer')
|
||||
|
||||
#use-cases.purple-2
|
||||
.container.text-center
|
||||
.row
|
||||
.col-12
|
||||
h2 {{$t('playersUseToImprove')}}
|
||||
.row
|
||||
.col-12.col-sm-4
|
||||
img(src='~assets/images/home/health-fitness@3x.png', width='300px', height='300px')
|
||||
strong {{$t('healthAndFitness')}}
|
||||
p {{$t('healthAndFitnessDesc')}}
|
||||
.col-12.col-sm-4
|
||||
img(src='~assets/images/home/school-work@3x.png', width='300px', height='300px')
|
||||
strong {{$t('schoolAndWork')}}
|
||||
p {{$t('schoolAndWorkDesc')}}
|
||||
.col-12.col-sm-4
|
||||
img(src='~assets/images/home/much-more@3x.png', width='300px', height='300px')
|
||||
strong {{$t('muchmuchMore')}}
|
||||
p {{$t('muchmuchMoreDesc')}}
|
||||
.col-12
|
||||
.spacer.svg-icon(v-html='icons.spacer')
|
||||
.container-fluid
|
||||
.pixel-horizontal-2.svg-icon(v-html='icons.pixelHorizontal2')
|
||||
|
||||
#level-up-anywhere.purple-3
|
||||
.container
|
||||
.row
|
||||
.col-12.col-md-6.col-lg-6
|
||||
.iphones
|
||||
.col-12.col-md-6.col-lg-6.text-column
|
||||
h2 {{ $t('levelUpAnywhere') }}
|
||||
p {{ $t('levelUpAnywhereDesc') }}
|
||||
a.app.svg-icon(v-html='icons.googlePlay', href='https://play.google.com/store/apps/details?id=com.habitrpg.android.habitica', target='_blank')
|
||||
a.app.svg-icon(v-html='icons.iosAppStore', href='https://itunes.apple.com/us/app/habitica-gamified-task-manager/id994882113?mt=8', target='_blank')
|
||||
.container-fluid
|
||||
.pixel-horizontal-3.svg-icon(v-html='icons.pixelHorizontal3')
|
||||
|
||||
#call-to-action.purple-4
|
||||
.container.featured
|
||||
.row.text-center
|
||||
h3.col-12 {{ $t('joinMany') }}
|
||||
.row
|
||||
.col-12.text-center
|
||||
button.btn.btn-primary.join-button(@click='playButtonClick()') {{ $t('joinToday') }}
|
||||
.row.featured
|
||||
.col-12.text-center
|
||||
strong {{ $t('featuredIn') }}
|
||||
.container-fluid.featured
|
||||
.row
|
||||
.col-12.text-center
|
||||
.lifehacker.svg-icon(v-html='icons.lifehacker')
|
||||
.thenewyorktimes.svg-icon(v-html='icons.thenewyorktimes')
|
||||
.makeuseof.svg-icon(v-html='icons.makeuseof')
|
||||
.forbes.svg-icon(v-html='icons.forbes')
|
||||
.cnet.svg-icon(v-html='icons.cnet')
|
||||
.kickstarter.svg-icon(v-html='icons.kickstarter')
|
||||
.fast-company.svg-icon(v-html='icons.fastCompany')
|
||||
.discover.svg-icon(v-html='icons.discover')
|
||||
.container-fluid
|
||||
.row.seamless_stars_varied_opacity_repeat
|
||||
</template>
|
||||
|
||||
<style lang='scss'>
|
||||
@import '~client/assets/scss/static.scss';
|
||||
</style>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
@import '~client/assets/scss/colors.scss';
|
||||
|
||||
@import url('https://fonts.googleapis.com/css?family=Varela+Round');
|
||||
|
||||
#front {
|
||||
.form-text a {
|
||||
color: #fff !important;
|
||||
}
|
||||
|
||||
.container-fluid {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.container {
|
||||
padding-top: 5em;
|
||||
padding-bottom: 5em;
|
||||
}
|
||||
|
||||
.logo {
|
||||
width: 128px;
|
||||
height: 28px;
|
||||
color: purple;
|
||||
}
|
||||
|
||||
.purple-1, .purple-2, .purple-3, .purple-4, h1, h2, h3, h4, h5 {
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.purple-1 {
|
||||
background-color: #6133b4;
|
||||
}
|
||||
|
||||
.purple-2 {
|
||||
background-color: #432874;
|
||||
}
|
||||
|
||||
.purple-3 {
|
||||
background-color: #36205d;
|
||||
}
|
||||
|
||||
.purple-4 {
|
||||
background-color: #271b3d;
|
||||
}
|
||||
|
||||
p.section-main {
|
||||
font-size: 18px;
|
||||
line-height: 1.33;
|
||||
}
|
||||
|
||||
h2 {
|
||||
font-size: 48px;
|
||||
line-height: 1.33;
|
||||
}
|
||||
|
||||
.spacer {
|
||||
width: 24px;
|
||||
height: 24px;
|
||||
margin: 0 auto;
|
||||
margin-top: 2em;
|
||||
}
|
||||
|
||||
.pixel-horizontal {
|
||||
color: #6133b4;
|
||||
}
|
||||
|
||||
.pixel-horizontal-2 {
|
||||
color: #432874;
|
||||
}
|
||||
|
||||
.pixel-horizontal-3 {
|
||||
color: #271b3d;
|
||||
}
|
||||
|
||||
h1, h2, h3, h4, h5, h6, button, .strike > span, input {
|
||||
font-family: 'Varela Round', sans-serif;
|
||||
font-weight: normal;
|
||||
}
|
||||
}
|
||||
|
||||
#intro-signup {
|
||||
background-image: url('~assets/svg/for-css/confetti.svg');
|
||||
|
||||
img {
|
||||
margin: 0 auto;
|
||||
display: block;
|
||||
}
|
||||
|
||||
h1 {
|
||||
font-size: 56px;
|
||||
line-height: 1.14;
|
||||
}
|
||||
|
||||
h3 {
|
||||
font-size: 24px;
|
||||
}
|
||||
|
||||
.social-button {
|
||||
border-radius: 2px;
|
||||
border: solid 2px #bda8ff;
|
||||
width: 48%;
|
||||
min-height: 40px;
|
||||
padding: .5em;
|
||||
background: transparent;
|
||||
margin-right: .5em;
|
||||
color: #bda8ff;
|
||||
transition: .5s;
|
||||
|
||||
span {
|
||||
transition: none;
|
||||
}
|
||||
}
|
||||
|
||||
.social-button:hover {
|
||||
cursor: pointer;
|
||||
border-color: #fff;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.social-icon {
|
||||
margin-right: 1em;
|
||||
width: 18px;
|
||||
height: 18px;
|
||||
display: inline-block;
|
||||
vertical-align: top;
|
||||
margin-top: .2em;
|
||||
}
|
||||
|
||||
.strike {
|
||||
display: block;
|
||||
text-align: center;
|
||||
overflow: hidden;
|
||||
white-space: nowrap;
|
||||
margin-top: 1.5em;
|
||||
margin-bottom: 1.5em;
|
||||
}
|
||||
|
||||
.strike > span {
|
||||
position: relative;
|
||||
display: inline-block;
|
||||
line-height: 1.14;
|
||||
}
|
||||
|
||||
.strike > span:before,
|
||||
.strike > span:after {
|
||||
content: "";
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
width: 9999px;
|
||||
height: 1px;
|
||||
background: #fff;
|
||||
}
|
||||
|
||||
.strike > span:before {
|
||||
right: 100%;
|
||||
margin-right: 15px;
|
||||
}
|
||||
|
||||
.strike > span:after {
|
||||
left: 100%;
|
||||
margin-left: 15px;
|
||||
}
|
||||
|
||||
.form {
|
||||
padding-top: 1em;
|
||||
padding-bottom: 1em;
|
||||
}
|
||||
|
||||
input {
|
||||
margin-bottom: 1em;
|
||||
border-radius: 2px;
|
||||
background-color: #432874;
|
||||
border-color: #432874;
|
||||
color: $purple-400;
|
||||
border: solid 2px transparent;
|
||||
transition-timing-function: ease;
|
||||
transition: border .5s, color .5s;
|
||||
}
|
||||
|
||||
#usernameInput.input-invalid {
|
||||
margin-bottom: 0.5em;
|
||||
}
|
||||
|
||||
.input-valid {
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
input:focus {
|
||||
border: solid 2px #9a62ff;
|
||||
color: #fff;
|
||||
background-color: #36205d;
|
||||
}
|
||||
|
||||
input:hover {
|
||||
background-color: #36205d;
|
||||
}
|
||||
|
||||
button.sign-up {
|
||||
width: 100%;
|
||||
height: 48px;
|
||||
color: #fff;
|
||||
border: none;
|
||||
border-radius: 2px;
|
||||
background-color: #2995cd;
|
||||
font-size: 16px;
|
||||
transition: all .5s ease;
|
||||
}
|
||||
|
||||
.sign-up:hover {
|
||||
background-color: #50b5e9;
|
||||
box-shadow: 0 4px 4px 0 rgba(26, 24, 29, 0.16), 0 1px 8px 0 rgba(26, 24, 29, 0.12);
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
::-webkit-input-placeholder { /* Chrome/Opera/Safari */
|
||||
color: $purple-400;
|
||||
}
|
||||
::-moz-placeholder { /* Firefox 19+ */
|
||||
color: $purple-400;
|
||||
}
|
||||
:-ms-input-placeholder { /* IE 10+ */
|
||||
color: $purple-400;
|
||||
}
|
||||
:-moz-placeholder { /* Firefox 18- */
|
||||
color: $purple-400;
|
||||
}
|
||||
::placeholder { // Standard browsers
|
||||
color: $purple-400;
|
||||
}
|
||||
}
|
||||
|
||||
#gamify-life {
|
||||
text-align: center;
|
||||
|
||||
img {
|
||||
max-width: 100%;
|
||||
display: block;
|
||||
margin: 0 auto;
|
||||
margin-top: 1em;
|
||||
margin-bottom: 1.5em;
|
||||
}
|
||||
|
||||
.track-habits {
|
||||
margin-bottom: 2.5em;
|
||||
}
|
||||
|
||||
strong {
|
||||
font-size: 24px;
|
||||
font-family: 'Varela Round', sans-serif;
|
||||
line-height: 1.33;
|
||||
}
|
||||
}
|
||||
|
||||
#use-cases {
|
||||
strong {
|
||||
font-size: 24px;
|
||||
font-family: 'Varela Round', sans-serif;
|
||||
line-height: 1.33;
|
||||
}
|
||||
|
||||
img {
|
||||
display: block;
|
||||
height: 200px;
|
||||
width: 200px;
|
||||
margin: 0 auto;
|
||||
margin-top: 2em;
|
||||
margin-bottom: 2em;
|
||||
}
|
||||
}
|
||||
|
||||
#level-up-anywhere {
|
||||
.app {
|
||||
display: inline-block;
|
||||
width: 135px;
|
||||
margin-right: .5em;
|
||||
}
|
||||
|
||||
.app {
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.iphones {
|
||||
width: 436px;
|
||||
height: 520px;
|
||||
max-width: 100%;
|
||||
background-repeat: no-repeat;
|
||||
background-size: 100%;
|
||||
background-image: url('~assets/images/home/mobile-preview@3x.png');
|
||||
}
|
||||
|
||||
.text-column {
|
||||
padding-top: 9em;
|
||||
}
|
||||
}
|
||||
|
||||
#call-to-action {
|
||||
.row {
|
||||
margin-top: 1em;
|
||||
margin-bottom: 1em;
|
||||
}
|
||||
|
||||
h3 {
|
||||
font-size: 32px;
|
||||
}
|
||||
|
||||
.btn-primary {
|
||||
width: 411px;
|
||||
height: 48px;
|
||||
border-radius: 2px;
|
||||
background-color: #9a62ff;
|
||||
box-shadow: 0 2px 2px 0 rgba(26, 24, 29, 0.24), 0 1px 4px 0 rgba(26, 24, 29, 0.16);
|
||||
margin-bottom: 5em;
|
||||
}
|
||||
|
||||
.container.featured {
|
||||
padding-bottom: 0;
|
||||
}
|
||||
|
||||
.container-fluid.featured {
|
||||
padding-bottom: 5em;
|
||||
}
|
||||
|
||||
.join-button:hover {
|
||||
cursor: pointer;
|
||||
background-color: #b288ff;
|
||||
box-shadow: 0 4px 4px 0 rgba(26, 24, 29, 0.16), 0 1px 8px 0 rgba(26, 24, 29, 0.12);
|
||||
}
|
||||
|
||||
.featured .row {
|
||||
margin-top: 0;
|
||||
}
|
||||
|
||||
.featured {
|
||||
text-align: center;
|
||||
font-family: 'Varela Round', sans-serif;
|
||||
|
||||
strong {
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
.svg-icon {
|
||||
vertical-align: bottom;
|
||||
color: #d5c8ff;
|
||||
display: inline-block;
|
||||
margin-right: 1em;
|
||||
}
|
||||
|
||||
.lifehacker {
|
||||
width: 116.7px;
|
||||
height: 32px;
|
||||
}
|
||||
|
||||
.thenewyorktimes {
|
||||
width: 170.4px;
|
||||
height: 24px;
|
||||
}
|
||||
|
||||
.makeuseof {
|
||||
width: 59.7px;
|
||||
height: 32px;
|
||||
}
|
||||
|
||||
.forbes {
|
||||
width: 91.7px;
|
||||
height: 24px;
|
||||
}
|
||||
|
||||
.kickstarter {
|
||||
width: 205px;
|
||||
height: 24px;
|
||||
}
|
||||
|
||||
.discover {
|
||||
width: 119.6px;
|
||||
height: 24px;
|
||||
}
|
||||
|
||||
.cnet {
|
||||
width: 40px;
|
||||
height: 40px;
|
||||
padding-top: .5em;
|
||||
margin-right: 1em;
|
||||
}
|
||||
|
||||
.fast-company {
|
||||
width: 161.3px;
|
||||
height: 24px;
|
||||
}
|
||||
|
||||
img {
|
||||
max-height: 30px;
|
||||
max-width: 120px;
|
||||
vertical-align: middle;
|
||||
margin: 20px;
|
||||
-moz-filter: brightness(0) invert(1);
|
||||
-ms-filter: brightness(0) invert(1);
|
||||
-o-filter: brightness(0) invert(1);
|
||||
filter: brightness(0) invert(1);
|
||||
-webkit-filter: brightness(0) invert(1);
|
||||
}
|
||||
}
|
||||
|
||||
.seamless_stars_varied_opacity_repeat {
|
||||
background-image: url('~assets/images/auth/seamless_stars_varied_opacity.png');
|
||||
background-repeat: repeat-x;
|
||||
position: absolute;
|
||||
height: 500px;
|
||||
width: 100%;
|
||||
opacity: .5;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@media only screen and (max-width: 768px) {
|
||||
#call-to-action .btn-primary {
|
||||
width: 95%;
|
||||
}
|
||||
|
||||
#call-to-action .featured .svg-icon {
|
||||
display: block;
|
||||
margin: 0 auto;
|
||||
margin-bottom: .5em;
|
||||
}
|
||||
}
|
||||
|
||||
.input-error {
|
||||
color: #fff;
|
||||
font-size: 90%;
|
||||
width: 100%;
|
||||
text-align: center;
|
||||
margin-bottom: 1em;
|
||||
}
|
||||
</style>
|
||||
|
||||
<script>
|
||||
import hello from 'hellojs';
|
||||
import debounce from 'lodash/debounce';
|
||||
import isEmail from 'validator/lib/isEmail';
|
||||
import googlePlay from 'assets/images/home/google-play-badge.svg';
|
||||
import iosAppStore from 'assets/images/home/ios-app-store.svg';
|
||||
import iphones from 'assets/images/home/iphones.svg';
|
||||
import spacer from 'assets/images/home/spacer.svg';
|
||||
import pixelHorizontal from 'assets/images/home/pixel-horizontal.svg';
|
||||
import pixelHorizontal2 from 'assets/images/home/pixel-horizontal-2.svg';
|
||||
import pixelHorizontal3 from 'assets/images/home/pixel-horizontal-3.svg';
|
||||
import facebookSquareIcon from 'assets/svg/facebook-square.svg';
|
||||
import googleIcon from 'assets/svg/google.svg';
|
||||
import cnet from 'assets/svg/cnet.svg';
|
||||
import fastCompany from 'assets/svg/fast-company.svg';
|
||||
import discover from 'assets/images/home/discover.svg';
|
||||
import forbes from 'assets/images/home/forbes.svg';
|
||||
import kickstarter from 'assets/images/home/kickstarter.svg';
|
||||
import lifehacker from 'assets/images/home/lifehacker.svg';
|
||||
import makeuseof from 'assets/images/home/make-use-of.svg';
|
||||
import thenewyorktimes from 'assets/images/home/the-new-york-times.svg';
|
||||
import * as Analytics from 'client/libs/analytics';
|
||||
|
||||
export default {
|
||||
data () {
|
||||
return {
|
||||
icons: Object.freeze({
|
||||
googlePlay,
|
||||
iosAppStore,
|
||||
iphones,
|
||||
spacer,
|
||||
pixelHorizontal,
|
||||
pixelHorizontal2,
|
||||
pixelHorizontal3,
|
||||
facebookIcon: facebookSquareIcon,
|
||||
googleIcon,
|
||||
cnet,
|
||||
fastCompany,
|
||||
discover,
|
||||
forbes,
|
||||
kickstarter,
|
||||
lifehacker,
|
||||
makeuseof,
|
||||
thenewyorktimes,
|
||||
}),
|
||||
userCountInMillions: 3,
|
||||
username: '',
|
||||
password: '',
|
||||
passwordConfirm: '',
|
||||
email: '',
|
||||
usernameIssues: [],
|
||||
};
|
||||
},
|
||||
mounted () {
|
||||
Analytics.track({
|
||||
hitType: 'pageview',
|
||||
eventCategory: 'page',
|
||||
eventAction: 'landing page',
|
||||
page: '/static/home',
|
||||
});
|
||||
|
||||
hello.init({
|
||||
facebook: process.env.FACEBOOK_KEY, // eslint-disable-line
|
||||
// windows: WINDOWS_CLIENT_ID,
|
||||
google: process.env.GOOGLE_CLIENT_ID, // eslint-disable-line
|
||||
});
|
||||
},
|
||||
computed: {
|
||||
emailValid () {
|
||||
if (this.email.length <= 3) return false;
|
||||
return isEmail(this.email);
|
||||
},
|
||||
emailInvalid () {
|
||||
if (this.email.length <= 3) return false;
|
||||
return !isEmail(this.email);
|
||||
},
|
||||
usernameValid () {
|
||||
if (this.username.length < 1) return false;
|
||||
return this.usernameIssues.length === 0;
|
||||
},
|
||||
usernameInvalid () {
|
||||
if (this.username.length < 1) return false;
|
||||
return !this.usernameValid;
|
||||
},
|
||||
passwordConfirmValid () {
|
||||
if (this.passwordConfirm.length <= 3) return false;
|
||||
return this.passwordConfirm === this.password;
|
||||
},
|
||||
passwordConfirmInvalid () {
|
||||
if (this.passwordConfirm.length <= 3) return false;
|
||||
return this.passwordConfirm !== this.password;
|
||||
},
|
||||
},
|
||||
watch: {
|
||||
username () {
|
||||
this.validateUsername(this.username);
|
||||
},
|
||||
},
|
||||
methods: {
|
||||
// eslint-disable-next-line func-names
|
||||
validateUsername: debounce(function (username) {
|
||||
if (username.length < 1) {
|
||||
return;
|
||||
}
|
||||
this.$store.dispatch('auth:verifyUsername', {
|
||||
username: this.username,
|
||||
}).then(res => {
|
||||
if (res.issues !== undefined) {
|
||||
this.usernameIssues = res.issues;
|
||||
} else {
|
||||
this.usernameIssues = [];
|
||||
}
|
||||
});
|
||||
}, 500),
|
||||
// @TODO this is totally duplicate from the registerLogin component
|
||||
async register () {
|
||||
let groupInvite = '';
|
||||
if (this.$route.query && this.$route.query.p) {
|
||||
groupInvite = this.$route.query.p;
|
||||
}
|
||||
|
||||
if (this.$route.query && this.$route.query.groupInvite) {
|
||||
groupInvite = this.$route.query.groupInvite;
|
||||
}
|
||||
|
||||
await this.$store.dispatch('auth:register', {
|
||||
username: this.username,
|
||||
email: this.email,
|
||||
password: this.password,
|
||||
passwordConfirm: this.passwordConfirm,
|
||||
groupInvite,
|
||||
});
|
||||
|
||||
let redirectTo;
|
||||
|
||||
if (this.$route.query.redirectTo) {
|
||||
redirectTo = this.$route.query.redirectTo;
|
||||
} else {
|
||||
redirectTo = '/';
|
||||
}
|
||||
|
||||
window.location.href = redirectTo;
|
||||
},
|
||||
playButtonClick () {
|
||||
Analytics.track({
|
||||
hitType: 'event',
|
||||
eventCategory: 'button',
|
||||
eventAction: 'click',
|
||||
eventLabel: 'Play',
|
||||
});
|
||||
this.$router.push('/register');
|
||||
},
|
||||
// @TODO: Abstract hello in to action or lib
|
||||
async socialAuth (network) {
|
||||
try {
|
||||
await hello(network).logout();
|
||||
} catch (e) {} // eslint-disable-line
|
||||
|
||||
const redirectUrl = `${window.location.protocol}//${window.location.host}`;
|
||||
const auth = await hello(network).login({
|
||||
scope: 'email',
|
||||
// explicitly pass the redirect url or it might redirect to /home
|
||||
redirect_uri: redirectUrl, // eslint-disable-line camelcase
|
||||
});
|
||||
|
||||
await this.$store.dispatch('auth:socialAuth', {
|
||||
auth,
|
||||
});
|
||||
|
||||
window.location.href = '/';
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
||||
@@ -0,0 +1,33 @@
|
||||
<template lang="pug">
|
||||
.container-fluid
|
||||
.row
|
||||
.col-md-6.offset-3
|
||||
h1 {{ $t('merch') }}
|
||||
// @TODO: Visual experience: Separate each merch items with new line? Or to show items in a table?
|
||||
.col-lg-6.col-md-6.col-sm-12(v-for="(merchant, index) in merchants")
|
||||
.merch-block
|
||||
img(v-if='merchant.logo' :src="`/static/merch/${merchant.key}-logo.png`")
|
||||
h2(v-else) {{ merchant.name }}
|
||||
div
|
||||
a(:href="merchant.link" target='_blank')
|
||||
img.img-rendering-auto(:src="`/static/merch/${merchant.key}.png`")
|
||||
p {{ $t('merch-' + merchant.key + '-summary') }}
|
||||
a.btn.btn-primary(:href="merchant.link" target='_blank') {{$t('merch-' + merchant.key + '-goto')}}
|
||||
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
data () {
|
||||
return {
|
||||
merchants: [
|
||||
{key: 'teespring', logo: true, name: 'Teespring', link: 'https://teespring.com/habitica-gryphon-t-shirt'},
|
||||
{key: 'teespring-eu', logo: true, name: 'Teespring (EU)', link: 'https://teespring.com/habitica-gryphon-t-shirt_eu'},
|
||||
{key: 'teespring-mug', logo: true, name: 'Teespring', link: 'https://teespring.com/shop/habitica-gryphon-mug'},
|
||||
{key: 'teespring-mug-eu', logo: true, name: 'Teespring (EU)', link: 'https://teespring.com/shop/habitica-hydration-mug-eu'},
|
||||
{key: 'stickermule', logo: true, name: 'Stickermule', link: 'https://www.stickermule.com/uk/marketplace/9317-habitica-gryphon-sticker'},
|
||||
],
|
||||
};
|
||||
},
|
||||
};
|
||||
</script>
|
||||
@@ -0,0 +1,23 @@
|
||||
<template lang='pug'>
|
||||
.static-view(v-html="html")
|
||||
</template>
|
||||
|
||||
<style lang='scss'>
|
||||
@import '~client/assets/scss/static.scss';
|
||||
</style>
|
||||
|
||||
<script>
|
||||
import axios from 'axios';
|
||||
|
||||
export default {
|
||||
data () {
|
||||
return {
|
||||
html: '',
|
||||
};
|
||||
},
|
||||
async mounted () {
|
||||
let response = await axios.get('/api/v4/news');
|
||||
this.html = response.data.html;
|
||||
},
|
||||
};
|
||||
</script>
|
||||
@@ -0,0 +1,46 @@
|
||||
<template lang="pug">
|
||||
.container-fluid.static-view
|
||||
.row
|
||||
.col-md-6.offset-3
|
||||
h1 {{ $t('overview') }}
|
||||
p {{ $t('needTips') }}
|
||||
div(v-for='step in stepsNum')
|
||||
h3 {{ $t('step'+step) }}
|
||||
p(v-markdown="$t('webStep'+step+'Text', stepVars[step])")
|
||||
hr
|
||||
p(v-markdown="$t('overviewQuestions', {faqUrl: '/static/faq/', helpGuildUrl: '/groups/guild/5481ccf3-5d2d-48a9-a871-70a7380cee5a'})")
|
||||
</template>
|
||||
|
||||
<style lang='scss'>
|
||||
@import '~client/assets/scss/static.scss';
|
||||
</style>
|
||||
|
||||
<style lang='scss' scoped>
|
||||
.container-fluid {
|
||||
margin-top: 56px;
|
||||
}
|
||||
</style>
|
||||
|
||||
<script>
|
||||
import markdownDirective from 'client/directives/markdown';
|
||||
|
||||
export default {
|
||||
directives: {
|
||||
markdown: markdownDirective,
|
||||
},
|
||||
data () {
|
||||
return {
|
||||
stepsNum: ['1', '2', '3'],
|
||||
stepVars: {
|
||||
1: {},
|
||||
2: {},
|
||||
3: {
|
||||
partyUrl: '/party',
|
||||
equipUrl: '/inventory/equipment',
|
||||
shopUrl: '/shops/market',
|
||||
},
|
||||
},
|
||||
};
|
||||
},
|
||||
};
|
||||
</script>
|
||||
@@ -0,0 +1,130 @@
|
||||
<template lang="pug">
|
||||
.container-fluid
|
||||
h1 {{ $t('presskit') }}
|
||||
p {{ $t('presskitText', { pressEnquiryEmail : PRESS_ENQUIRY_EMAIL }) }}
|
||||
p
|
||||
a.btn.btn-lg.btn-success(href='/static/presskit/presskit.zip') presskit.zip
|
||||
|
||||
div(v-for='(images, category) in imgs')
|
||||
h2 {{ $t('pk' + category) }}
|
||||
div(v-if='Array.isArray(images)')
|
||||
div(v-for='img in images')
|
||||
img.img-fluid.img-rendering-auto.press-img(:src="`/static/presskit/${category}/${img}`")
|
||||
div(v-else)
|
||||
div(v-for='(images, secondaryCategory) in images')
|
||||
h3 {{ $t('pk' + secondaryCategory) }}
|
||||
div(v-for='img in images')
|
||||
img.img-fluid.img-rendering-auto.press-img(:src="`/static/presskit/${category}/${secondaryCategory}/${img}`")
|
||||
|
||||
h1 {{ $t('FAQ') }}
|
||||
#faq(role='tablist')
|
||||
.faq-question(v-for='(QA, index) in faq')
|
||||
h2(v-b-toggle="QA.question", tabindex="0", role="button", v-html="$t(QA.question)")
|
||||
b-collapse(:id="QA.question", accordion="pkAccordian", role="tabpanel")
|
||||
p(v-html="$t(QA.answer)")
|
||||
p {{ $t('pkMoreQuestions') }}
|
||||
</template>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.faq-question {
|
||||
cursor: pointer;
|
||||
}
|
||||
</style>
|
||||
|
||||
<script>
|
||||
// @TODO: EMAILS.PRESS_ENQUIRY_EMAIL
|
||||
const PRESS_ENQUIRY_EMAIL = 'admin@habitica.com';
|
||||
|
||||
export default {
|
||||
data () {
|
||||
return {
|
||||
PRESS_ENQUIRY_EMAIL,
|
||||
imgs: {
|
||||
Promo: [
|
||||
'Promo.png',
|
||||
'Promo - Thin.png',
|
||||
],
|
||||
Logo: [
|
||||
'Icon with Text.png',
|
||||
'Icon.png',
|
||||
'Text.png',
|
||||
'Habitica Gryphon.png',
|
||||
'iOS.png',
|
||||
'Android.png',
|
||||
],
|
||||
Boss: [
|
||||
'Basi-List.png',
|
||||
'Stagnant Dishes.png',
|
||||
'SnackLess Monster.png',
|
||||
'Laundromancer.png',
|
||||
'Necro-Vice.png',
|
||||
'Battling the Ghost Stag.png',
|
||||
'Dread Drag\'on of Dilatory.png',
|
||||
],
|
||||
Samples: {
|
||||
Website: [
|
||||
'CheckInIncentives.png',
|
||||
'Inventory.png',
|
||||
'Equipment.png',
|
||||
'Market.png',
|
||||
'Market2.png',
|
||||
'Tavern.png',
|
||||
'Guilds.png',
|
||||
'Challenges.png',
|
||||
],
|
||||
iOS: [
|
||||
'Tasks Page.png',
|
||||
'Level Up.png',
|
||||
'Market.png',
|
||||
'Party.png',
|
||||
'Boss.png',
|
||||
],
|
||||
Android: [
|
||||
'Login.png',
|
||||
'User.png',
|
||||
'Tasks Page.png',
|
||||
'Add Tasks.png',
|
||||
'Stats.png',
|
||||
'Shops.png',
|
||||
'Party.png',
|
||||
],
|
||||
},
|
||||
},
|
||||
faq: [
|
||||
{
|
||||
question: 'pkQuestion1',
|
||||
answer: 'pkAnswer1',
|
||||
},
|
||||
{
|
||||
question: 'pkQuestion2',
|
||||
answer: 'pkAnswer2',
|
||||
},
|
||||
{
|
||||
question: 'pkQuestion3',
|
||||
answer: 'pkAnswer3',
|
||||
},
|
||||
{
|
||||
question: 'pkQuestion4',
|
||||
answer: 'pkAnswer4',
|
||||
},
|
||||
{
|
||||
question: 'pkQuestion5',
|
||||
answer: 'pkAnswer5',
|
||||
},
|
||||
{
|
||||
question: 'pkQuestion6',
|
||||
answer: 'pkAnswer6',
|
||||
},
|
||||
{
|
||||
question: 'pkQuestion7',
|
||||
answer: 'pkAnswer7',
|
||||
},
|
||||
{
|
||||
question: 'pkQuestion8',
|
||||
answer: 'pkAnswer8',
|
||||
},
|
||||
],
|
||||
};
|
||||
},
|
||||
};
|
||||
</script>
|
||||
@@ -0,0 +1,299 @@
|
||||
<template lang="pug">
|
||||
.container-fluid
|
||||
h1 Privacy Policy
|
||||
p.pagemeta
|
||||
| Last updated July 27, 2015
|
||||
br
|
||||
small (Corrected grammar errors and updated company name)
|
||||
br
|
||||
br
|
||||
p
|
||||
strong PLEASE READ THIS PRIVACY POLICY CAREFULLY.
|
||||
br
|
||||
| By accessing or otherwise using habitica.com or any sub domains thereto ("the Sites"),
|
||||
| or using a habitica.com or Habitica application on a mobile device ("the Applications"),
|
||||
| you agree to be bound contractually by this Privacy Policy. Individually
|
||||
| or collectively, the Applications and the Sites may be referred to as
|
||||
| the "Services."
|
||||
p
|
||||
| To review material modifications and their effective dates scroll
|
||||
| to the bottom of the page.
|
||||
p
|
||||
strong
|
||||
| 1. Privacy Statement; Collection of Personal
|
||||
| Information.
|
||||
br
|
||||
| 1.1 HabitRPG, Inc. owns and operates this business. All
|
||||
| references to "we", "us", shall be construed to mean HabitRPG, Inc..
|
||||
p
|
||||
| 1.2 We understand that visitors to this website are concerned
|
||||
| about the privacy of information. The following describes our privacy
|
||||
| policy regarding information, including personal information, that we
|
||||
| collect through this website.
|
||||
p
|
||||
strong 2. Modification of Privacy Policy.
|
||||
br
|
||||
| We reserve the right to modify this Privacy Policy at any time,
|
||||
| and without prior notice, by posting an amended Privacy Policy that is
|
||||
| always accessible by clicking on the "Privacy Policy" link on this
|
||||
| site's home page. Your continued use of this site indicates your
|
||||
| acceptance of the amended Privacy Policy. You should check the Privacy
|
||||
| Policy through this link periodically for modifications by clicking on
|
||||
| the link provided near the top of the Privacy Policy for a listing of
|
||||
| material modifications and their effective dates. Regarding personal
|
||||
| information, if any modifications are materially less restrictive on our
|
||||
| use or disclosure of the personal information previously disclosed by
|
||||
| you, we will obtain your consent before implementing such revisions with
|
||||
| respect to such information.
|
||||
p
|
||||
strong 3. Collection of Anonymous, Passive Information.
|
||||
br
|
||||
| We reserve the right to monitor your use of the services. As you
|
||||
| navigate through the services, certain anonymous information may be
|
||||
| passively collected (that is, gathered without your actively providing
|
||||
| the information) using various technologies, such as cookies, Internet
|
||||
| tags or web beacons, and navigational data collection (log files, server
|
||||
| logs, clickstream). The following is a listing and a brief explanation
|
||||
| of passive information collection methodologies which we may use from
|
||||
| time to time to better understand how the Services are being used.
|
||||
p
|
||||
| 3.1 A "cookie" is a text file that this site sends to your
|
||||
| browser in the form of a text file The information generated by the
|
||||
| cookie about your use of this site (including your IP address) will be
|
||||
| transmitted to and stored. Most browsers automatically accept cookies,
|
||||
| but they usually can be modified to decline cookies if you prefer;
|
||||
| however, certain features of this site might not work without cookies.
|
||||
p
|
||||
| 3.2 "Session" cookies are temporary bits of information that are
|
||||
| used to improve navigation, block visitors from providing information
|
||||
| where inappropriate (the Services "remembers" previous entries of age or
|
||||
| country of origin that were outside the specified parameters and blocks
|
||||
| subsequent changes), and collect aggregate statistical information on
|
||||
| the Services. They are erased once you exit your Web browser or
|
||||
| otherwise turn off your computer.
|
||||
p
|
||||
| 3.3 "Persistent" cookies are more permanent bits of information
|
||||
| that are placed on the hard drive of your computer and stay there unless
|
||||
| you delete the cookie. Persistent cookies store information on your
|
||||
| computer for a number of purposes, such as retrieving certain
|
||||
| information you have previously provided, helping to determine what
|
||||
| areas of the Services you may find most valuable, and customizing the
|
||||
| Services based on your preferences on an ongoing basis. Persistent
|
||||
| cookies placed by this site in your computer do not hold personal
|
||||
| information.
|
||||
p
|
||||
| 3.4 You can set your browser to accept all cookies, to reject all
|
||||
| cookies, or to notify you whenever a cookie is offered so that you can
|
||||
| decide each time whether to accept it. To learn more about cookies and
|
||||
| how to specify your preferences, please search for "cookie" in the
|
||||
| "Help" portion of your browser.
|
||||
p
|
||||
| 3.5 An Internet Protocol (IP) address is a number assigned to
|
||||
| your computer by your Internet service provider so you can access the
|
||||
| Internet and is generally considered to be non-personally identifiable
|
||||
| information, because in most cases an IP address is dynamic (changing
|
||||
| each time you connect to the Internet), rather than static (unique to a
|
||||
| particular user's computer). The IP address can be used to diagnose
|
||||
| problems with a server, report aggregate information, determine the
|
||||
| fastest route for your computer to use in connecting to a site, and
|
||||
| administer and improve the Services.
|
||||
p
|
||||
| 3.6 "Internet tags" (also known as Web Beacons, single-pixel
|
||||
| GIFs, clear GIFs, invisible GIFs, and 1-by-1 GIFs) are smaller than
|
||||
| cookies and tell the Web site server information such as the IP address
|
||||
| and browser type related to the visitor's computer. Tags may be placed
|
||||
| both on online advertisements that bring people to the Services and on
|
||||
| different pages of the Services. Such tags indicate how many times a
|
||||
| page is opened and which information is consulted.
|
||||
p
|
||||
| 3.7 "Navigational data" (log files, server logs, and clickstream
|
||||
| data) are used for system management, to improve the content of the
|
||||
| Services, market research purposes, and to communicate information to
|
||||
| visitors.
|
||||
p
|
||||
strong 4. Use and Sharing of Anonymous, Passive Information.
|
||||
br
|
||||
| The Services may make full use of passively collected anonymous
|
||||
| information, including without limitation the right to use such
|
||||
| information to provide better service to Service users, customize the
|
||||
| Services based on your preferences, compile and analyze statistics and
|
||||
| trends, and otherwise administer and improve the Services for your use. We
|
||||
| reserve the right to share this anonymous, passive information in
|
||||
| aggregated form.
|
||||
p
|
||||
strong 5. 3rd Party Behavioral Ads; Google's AdSense Network.
|
||||
br
|
||||
| 5.1 We reserve the right to use anonymous, passive information
|
||||
| about your visits to this and other websites (not including your name,
|
||||
| address, email address or telephone number) for purposes of serving our
|
||||
| ads and third party ads that are targeted to your interests ("3rd Party
|
||||
| Behavioral Ads"). We reserve the right to share anonymous, passive
|
||||
| information collected on the services with third parties for purposes of
|
||||
| serving 3rd Party Behavioral Ads. These 3rd Party Behavioral Ads do not
|
||||
| identify you personally. Instead, they associate your behavioral data on
|
||||
| visited sites with your browser, so that the ads your computer sees on
|
||||
| this site are more likely to be relevant to your interests. 3rd Party
|
||||
| Behavioral Ads require that that you be served with a cookie containing
|
||||
| a tracking code. You may refuse the use of cookies by selecting the
|
||||
| appropriate settings on your browser; however, please note that if you
|
||||
| do this you may not be able to use the full functionality of this site.
|
||||
p
|
||||
| 5.2 We reserve the right to participate in Google's AdSense
|
||||
| network for purposes of serving 3rd Party Behavioral Ads. Google uses
|
||||
| DoubleClick's DART cookie for serving 3rd Party Behavioral Ads over the
|
||||
| AdSense network. You may opt out of the use of the DART cookie. For
|
||||
| information regarding how to opt out, go to
|
||||
| http://www.google.com/privacy_ads.html.
|
||||
p
|
||||
strong 6. Use of 3rd Party Analytics.
|
||||
br
|
||||
| We reserve the right to use analytics services provided by
|
||||
| third parties. These services use 3rd party cookies to collect
|
||||
| anonymous, passive information about your use of this site (see
|
||||
| explanation of cookies in Collection of Anonymous, Passive Information
|
||||
| above). We use this information for the purpose of evaluating your use
|
||||
| of the Services, compiling reports on activity, and providing other
|
||||
| services. These web analytics services may also transfer this
|
||||
| information to third parties where required to do so by law, or where
|
||||
| such third parties process the information on the service's behalf.
|
||||
p
|
||||
strong 7. Collection of Personal Information; Categories.
|
||||
br
|
||||
| We will ask you for personal information when you sign up for any
|
||||
| specific benefit or purpose that requires registration. Personal
|
||||
| information that we collect may vary with each registration, and it may
|
||||
| include one or more of the following categories: name, physical
|
||||
| address, an email address, phone number, and credit card information
|
||||
| including credit card number, expiration date, and billing address,
|
||||
| emergency contact information, current medications, allergies, medical
|
||||
| insurance information.
|
||||
p
|
||||
strong
|
||||
| 8. Use And Sharing of Personal Information: General
|
||||
| Policy And Exceptions.
|
||||
br
|
||||
| Our general policy is that we will use your personal information,
|
||||
| including combining your personal information with passive information
|
||||
| collected from this site, only for: the performance of the services or
|
||||
| transaction for which it was given, our private, internal reporting for
|
||||
| this site, and security assessments for this site, and we will not
|
||||
| share, sell, or rent your personal information to others. The only
|
||||
| exceptions to this general policy: (i) are described in the subsections
|
||||
| below, and (ii) if you explicitly approve through our site.
|
||||
p
|
||||
| 8.1 Affiliates And Service Providers. We reserve the right to
|
||||
| provide such information to our affiliates or subsidiaries, or trusted
|
||||
| service providers for the purpose of hosting our servers or processing
|
||||
| or archiving personal information for us. We require that these parties
|
||||
| agree to privacy and security safeguards for this information that are
|
||||
| consistent with this Privacy Policy.
|
||||
p
|
||||
| 8.2 Acquisition; Bankruptcy. In the event that we are acquired by
|
||||
| or merged with a third party entity, we reserve the right to transfer
|
||||
| such information as part of such merger, acquisition, sale, or other
|
||||
| change of control. In the unlikely event of our bankruptcy, insolvency,
|
||||
| reorganization, receivership, or assignment for the benefit of
|
||||
| creditors, or the application of laws or equitable principles affecting
|
||||
| creditors' rights generally, we reserve the right to transfer such
|
||||
| information to protect our rights or as required by law.
|
||||
p
|
||||
| 8.3 Enforcement; Legal Process. We reserve the right to transfer
|
||||
| such information if we have a good faith belief that access, use,
|
||||
| preservation or disclosure of such information is reasonably necessary
|
||||
| (i) to satisfy any applicable law, regulation, legal process or
|
||||
| enforceable governmental request, or (ii) to investigate or enforce
|
||||
| violations of our rights or the security of this site.
|
||||
p
|
||||
| 8.4 Miscellaneous. We reserve the right to share personal
|
||||
| information with the following additional parties: online organizers
|
||||
| using our tools and resellers of our products and services from whose
|
||||
| site the sale originated (even though the sale originates at site of the
|
||||
| reseller, registration and collection of personal information occurs at
|
||||
| this site).
|
||||
p
|
||||
strong
|
||||
| 9. Onward Transfer of Personal Information Outside Your
|
||||
| Country of Residence.
|
||||
br
|
||||
| Any personal information which we may collect on this site will
|
||||
| be stored and processed in our servers located only in the United
|
||||
| States. By using this site, if you reside outside the United States, you
|
||||
| consent to the transfer of personal information outside your country of
|
||||
| residence to the United States.
|
||||
p
|
||||
strong 10. Security of Personal Information.
|
||||
br
|
||||
| We follow reasonable and appropriate industry standards to
|
||||
| protect your personal information and data. Unfortunately, no data
|
||||
| transmission over the Internet or method of data storage can be
|
||||
| guaranteed 100% secure. Therefore, while we strive to protect your
|
||||
| personal information by following generally accepted industry standards,
|
||||
| we cannot ensure or warrant the absolute security of any information you
|
||||
| transmit to us or archive at this site.
|
||||
p
|
||||
strong 11. Changing And Updating Personal Information.
|
||||
br
|
||||
| Upon request, we will permit you to request or make changes or
|
||||
| updates to your personal information for legitimate purposes. We request
|
||||
| identification prior to approving such requests. We reserve the right to
|
||||
| decline any requests that are unreasonably repetitive or systematic,
|
||||
| require unreasonable time or effort of our technical or administrative
|
||||
| personnel, or undermine the privacy rights of others. We reserve the
|
||||
| right to permit you to access your personal information in any account
|
||||
| you establish with this site for purposes of making your own changes or
|
||||
| updates, and in such case, instructions for making such changes or
|
||||
| updates will be provided where necessary.
|
||||
p
|
||||
strong 12. Email From This Site; Opt-Out Rights.
|
||||
br
|
||||
| If you supply us with your e-mail address you may receive
|
||||
| periodic messages from us with information specific to the Services and
|
||||
| required for the normal functioning of the Services as well as for new
|
||||
| products or services or upcoming events. If you prefer not to receive
|
||||
| periodic email messages, you may opt-out by following the instructions
|
||||
| on the email.
|
||||
p
|
||||
strong 13. Children's Online Policy.
|
||||
br
|
||||
| We are committed to preserving online privacy for all of our
|
||||
| website visitors, including children. This site is a general audience
|
||||
| site. Consistent with the Children's Online Privacy Protection Act
|
||||
| (COPPA), we will not knowingly collect any information from, or sell to,
|
||||
| children under the age of 13. If you are a parent or guardian who has
|
||||
| discovered that your child under the age of 13 has submitted his or her
|
||||
| personally identifiable information without your permission or consent,
|
||||
| we will remove the information from our active list, at your request. To
|
||||
| request the removal of your child's information, please email us at
|
||||
| <a href='mailto:admin@habitica.com' target='_blank'>admin@habitica.com</a> and be sure to include in
|
||||
| your message the same login information that your child submitted.
|
||||
p
|
||||
strong
|
||||
| 14. Email And Other Messages Through This Site; ECPA
|
||||
| Notice.
|
||||
br
|
||||
| This site treats email messages and other electronic messages
|
||||
| that are sent through this site and not viewable by others as
|
||||
| confidential and private, except as required by law, including without
|
||||
| limitation, the Electronic Communications Privacy Act of 1986, 18 U.S.C.
|
||||
| Sections 2701-2711 (the "ECPA"). The ECPA permits this site's limited
|
||||
| ability to intercept and/or disclose electronic messages, for example
|
||||
| (i) as necessary to operate our system or to protect our rights or
|
||||
| property, (ii) upon legal demand (court orders, warrants, subpoenas), or
|
||||
| (iii) where we receive information inadvertently which appears to
|
||||
| pertain to the commission of a crime. This site is not considered a
|
||||
| "secure communications medium" under the ECPA.
|
||||
p
|
||||
strong 15. Contact Us.
|
||||
br
|
||||
| If you have any questions regarding this Privacy Policy, please
|
||||
| contact the owner and operator of this website business:
|
||||
address
|
||||
strong HabitRPG, Inc.
|
||||
br
|
||||
| 11870 Santa Monica Blvd., Suite 106-577
|
||||
br
|
||||
| Los Angeles, CA 90025
|
||||
br
|
||||
| Email:
|
||||
a(href='mailto:admin@habitica.com') admin@habitica.com
|
||||
</template>
|
||||
@@ -0,0 +1,178 @@
|
||||
<template lang="pug">
|
||||
div
|
||||
static-header(v-if='showContentWrap', :class='{"home-header": ["home", "front"].indexOf($route.name) !== -1, "white-header": this.$route.name === "plans"}')
|
||||
|
||||
.static-wrapper
|
||||
router-view
|
||||
|
||||
div(:id='footerId', v-if='showContentWrap')
|
||||
app-footer
|
||||
|
||||
#bottom-wrap.purple-4(v-if='showContentWrap && footerId')
|
||||
#bottom-background
|
||||
.seamless_mountains_demo_repeat
|
||||
.midground_foreground_extended2
|
||||
</template>
|
||||
|
||||
<style lang="scss">
|
||||
@import '~client/assets/scss/colors.scss';
|
||||
|
||||
.home-header {
|
||||
background: #6133b4 !important;
|
||||
position: static;
|
||||
box-shadow: none !important;
|
||||
height: 100px !important;
|
||||
padding-left: 5em !important;
|
||||
padding-right: 5em !important;
|
||||
|
||||
.logo.svg-icon {
|
||||
width: 200px !important;
|
||||
}
|
||||
|
||||
.nav-item a {
|
||||
font-size: 14px !important;
|
||||
color: #d5c8ff !important;
|
||||
padding-top: 2.8em !important;
|
||||
}
|
||||
|
||||
.nav-item a:hover {
|
||||
background: transparent !important;
|
||||
color: #fff !important;
|
||||
}
|
||||
|
||||
.nav-item .nav-link {
|
||||
transition: color .5s ease;
|
||||
}
|
||||
|
||||
.login-button {
|
||||
padding-right: 1em;
|
||||
margin-top: 1.8em !important;
|
||||
border-radius: 2px;
|
||||
background-color: #9a62ff;
|
||||
}
|
||||
|
||||
.login-button:hover {
|
||||
background-color: #b288ff;
|
||||
box-shadow: 0 4px 4px 0 rgba(26, 24, 29, 0.16), 0 1px 8px 0 rgba(26, 24, 29, 0.12) !important;
|
||||
}
|
||||
}
|
||||
|
||||
.white-header {
|
||||
background: #fff !important;
|
||||
background-color: #fff !important;
|
||||
|
||||
a {
|
||||
color: #271b3d !important;
|
||||
}
|
||||
|
||||
a:hover {
|
||||
color: #fff !important;
|
||||
}
|
||||
}
|
||||
|
||||
#bottom-wrap.purple-4 {
|
||||
background-color: #271b3d;
|
||||
}
|
||||
|
||||
#purple-footer {
|
||||
background-color: #271b3d;
|
||||
|
||||
.row {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
footer, footer a {
|
||||
background: transparent;
|
||||
color: #d5c8ff;
|
||||
}
|
||||
|
||||
.logo {
|
||||
color: #bda8ff;
|
||||
}
|
||||
|
||||
.social-circle, .btn-contribute {
|
||||
background: #36205d;
|
||||
color: #bda8ff;
|
||||
|
||||
.svg-icon {
|
||||
color: #bda8ff;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#bottom-wrap {
|
||||
padding-top: 10em;
|
||||
}
|
||||
|
||||
#bottom-background {
|
||||
position: relative;
|
||||
|
||||
.seamless_mountains_demo_repeat {
|
||||
background-image: url('~assets/images/auth/seamless_mountains_demo.png');
|
||||
background-repeat: repeat-x;
|
||||
width: 100%;
|
||||
height: 300px;
|
||||
position: absolute;
|
||||
z-index: 0;
|
||||
bottom: 0;
|
||||
}
|
||||
|
||||
.midground_foreground_extended2 {
|
||||
background-image: url('~assets/images/auth/midground_foreground_extended2.png');
|
||||
position: relative;
|
||||
width: 1500px;
|
||||
max-width: 100%;
|
||||
height: 150px;
|
||||
margin: 0 auto;
|
||||
}
|
||||
}
|
||||
|
||||
.static-wrapper {
|
||||
.container-fluid {
|
||||
margin: 5em 2em 2em 2em;
|
||||
width: auto;
|
||||
}
|
||||
|
||||
h1, h2 {
|
||||
margin-top: 0.5em;
|
||||
color: $purple-200;
|
||||
}
|
||||
|
||||
h3, h4 {
|
||||
color: $purple-200;
|
||||
}
|
||||
|
||||
li, p {
|
||||
font-size: 16px;
|
||||
}
|
||||
|
||||
.media img {
|
||||
margin: 1em;
|
||||
}
|
||||
|
||||
.strong {
|
||||
font-weight: bold;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
<script>
|
||||
import AppFooter from 'client/components/appFooter';
|
||||
import StaticHeader from './header.vue';
|
||||
|
||||
export default {
|
||||
components: {
|
||||
AppFooter,
|
||||
StaticHeader,
|
||||
},
|
||||
computed: {
|
||||
showContentWrap () {
|
||||
return this.$route.name !== 'news';
|
||||
},
|
||||
footerId () {
|
||||
if (this.$route.name === 'plans') return;
|
||||
return 'purple-footer';
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
||||
@@ -0,0 +1,568 @@
|
||||
<template lang="pug">
|
||||
.container-fluid
|
||||
h1 Terms of Use
|
||||
p.pagemeta
|
||||
| Last updated July 27, 2015
|
||||
br
|
||||
small (Corrected minimum age requirement to under 13 years of age per COPPA)
|
||||
br
|
||||
br
|
||||
p
|
||||
| HabitRPG (or "we") provides services through our
|
||||
| software applications for various devices and platforms ("HabitRPG
|
||||
| Applications") and the HabitRPG.com domain, and any sub domains thereto
|
||||
| (the "Sites"). Individually or collectively, HabitRPG Applications and
|
||||
| Sites may be referred to as the "Services".
|
||||
p
|
||||
| Please read the following terms and conditions ("Terms of
|
||||
| Service") carefully. These Terms of Service govern your access to and
|
||||
| use of the Services and HabitRPG Content (defined below) and set forth
|
||||
| the legally binding terms for your use of the Services and HabitRPG
|
||||
| Content, whether or not you have registered as a Member.
|
||||
p
|
||||
| Certain areas of the Services (and your access to or use of
|
||||
| HabitRPG Content) may have different terms and conditions posted or may
|
||||
| require you to agree with and accept additional terms and conditions. If
|
||||
| there is a conflict between these Terms of Service and terms and
|
||||
| conditions posted for a specific area of the Services or HabitRPG
|
||||
| Content, the latter terms and conditions will take precedence with
|
||||
| respect to your use of or access to that area of the Services or HabitRPG
|
||||
| Content.
|
||||
p
|
||||
| YOU ACKNOWLEDGE AND AGREE THAT, BY CLICKING ON THE "I AGREE" OR
|
||||
| "I ACCEPT" BUTTON, OR BY ACCESSING OR USING THE SERVICES OR BY
|
||||
| DOWNLOADING OR POSTING ANY CONTENT FROM OR ON THE SITES OR THROUGH THE
|
||||
| SERVICES, YOU ARE INDICATING THAT YOU HAVE READ, UNDERSTAND AND AGREE TO
|
||||
| BE BOUND BY THESE TERMS, WHETHER OR NOT YOU HAVE REGISTERED AS A MEMBER,
|
||||
| AND AGREE TO OUR PRIVACY POLICY AS DESCRIBED BELOW. IF YOU DO NOT AGREE
|
||||
| TO THESE TERMS, THEN YOU HAVE NO RIGHT TO ACCESS OR USE THE SERVICES OR
|
||||
| HABITRPG CONTENT.
|
||||
p
|
||||
strong Modification
|
||||
br
|
||||
| HabitRPG reserves the right, at its sole discretion, to modify,
|
||||
| discontinue or terminate the Services, including any portion thereof on
|
||||
| a global or individual basis, or to modify these Terms of Service, at
|
||||
| any time and without prior notice. If we modify these Terms of Service,
|
||||
| we will update the "Last Updated Date" above and post the modification
|
||||
| on the Sites and perhaps elsewhere within the Services. By continuing to
|
||||
| access or use the Services after we have posted a modification to these
|
||||
| Terms of Service or have provided you with notice of a modification, you
|
||||
| are indicating that you agree to be bound by the modified Terms of
|
||||
| Service. If the modified Terms of Service are not acceptable to you,
|
||||
| your only recourse is to cease using the Services.
|
||||
p
|
||||
strong Eligibility and HabitRPG Account Registration
|
||||
br
|
||||
| In order to access certain features of the Sites and Services, and to
|
||||
| post any Public User Content (defined below) on the Sites or through the
|
||||
| Services, you must register to create an account ("HabitRPG Account") and
|
||||
| become a "Member". In compliance with privacy laws, we do not allow
|
||||
| people below the age of 13 to create accounts; please see our Privacy
|
||||
| Policy for further information. During the registration process, you
|
||||
| will be required to provide certain information and you will establish a
|
||||
| username and a password. You agree to provide accurate, current and
|
||||
| complete information during the registration process and to update such
|
||||
| information to keep it accurate, current and complete. HabitRPG reserves
|
||||
| the right to suspend or terminate your HabitRPG Account if any
|
||||
| information provided during the registration process or thereafter
|
||||
| proves to be inaccurate, not current or incomplete. If you are not a
|
||||
| Member you may browse all areas of the Sites or use the parts of the
|
||||
| Services that are not limited to Members only. You are responsible for
|
||||
| safeguarding your password. You agree not to disclose your password to
|
||||
| any third party and to take sole responsibility for any activities or
|
||||
| actions under your HabitRPG Account, whether or not you have authorized
|
||||
| such activities or actions. You agree to immediately notify HabitRPG of
|
||||
| any unauthorized use of your HabitRPG Account. We are not liable for any
|
||||
| damages or losses caused by someone using your account without your
|
||||
| permission.
|
||||
p
|
||||
strong Privacy
|
||||
br
|
||||
| See <a href='/static/privacy'>HabitRPG's Privacy Policy</a> for
|
||||
| information and notices concerning HabitRPG's collection and use of your
|
||||
| personal information. If you have any questions about the HabitRPG
|
||||
| Privacy Policy, please contact HabitRPG at privacy AT HabitRPG.com. By
|
||||
| accessing the Services you are agreeing to the terms of our Privacy
|
||||
| Policy.
|
||||
p
|
||||
strong Content
|
||||
br
|
||||
| Certain types of content are made available through the Services.
|
||||
| "HabitRPG Content" means, collectively, the text, data, graphics, images,
|
||||
| illustrations, forms and look and feel attributes, HabitRPG trademarks
|
||||
| and logos and other content made available through the Services,
|
||||
| including any technology or code making up the Services, excluding User
|
||||
| Content. "Public User Content" means the text, data, graphics, images, photos,
|
||||
| video or audiovisual content, hypertext links and any other content uploaded,
|
||||
| transmitted or submitted by a Member via the Services with the intent to share
|
||||
| with other users. "Private User Content" means data created through the services
|
||||
| exclusively for personal use or private sharing.
|
||||
| This includes tasks and related data created in HabitRPG Tasks that have not
|
||||
| been explicitly shared publicly.
|
||||
| You understand that by using any of the Services, you may encounter content
|
||||
| that may be deemed offensive, indecent, or objectionable, which content
|
||||
| may or may not be identified as having explicit language, and that the
|
||||
| results of any search or entering of a particular URL may automatically
|
||||
| and unintentionally generate links or references to objectionable
|
||||
| material. Nevertheless, you agree to use the Services at your sole risk
|
||||
| and that we shall not have any liability to you for content that may be
|
||||
| found to be offensive, indecent, or objectionable.
|
||||
p
|
||||
strong Ownership
|
||||
br
|
||||
| The Services and HabitRPG Content are protected by copyright, trademark,
|
||||
| and other laws of the United States and foreign countries. Except as
|
||||
| expressly provided in these Terms of Service, HabitRPG and its licensors
|
||||
| exclusively own all right, title and interest in and to the Services and
|
||||
| HabitRPG Content, including all associated intellectual property rights.
|
||||
| You will not remove, alter or obscure any copyright, trademark, service
|
||||
| mark or other proprietary rights notices incorporated in or accompanying
|
||||
| the Services or HabitRPG Content.
|
||||
p
|
||||
strong HabitRPG License
|
||||
br
|
||||
| Subject to your compliance with the terms and conditions of these Terms
|
||||
| of Service, HabitRPG grants you a limited, non-exclusive,
|
||||
| non-transferable license, without the right to sublicense, to access,
|
||||
| use, view, download and print, where applicable, the Services and any
|
||||
| HabitRPG Content solely for your personal and non-commercial purposes.
|
||||
| You will not use, copy, adapt, modify, prepare derivative works based
|
||||
| upon, distribute, license, sell, transfer, publicly display, publicly
|
||||
| perform, transmit, stream, broadcast or otherwise exploit the Services
|
||||
| or HabitRPG Content, except as expressly permitted in these Terms of
|
||||
| Service. No licenses or rights are granted to you by implication or
|
||||
| otherwise under any intellectual property rights owned or controlled by
|
||||
| HabitRPG or its licensors, except for the licenses and rights expressly
|
||||
| granted in these Terms of Service. With respect to HabitRPG Applications,
|
||||
| your license is limited to use of such applications on platforms and
|
||||
| devices that you own or control, and you may not distribute or make the
|
||||
| HabitRPG Applications available over a network where it could be used by
|
||||
| multiple devices at the same time.
|
||||
p
|
||||
strong Public User Content
|
||||
br
|
||||
| By making available any Public User Content through the Services, you hereby
|
||||
| grant to HabitRPG a worldwide, irrevocable, perpetual, non-exclusive,
|
||||
| transferable, royalty-free license, with the right to sublicense, to
|
||||
| use, copy, adapt, modify, distribute, license, sell, transfer, publicly
|
||||
| display, publicly perform, transmit, stream, broadcast and otherwise
|
||||
| exploit such Public User Content only on, through or by means of the Services.
|
||||
| HabitRPG does not claim any ownership rights in any such Public User Content and
|
||||
| nothing in these Terms of Service will be deemed to restrict any rights
|
||||
| that you may have to use and exploit any such Public User Content.
|
||||
p
|
||||
| You acknowledge and agree that you are solely responsible for all
|
||||
| Public User Content that you make available through the Services. Accordingly,
|
||||
| you represent and warrant that: (i) you either are the sole and
|
||||
| exclusive owner of all Public User Content that you make available through the
|
||||
| Services or you have all rights, licenses, consents and releases that
|
||||
| are necessary to grant to HabitRPG the rights in such Public User Content, as
|
||||
| contemplated under these Terms of Service; and (ii) neither the User
|
||||
| Content nor your posting, uploading, publication, submission or
|
||||
| transmittal of the Public User Content or HabitRPG's use of the Public User Content (or
|
||||
| any portion thereof) on, through or by means of the Services will
|
||||
| infringe, misappropriate or violate a third party's patent, copyright,
|
||||
| trademark, trade secret, moral rights or other intellectual property
|
||||
| rights, or rights of publicity or privacy, or result in the violation of
|
||||
| any applicable law or regulation.
|
||||
p
|
||||
| Copyrighted Materials: No Infringing Use. You will not use the
|
||||
| Services to offer, display, distribute, transmit, route, provide
|
||||
| connections to or store any material that infringes copyrighted works or
|
||||
| otherwise violates or promotes the violation of the intellectual
|
||||
| property rights of any third party. HabitRPG has adopted and implemented
|
||||
| a policy that provides for the termination in appropriate circumstances
|
||||
| of the accounts of users who repeatedly infringe or are believed to be
|
||||
| or are charged with repeatedly infringing the rights of copyright
|
||||
| holders.
|
||||
p
|
||||
strong Notify Us of Infringers
|
||||
br
|
||||
| If you believe that something on the Services violates your copyright,
|
||||
| notify our copyright agent in writing. The contact information for our
|
||||
| copyright agent is at the bottom of this section.
|
||||
p
|
||||
| In order for us to take action, you must do the following in your
|
||||
| notice:
|
||||
p
|
||||
| (1) provide your physical or electronic signature; (2) identify
|
||||
| the copyrighted work that you believe is being infringed; (3) identify
|
||||
| the item on the Services that you think is infringing your work and
|
||||
| include sufficient information about where the material is located on
|
||||
| the Services (including which website and URL) so that we can find it;
|
||||
| (4) provide us with a way to contact you, such as your address,
|
||||
| telephone number, or e-mail; (5) provide a statement that you believe in
|
||||
| good faith that the item you have identified as infringing is not
|
||||
| authorized by the copyright owner, its agent, or the law to be used on
|
||||
| the Services; and (6) provide a statement that the information you
|
||||
| provide in your notice is accurate, and that (under penalty of perjury),
|
||||
| you are authorized to act on behalf of the copyright owner whose work is
|
||||
| being infringed.
|
||||
p
|
||||
| Here is the contact information for our copyright agent:
|
||||
p
|
||||
| Copyright Enforcement
|
||||
br
|
||||
| HabitRPG, Inc.
|
||||
br
|
||||
| 11870 Santa Monica Blvd., Suite 106-577
|
||||
br
|
||||
| Los Angeles, CA 90025
|
||||
br
|
||||
| E-Mail: <a href='mailto:admin@habitica.com'>admin@habitica.com</a>
|
||||
p
|
||||
| Again, we cannot take action unless you give us all the required
|
||||
| information.
|
||||
p
|
||||
strong Ratings and Comments & Feedback.
|
||||
br
|
||||
| You can rate and make comments about content made available through the
|
||||
| Services ("Comments"). HabitRPG advises you to exercise caution and good
|
||||
| judgment when leaving such Comments. Once you complete and submit your
|
||||
| Comments to the Services you will not be able to go back and edit your
|
||||
| Comments. You should also be aware that you could be held legally
|
||||
| responsible for damages to someone's reputation if your Comments are
|
||||
| deemed to be defamatory. Without limiting any other terms of this Terms
|
||||
| of Service, HabitRPG may, but is under no obligation to, monitor or
|
||||
| censor Comments and disclaims any and all liability relating thereto.
|
||||
| Notwithstanding the foregoing, HabitRPG does reserve the right, in its
|
||||
| sole discretion, to remove any Comments that it deems to be improper,
|
||||
| inappropriate or inconsistent with the online activities that are
|
||||
| permitted under these Terms of Service. We welcome and encourage you to
|
||||
| provide feedback, comments and suggestions for improvements to the
|
||||
| Services ("Feedback"). You may submit Feedback by emailing us at support
|
||||
| AT HabitRPG.com. You acknowledge and agree that all Comments and Feedback
|
||||
| will be the sole and exclusive property of HabitRPG and you hereby
|
||||
| irrevocably assign to HabitRPG and agree to irrevocably assign to HabitRPG
|
||||
| all of your right, title, and interest in and to all Comments and
|
||||
| Feedback, including without limitation all worldwide patent rights,
|
||||
| copyright rights, trade secret rights, and other proprietary or
|
||||
| intellectual property rights therein. At HabitRPG's request and expense,
|
||||
| you will execute documents and take such further acts as HabitRPG may
|
||||
| reasonably request to assist HabitRPG to acquire, perfect, and maintain
|
||||
| its intellectual property rights and other legal protections for the
|
||||
| Comments and Feedback.
|
||||
p
|
||||
strong Interactions between Users
|
||||
br
|
||||
| You are solely responsible for your interactions (including any
|
||||
| disputes) with other users. You understand that HabitRPG does not in any
|
||||
| way screen HabitRPG users, except to only allow people aged 13 and over
|
||||
| to create accounts. You are solely responsible for, and will exercise
|
||||
| caution, discretion, common sense and judgment in, using the Services
|
||||
| and disclosing personal information to other HabitRPG users. You agree to
|
||||
| take reasonable precautions in all interactions with other HabitRPG
|
||||
| users, particularly if you decide to meet a HabitRPG user offline, or in
|
||||
| person. Your use of the Services, HabitRPG Content and any other content
|
||||
| made available through the Services is at your sole risk and discretion
|
||||
| and HabitRPG hereby disclaims any and all liability to you or any third
|
||||
| party relating thereto. HabitRPG reserves the right to contact Members,
|
||||
| in compliance with applicable law, in order to evaluate compliance with
|
||||
| the rules and policies in these Terms of Service. You will cooperate
|
||||
| fully with HabitRPG to investigate any suspected unlawful, fraudulent or
|
||||
| improper activity, including, without limitation, granting authorized
|
||||
| HabitRPG representatives access to any password-protected portions of
|
||||
| your HabitRPG Account.
|
||||
p
|
||||
strong General Prohibitions
|
||||
br
|
||||
| You agree not to do any of the following while using the Services or
|
||||
| HabitRPG Content:
|
||||
br
|
||||
ul
|
||||
li
|
||||
| Post, upload, publish, submit or transmit any text, graphics,
|
||||
| images, software, music, audio, video, information or other material
|
||||
| that: (i) infringes, misappropriates or violates a third party's
|
||||
| patent, copyright, trademark, trade secret, moral rights or other
|
||||
| intellectual property rights, or rights of publicity or privacy; (ii)
|
||||
| violates, or encourages any conduct that would violate, any applicable
|
||||
| law or regulation or would give rise to civil liability; (iii) is
|
||||
| fraudulent, false, misleading or deceptive; (iv) is defamatory,
|
||||
| obscene, pornographic, vulgar or offensive; (v) promotes
|
||||
| discrimination, bigotry, racism, hatred, harassment or harm against any
|
||||
| individual or group; (vi) is violent or threatening or promotes
|
||||
| violence or actions that are threatening to any other person; or (vii)
|
||||
| promotes illegal or harmful activities or substances (including but not
|
||||
| limited to activities that promote or provide instructional information
|
||||
| regarding the manufacture or purchase of illegal weapons or illegal
|
||||
| substances).
|
||||
li
|
||||
| Use, display, mirror, frame or utilize framing techniques to
|
||||
| enclose the Services, or any individual element or materials within the
|
||||
| Services, HabitRPG's name, any HabitRPG trademark, logo or other
|
||||
| proprietary information, the content of any text or the layout and
|
||||
| design of any page or form contained on a page, without HabitRPG's
|
||||
| express written consent;
|
||||
li
|
||||
| Access, tamper with, or use non-public areas of the Services,
|
||||
| HabitRPG's computer systems, or the technical delivery systems of
|
||||
| HabitRPG's providers;
|
||||
li
|
||||
| Attempt to probe, scan, or test the vulnerability of any
|
||||
| HabitRPG system or network or breach any security or authentication
|
||||
| measures;
|
||||
li
|
||||
| Avoid, bypass, remove, deactivate, impair, descramble or
|
||||
| otherwise circumvent any technological measure implemented by HabitRPG
|
||||
| or any of HabitRPG's providers or any other third party (including
|
||||
| another user) to protect the Services or HabitRPG Content;
|
||||
li
|
||||
| Attempt to access or search the Services or HabitRPG Content or
|
||||
| download HabitRPG Content from the Services through the use of any
|
||||
| engine, software, tool, agent, device or mechanism (including spiders,
|
||||
| robots, crawlers, data mining tools or the like) other than the
|
||||
| software and/or search agents provided by HabitRPG or other generally
|
||||
| available third party web browsers (such as Google Chrome, Microsoft
|
||||
| Internet Explorer, Mozilla Firefox, Safari or Opera);
|
||||
li
|
||||
| Send any unsolicited or unauthorized advertising, promotional
|
||||
| materials, email, junk mail, spam, chain letters or other form of
|
||||
| solicitation;
|
||||
li
|
||||
| Use any meta tags or other hidden text or metadata utilizing a
|
||||
| HabitRPG trademark, logo URL or product name without HabitRPG's express
|
||||
| written consent;
|
||||
li
|
||||
| Use the Services or HabitRPG Content for any commercial purpose
|
||||
| or the benefit of any third party or in any manner not permitted by
|
||||
| these Terms of Service;
|
||||
li
|
||||
| Forge any TCP/IP packet header or any part of the header
|
||||
| information in any email or newsgroup posting, or in any way use the
|
||||
| Services or HabitRPG Content to send altered, deceptive or false
|
||||
| source-identifying information;
|
||||
li
|
||||
| Attempt to decipher, decompile, disassemble or reverse
|
||||
| engineer any of the software used to provide the Services or HabitRPG
|
||||
| Content;
|
||||
li
|
||||
| Interfere with, or attempt to interfere with, the access of
|
||||
| any user, host or network, including, without limitation, sending a
|
||||
| virus, overloading, flooding, spamming, or mail-bombing the Services;
|
||||
li
|
||||
| Collect or store any personally identifiable information from
|
||||
| the Services from other users of the Services without their express
|
||||
| permission;
|
||||
li
|
||||
| Impersonate or misrepresent your affiliation with any person
|
||||
| or entity; Violate any applicable law or regulation; or
|
||||
li
|
||||
| Encourage or enable any other individual to do any of the
|
||||
| foregoing.
|
||||
p
|
||||
| HabitRPG will have the right to investigate and prosecute
|
||||
| violations of any of the above, including intellectual property rights
|
||||
| infringement and Services security issues, to the fullest extent of the
|
||||
| law. HabitRPG may involve and cooperate with law enforcement authorities
|
||||
| in prosecuting users who violate these Terms of Service. You acknowledge
|
||||
| that HabitRPG has no obligation to monitor your access to or use of the
|
||||
| Services or HabitRPG Content or to review or edit any Public User Content, but
|
||||
| has the right to do so for the purpose of operating the Services, to
|
||||
| ensure your compliance with these Terms of Service, or to comply with
|
||||
| applicable law or the order or requirement of a court, administrative
|
||||
| agency or other governmental body. HabitRPG reserves the right, at any
|
||||
| time and without prior notice, to remove or disable access to any
|
||||
| HabitRPG Content, including, any Public User Content, that HabitRPG, in its sole
|
||||
| discretion, considers to be in violation of these Terms of Service or
|
||||
| otherwise harmful to the Services.
|
||||
p
|
||||
strong Links
|
||||
br
|
||||
| The Services may contain links to third-party websites or resources. You
|
||||
| acknowledge and agree that HabitRPG is not responsible or liable for: (i)
|
||||
| the availability or accuracy of such websites or resources; or (ii) the
|
||||
| content, products, or services on or available from such websites or
|
||||
| resources. Links to such websites or resources do not imply any
|
||||
| endorsement by HabitRPG of such websites or resources or the content,
|
||||
| products, or services available from such websites or resources. You
|
||||
| acknowledge sole responsibility for and assume all risk arising from
|
||||
| your use of any such websites or resources.
|
||||
p
|
||||
strong Termination and HabitRPG Account; Cancellation
|
||||
br
|
||||
| Without limiting other remedies, HabitRPG may at any time suspend or
|
||||
| terminate your HabitRPG Account and refuse to provide access to the
|
||||
| Services. In addition, HabitRPG may notify authorities or take any
|
||||
| actions it deems appropriate, without notice to you, if HabitRPG suspects
|
||||
| or determines, in its own discretion, that you may have or there is a
|
||||
| significant risk that you have (i) failed to comply with any provision
|
||||
| of these Terms of Service or any policies or rules established by
|
||||
| HabitRPG; or (ii) engaged in actions relating to or in the course of
|
||||
| using the Services that may be illegal or cause liability, harm,
|
||||
| embarrassment, harassment, abuse or disruption for you, HabitRPG Users,
|
||||
| HabitRPG or any other third parties or the Services.
|
||||
p
|
||||
| You may terminate your HabitRPG Account at any time and for any
|
||||
| reason by sending email to support AT HabitRPG.com. Upon any termination
|
||||
| by a Member, the related account will no longer be accessible.
|
||||
p
|
||||
| After any termination, you understand and acknowledge that we
|
||||
| will have no further obligation to provide the Services and all licenses
|
||||
| and other rights granted to you by these Terms of Service will
|
||||
| immediately cease. HabitRPG will not be liable to you or any third party
|
||||
| for termination of the Services or termination of your use of either.
|
||||
| UPON ANY TERMINATION OR SUSPENSION, ANY CONTENT, MATERIALS OR
|
||||
| INFORMATION (INCLUDING PUBLIC USER CONTENT) THAT YOU HAVE SUBMITTED ON THE
|
||||
| SERVICES OR THAT WHICH IS RELATED TO YOUR ACCOUNT MAY NO LONGER BE
|
||||
| ACCESSED BY YOU. Furthermore, HabitRPG will have no obligation to
|
||||
| maintain any information stored in our database related to your account
|
||||
| or to forward any information to you or any third party.
|
||||
p
|
||||
| Any suspension, termination or cancellation will not affect your
|
||||
| obligations to HabitRPG under these Terms of Service (including, without
|
||||
| limitation, proprietary rights and ownership, indemnification and
|
||||
| limitation of liability), which by their sense and context are intended
|
||||
| to survive such suspension, termination or cancellation.
|
||||
p
|
||||
strong Disclaimers
|
||||
br
|
||||
| THE SERVICES, HABITRPG CONTENT AND PUBLIC USER CONTENT ARE PROVIDED "AS IS",
|
||||
| WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED. WITHOUT
|
||||
| LIMITING THE FOREGOING, HABITRPG EXPLICITLY DISCLAIMS ANY WARRANTIES OF
|
||||
| MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR
|
||||
| NON-INFRINGEMENT, AND ANY WARRANTIES ARISING OUT OF COURSE OF DEALING OR
|
||||
| USAGE OF TRADE.
|
||||
p
|
||||
| HABITRPG MAKES NO WARRANTY THAT THE SERVICES, HABITRPG CONTENT OR
|
||||
| PUBLIC USER CONTENT WILL MEET YOUR REQUIREMENTS OR BE AVAILABLE ON AN
|
||||
| UNINTERRUPTED, SECURE, OR ERROR-FREE BASIS. HABITRPG MAKES NO WARRANTY
|
||||
| REGARDING THE QUALITY OF ANY PRODUCTS, SERVICES OR CONTENT PURCHASED OR
|
||||
| OBTAINED THROUGH THE SERVICES OR THE ACCURACY, TIMELINESS, TRUTHFULNESS,
|
||||
| COMPLETENESS OR RELIABILITY OF ANY CONTENT OBTAINED THROUGH THE
|
||||
| SERVICES.
|
||||
p
|
||||
| NO ADVICE OR INFORMATION, WHETHER ORAL OR WRITTEN, OBTAINED FROM
|
||||
| HABITRPG OR THROUGH THE SERVICES, HABITRPG CONTENT OR PUBLIC USER CONTENT, WILL
|
||||
| CREATE ANY WARRANTY NOT EXPRESSLY MADE HEREIN.
|
||||
p
|
||||
strong Indemnity
|
||||
br
|
||||
| You agree to defend, indemnify, and hold HabitRPG, its officers,
|
||||
| directors, employees and agents, harmless from and against any claims,
|
||||
| liabilities, damages, losses, and expenses, including, without
|
||||
| limitation, reasonable legal and accounting fees, arising out of or in
|
||||
| any way connected with Public User Content you submit to HabitRPG, your access
|
||||
| to or use of the Services or HabitRPG Content, or your violation of these
|
||||
| Terms of Service.
|
||||
p
|
||||
strong Limitation of Liability
|
||||
br
|
||||
| YOU ACKNOWLEDGE AND AGREE THAT, TO THE MAXIMUM EXTENT PERMITTED BY LAW,
|
||||
| THE ENTIRE RISK ARISING OUT OF YOUR ACCESS TO AND USE OF THE SERVICES
|
||||
| AND CONTENT THEREIN REMAINS WITH YOU. NEITHER HABITRPG NOR ANY OTHER
|
||||
| PARTY INVOLVED IN CREATING, PRODUCING, OR DELIVERING THE SERVICES OR
|
||||
| HABITRPG CONTENT WILL BE LIABLE FOR ANY INCIDENTAL, SPECIAL, EXEMPLARY OR
|
||||
| CONSEQUENTIAL DAMAGES, INCLUDING LOST PROFITS, LOSS OF DATA OR LOSS OF
|
||||
| GOODWILL, SERVICE INTERRUPTION, COMPUTER DAMAGE OR SYSTEM FAILURE OR THE
|
||||
| COST OF SUBSTITUTE PRODUCTS OR SERVICES, ARISING OUT OF OR IN CONNECTION
|
||||
| WITH THESE TERMS OR FROM THE USE OF OR INABILITY TO USE THE SERVICES OR
|
||||
| CONTENT THEREIN, WHETHER BASED ON WARRANTY, CONTRACT, TORT (INCLUDING
|
||||
| NEGLIGENCE), PRODUCT LIABILITY OR ANY OTHER LEGAL THEORY, AND WHETHER OR
|
||||
| NOT HABITRPG HAS BEEN INFORMED OF THE POSSIBILITY OF SUCH DAMAGE, EVEN IF
|
||||
| A LIMITED REMEDY SET FORTH HEREIN IS FOUND TO HAVE FAILED OF ITS
|
||||
| ESSENTIAL PURPOSE. YOU SPECIFICALLY ACKNOWLEDGE THAT HABITRPG IS NOT
|
||||
| LIABLE FOR THE DEFAMATORY, OFFENSIVE OR ILLEGAL CONDUCT OF OTHER USERS
|
||||
| OR THIRD PARTIES AND THAT THE RISK OF INJURY FROM THE FOREGOING RESTS
|
||||
| ENTIRELY WITH YOU. FURTHER, HABITRPG WILL HAVE NO LIABILITY TO YOU OR TO
|
||||
| ANY THIRD PARTY FOR ANY PUBLIC USER CONTENT OR THIRD-PARTY CONTENT UPLOADED
|
||||
| ONTO OR DOWNLOADED FROM THE SITES OR THROUGH THE SERVICES.
|
||||
p
|
||||
| IN NO EVENT WILL HABITRPG'S AGGREGATE LIABILITY ARISING OUT OF OR
|
||||
| IN CONNECTION WITH THESE TERMS OF SERVICE OR FROM THE USE OF OR
|
||||
| INABILITY TO USE THE SITE, SERVICES OR CONTENT THEREIN EXCEED ONE
|
||||
| HUNDRED U.S. DOLLARS ($100). THE LIMITATIONS OF DAMAGES SET FORTH ABOVE
|
||||
| ARE FUNDAMENTAL ELEMENTS OF THE BASIS OF THE BARGAIN BETWEEN HABITRPG AND
|
||||
| YOU. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OR LIMITATION OF
|
||||
| LIABILITY FOR CONSEQUENTIAL OR INCIDENTAL DAMAGES, SO THE ABOVE
|
||||
| LIMITATION MAY NOT APPLY TO YOU.
|
||||
p
|
||||
strong Proprietary Rights Notices
|
||||
br
|
||||
| All trademarks, service marks, logos, trade names and any other
|
||||
| proprietary designations of HabitRPG used herein are trademarks or
|
||||
| registered trademarks of HabitRPG. Any other trademarks, service marks,
|
||||
| logos, trade names and any other proprietary designations are the
|
||||
| trademarks or registered trademarks of their respective parties.
|
||||
p
|
||||
strong Controlling Law and Jurisdiction
|
||||
br
|
||||
| These Terms of Service and any action related thereto will be governed
|
||||
| by the laws of the State of California without regard to its conflict of
|
||||
| laws provisions. The exclusive jurisdiction and venue of any action with
|
||||
| respect to the subject matter of these Terms of Service will be the
|
||||
| courts having jurisdiction over disputes arising in Santa Clara County,
|
||||
| California, and each of the parties hereto waives any objection to
|
||||
| jurisdiction and venue in such courts.
|
||||
p
|
||||
| YOU AGREE THAT IF YOU WANT TO SUE US, YOU MUST FILE YOUR LAWSUIT
|
||||
| WITHIN ONE YEAR AFTER THE EVENT THAT GAVE RISE TO YOUR LAWSUIT.
|
||||
| OTHERWISE, YOUR LAWSUIT WILL BE PERMANENTLY BARRED.
|
||||
p
|
||||
strong Export Control
|
||||
br
|
||||
| You may not use or otherwise export or re-export the Services except as
|
||||
| authorized by United States law and the laws of the jurisdiction in
|
||||
| which the Services were obtained. In particular, but without limitation,
|
||||
| the Services may not be exported or re-exported (a) into any U.S.
|
||||
| embargoed countries or (b) to anyone on the U.S. Treasury Department's
|
||||
| list of Specially Designated Nationals or the U.S. Department of
|
||||
| Commerce Denied Person's List or Entity List. By using the Services, you
|
||||
| represent and warrant that you are not located in any such country or on
|
||||
| any such list. You also agree that you will not use these products for
|
||||
| any purposes prohibited by United States law, including, without
|
||||
| limitation, the development, design, manufacture or production of
|
||||
| nuclear, missiles, or chemical or biological weapons.
|
||||
p
|
||||
strong Entire Agreement
|
||||
br
|
||||
| These Terms of Service constitute the entire and exclusive understanding
|
||||
| and agreement between HabitRPG and you regarding the Services and HabitRPG
|
||||
| Content, and these Terms of Service supersede and replace any and all
|
||||
| prior oral or written understandings or agreements between HabitRPG and
|
||||
| you regarding the Services and HabitRPG Content.
|
||||
p
|
||||
strong Assignment
|
||||
br
|
||||
| You may not assign or transfer these Terms of Service, by operation of
|
||||
| law or otherwise, without HabitRPG's prior written consent. Any attempt
|
||||
| by you to assign or transfer these Terms of Service, without such
|
||||
| consent, will be null and of no effect. HabitRPG may freely assign these
|
||||
| Terms of Service. Subject to the foregoing, these Terms of Service will
|
||||
| bind and inure to the benefit of the parties, their successors and
|
||||
| permitted assigns.
|
||||
p
|
||||
strong Notices
|
||||
br
|
||||
| You consent to the use of: (i) electronic means to complete these Terms
|
||||
| of Service and to deliver any notices or other communications permitted
|
||||
| or required hereunder; and (ii) electronic records to store information
|
||||
| related to these Terms of Service or your use of the Services. Any
|
||||
| notices or other communications permitted to required hereunder,
|
||||
| including those regarding modifications to these Terms of Service, will
|
||||
| be in writing and given: (x) by HabitRPG via email (in each case to the
|
||||
| address that you provide) or (y) by posting to the Sites or Services.
|
||||
| For notices made by e-mail, the date of receipt will be deemed the date
|
||||
| on which such notice is transmitted.
|
||||
p
|
||||
strong General
|
||||
br
|
||||
| The failure of HabitRPG to enforce any right or provision of these Terms
|
||||
| of Service will not constitute a waiver of future enforcement of that
|
||||
| right or provision. The waiver of any such right or provision will be
|
||||
| effective only if in writing and signed by a duly authorized
|
||||
| representative of HabitRPG. Except as expressly set forth in these Terms
|
||||
| of Service, the exercise by either party of any of its remedies under
|
||||
| these Terms of Service will be without prejudice to its other remedies
|
||||
| under these Terms of Service or otherwise. If for any reason a court of
|
||||
| competent jurisdiction finds any provision of these Terms of Service
|
||||
| invalid or unenforceable, that provision will be enforced to the maximum
|
||||
| extent permissible and the other provisions of these Terms of Service
|
||||
| will remain in full force and effect.
|
||||
p
|
||||
strong Contacting Us
|
||||
br
|
||||
| If you have any questions about these Terms of Service, please contact
|
||||
| us at <a href='mailto:admin@habitica.com'>admin@habitica.com</a>
|
||||
</template>
|
||||
Reference in New Issue
Block a user