Compare commits
33 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
02fa8348cd | ||
|
|
6ee3b526ea | ||
|
|
a7204e6069 | ||
|
|
e55b370af5 | ||
|
|
9507f0758d | ||
|
|
1985d04bcf | ||
|
|
8d040873a1 | ||
|
|
5995dd235d | ||
|
|
f57c647e21 | ||
|
|
8d82566654 | ||
|
|
a380090013 | ||
|
|
0b076311df | ||
|
|
1896984777 | ||
|
|
c3ba70f5d6 | ||
|
|
ac800a94f9 | ||
|
|
75913842bc | ||
|
|
e61884ed08 | ||
|
|
026014b8d6 | ||
|
|
014a7197f0 | ||
|
|
1ad3292f18 | ||
|
|
add2743772 | ||
|
|
cf0ce90968 | ||
|
|
e3b10cdc2a | ||
|
|
3ab4c4114b | ||
|
|
576285c004 | ||
|
|
d3967d6567 | ||
|
|
ea25a4bf04 | ||
|
|
4f26ac66ac | ||
|
|
0dba37008f | ||
|
|
bca52cb6fa | ||
|
|
ade6d9689f | ||
|
|
90f7390f84 | ||
|
|
ffe46c0f07 |
1
.babelrc
@@ -1,6 +1,7 @@
|
||||
{
|
||||
"presets": ["es2015"],
|
||||
"plugins": [
|
||||
"transform-object-rest-spread",
|
||||
["transform-async-to-module-method", {
|
||||
"module": "bluebird",
|
||||
"method": "coroutine"
|
||||
|
||||
@@ -7,6 +7,7 @@ RUN npm install -g gulp grunt-cli bower mocha
|
||||
RUN mkdir -p /usr/src/habitrpg
|
||||
WORKDIR /usr/src/habitrpg
|
||||
RUN git clone https://github.com/HabitRPG/habitica.git /usr/src/habitrpg
|
||||
RUN cp config.json.example config.json
|
||||
RUN npm install
|
||||
RUN bower install --allow-root
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@ RUN npm install -g gulp grunt-cli bower mocha
|
||||
# Clone Habitica repo and install dependencies
|
||||
RUN mkdir -p /usr/src/habitrpg
|
||||
WORKDIR /usr/src/habitrpg
|
||||
RUN git clone --branch v3.110.0 https://github.com/HabitRPG/habitica.git /usr/src/habitrpg
|
||||
RUN git clone --branch v3.110.2 https://github.com/HabitRPG/habitica.git /usr/src/habitrpg
|
||||
RUN npm install
|
||||
RUN bower install --allow-root
|
||||
RUN gulp build:prod --force
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
web:
|
||||
volumes:
|
||||
- '.:/habitrpg'
|
||||
- '.:/usr/src/habitrpg'
|
||||
|
||||
16471
npm-shrinkwrap.json
generated
11
package.json
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "habitica",
|
||||
"description": "A habit tracker app which treats your goals like a Role Playing Game.",
|
||||
"version": "3.110.1",
|
||||
"version": "3.110.2",
|
||||
"main": "./website/server/index.js",
|
||||
"dependencies": {
|
||||
"@slack/client": "^3.8.1",
|
||||
@@ -31,7 +31,7 @@
|
||||
"bluebird": "^3.3.5",
|
||||
"body-parser": "^1.15.0",
|
||||
"bootstrap": "^4.0.0-alpha.6",
|
||||
"bootstrap-vue": "^0.16.1",
|
||||
"bootstrap-vue": "^0.18.0",
|
||||
"bower": "~1.3.12",
|
||||
"browserify": "~12.0.1",
|
||||
"compression": "^1.6.1",
|
||||
@@ -40,7 +40,7 @@
|
||||
"coupon-code": "^0.4.5",
|
||||
"css-loader": "^0.28.0",
|
||||
"csv-stringify": "^1.0.2",
|
||||
"cwait": "^1.0.0",
|
||||
"cwait": "~1.0.1",
|
||||
"domain-middleware": "~0.1.0",
|
||||
"estraverse": "^4.1.1",
|
||||
"express": "~4.14.0",
|
||||
@@ -73,6 +73,7 @@
|
||||
"html-webpack-plugin": "^2.8.1",
|
||||
"image-size": "~0.3.2",
|
||||
"in-app-purchase": "^1.1.6",
|
||||
"intro.js": "^2.6.0",
|
||||
"jade": "~1.11.0",
|
||||
"jquery": "^3.1.1",
|
||||
"js2xmlparser": "~1.0.0",
|
||||
@@ -81,7 +82,7 @@
|
||||
"method-override": "^2.3.5",
|
||||
"moment": "^2.13.0",
|
||||
"moment-recur": "habitrpg/moment-recur#v1.0.6",
|
||||
"mongoose": "^4.8.6",
|
||||
"mongoose": "~4.8.6",
|
||||
"mongoose-id-autoinc": "~2013.7.14-4",
|
||||
"morgan": "^1.7.0",
|
||||
"nconf": "~0.8.2",
|
||||
@@ -125,9 +126,11 @@
|
||||
"vue": "^2.1.0",
|
||||
"vue-loader": "^11.0.0",
|
||||
"vue-mugen-scroll": "^0.2.1",
|
||||
"vue-notification": "^1.3.2",
|
||||
"vue-router": "^2.0.0-rc.5",
|
||||
"vue-style-loader": "^3.0.0",
|
||||
"vue-template-compiler": "^2.1.10",
|
||||
"vuejs-datepicker": "^0.9.4",
|
||||
"webpack": "^2.2.1",
|
||||
"webpack-merge": "^4.0.0",
|
||||
"winston": "^2.1.0",
|
||||
|
||||
@@ -10,6 +10,8 @@ import {
|
||||
TAVERN_ID,
|
||||
} from '../../../../../website/server/models/group';
|
||||
import { v4 as generateUUID } from 'uuid';
|
||||
import { getMatchesByWordArray, removePunctuationFromString } from '../../../../../website/server/libs/stringUtils';
|
||||
import bannedWords from '../../../../../website/server/libs/bannedWords';
|
||||
import * as email from '../../../../../website/server/libs/email';
|
||||
import { IncomingWebhook } from '@slack/client';
|
||||
import nconf from 'nconf';
|
||||
@@ -21,6 +23,9 @@ describe('POST /chat', () => {
|
||||
let testMessage = 'Test Message';
|
||||
let testBannedWordMessage = 'TEST_PLACEHOLDER_SWEAR_WORD_HERE';
|
||||
let testSlurMessage = 'message with TEST_PLACEHOLDER_SLUR_WORD_HERE';
|
||||
let bannedWordErrorMessage = t('bannedWordUsed').split('.');
|
||||
bannedWordErrorMessage[0] += ` (${removePunctuationFromString(testBannedWordMessage.toLowerCase())})`;
|
||||
bannedWordErrorMessage = bannedWordErrorMessage.join('.');
|
||||
|
||||
before(async () => {
|
||||
let { group, groupLeader, members } = await createAndPopulateGroup({
|
||||
@@ -31,7 +36,6 @@ describe('POST /chat', () => {
|
||||
},
|
||||
members: 2,
|
||||
});
|
||||
|
||||
user = groupLeader;
|
||||
groupWithChat = group;
|
||||
member = members[0];
|
||||
@@ -85,11 +89,11 @@ describe('POST /chat', () => {
|
||||
context('banned word', () => {
|
||||
it('returns an error when chat message contains a banned word in tavern', async () => {
|
||||
await expect(user.post('/groups/habitrpg/chat', { message: testBannedWordMessage}))
|
||||
.to.eventually.be.rejected.and.eql({
|
||||
code: 400,
|
||||
error: 'BadRequest',
|
||||
message: t('bannedWordUsed'),
|
||||
});
|
||||
.to.eventually.be.rejected.and.eql({
|
||||
code: 400,
|
||||
error: 'BadRequest',
|
||||
message: bannedWordErrorMessage,
|
||||
});
|
||||
});
|
||||
|
||||
it('errors when word is part of a phrase', async () => {
|
||||
@@ -98,7 +102,7 @@ describe('POST /chat', () => {
|
||||
.to.eventually.be.rejected.and.eql({
|
||||
code: 400,
|
||||
error: 'BadRequest',
|
||||
message: t('bannedWordUsed'),
|
||||
message: bannedWordErrorMessage,
|
||||
});
|
||||
});
|
||||
|
||||
@@ -108,10 +112,26 @@ describe('POST /chat', () => {
|
||||
.to.eventually.be.rejected.and.eql({
|
||||
code: 400,
|
||||
error: 'BadRequest',
|
||||
message: t('bannedWordUsed'),
|
||||
message: bannedWordErrorMessage,
|
||||
});
|
||||
});
|
||||
|
||||
it('checks error message has the banned words used', async () => {
|
||||
let randIndex = Math.floor(Math.random() * (bannedWords.length + 1));
|
||||
let testBannedWords = bannedWords.slice(randIndex, randIndex + 2).map((w) => w.replace(/\\/g, ''));
|
||||
let chatMessage = `Mixing ${testBannedWords[0]} and ${testBannedWords[1]} is bad for you.`;
|
||||
await expect(user.post('/groups/habitrpg/chat', { message: chatMessage}))
|
||||
.to.eventually.be.rejected
|
||||
.and.have.property('message')
|
||||
.that.includes(testBannedWords.join(', '));
|
||||
});
|
||||
|
||||
it('check all banned words are matched', async () => {
|
||||
let message = bannedWords.join(',').replace(/\\/g, '');
|
||||
let matches = getMatchesByWordArray(message, bannedWords);
|
||||
expect(matches.length).to.equal(bannedWords.length);
|
||||
});
|
||||
|
||||
it('does not error when bad word is suffix of a word', async () => {
|
||||
let wordAsSuffix = `prefix${testBannedWordMessage}`;
|
||||
let message = await user.post('/groups/habitrpg/chat', { message: wordAsSuffix});
|
||||
|
||||
@@ -152,7 +152,7 @@ describe('GET /tasks/user', () => {
|
||||
expect(dailys2[0].isDue).to.be.true;
|
||||
});
|
||||
|
||||
it('returns dailies with isDue for the date specified and will add CDS offset if time is not supplied and assumes timezones', async () => {
|
||||
xit('returns dailies with isDue for the date specified and will add CDS offset if time is not supplied and assumes timezones', async () => {
|
||||
let timezone = 420;
|
||||
await user.update({
|
||||
'preferences.dayStart': 0,
|
||||
@@ -179,7 +179,7 @@ describe('GET /tasks/user', () => {
|
||||
});
|
||||
|
||||
|
||||
it('returns dailies with isDue for the date specified and will add CDS offset if time is not supplied and assumes timezones', async () => {
|
||||
xit('returns dailies with isDue for the date specified and will add CDS offset if time is not supplied and assumes timezones', async () => {
|
||||
let timezone = 240;
|
||||
await user.update({
|
||||
'preferences.dayStart': 0,
|
||||
@@ -205,7 +205,7 @@ describe('GET /tasks/user', () => {
|
||||
expect(dailys2[0].isDue).to.be.false;
|
||||
});
|
||||
|
||||
it('returns dailies with isDue for the date specified and will add CDS offset if time is not supplied and assumes timezones', async () => {
|
||||
xit('returns dailies with isDue for the date specified and will add CDS offset if time is not supplied and assumes timezones', async () => {
|
||||
let timezone = 540;
|
||||
await user.update({
|
||||
'preferences.dayStart': 0,
|
||||
|
||||
@@ -566,6 +566,17 @@ describe('cron', () => {
|
||||
expect(tasksByType.habits[0].counterDown).to.equal(0);
|
||||
});
|
||||
|
||||
it('should reset habit counters even if user is resting in the Inn', () => {
|
||||
user.preferences.sleep = true;
|
||||
tasksByType.habits[0].counterUp = 1;
|
||||
tasksByType.habits[0].counterDown = 1;
|
||||
|
||||
cron({user, tasksByType, daysMissed, analytics});
|
||||
|
||||
expect(tasksByType.habits[0].counterUp).to.equal(0);
|
||||
expect(tasksByType.habits[0].counterDown).to.equal(0);
|
||||
});
|
||||
|
||||
it('should reset a weekly habit counter each Monday', () => {
|
||||
tasksByType.habits[0].frequency = 'weekly';
|
||||
tasksByType.habits[0].counterUp = 1;
|
||||
|
||||
|
After Width: | Height: | Size: 1.8 KiB |
|
After Width: | Height: | Size: 1.6 KiB |
|
After Width: | Height: | Size: 1.6 KiB |
|
After Width: | Height: | Size: 1.8 KiB |
|
After Width: | Height: | Size: 1.6 KiB |
|
After Width: | Height: | Size: 1.5 KiB |
|
After Width: | Height: | Size: 1.6 KiB |
|
After Width: | Height: | Size: 1.6 KiB |
|
After Width: | Height: | Size: 1.6 KiB |
|
After Width: | Height: | Size: 1.5 KiB |
|
After Width: | Height: | Size: 1.5 KiB |
|
After Width: | Height: | Size: 1.7 KiB |
|
After Width: | Height: | Size: 1.5 KiB |
|
After Width: | Height: | Size: 1.6 KiB |
|
After Width: | Height: | Size: 1.5 KiB |
|
After Width: | Height: | Size: 1.6 KiB |
|
After Width: | Height: | Size: 1.5 KiB |
|
After Width: | Height: | Size: 1.3 KiB |
|
After Width: | Height: | Size: 1.7 KiB |
|
After Width: | Height: | Size: 1.6 KiB |
|
After Width: | Height: | Size: 1.4 KiB |
|
After Width: | Height: | Size: 1.7 KiB |
|
After Width: | Height: | Size: 1.8 KiB |
|
After Width: | Height: | Size: 1.6 KiB |
|
After Width: | Height: | Size: 1.7 KiB |
|
After Width: | Height: | Size: 1.5 KiB |
|
After Width: | Height: | Size: 1.7 KiB |
|
After Width: | Height: | Size: 1.6 KiB |
|
After Width: | Height: | Size: 1.7 KiB |
|
After Width: | Height: | Size: 2.0 KiB |
|
After Width: | Height: | Size: 1.8 KiB |
|
After Width: | Height: | Size: 1.7 KiB |
|
After Width: | Height: | Size: 1.9 KiB |
|
After Width: | Height: | Size: 1.8 KiB |
|
After Width: | Height: | Size: 1.8 KiB |
|
After Width: | Height: | Size: 1.4 KiB |
|
After Width: | Height: | Size: 1.7 KiB |
|
After Width: | Height: | Size: 2.0 KiB |
|
After Width: | Height: | Size: 18 KiB |
|
After Width: | Height: | Size: 18 KiB |
|
After Width: | Height: | Size: 1.4 KiB |
|
After Width: | Height: | Size: 1.2 KiB |
|
After Width: | Height: | Size: 1.6 KiB |
|
After Width: | Height: | Size: 1.5 KiB |
|
After Width: | Height: | Size: 2.7 KiB |
|
After Width: | Height: | Size: 2.1 KiB |
|
After Width: | Height: | Size: 1.4 KiB |
|
After Width: | Height: | Size: 1.5 KiB |
|
After Width: | Height: | Size: 1.3 KiB |
|
After Width: | Height: | Size: 1.7 KiB |
|
After Width: | Height: | Size: 1.5 KiB |
|
After Width: | Height: | Size: 2.0 KiB |
|
After Width: | Height: | Size: 1.5 KiB |
@@ -36,6 +36,7 @@ habitrpg.controller("GroupsCtrl", ['$scope', '$rootScope', 'Shared', 'Groups', '
|
||||
};
|
||||
|
||||
$scope.isAbleToEditGroup = function (group) {
|
||||
if (!group) return false;
|
||||
if (group.leader._id === User.user._id) return true;
|
||||
if (User.user.contributor.admin && group.type === "guild") return true;
|
||||
return false;
|
||||
|
||||
|
Before Width: | Height: | Size: 53 KiB After Width: | Height: | Size: 624 KiB |
@@ -1,11 +1,12 @@
|
||||
<template lang="pug">
|
||||
#app
|
||||
notifications
|
||||
router-view(v-if="!isUserLoggedIn || isStaticPage")
|
||||
template(v-else)
|
||||
#loading-screen.h-100.w-100.d-flex.justify-content-center.align-items-center(v-if="!isUserLoaded")
|
||||
p Loading...
|
||||
template(v-else)
|
||||
notifications
|
||||
notifications-display
|
||||
app-menu
|
||||
.container-fluid
|
||||
app-header
|
||||
@@ -18,7 +19,7 @@
|
||||
import AppMenu from './components/appMenu';
|
||||
import AppHeader from './components/appHeader';
|
||||
import AppFooter from './components/appFooter';
|
||||
import notifications from './components/notifications';
|
||||
import notificationsDisplay from './components/notifications';
|
||||
import { mapState } from 'client/libs/store';
|
||||
|
||||
export default {
|
||||
@@ -27,7 +28,7 @@ export default {
|
||||
AppMenu,
|
||||
AppHeader,
|
||||
AppFooter,
|
||||
notifications,
|
||||
notificationsDisplay,
|
||||
},
|
||||
data () {
|
||||
return {
|
||||
@@ -62,6 +63,7 @@ export default {
|
||||
};
|
||||
</script>
|
||||
|
||||
<style src="intro.js/minified/introjs.min.css"></style>
|
||||
<style src="bootstrap/scss/bootstrap.scss" lang="scss"></style>
|
||||
<style src="assets/scss/index.scss" lang="scss"></style>
|
||||
<style src="assets/css/index.css"></style>
|
||||
|
||||
|
Before Width: | Height: | Size: 6.2 KiB After Width: | Height: | Size: 6.2 KiB |
|
After Width: | Height: | Size: 4.9 KiB |
|
After Width: | Height: | Size: 13 KiB |
|
After Width: | Height: | Size: 9.9 KiB |
|
After Width: | Height: | Size: 6.9 KiB |
|
Before Width: | Height: | Size: 6.5 KiB After Width: | Height: | Size: 6.5 KiB |
|
After Width: | Height: | Size: 7.8 KiB |
BIN
website/client/assets/images/tavern_backdrop_web.png
Normal file
|
After Width: | Height: | Size: 14 KiB |
@@ -80,6 +80,10 @@
|
||||
}
|
||||
}
|
||||
|
||||
.show > .btn-success.dropdown-toggle {
|
||||
background: $green-50;
|
||||
}
|
||||
|
||||
.btn-info {
|
||||
background: $blue-50;
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
line-height: 1.43;
|
||||
}
|
||||
|
||||
.dropdown.show > .dropdown-toggle {
|
||||
.dropdown.show > .dropdown-toggle:not(.btn-success) {
|
||||
color: $purple-200;
|
||||
border-color: $purple-500 !important;
|
||||
box-shadow: none;
|
||||
|
||||
@@ -119,6 +119,26 @@ $bg-disabled-control: #34303a;
|
||||
}
|
||||
}
|
||||
|
||||
.inline-edit-input-group {
|
||||
.input-group-btn {
|
||||
cursor: pointer;
|
||||
padding-left: 10px;
|
||||
padding-right: 10px;
|
||||
}
|
||||
|
||||
.destroy-icon {
|
||||
width: 14px;
|
||||
height: 16px;
|
||||
}
|
||||
}
|
||||
|
||||
.inline-edit-input {
|
||||
margin-bottom: 0px;
|
||||
border-radius: 0px;
|
||||
border: none !important;
|
||||
padding-left: 36px;
|
||||
}
|
||||
|
||||
@mixin custom-radio-checked-icon ($bg-color) {
|
||||
background-image: str-replace(url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='#{$bg-color}'/%3E%3C/svg%3E"), "#", "%23");
|
||||
}
|
||||
@@ -166,3 +186,7 @@ $bg-disabled-control: #34303a;
|
||||
border-color: $gray-400;
|
||||
}
|
||||
}
|
||||
|
||||
.toggle-switch-container.no-margin {
|
||||
margin-top: 0 !important;
|
||||
}
|
||||
|
||||
@@ -22,15 +22,18 @@
|
||||
line-height: 1.2;
|
||||
text-align: center;
|
||||
color: $gray-50;
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
.text {
|
||||
height: 60px;
|
||||
min-height: 60px;
|
||||
font-family: Roboto;
|
||||
font-size: 14px;
|
||||
line-height: 1.43;
|
||||
text-align: center;
|
||||
color: $gray-100;
|
||||
overflow-y: hidden;
|
||||
text-overflow: ellipsis;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -1,83 +1,182 @@
|
||||
.task {
|
||||
.daily-todo-control {
|
||||
|
||||
&:hover {
|
||||
.svg-icon.check {
|
||||
display: block;
|
||||
}
|
||||
}
|
||||
|
||||
.svg-icon.check {
|
||||
display: none;
|
||||
|
||||
&.display-check-icon {
|
||||
display: block;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.task {
|
||||
// for editing rewards or when a task is created
|
||||
&-purple {
|
||||
background: $purple-300;
|
||||
|
||||
&-color {
|
||||
color: $purple-300;
|
||||
}
|
||||
|
||||
&-control-habit {
|
||||
background: $purple-300;
|
||||
}
|
||||
|
||||
&-modal-input {
|
||||
color: $header-color !important;
|
||||
}
|
||||
}
|
||||
|
||||
&-worst {
|
||||
background: $maroon-100;
|
||||
|
||||
&-color {
|
||||
color: darken($maroon-100, 12%);
|
||||
}
|
||||
|
||||
&-control-habit {
|
||||
background: darken($maroon-100, 12%);
|
||||
}
|
||||
|
||||
&-control-daily-todo {
|
||||
background: $maroon-500;
|
||||
background: $maroon-100;
|
||||
}
|
||||
|
||||
&-modal-input {
|
||||
color: $maroon-500 !important;
|
||||
}
|
||||
}
|
||||
|
||||
&-worse {
|
||||
background: $red-100;
|
||||
|
||||
&-color {
|
||||
color: darken($red-100, 12%);
|
||||
}
|
||||
|
||||
&-control-habit {
|
||||
background: darken($red-100, 12%);
|
||||
}
|
||||
|
||||
&-control-daily-todo {
|
||||
background: $red-500;
|
||||
color: $red-100;
|
||||
}
|
||||
|
||||
&-modal-input {
|
||||
color: $red-500 !important;
|
||||
}
|
||||
}
|
||||
|
||||
&-bad {
|
||||
background: $orange-100;
|
||||
|
||||
&-color {
|
||||
color: darken($orange-100, 12%);
|
||||
}
|
||||
|
||||
&-control-habit {
|
||||
background: darken($orange-100, 12%);
|
||||
}
|
||||
|
||||
&-control-daily-todo {
|
||||
background: $orange-500;
|
||||
color: $orange-100;
|
||||
}
|
||||
|
||||
&-modal-input {
|
||||
color: $orange-500 !important;
|
||||
}
|
||||
}
|
||||
|
||||
&-neutral {
|
||||
background: $yellow-50;
|
||||
background: $yellow-100;
|
||||
|
||||
&-color {
|
||||
color: darken($yellow-100, 12%);
|
||||
}
|
||||
|
||||
&-control-habit {
|
||||
background: darken($yellow-50, 12%);
|
||||
background: darken($yellow-100, 12%);
|
||||
}
|
||||
|
||||
&-control-daily-todo {
|
||||
background: $yellow-500;
|
||||
color: $yellow-100;
|
||||
}
|
||||
|
||||
&-modal-input {
|
||||
color: $yellow-500 !important;
|
||||
}
|
||||
}
|
||||
|
||||
&-good {
|
||||
background: $green-10;
|
||||
|
||||
&-color {
|
||||
color: darken($green-10, 12%);
|
||||
}
|
||||
|
||||
&-control-habit {
|
||||
background: darken($green-10, 12%);
|
||||
}
|
||||
|
||||
&-control-daily-todo {
|
||||
background: $green-500;
|
||||
color: $green-10;
|
||||
}
|
||||
|
||||
&-modal-input {
|
||||
color: $green-500 !important;
|
||||
}
|
||||
}
|
||||
|
||||
&-better {
|
||||
background: $blue-50;
|
||||
|
||||
&-color {
|
||||
color: darken($blue-50, 12%);
|
||||
}
|
||||
|
||||
&-control-habit {
|
||||
background: darken($blue-50, 12%);
|
||||
}
|
||||
|
||||
&-control-daily-todo {
|
||||
background: $blue-500;
|
||||
color: $blue-50;
|
||||
}
|
||||
|
||||
&-modal-input {
|
||||
color: $blue-500 !important;
|
||||
}
|
||||
}
|
||||
|
||||
&-best {
|
||||
background: $teal-50;
|
||||
|
||||
&-color {
|
||||
color: darken($teal-50, 12%);
|
||||
}
|
||||
|
||||
&-control-habit {
|
||||
background: darken($teal-50, 12%);
|
||||
}
|
||||
|
||||
&-control-daily-todo {
|
||||
background: $teal-500;
|
||||
color: $teal-50;
|
||||
}
|
||||
|
||||
&-modal-input {
|
||||
color: $teal-500 !important;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -111,4 +210,27 @@
|
||||
border: 1px solid rgba(0, 0, 0, 0.12);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.task-control {
|
||||
width: 28px;
|
||||
height: 28px;
|
||||
}
|
||||
|
||||
.habit-control {
|
||||
border-radius: 100px;
|
||||
color: $white;
|
||||
|
||||
.svg-icon {
|
||||
width: 10px;
|
||||
margin: 0 auto;
|
||||
}
|
||||
|
||||
.positive {
|
||||
margin-top: 9px;
|
||||
}
|
||||
|
||||
.negative {
|
||||
margin-top: 13px;
|
||||
}
|
||||
}
|
||||
6
website/client/assets/svg/backgrounds.svg
Normal file
@@ -0,0 +1,6 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32">
|
||||
<g fill="none" fill-rule="evenodd">
|
||||
<rect width="29.6" height="29.6" x="1.2" y="1.2" stroke="#A5A1AC" stroke-width="2.4" rx="4"/>
|
||||
<path fill="#A5A1AC" d="M11 11l2-1-2-1-1-2-1 2-2 1 2 1 1 2zM23 14l2-1-2-1-1-2-1 2-2 1 2 1 1 2zM15.333 22.333L18 21l-2.667-1.333L14 17l-1.333 2.667L10 21l2.667 1.333L14 25z"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 425 B |
1
website/client/assets/svg/bronze-guild-badge-large.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 38 38"><title>Bronze_Large</title><path d="M20,36.26C8,30.71,5.67,23.8,5.51,10.23L20,3.74l14.49,6.49C34.33,23.8,32,30.71,20,36.26Z" transform="translate(-1 -1)" fill="#ea8c31"/><path d="M20,6.48l12,5.36c-0.31,11.64-2.58,17-12,21.65-9.38-4.61-11.65-10-12-21.65L20,6.48M20,1L3,8.62C3,23.85,5.07,32.47,20,39,34.93,32.47,37,23.85,37,8.62L20,1h0Z" transform="translate(-1 -1)" fill="#b36213"/><path d="M20,4.29l14,6.27c-0.2,13.64-2.66,19.87-14,25.15C8.68,30.43,6.21,24.19,6,10.55L20,4.29M20,1L3,8.62C3,23.85,5.07,32.47,20,39,34.93,32.47,37,23.85,37,8.62L20,1h0Z" transform="translate(-1 -1)" fill="#d77a20"/><path d="M20,8a2.14,2.14,0,1,0,2.14,2.14A2.14,2.14,0,0,0,20,8m0,5.72c-1.67,0-5,.83-5,2.5V18H25V16.22c0-1.67-3.33-2.5-5-2.5" transform="translate(-1 -1)" fill="#b36213" fill-rule="evenodd"/><path d="M2,27.5A7.5,7.5,0,0,1,9.5,20h21a7.5,7.5,0,1,1,0,15H9.5A7.51,7.51,0,0,1,2,27.5Z" transform="translate(-1 -1)" fill="none" fill-rule="evenodd"/><path d="M2,27.5A7.5,7.5,0,0,1,9.5,20h21a7.5,7.5,0,1,1,0,15H9.5A7.51,7.51,0,0,1,2,27.5Z" transform="translate(-1 -1)" fill="#fff" stroke="#b36213" stroke-miterlimit="10" stroke-width="2"/></svg>
|
||||
|
After Width: | Height: | Size: 1.2 KiB |
1
website/client/assets/svg/bronze-guild-badge-small.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 34 38"><title>Bronze_Small</title><path d="M20,36.28C7.18,30.61,5.6,24.69,5.5,10.42L20,3.75l14.5,6.67C34.4,24.69,32.82,30.61,20,36.28Z" transform="translate(-3 -1)" fill="#ea8c31"/><path d="M20,6.5L32,12c-0.15,11.56-1.51,16.62-12,21.51C9.53,28.64,8.17,23.58,8,12L20,6.5M20,1L3,8.82C3,24.47,4.13,32.29,20,39,35.87,32.29,37,24.47,37,8.82L20,1h0Z" transform="translate(-3 -1)" fill="#b36213"/><path d="M20,4.3l14,6.44c-0.12,13.72-1.72,19.51-14,25C7.73,30.25,6.12,24.46,6,10.74L20,4.3M20,1L3,8.82C3,24.47,4.13,32.29,20,39,35.87,32.29,37,24.47,37,8.82L20,1h0Z" transform="translate(-3 -1)" fill="#d77a20"/></svg>
|
||||
|
After Width: | Height: | Size: 693 B |
@@ -1,18 +0,0 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="78" height="76" viewBox="0 0 78 76">
|
||||
<defs>
|
||||
<path id="a" d="M35 0L0 15.235C0 45.705 4.255 62.941 35 76c30.745-13.059 35-30.294 35-60.765L35 0z"/>
|
||||
<rect id="b" width="70" height="24" y="42" rx="12"/>
|
||||
</defs>
|
||||
<g fill="none" fill-rule="evenodd">
|
||||
<g transform="translate(4)">
|
||||
<use fill="#EA8C31" xlink:href="#a"/>
|
||||
<path stroke="#B36213" stroke-width="10" d="M34.03 5.031l4.443 1.934 12.031 5.237 12.032 5.237 2.445 1.065c-.183 14.83-1.676 23.96-5.418 31.395C55.326 58.32 47.803 64.81 35 70.545 22.197 64.81 14.674 58.32 10.437 49.9c-3.742-7.435-5.235-16.565-5.418-31.395L35 5.454l-.97-.423z"/>
|
||||
<path stroke="#D77A20" stroke-width="6" d="M34.421 3.02a506596810.815 506596810.815 0 0 0 16.882 7.348l12.03 5.237 3.66 1.593c-.111 15.9-1.621 25.609-5.643 33.6C56.795 59.848 48.69 66.734 35 72.733c-13.691-6-21.795-12.885-26.35-21.935-4.022-7.991-5.532-17.7-5.643-33.6L35 3.272l-.579-.252z"/>
|
||||
</g>
|
||||
<g transform="translate(4)">
|
||||
<use fill="#FFF" xlink:href="#b"/>
|
||||
<rect width="74" height="28" x="-2" y="40" stroke="#B36213" stroke-width="4" rx="14"/>
|
||||
</g>
|
||||
<path fill="#B36213" d="M31 30.667V34h16v-3.333C47 27.557 41.668 26 39 26c-2.666 0-8 1.556-8 4.667zM39.006 16A4.005 4.005 0 0 0 35 20c0 2.208 1.795 4 4.006 4A3.993 3.993 0 0 0 43 20c0-2.207-1.781-4-3.994-4"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 1.5 KiB |
5
website/client/assets/svg/difficulty-hard.svg
Normal file
@@ -0,0 +1,5 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="36" height="36" viewBox="0 0 36 36">
|
||||
<g fill-rule="evenodd">
|
||||
<path d="M10.667 10.667L16 8l-5.333-2.667L8 0 5.333 5.333 0 8l5.333 2.667L8 16zM10.667 30.667L16 28l-5.333-2.667L8 20l-2.667 5.333L0 28l5.333 2.667L8 36zM30.667 10.667L36 8l-5.333-2.667L28 0l-2.667 5.333L20 8l5.333 2.667L28 16zM30.667 30.667L36 28l-5.333-2.667L28 20l-2.667 5.333L20 28l5.333 2.667L28 36z"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 444 B |
5
website/client/assets/svg/difficulty-medium.svg
Normal file
@@ -0,0 +1,5 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="36" height="32" viewBox="0 0 36 32">
|
||||
<g fill-rule="evenodd">
|
||||
<path d="M10.667 26.667L16 24l-5.333-2.667L8 16l-2.667 5.333L0 24l5.333 2.667L8 32zM30.667 26.667L36 24l-5.333-2.667L28 16l-2.667 5.333L20 24l5.333 2.667L28 32zM20.667 10.667L26 8l-5.333-2.667L18 0l-2.667 5.333L10 8l5.333 2.667L18 16z"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 374 B |
5
website/client/assets/svg/difficulty-normal.svg
Normal file
@@ -0,0 +1,5 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="36" height="16" viewBox="0 0 36 16">
|
||||
<g fill-rule="evenodd">
|
||||
<path d="M10.667 10.667L16 8l-5.333-2.667L8 0 5.333 5.333 0 8l5.333 2.667L8 16zM30.667 10.667L36 8l-5.333-2.667L28 0l-2.667 5.333L20 8l5.333 2.667L28 16z"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 293 B |
3
website/client/assets/svg/difficulty-trivial.svg
Normal file
@@ -0,0 +1,3 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16">
|
||||
<path fill-rule="evenodd" d="M10.667 10.667L16 8l-5.333-2.667L8 0 5.333 5.333 0 8l5.333 2.667L8 16z"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 198 B |
@@ -1,3 +1,3 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="8" height="16" viewBox="0 0 8 16">
|
||||
<path fill="#878190" fill-rule="evenodd" d="M7.145 8.006H4.903V16H1.58V8.006H0V5.182h1.58V3.354C1.58 2.045 2.202 0 4.933 0l2.461.01v2.742H5.608c-.291 0-.705.145-.705.77v1.66h2.533l-.291 2.824z"/>
|
||||
<path fill-rule="evenodd" d="M7.145 8.006H4.903V16H1.58V8.006H0V5.182h1.58V3.354C1.58 2.045 2.202 0 4.933 0l2.461.01v2.742H5.608c-.291 0-.705.145-.705.77v1.66h2.533l-.291 2.824z"/>
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 289 B After Width: | Height: | Size: 274 B |
@@ -1,3 +1,3 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="12" height="10" viewBox="0 0 12 10">
|
||||
<path fill="#686274" fill-rule="evenodd" d="M0 0h12v2H0V0zm2 4h8v2H2V4zm2 4h4v2H4V8z"/>
|
||||
<path fill-rule="evenodd" d="M0 0h12v2H0V0zm2 4h8v2H2V4zm2 4h4v2H4V8z"/>
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 183 B After Width: | Height: | Size: 168 B |
3
website/client/assets/svg/for-css/positive.svg
Normal file
@@ -0,0 +1,3 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="10" height="10" viewBox="0 0 10 10">
|
||||
<path fill="#24CC8F" fill-rule="evenodd" d="M6 4V0H4v4H0v2h4v4h2V6h4V4H6z"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 172 B |
1
website/client/assets/svg/gold-guild-badge-large.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 38 38"><title>Gold_Large</title><path d="M20,36.26C8,30.71,5.67,23.8,5.51,10.23L20,3.74l14.49,6.49C34.33,23.8,32,30.71,20,36.26Z" transform="translate(-1 -1)" fill="#fdbb5a"/><path d="M20,6.48l12,5.36c-0.31,11.64-2.58,17-12,21.65-9.38-4.61-11.65-10-12-21.65L20,6.48M20,1L3,8.62C3,23.85,5.07,32.47,20,39,34.93,32.47,37,23.85,37,8.62L20,1h0Z" transform="translate(-1 -1)" fill="#df911e"/><path d="M20,4.29l14,6.27c-0.2,13.64-2.66,19.87-14,25.15C8.68,30.43,6.21,24.19,6,10.55L20,4.29M20,1L3,8.62C3,23.85,5.07,32.47,20,39,34.93,32.47,37,23.85,37,8.62L20,1h0Z" transform="translate(-1 -1)" fill="#ffa623"/><path d="M20,8a2.14,2.14,0,1,0,2.14,2.14A2.14,2.14,0,0,0,20,8m0,5.72c-1.67,0-5,.83-5,2.5V18H25V16.22c0-1.67-3.33-2.5-5-2.5" transform="translate(-1 -1)" fill="#df911e" fill-rule="evenodd"/><path d="M2,27.5A7.5,7.5,0,0,1,9.5,20h21a7.5,7.5,0,1,1,0,15H9.5A7.51,7.51,0,0,1,2,27.5Z" transform="translate(-1 -1)" fill="none" fill-rule="evenodd"/><path d="M2,27.5A7.5,7.5,0,0,1,9.5,20h21a7.5,7.5,0,1,1,0,15H9.5A7.51,7.51,0,0,1,2,27.5Z" transform="translate(-1 -1)" fill="#fff" stroke="#df911e" stroke-miterlimit="10" stroke-width="2"/></svg>
|
||||
|
After Width: | Height: | Size: 1.2 KiB |
1
website/client/assets/svg/gold-guild-badge-small.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 34 38"><title>Gold_Small</title><path d="M20,36.28C7.18,30.61,5.6,24.69,5.5,10.42L20,3.75l14.5,6.67C34.4,24.69,32.82,30.61,20,36.28Z" transform="translate(-3 -1)" fill="#fdbb5a"/><path d="M20,6.5L32,12c-0.15,11.56-1.51,16.62-12,21.51C9.53,28.64,8.17,23.58,8,12L20,6.5M20,1L3,8.82C3,24.47,4.13,32.29,20,39,35.87,32.29,37,24.47,37,8.82L20,1h0Z" transform="translate(-3 -1)" fill="#df911e"/><path d="M20,4.3l14,6.44c-0.12,13.72-1.72,19.51-14,25C7.73,30.25,6.12,24.46,6,10.74L20,4.3M20,1L3,8.82C3,24.47,4.13,32.29,20,39,35.87,32.29,37,24.47,37,8.82L20,1h0Z" transform="translate(-3 -1)" fill="#ffa623"/></svg>
|
||||
|
After Width: | Height: | Size: 691 B |
@@ -1,10 +0,0 @@
|
||||
<!-- Generated by IcoMoon.io -->
|
||||
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="33" height="32" viewBox="0 0 33 32">
|
||||
<title>gold-guild-badge</title>
|
||||
<path fill="#ffbc5a" d="M16.421 0l-14.737 6.415c0 12.829 1.792 20.087 14.737 25.585 12.945-5.499 14.737-12.755 14.737-25.585l-14.737-6.415z"></path>
|
||||
<path fill="none" stroke="#df911e" stroke-width="4.2105" stroke-miterlimit="4" stroke-linecap="butt" stroke-linejoin="miter" d="M16.013 2.118l13.032 5.673c-0.077 6.244-0.706 10.088-2.281 13.219-1.784 3.546-4.952 6.278-10.342 8.693-5.391-2.415-8.558-5.147-10.342-8.693-1.576-3.131-2.204-6.975-2.281-13.219l12.624-5.495-0.408-0.178z"></path>
|
||||
<path fill="none" stroke="#ffa623" stroke-width="2.5263" stroke-miterlimit="4" stroke-linecap="butt" stroke-linejoin="miter" d="M16.177 1.272c-76071129.935-33717654.139-128176134.231-108564304.818-128176134.231-195580731.325 0-117804502.285 95499418.059-213303920.343 213303920.343-213303920.343s213303920.343 95499418.058 213303920.343 213303920.343l-298431692.74 195580737.294c-0.047 6.695-0.683 10.783-2.376 14.147-1.918 3.811-5.331 6.71-11.095 9.236-5.765-2.526-9.177-5.425-11.095-9.236-1.693-3.365-2.329-7.453-2.376-14.147l13.471-5.864-0.244-0.106z"></path>
|
||||
<path fill="#fff" d="M6.737 17.684h19.368c2.791 0 5.053 2.262 5.053 5.053s-2.262 5.053-5.053 5.053h-19.368c-2.791 0-5.053-2.262-5.053-5.053s2.262-5.053 5.053-5.053z"></path>
|
||||
<path fill="none" stroke="#df911e" stroke-width="1.6842" stroke-miterlimit="4" stroke-linecap="butt" stroke-linejoin="miter" d="M6.737 16.842h19.368c3.256 0 5.895 2.639 5.895 5.895s-2.639 5.895-5.895 5.895h-19.368c-3.256 0-5.895-2.639-5.895-5.895s2.639-5.895 5.895-5.895z"></path>
|
||||
<path fill="#df911e" d="M13.053 12.912v1.403h6.737v-1.403c0-1.309-2.245-1.965-3.368-1.965s-3.368 0.655-3.368 1.965zM16.424 6.737c-0 0-0 0-0 0-0.931 0-1.685 0.754-1.686 1.684 0 0.93 0.756 1.684 1.687 1.684 0 0 0 0 0 0 0.929 0 1.681-0.753 1.681-1.681 0-0.001 0-0.002 0-0.003 0-0.929-0.75-1.684-1.682-1.684z"></path>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 1.9 KiB |
10
website/client/assets/svg/hourglass.svg
Normal file
@@ -0,0 +1,10 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="25" height="24" viewBox="0 0 25 24">
|
||||
<g fill="none" fill-rule="evenodd">
|
||||
<path fill="#A9DCF6" fill-opacity=".8" d="M5.105 18.122v2.555c0 .3.134.586.377.763 2.647 1.935 9.952 1.935 12.6 0a.941.941 0 0 0 .376-.763v-2.555c0-2.331-1.196-4.568-3.007-5.9a.957.957 0 0 1 0-1.553c1.81-1.333 3.007-3.57 3.007-5.9V2.213c0-.3-.134-.586-.375-.761-2.649-1.936-9.954-1.936-12.601 0a.935.935 0 0 0-.377.761V4.77c0 2.33 1.196 4.567 3.008 5.9a.957.957 0 0 1 0 1.552c-1.812 1.333-3.008 3.57-3.008 5.9"/>
|
||||
<path fill="#FFF" fill-opacity=".9" d="M11.782 1.907c2.169 0 3.857.394 4.768.844v2.017c0 1.68-.854 3.353-2.23 4.365a2.883 2.883 0 0 0-1.174 2.312c0 .907.438 1.771 1.173 2.312 1.377 1.013 2.231 2.685 2.231 4.364v2.019c-.91.45-2.6.843-4.768.843-2.17 0-3.858-.394-4.769-.843V18.12c0-1.679.854-3.351 2.23-4.363a2.883 2.883 0 0 0 1.174-2.313c0-.907-.438-1.77-1.173-2.312-1.377-1.012-2.23-2.685-2.23-4.365V2.751c.91-.45 2.599-.844 4.768-.844"/>
|
||||
<path fill="#9A62FF" d="M12 3.34c-1.626 0-3.35.151-3.367.554-.015.325-.007.955 1.314 1.624 1.283.652 1.524 1.843 2.222 1.843.81 0 .857-.685 1.846-1.366 1.02-.701 1.183-1.649 1.171-2.024-.016-.522-1.558-.63-3.185-.63"/>
|
||||
<path fill="#4F2A93" d="M14.016 5.995c1.019-.701 1.182-1.648 1.17-2.024-.012-.413-.982-.567-2.194-.614.34.175.781.542.672 1.266-.112.754-1.3 1.588-1.107 2.254.036.13.1.233.179.318.355-.244.586-.723 1.28-1.2"/>
|
||||
<path fill="#9A62FF" d="M11.782 13.181c-.495 0-.623.903-1.342 1.464-.881.687-1.719 1.534-1.949 2.751-.19 1.003-.018 1.128.212 1.2.229.07 1.992.37 3.72 0 1.73-.37 2.69-1.06 2.523-1.764-.16-.67-.644-1.243-1.535-1.905-.852-.633-1.134-1.746-1.63-1.746"/>
|
||||
<path fill="#4F2A93" d="M8.703 18.595c.23.071 1.993.37 3.721 0 1.374-.294 2.262-.789 2.485-1.335a.138.138 0 0 0-.007-.033c-.097-.368-1.543-.59-3.342-.298-1.714.277-3.102.843-3.096 1.48.053.116.14.156.239.186"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.9 KiB |
3
website/client/assets/svg/instagram.svg
Normal file
@@ -0,0 +1,3 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16">
|
||||
<path fill="#E1E0E3" fill-rule="evenodd" d="M8 0c2.173 0 2.445.01 3.298.048.852.04 1.433.174 1.942.372.526.205.973.478 1.418.922.444.445.717.892.922 1.418.198.509.333 1.09.372 1.942C15.99 5.555 16 5.827 16 8s-.01 2.445-.048 3.298c-.04.852-.174 1.433-.372 1.942a3.924 3.924 0 0 1-.922 1.418 3.924 3.924 0 0 1-1.418.922c-.509.198-1.09.333-1.942.372-.853.04-1.125.048-3.298.048s-2.445-.009-3.298-.048c-.852-.04-1.433-.174-1.942-.372a3.924 3.924 0 0 1-1.418-.922A3.924 3.924 0 0 1 .42 13.24c-.198-.509-.333-1.09-.372-1.942C.01 10.445 0 10.173 0 8s.01-2.445.048-3.298C.088 3.85.222 3.269.42 2.76c.205-.526.478-.973.922-1.418A3.924 3.924 0 0 1 2.76.42C3.269.222 3.85.087 4.702.048 5.555.01 5.827 0 8 0zm0 3.892a4.108 4.108 0 1 0 0 8.216 4.108 4.108 0 0 0 0-8.216zm5.23-.162a.96.96 0 1 0-1.92 0 .96.96 0 0 0 1.92 0zM8 10.667a2.666 2.666 0 1 1 0-5.333 2.666 2.666 0 0 1 0 5.333z"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 969 B |
1
website/client/assets/svg/silver-guild-badge-large.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 38 38"><title>Silver_Large</title><path d="M20,36.26C8,30.71,5.67,23.8,5.51,10.23L20,3.74l14.49,6.49C34.33,23.8,32,30.71,20,36.26Z" transform="translate(-1 -1)" fill="#c2c2c2"/><path d="M20,6.48l12,5.36c-0.31,11.64-2.58,17-12,21.65-9.38-4.61-11.65-10-12-21.65L20,6.48M20,1L3,8.62C3,23.85,5.07,32.47,20,39,34.93,32.47,37,23.85,37,8.62L20,1h0Z" transform="translate(-1 -1)" fill="#8d8d8d"/><path d="M20,4.29l14,6.27c-0.2,13.64-2.66,19.87-14,25.15C8.68,30.43,6.21,24.19,6,10.55L20,4.29M20,1L3,8.62C3,23.85,5.07,32.47,20,39,34.93,32.47,37,23.85,37,8.62L20,1h0Z" transform="translate(-1 -1)" fill="#afafaf"/><path d="M20,8a2.14,2.14,0,1,0,2.14,2.14A2.14,2.14,0,0,0,20,8m0,5.72c-1.67,0-5,.83-5,2.5V18H25V16.22c0-1.67-3.33-2.5-5-2.5" transform="translate(-1 -1)" fill="#8d8d8d" fill-rule="evenodd"/><path d="M2,27.5A7.5,7.5,0,0,1,9.5,20h21a7.5,7.5,0,1,1,0,15H9.5A7.51,7.51,0,0,1,2,27.5Z" transform="translate(-1 -1)" fill="none" fill-rule="evenodd"/><path d="M2,27.5A7.5,7.5,0,0,1,9.5,20h21a7.5,7.5,0,1,1,0,15H9.5A7.51,7.51,0,0,1,2,27.5Z" transform="translate(-1 -1)" fill="#fff" stroke="#8d8d8d" stroke-miterlimit="10" stroke-width="2"/></svg>
|
||||
|
After Width: | Height: | Size: 1.2 KiB |
1
website/client/assets/svg/silver-guild-badge-small.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 34 38"><title>Silver_Small</title><path d="M20,36.28C7.18,30.61,5.6,24.69,5.5,10.42L20,3.75l14.5,6.67C34.4,24.69,32.82,30.61,20,36.28Z" transform="translate(-3 -1)" fill="#c2c2c2"/><path d="M20,6.5L32,12c-0.15,11.56-1.51,16.62-12,21.51C9.53,28.64,8.17,23.58,8,12L20,6.5M20,1L3,8.82C3,24.47,4.13,32.29,20,39,35.87,32.29,37,24.47,37,8.82L20,1h0Z" transform="translate(-3 -1)" fill="#8d8d8d"/><path d="M20,4.3l14,6.44c-0.12,13.72-1.72,19.51-14,25C7.73,30.25,6.12,24.46,6,10.74L20,4.3M20,1L3,8.82C3,24.47,4.13,32.29,20,39,35.87,32.29,37,24.47,37,8.82L20,1h0Z" transform="translate(-3 -1)" fill="#afafaf"/></svg>
|
||||
|
After Width: | Height: | Size: 693 B |
@@ -1,18 +0,0 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="78" height="76" viewBox="0 0 78 76">
|
||||
<defs>
|
||||
<path id="a" d="M35 0L0 15.235C0 45.705 4.255 62.941 35 76c30.745-13.059 35-30.294 35-60.765L35 0z"/>
|
||||
<rect id="b" width="70" height="24" y="42" rx="12"/>
|
||||
</defs>
|
||||
<g fill="none" fill-rule="evenodd">
|
||||
<g transform="translate(4)">
|
||||
<use fill="#E1E0E3" xlink:href="#a"/>
|
||||
<path stroke="#A5A1AC" stroke-width="10" d="M35 5.453L5.02 18.503c.182 14.831 1.675 23.961 5.417 31.396C14.674 58.32 22.197 64.81 35 70.545 47.803 64.81 55.326 58.32 59.563 49.9c3.742-7.435 5.235-16.565 5.418-31.395l-2.445-1.065L38.473 6.965l-4.442-1.934.969.422z"/>
|
||||
<path stroke="#C3C0C7" stroke-width="6" d="M35 3.272L3.007 17.198c.111 15.9 1.621 25.609 5.643 33.6C13.205 59.848 21.31 66.734 35 72.733c13.691-6 21.795-12.885 26.35-21.935 4.022-7.991 5.532-17.7 5.643-33.6l-3.66-1.593L39.272 5.131l-4.85-2.111.579.252z"/>
|
||||
</g>
|
||||
<g transform="translate(4)">
|
||||
<use fill="#FFF" xlink:href="#b"/>
|
||||
<rect width="74" height="28" x="-2" y="40" stroke="#A5A1AC" stroke-width="4" rx="14"/>
|
||||
</g>
|
||||
<path fill="#A5A1AC" d="M31 30.667V34h16v-3.333C47 27.557 41.668 26 39 26c-2.666 0-8 1.556-8 4.667zM39.006 16A4.005 4.005 0 0 0 35 20c0 2.208 1.795 4 4.006 4A3.993 3.993 0 0 0 43 20c0-2.207-1.781-4-3.994-4"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 1.4 KiB |
9
website/client/assets/svg/tier-champion-2-icon.svg
Normal file
@@ -0,0 +1,9 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="8" height="8" viewBox="0 0 8 8">
|
||||
<defs>
|
||||
<path id="a" d="M290 1705h8v8h-8z"/>
|
||||
</defs>
|
||||
<g fill="none" fill-rule="evenodd" transform="translate(-290 -1705)">
|
||||
<use fill="#3FDAA2" xlink:href="#a"/>
|
||||
<path stroke="#000" stroke-opacity=".1" d="M290.5 1705.5h7v7h-7z"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 403 B |
9
website/client/assets/svg/tier-champion-icon.svg
Normal file
@@ -0,0 +1,9 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="8" height="8" viewBox="0 0 8 8">
|
||||
<defs>
|
||||
<path id="a" d="M290 1649h8v8h-8z"/>
|
||||
</defs>
|
||||
<g fill="none" fill-rule="evenodd" transform="translate(-290 -1649)">
|
||||
<use fill="#FFBE5D" xlink:href="#a"/>
|
||||
<path stroke="#000" stroke-opacity=".1" d="M290.5 1649.5h7v7h-7z"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 403 B |