From 7fc1a89c885a504bc3630f70280b9feb88d34f7e Mon Sep 17 00:00:00 2001 From: mashiro Date: Wed, 1 Jan 2020 10:25:23 +0800 Subject: [PATCH 001/137] backup 2020-01-01 --- docker-compose.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index 20649e4245c067..1dce2dcbfa2a3d 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -34,7 +34,7 @@ services: # - ./elasticsearch:/usr/share/elasticsearch/data web: - build: . + #build: . image: tootsuite/mastodon restart: always env_file: .env.production @@ -45,7 +45,7 @@ services: healthcheck: test: ["CMD-SHELL", "wget -q --spider --proxy=off localhost:3000/health || exit 1"] ports: - - "127.0.0.1:3000:3000" + - "127.0.0.1:97:3000" depends_on: - db - redis @@ -54,7 +54,7 @@ services: - ./public/system:/mastodon/public/system streaming: - build: . + #build: . image: tootsuite/mastodon restart: always env_file: .env.production @@ -65,13 +65,13 @@ services: healthcheck: test: ["CMD-SHELL", "wget -q --spider --proxy=off localhost:4000/api/v1/streaming/health || exit 1"] ports: - - "127.0.0.1:4000:4000" + - "127.0.0.1:98:4000" depends_on: - db - redis sidekiq: - build: . + #build: . image: tootsuite/mastodon restart: always env_file: .env.production From fa3f78e4bf1b5e2b6e8b11f161dd3c02348bf3d4 Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Tue, 23 Jun 2020 02:57:00 +0200 Subject: [PATCH 002/137] Fix other sessions not being logged out on password change While OAuth tokens were immediately revoked, accessing the home controller immediately generated new OAuth tokens and "revived" the session due to a combination of using remember_me tokens and overwriting the `authenticate_user!` method --- app/controllers/auth/passwords_controller.rb | 5 ++++- app/controllers/auth/registrations_controller.rb | 8 +++++++- app/controllers/home_controller.rb | 4 +++- 3 files changed, 14 insertions(+), 3 deletions(-) diff --git a/app/controllers/auth/passwords_controller.rb b/app/controllers/auth/passwords_controller.rb index b98bcecd0d05b3..5db2668f72dde5 100644 --- a/app/controllers/auth/passwords_controller.rb +++ b/app/controllers/auth/passwords_controller.rb @@ -8,7 +8,10 @@ class Auth::PasswordsController < Devise::PasswordsController def update super do |resource| - resource.session_activations.destroy_all if resource.errors.empty? + if resource.errors.empty? + resource.session_activations.destroy_all + resource.forget_me! + end end end diff --git a/app/controllers/auth/registrations_controller.rb b/app/controllers/auth/registrations_controller.rb index 78feb1631e5b95..d319662486a87b 100644 --- a/app/controllers/auth/registrations_controller.rb +++ b/app/controllers/auth/registrations_controller.rb @@ -1,6 +1,8 @@ # frozen_string_literal: true class Auth::RegistrationsController < Devise::RegistrationsController + include Devise::Controllers::Rememberable + layout :determine_layout before_action :set_invite, only: [:new, :create] @@ -24,7 +26,11 @@ def destroy def update super do |resource| - resource.clear_other_sessions(current_session.session_id) if resource.saved_change_to_encrypted_password? + if resource.saved_change_to_encrypted_password? + resource.clear_other_sessions(current_session.session_id) + resource.forget_me! + remember_me(resource) + end end end diff --git a/app/controllers/home_controller.rb b/app/controllers/home_controller.rb index 7c8a18d17cc48a..702889cd030759 100644 --- a/app/controllers/home_controller.rb +++ b/app/controllers/home_controller.rb @@ -1,6 +1,7 @@ # frozen_string_literal: true class HomeController < ApplicationController + before_action :redirect_unauthenticated_to_permalinks! before_action :authenticate_user! before_action :set_referrer_policy_header @@ -10,7 +11,7 @@ def index private - def authenticate_user! + def redirect_unauthenticated_to_permalinks! return if user_signed_in? matches = request.path.match(/\A\/web\/(statuses|accounts)\/([\d]+)\z/) @@ -35,6 +36,7 @@ def authenticate_user! end matches = request.path.match(%r{\A/web/timelines/tag/(?.+)\z}) + redirect_to(matches ? tag_path(CGI.unescape(matches[:tag])) : default_redirect_path) end From 951e997b26cb5bf93539a22221efda97ad70079e Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Wed, 24 Jun 2020 00:21:03 +0200 Subject: [PATCH 003/137] Change rate limits for various paths - Rate limit login attempts by target account - Rate limit password resets and e-mail re-confirmations by target account - Rate limit sign-up/login attempts, password resets, and e-mail re-confirmations by IP like before --- config/initializers/rack_attack.rb | 37 +++++++++++++++------- config/initializers/rack_attack_logging.rb | 1 + 2 files changed, 27 insertions(+), 11 deletions(-) diff --git a/config/initializers/rack_attack.rb b/config/initializers/rack_attack.rb index 09458c54062d10..cd29afac5258bc 100644 --- a/config/initializers/rack_attack.rb +++ b/config/initializers/rack_attack.rb @@ -38,15 +38,6 @@ def paging_request? end end - PROTECTED_PATHS = %w( - /auth/sign_in - /auth - /auth/password - /auth/confirmation - ).freeze - - PROTECTED_PATHS_REGEX = Regexp.union(PROTECTED_PATHS.map { |path| /\A#{Regexp.escape(path)}/ }) - Rack::Attack.safelist('allow from localhost') do |req| req.remote_ip == '127.0.0.1' || req.remote_ip == '::1' end @@ -86,8 +77,32 @@ def paging_request? req.authenticated_user_id if (req.post? && req.path =~ API_DELETE_REBLOG_REGEX) || (req.delete? && req.path =~ API_DELETE_STATUS_REGEX) end - throttle('protected_paths', limit: 25, period: 5.minutes) do |req| - req.remote_ip if req.post? && req.path =~ PROTECTED_PATHS_REGEX + throttle('throttle_sign_up_attempts/ip', limit: 25, period: 5.minutes) do |req| + req.remote_ip if req.post? && req.path == '/auth' + end + + throttle('throttle_password_resets/ip', limit: 25, period: 5.minutes) do |req| + req.remote_ip if req.post? && req.path == '/auth/password' + end + + throttle('throttle_password_resets/email', limit: 5, period: 30.minutes) do |req| + req.params.dig('user', 'email').presence if req.post? && req.path == '/auth/password' + end + + throttle('throttle_email_confirmations/ip', limit: 25, period: 5.minutes) do |req| + req.remote_ip if req.post? && req.path == '/auth/confirmation' + end + + throttle('throttle_email_confirmations/email', limit: 5, period: 30.minutes) do |req| + req.params.dig('user', 'email').presence if req.post? && req.path == '/auth/password' + end + + throttle('throttle_login_attempts/ip', limit: 25, period: 5.minutes) do |req| + req.remote_ip if req.post? && req.path == '/auth/sign_in' + end + + throttle('throttle_login_attempts/email', limit: 25, period: 1.hour) do |req| + req.session[:attempt_user_id] || req.params.dig('user', 'email').presence if req.post? && req.path == '/auth/sign_in' end self.throttled_response = lambda do |env| diff --git a/config/initializers/rack_attack_logging.rb b/config/initializers/rack_attack_logging.rb index c30bd8a6431419..ab4822e96b8bdf 100644 --- a/config/initializers/rack_attack_logging.rb +++ b/config/initializers/rack_attack_logging.rb @@ -2,5 +2,6 @@ req = payload[:request] next unless [:throttle, :blacklist].include? req.env['rack.attack.match_type'] + Rails.logger.info("Rate limit hit (#{req.env['rack.attack.match_type']}): #{req.ip} #{req.request_method} #{req.fullpath}") end From 2d2e3651eee12364b53f658077dae9343aca5e09 Mon Sep 17 00:00:00 2001 From: Thibaut Girka Date: Mon, 22 Jun 2020 21:09:18 +0200 Subject: [PATCH 004/137] Fix media attachment enumeration Signed-off-by: Eugen Rochko --- app/controllers/media_proxy_controller.rb | 5 ++- spec/controllers/media_controller_spec.rb | 3 +- .../media_proxy_controller_spec.rb | 42 +++++++++++++++++++ 3 files changed, 47 insertions(+), 3 deletions(-) create mode 100644 spec/controllers/media_proxy_controller_spec.rb diff --git a/app/controllers/media_proxy_controller.rb b/app/controllers/media_proxy_controller.rb index 014b89de102c68..e36673fc40e0b2 100644 --- a/app/controllers/media_proxy_controller.rb +++ b/app/controllers/media_proxy_controller.rb @@ -2,6 +2,7 @@ class MediaProxyController < ApplicationController include RoutingHelper + include Authorization skip_before_action :store_current_location skip_before_action :require_functional! @@ -10,12 +11,14 @@ class MediaProxyController < ApplicationController rescue_from ActiveRecord::RecordInvalid, with: :not_found rescue_from Mastodon::UnexpectedResponseError, with: :not_found + rescue_from Mastodon::NotPermittedError, with: :not_found rescue_from HTTP::TimeoutError, HTTP::ConnectionError, OpenSSL::SSL::SSLError, with: :internal_server_error def show RedisLock.acquire(lock_options) do |lock| if lock.acquired? - @media_attachment = MediaAttachment.remote.find(params[:id]) + @media_attachment = MediaAttachment.remote.attached.find(params[:id]) + authorize @media_attachment.status, :show? redownload! if @media_attachment.needs_redownload? && !reject_media? else raise Mastodon::RaceConditionError diff --git a/spec/controllers/media_controller_spec.rb b/spec/controllers/media_controller_spec.rb index ac44a76f2091d9..2925aed599af3d 100644 --- a/spec/controllers/media_controller_spec.rb +++ b/spec/controllers/media_controller_spec.rb @@ -28,9 +28,8 @@ end it 'raises when not permitted to view' do - status = Fabricate(:status) + status = Fabricate(:status, visibility: :direct) media_attachment = Fabricate(:media_attachment, status: status) - allow_any_instance_of(MediaController).to receive(:authorize).and_raise(ActiveRecord::RecordNotFound) get :show, params: { id: media_attachment.to_param } expect(response).to have_http_status(404) diff --git a/spec/controllers/media_proxy_controller_spec.rb b/spec/controllers/media_proxy_controller_spec.rb new file mode 100644 index 00000000000000..32510cf43d57e4 --- /dev/null +++ b/spec/controllers/media_proxy_controller_spec.rb @@ -0,0 +1,42 @@ +# frozen_string_literal: true + +require 'rails_helper' + +describe MediaProxyController do + render_views + + before do + stub_request(:get, 'http://example.com/attachment.png').to_return(request_fixture('avatar.txt')) + end + + describe '#show' do + it 'redirects when attached to a status' do + status = Fabricate(:status) + media_attachment = Fabricate(:media_attachment, status: status, remote_url: 'http://example.com/attachment.png') + get :show, params: { id: media_attachment.id } + + expect(response).to have_http_status(302) + end + + it 'responds with missing when there is not an attached status' do + media_attachment = Fabricate(:media_attachment, status: nil, remote_url: 'http://example.com/attachment.png') + get :show, params: { id: media_attachment.id } + + expect(response).to have_http_status(404) + end + + it 'raises when id cant be found' do + get :show, params: { id: 'missing' } + + expect(response).to have_http_status(404) + end + + it 'raises when not permitted to view' do + status = Fabricate(:status, visibility: :direct) + media_attachment = Fabricate(:media_attachment, status: status, remote_url: 'http://example.com/attachment.png') + get :show, params: { id: media_attachment.id } + + expect(response).to have_http_status(404) + end + end +end From 661f3f26b041dd6f1f0ea646e55616f7139bb957 Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Tue, 7 Jul 2020 15:22:47 +0200 Subject: [PATCH 005/137] Bump version to 3.1.5 --- CHANGELOG.md | 7 +++++++ lib/mastodon/version.rb | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7d0110936e2d4b..6296f00167385f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,13 @@ Changelog All notable changes to this project will be documented in this file. +## [v3.1.5] - 2020-07-07 +### Security + +- Fix media attachment enumeration ([ThibG](https://github.com/tootsuite/mastodon/pull/14254)) +- Change rate limits for various paths ([Gargron](https://github.com/tootsuite/mastodon/pull/14253)) +- Fix other sessions not being logged out on password change ([Gargron](https://github.com/tootsuite/mastodon/pull/14252)) + ## [v3.1.4] - 2020-05-14 ### Added diff --git a/lib/mastodon/version.rb b/lib/mastodon/version.rb index f73b8805ad5483..49523520dbc7bc 100644 --- a/lib/mastodon/version.rb +++ b/lib/mastodon/version.rb @@ -13,7 +13,7 @@ def minor end def patch - 4 + 5 end def flags From 192361aa67cf13d4df8c262e7d7f8b12e562a6b5 Mon Sep 17 00:00:00 2001 From: mashiro Date: Wed, 15 Jul 2020 17:51:52 +0800 Subject: [PATCH 006/137] update docker-compose.yml --- docker-compose.yml | 35 +++++++++++++++++++++++++++-------- 1 file changed, 27 insertions(+), 8 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index ebf5faa5f1d2fa..9a16749a83e1fb 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,11 +1,14 @@ -version: '3' +version: '3.7' services: db: restart: always image: postgres:9.6-alpine - shm_size: 256mb + #ports: + #- "0.0.0.0:543:5432" + #- "127.0.0.1:543:5432" networks: + #- external_network - internal_network healthcheck: test: ["CMD", "pg_isready", "-U", "postgres"] @@ -35,8 +38,8 @@ services: # - ./elasticsearch:/usr/share/elasticsearch/data web: - #build: . - image: tootsuite/mastodon + # build: . + image: tootsuite/mastodon:v3.1.5 restart: always env_file: .env.production command: bash -c "rm -f /mastodon/tmp/pids/server.pid; bundle exec rails s -p 3000" @@ -53,10 +56,18 @@ services: # - es volumes: - ./public/system:/mastodon/public/system + deploy: + resources: + limits: + cpus: '1.00' + memory: 400M + #reservations: + # cpus: '0.5' + # memory: 300M streaming: - #build: . - image: tootsuite/mastodon + # build: . + image: tootsuite/mastodon:v3.1.5 restart: always env_file: .env.production command: node ./streaming @@ -72,8 +83,8 @@ services: - redis sidekiq: - #build: . - image: tootsuite/mastodon + # build: . + image: tootsuite/mastodon:v3.1.5 restart: always env_file: .env.production command: bundle exec sidekiq @@ -85,6 +96,14 @@ services: - internal_network volumes: - ./public/system:/mastodon/public/system + deploy: + resources: + limits: + cpus: '1.00' + memory: 300M + #reservations: + # cpus: '0.5' + # memory: 200M ## Uncomment to enable federation with tor instances along with adding the following ENV variables ## http_proxy=http://privoxy:8118 ## ALLOW_ACCESS_TO_HIDDEN_SERVICE=true From ef74d6c7916839af8942ef36b9fb045b6ca0ceff Mon Sep 17 00:00:00 2001 From: mashiro Date: Wed, 15 Jul 2020 17:53:36 +0800 Subject: [PATCH 007/137] update docker-compose.yml --- docker-compose.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index 9a16749a83e1fb..0adbef9fe3f664 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -39,7 +39,7 @@ services: web: # build: . - image: tootsuite/mastodon:v3.1.5 + image: mashirozx/mastodon:v3.1.5 restart: always env_file: .env.production command: bash -c "rm -f /mastodon/tmp/pids/server.pid; bundle exec rails s -p 3000" @@ -67,7 +67,7 @@ services: streaming: # build: . - image: tootsuite/mastodon:v3.1.5 + image: mashirozx/mastodon:v3.1.5 restart: always env_file: .env.production command: node ./streaming @@ -84,7 +84,7 @@ services: sidekiq: # build: . - image: tootsuite/mastodon:v3.1.5 + image: mashirozx/mastodon:v3.1.5 restart: always env_file: .env.production command: bundle exec sidekiq From a5815fc446b4fbddbd18fbb354dea4ddc37a76e6 Mon Sep 17 00:00:00 2001 From: mashiro Date: Wed, 15 Jul 2020 18:33:57 +0800 Subject: [PATCH 008/137] modify MAX_CHARS to 5000 --- .../mastodon/features/compose/components/compose_form.js | 8 +++++--- app/validators/status_length_validator.rb | 2 +- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/app/javascript/mastodon/features/compose/components/compose_form.js b/app/javascript/mastodon/features/compose/components/compose_form.js index 47e189251c9f0d..a702600a28a8db 100644 --- a/app/javascript/mastodon/features/compose/components/compose_form.js +++ b/app/javascript/mastodon/features/compose/components/compose_form.js @@ -21,6 +21,8 @@ import { length } from 'stringz'; import { countableText } from '../util/counter'; import Icon from 'mastodon/components/icon'; +const MAX_CHARS = 5000; + const allowedAroundShortCode = '><\u0085\u0020\u00a0\u1680\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029\u0009\u000a\u000b\u000c\u000d'; const messages = defineMessages({ @@ -88,7 +90,7 @@ class ComposeForm extends ImmutablePureComponent { const { isSubmitting, isChangingUpload, isUploading, anyMedia } = this.props; const fulltext = [this.props.spoilerText, countableText(this.props.text)].join(''); - if (isSubmitting || isUploading || isChangingUpload || length(fulltext) > 500 || (fulltext.length !== 0 && fulltext.trim().length === 0 && !anyMedia)) { + if (isSubmitting || isUploading || isChangingUpload || length(fulltext) > MAX_CHARS || (fulltext.length !== 0 && fulltext.trim().length === 0 && !anyMedia)) { return; } @@ -181,7 +183,7 @@ class ComposeForm extends ImmutablePureComponent { const { intl, onPaste, showSearch, anyMedia } = this.props; const disabled = this.props.isSubmitting; const text = [this.props.spoilerText, countableText(this.props.text)].join(''); - const disabledButton = disabled || this.props.isUploading || this.props.isChangingUpload || length(text) > 500 || (text.length !== 0 && text.trim().length === 0 && !anyMedia); + const disabledButton = disabled || this.props.isUploading || this.props.isChangingUpload || length(text) > MAX_CHARS || (text.length !== 0 && text.trim().length === 0 && !anyMedia); let publishText = ''; if (this.props.privacy === 'private' || this.props.privacy === 'direct') { @@ -243,7 +245,7 @@ class ComposeForm extends ImmutablePureComponent { -
+
diff --git a/app/validators/status_length_validator.rb b/app/validators/status_length_validator.rb index 93bae2fa8403a0..6bb0c61ae025e6 100644 --- a/app/validators/status_length_validator.rb +++ b/app/validators/status_length_validator.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true class StatusLengthValidator < ActiveModel::Validator - MAX_CHARS = 500 + MAX_CHARS = 5000 def validate(status) return unless status.local? && !status.reblog? From ee9c3aaa48b3194e4fab69b53abd78f11918ee9c Mon Sep 17 00:00:00 2001 From: mashiro Date: Wed, 15 Jul 2020 20:57:06 +0800 Subject: [PATCH 009/137] add 8 new themes --- app/javascript/styles/dark-green/diff.scss | 77 ++ .../styles/dark-green/variables.scss | 56 ++ app/javascript/styles/dark-red/diff.scss | 77 ++ app/javascript/styles/dark-red/variables.scss | 56 ++ app/javascript/styles/dark-yellow/diff.scss | 77 ++ .../styles/dark-yellow/variables.scss | 56 ++ app/javascript/styles/dark_green.scss | 3 + app/javascript/styles/dark_red.scss | 3 + app/javascript/styles/dark_yellow.scss | 3 + app/javascript/styles/light-green/diff.scss | 776 +++++++++++++++ .../styles/light-green/variables.scss | 41 + app/javascript/styles/light-red/diff.scss | 776 +++++++++++++++ .../styles/light-red/variables.scss | 41 + app/javascript/styles/light-yellow/diff.scss | 776 +++++++++++++++ .../styles/light-yellow/variables.scss | 41 + app/javascript/styles/light_green.scss | 3 + app/javascript/styles/light_red.scss | 3 + app/javascript/styles/light_yellow.scss | 3 + app/javascript/styles/plugins/boost.scss | 63 ++ .../styles/plugins/fullwidth-media.scss | 49 + app/javascript/styles/sleeping-town.scss | 889 ++++++++++++++++++ app/javascript/styles/witches-town.scss | 60 ++ config/locales/en.yml | 12 +- config/locales/zh-CN.yml | 12 +- config/themes.yml | 8 + docker-compose.yml | 6 +- 26 files changed, 3960 insertions(+), 7 deletions(-) create mode 100644 app/javascript/styles/dark-green/diff.scss create mode 100644 app/javascript/styles/dark-green/variables.scss create mode 100644 app/javascript/styles/dark-red/diff.scss create mode 100644 app/javascript/styles/dark-red/variables.scss create mode 100644 app/javascript/styles/dark-yellow/diff.scss create mode 100644 app/javascript/styles/dark-yellow/variables.scss create mode 100644 app/javascript/styles/dark_green.scss create mode 100644 app/javascript/styles/dark_red.scss create mode 100644 app/javascript/styles/dark_yellow.scss create mode 100644 app/javascript/styles/light-green/diff.scss create mode 100644 app/javascript/styles/light-green/variables.scss create mode 100644 app/javascript/styles/light-red/diff.scss create mode 100644 app/javascript/styles/light-red/variables.scss create mode 100644 app/javascript/styles/light-yellow/diff.scss create mode 100644 app/javascript/styles/light-yellow/variables.scss create mode 100644 app/javascript/styles/light_green.scss create mode 100644 app/javascript/styles/light_red.scss create mode 100644 app/javascript/styles/light_yellow.scss create mode 100644 app/javascript/styles/plugins/boost.scss create mode 100644 app/javascript/styles/plugins/fullwidth-media.scss create mode 100644 app/javascript/styles/sleeping-town.scss create mode 100644 app/javascript/styles/witches-town.scss diff --git a/app/javascript/styles/dark-green/diff.scss b/app/javascript/styles/dark-green/diff.scss new file mode 100644 index 00000000000000..b612b87f4d4a31 --- /dev/null +++ b/app/javascript/styles/dark-green/diff.scss @@ -0,0 +1,77 @@ +// components.scss +.compose-form { + .compose-form__modifiers { + .compose-form__upload { + &-description { + input { + &::placeholder { + opacity: 1; + } + } + } + } + } +} + +.rich-formatting a, +.rich-formatting p a, +.rich-formatting li a, +.landing-page__short-description p a, +.status__content a, +.reply-indicator__content a { + color: lighten($ui-highlight-color, 12%); + text-decoration: none; + + &.mention { + text-decoration: none; + } + + &.mention span { + text-decoration: none; + + &:hover, + &:focus, + &:active { + text-decoration: none; + } + } + + &:hover, + &:focus, + &:active { + text-decoration: none; + } + + &.status__content__spoiler-link { + color: $secondary-text-color; + text-decoration: none; + } +} + +.status__content__read-more-button { + text-decoration: none; + + &:hover, + &:focus, + &:active { + text-decoration: none; + } +} + +.getting-started__footer a { + text-decoration: none; + + &:hover, + &:focus, + &:active { + text-decoration: none; + } +} + +.nothing-here { + color: $darker-text-color; +} + +.public-layout .public-account-header__tabs__tabs .counter.active::after { + border-bottom: 4px solid $ui-highlight-color; +} diff --git a/app/javascript/styles/dark-green/variables.scss b/app/javascript/styles/dark-green/variables.scss new file mode 100644 index 00000000000000..98311fb731d97c --- /dev/null +++ b/app/javascript/styles/dark-green/variables.scss @@ -0,0 +1,56 @@ +// Commonly used web colors +$black: #000000; // Black +$white: #ffffff; // White +$success-green: #79bd9a !default; // Padua +$error-red: #df405a !default; // Cerise +$warning-red: #ff5050 !default; // Sunset Orange +$gold-star: #ca8f04 !default; // Dark Goldenrod + +$red-bookmark: $warning-red; + +// Values from the classic Mastodon UI +$classic-base-color: #282c37; // Midnight Express +$classic-primary-color: #9baec8; // Echo Blue +$classic-secondary-color: #d9e1e8; // Pattens Blue +$classic-highlight-color: #38b208; // Summer Sky + +// Variables for defaults in UI +$base-shadow-color: $black !default; +$base-overlay-background: $black !default; +$base-border-color: $white !default; +$simple-background-color: $white !default; +$valid-value-color: $success-green !default; +$error-value-color: $error-red !default; + +// Tell UI to use selected colors +$ui-base-color: $classic-base-color !default; // Darkest +$ui-base-lighter-color: lighten($ui-base-color, 26%) !default; // Lighter darkest +$ui-primary-color: $classic-primary-color !default; // Lighter +$ui-secondary-color: $classic-secondary-color !default; // Lightest +$ui-highlight-color: $classic-highlight-color !default; + +// Variables for texts +$primary-text-color: $white !default; +$darker-text-color: $ui-primary-color !default; +$dark-text-color: $ui-base-lighter-color !default; +$secondary-text-color: $ui-secondary-color !default; +$highlight-text-color: $ui-highlight-color !default; +$action-button-color: $ui-base-lighter-color !default; +// For texts on inverted backgrounds +$inverted-text-color: $ui-base-color !default; +$lighter-text-color: $ui-base-lighter-color !default; +$light-text-color: $ui-primary-color !default; + +// Language codes that uses CJK fonts +$cjk-langs: ja, ko, zh-CN, zh-HK, zh-TW; + +// Variables for components +$media-modal-media-max-width: 100%; +// put margins on top and bottom of image to avoid the screen covered by image. +$media-modal-media-max-height: 80%; + +$no-gap-breakpoint: 415px; + +$font-sans-serif: 'mastodon-font-sans-serif' !default; +$font-display: 'mastodon-font-display' !default; +$font-monospace: 'mastodon-font-monospace' !default; diff --git a/app/javascript/styles/dark-red/diff.scss b/app/javascript/styles/dark-red/diff.scss new file mode 100644 index 00000000000000..b612b87f4d4a31 --- /dev/null +++ b/app/javascript/styles/dark-red/diff.scss @@ -0,0 +1,77 @@ +// components.scss +.compose-form { + .compose-form__modifiers { + .compose-form__upload { + &-description { + input { + &::placeholder { + opacity: 1; + } + } + } + } + } +} + +.rich-formatting a, +.rich-formatting p a, +.rich-formatting li a, +.landing-page__short-description p a, +.status__content a, +.reply-indicator__content a { + color: lighten($ui-highlight-color, 12%); + text-decoration: none; + + &.mention { + text-decoration: none; + } + + &.mention span { + text-decoration: none; + + &:hover, + &:focus, + &:active { + text-decoration: none; + } + } + + &:hover, + &:focus, + &:active { + text-decoration: none; + } + + &.status__content__spoiler-link { + color: $secondary-text-color; + text-decoration: none; + } +} + +.status__content__read-more-button { + text-decoration: none; + + &:hover, + &:focus, + &:active { + text-decoration: none; + } +} + +.getting-started__footer a { + text-decoration: none; + + &:hover, + &:focus, + &:active { + text-decoration: none; + } +} + +.nothing-here { + color: $darker-text-color; +} + +.public-layout .public-account-header__tabs__tabs .counter.active::after { + border-bottom: 4px solid $ui-highlight-color; +} diff --git a/app/javascript/styles/dark-red/variables.scss b/app/javascript/styles/dark-red/variables.scss new file mode 100644 index 00000000000000..d8456fe128f6e8 --- /dev/null +++ b/app/javascript/styles/dark-red/variables.scss @@ -0,0 +1,56 @@ +// Commonly used web colors +$black: #000000; // Black +$white: #ffffff; // White +$success-green: #79bd9a !default; // Padua +$error-red: #df405a !default; // Cerise +$warning-red: #ff5050 !default; // Sunset Orange +$gold-star: #ca8f04 !default; // Dark Goldenrod + +$red-bookmark: $warning-red; + +// Values from the classic Mastodon UI +$classic-base-color: #282c37; // Midnight Express +$classic-primary-color: #9baec8; // Echo Blue +$classic-secondary-color: #d9e1e8; // Pattens Blue +$classic-highlight-color: #d92b2b; // Summer Sky + +// Variables for defaults in UI +$base-shadow-color: $black !default; +$base-overlay-background: $black !default; +$base-border-color: $white !default; +$simple-background-color: $white !default; +$valid-value-color: $success-green !default; +$error-value-color: $error-red !default; + +// Tell UI to use selected colors +$ui-base-color: $classic-base-color !default; // Darkest +$ui-base-lighter-color: lighten($ui-base-color, 26%) !default; // Lighter darkest +$ui-primary-color: $classic-primary-color !default; // Lighter +$ui-secondary-color: $classic-secondary-color !default; // Lightest +$ui-highlight-color: $classic-highlight-color !default; + +// Variables for texts +$primary-text-color: $white !default; +$darker-text-color: $ui-primary-color !default; +$dark-text-color: $ui-base-lighter-color !default; +$secondary-text-color: $ui-secondary-color !default; +$highlight-text-color: $ui-highlight-color !default; +$action-button-color: $ui-base-lighter-color !default; +// For texts on inverted backgrounds +$inverted-text-color: $ui-base-color !default; +$lighter-text-color: $ui-base-lighter-color !default; +$light-text-color: $ui-primary-color !default; + +// Language codes that uses CJK fonts +$cjk-langs: ja, ko, zh-CN, zh-HK, zh-TW; + +// Variables for components +$media-modal-media-max-width: 100%; +// put margins on top and bottom of image to avoid the screen covered by image. +$media-modal-media-max-height: 80%; + +$no-gap-breakpoint: 415px; + +$font-sans-serif: 'mastodon-font-sans-serif' !default; +$font-display: 'mastodon-font-display' !default; +$font-monospace: 'mastodon-font-monospace' !default; diff --git a/app/javascript/styles/dark-yellow/diff.scss b/app/javascript/styles/dark-yellow/diff.scss new file mode 100644 index 00000000000000..b612b87f4d4a31 --- /dev/null +++ b/app/javascript/styles/dark-yellow/diff.scss @@ -0,0 +1,77 @@ +// components.scss +.compose-form { + .compose-form__modifiers { + .compose-form__upload { + &-description { + input { + &::placeholder { + opacity: 1; + } + } + } + } + } +} + +.rich-formatting a, +.rich-formatting p a, +.rich-formatting li a, +.landing-page__short-description p a, +.status__content a, +.reply-indicator__content a { + color: lighten($ui-highlight-color, 12%); + text-decoration: none; + + &.mention { + text-decoration: none; + } + + &.mention span { + text-decoration: none; + + &:hover, + &:focus, + &:active { + text-decoration: none; + } + } + + &:hover, + &:focus, + &:active { + text-decoration: none; + } + + &.status__content__spoiler-link { + color: $secondary-text-color; + text-decoration: none; + } +} + +.status__content__read-more-button { + text-decoration: none; + + &:hover, + &:focus, + &:active { + text-decoration: none; + } +} + +.getting-started__footer a { + text-decoration: none; + + &:hover, + &:focus, + &:active { + text-decoration: none; + } +} + +.nothing-here { + color: $darker-text-color; +} + +.public-layout .public-account-header__tabs__tabs .counter.active::after { + border-bottom: 4px solid $ui-highlight-color; +} diff --git a/app/javascript/styles/dark-yellow/variables.scss b/app/javascript/styles/dark-yellow/variables.scss new file mode 100644 index 00000000000000..2682289d66637a --- /dev/null +++ b/app/javascript/styles/dark-yellow/variables.scss @@ -0,0 +1,56 @@ +// Commonly used web colors +$black: #000000; // Black +$white: #ffffff; // White +$success-green: #79bd9a !default; // Padua +$error-red: #df405a !default; // Cerise +$warning-red: #ff5050 !default; // Sunset Orange +$gold-star: #ca8f04 !default; // Dark Goldenrod + +$red-bookmark: $warning-red; + +// Values from the classic Mastodon UI +$classic-base-color: #282c37; // Midnight Express +$classic-primary-color: #9baec8; // Echo Blue +$classic-secondary-color: #d9e1e8; // Pattens Blue +$classic-highlight-color: #dec80f; // Summer Sky + +// Variables for defaults in UI +$base-shadow-color: $black !default; +$base-overlay-background: $black !default; +$base-border-color: $white !default; +$simple-background-color: $white !default; +$valid-value-color: $success-green !default; +$error-value-color: $error-red !default; + +// Tell UI to use selected colors +$ui-base-color: $classic-base-color !default; // Darkest +$ui-base-lighter-color: lighten($ui-base-color, 26%) !default; // Lighter darkest +$ui-primary-color: $classic-primary-color !default; // Lighter +$ui-secondary-color: $classic-secondary-color !default; // Lightest +$ui-highlight-color: $classic-highlight-color !default; + +// Variables for texts +$primary-text-color: $white !default; +$darker-text-color: $ui-primary-color !default; +$dark-text-color: $ui-base-lighter-color !default; +$secondary-text-color: $ui-secondary-color !default; +$highlight-text-color: $ui-highlight-color !default; +$action-button-color: $ui-base-lighter-color !default; +// For texts on inverted backgrounds +$inverted-text-color: $ui-base-color !default; +$lighter-text-color: $ui-base-lighter-color !default; +$light-text-color: $ui-primary-color !default; + +// Language codes that uses CJK fonts +$cjk-langs: ja, ko, zh-CN, zh-HK, zh-TW; + +// Variables for components +$media-modal-media-max-width: 100%; +// put margins on top and bottom of image to avoid the screen covered by image. +$media-modal-media-max-height: 80%; + +$no-gap-breakpoint: 415px; + +$font-sans-serif: 'mastodon-font-sans-serif' !default; +$font-display: 'mastodon-font-display' !default; +$font-monospace: 'mastodon-font-monospace' !default; diff --git a/app/javascript/styles/dark_green.scss b/app/javascript/styles/dark_green.scss new file mode 100644 index 00000000000000..9e70bafcc3a04a --- /dev/null +++ b/app/javascript/styles/dark_green.scss @@ -0,0 +1,3 @@ +@import 'dark-green/variables'; +@import 'application'; +@import 'dark-green/diff'; diff --git a/app/javascript/styles/dark_red.scss b/app/javascript/styles/dark_red.scss new file mode 100644 index 00000000000000..60c35c04e48258 --- /dev/null +++ b/app/javascript/styles/dark_red.scss @@ -0,0 +1,3 @@ +@import 'dark-red/variables'; +@import 'application'; +@import 'dark-red/diff'; diff --git a/app/javascript/styles/dark_yellow.scss b/app/javascript/styles/dark_yellow.scss new file mode 100644 index 00000000000000..47c69e8f192c9c --- /dev/null +++ b/app/javascript/styles/dark_yellow.scss @@ -0,0 +1,3 @@ +@import 'dark-yellow/variables'; +@import 'application'; +@import 'dark-yellow/diff'; diff --git a/app/javascript/styles/light-green/diff.scss b/app/javascript/styles/light-green/diff.scss new file mode 100644 index 00000000000000..7a846bcc678ff4 --- /dev/null +++ b/app/javascript/styles/light-green/diff.scss @@ -0,0 +1,776 @@ +// Notes! +// Sass color functions, "darken" and "lighten" are automatically replaced. + +html { + scrollbar-color: $ui-base-color rgba($ui-base-color, 0.25); +} + +// Change the colors of button texts +.button { + color: $white; + + &.button-alternative-2 { + color: $white; + } +} + +.status-card__actions button, +.status-card__actions a { + color: rgba($white, 0.8); + + &:hover, + &:active, + &:focus { + color: $white; + } +} + +// Change default background colors of columns +.column > .scrollable, +.getting-started, +.column-inline-form, +.error-column, +.regeneration-indicator { + background: $white; + border: 1px solid lighten($ui-base-color, 8%); + border-top: 0; +} + +.directory__card__img { + background: lighten($ui-base-color, 12%); +} + +.filter-form, +.directory__card__bar { + background: $white; + border-bottom: 1px solid lighten($ui-base-color, 8%); +} + +.scrollable .directory__list { + width: calc(100% + 2px); + margin-left: -1px; + margin-right: -1px; +} + +.directory__card, +.table-of-contents { + border: 1px solid lighten($ui-base-color, 8%); +} + +.column-back-button, +.column-header { + background: $white; + border: 1px solid lighten($ui-base-color, 8%); + + @media screen and (max-width: $no-gap-breakpoint) { + border-top: 0; + } + + &--slim-button { + top: -50px; + right: 0; + } +} + +.column-header__back-button, +.column-header__button, +.column-header__button.active, +.account__header__bar, +.directory__card__extra { + background: $white; +} + +.column-header__button.active { + color: $ui-highlight-color; + + &:hover, + &:active, + &:focus { + color: $ui-highlight-color; + background: $white; + } +} + +.account__header__bar .avatar .account__avatar { + border-color: $white; +} + +.getting-started__footer a { + color: $ui-secondary-color; + text-decoration: underline; +} + +.confirmation-modal__secondary-button, +.confirmation-modal__cancel-button, +.mute-modal__cancel-button, +.block-modal__cancel-button { + color: lighten($ui-base-color, 26%); + + &:hover, + &:focus, + &:active { + color: $primary-text-color; + } +} + +.column-subheading { + background: darken($ui-base-color, 4%); + border-bottom: 1px solid lighten($ui-base-color, 8%); +} + +.getting-started, +.scrollable { + .column-link { + background: $white; + border-bottom: 1px solid lighten($ui-base-color, 8%); + + &:hover, + &:active, + &:focus { + background: $ui-base-color; + } + } +} + +.getting-started .navigation-bar { + border-top: 1px solid lighten($ui-base-color, 8%); + border-bottom: 1px solid lighten($ui-base-color, 8%); + + @media screen and (max-width: $no-gap-breakpoint) { + border-top: 0; + } +} + +.compose-form__autosuggest-wrapper, +.poll__option input[type="text"], +.compose-form .spoiler-input__input, +.compose-form__poll-wrapper select, +.search__input, +.setting-text, +.box-widget input[type="text"], +.box-widget input[type="email"], +.box-widget input[type="password"], +.box-widget textarea, +.statuses-grid .detailed-status, +.audio-player { + border: 1px solid lighten($ui-base-color, 8%); +} + +.search__input { + @media screen and (max-width: $no-gap-breakpoint) { + border-top: 0; + border-bottom: 0; + } +} + +.list-editor .search .search__input { + border-top: 0; + border-bottom: 0; +} + +.compose-form__poll-wrapper select { + background: $simple-background-color url("data:image/svg+xml;utf8,") no-repeat right 8px center / auto 16px; +} + +.compose-form__poll-wrapper, +.compose-form__poll-wrapper .poll__footer { + border-top-color: lighten($ui-base-color, 8%); +} + +.notification__filter-bar { + border: 1px solid lighten($ui-base-color, 8%); + border-top: 0; +} + +.compose-form .compose-form__buttons-wrapper { + background: $ui-base-color; + border: 1px solid lighten($ui-base-color, 8%); + border-top: 0; +} + +.drawer__header, +.drawer__inner { + background: $white; + border: 1px solid lighten($ui-base-color, 8%); +} + +.drawer__inner__mastodon { + background: $white url('data:image/svg+xml;utf8,') no-repeat bottom / 100% auto; +} + +// Change the colors used in compose-form +.compose-form { + .compose-form__modifiers { + .compose-form__upload__actions .icon-button { + color: lighten($white, 7%); + + &:active, + &:focus, + &:hover { + color: $white; + } + } + + .compose-form__upload-description input { + color: lighten($white, 7%); + + &::placeholder { + color: lighten($white, 7%); + } + } + } + + .compose-form__buttons-wrapper { + background: darken($ui-base-color, 6%); + } + + .autosuggest-textarea__suggestions { + background: darken($ui-base-color, 6%); + } + + .autosuggest-textarea__suggestions__item { + &:hover, + &:focus, + &:active, + &.selected { + background: lighten($ui-base-color, 4%); + } + } +} + +.emoji-mart-bar { + border-color: lighten($ui-base-color, 4%); + + &:first-child { + background: darken($ui-base-color, 6%); + } +} + +.emoji-mart-search input { + background: rgba($ui-base-color, 0.3); + border-color: $ui-base-color; +} + +// Change the background colors of statuses +.focusable:focus { + background: $ui-base-color; +} + +.status.status-direct { + background: lighten($ui-base-color, 4%); +} + +.focusable:focus .status.status-direct { + background: lighten($ui-base-color, 8%); +} + +.detailed-status, +.detailed-status__action-bar { + background: $white; +} + +// Change the background colors of status__content__spoiler-link +.reply-indicator__content .status__content__spoiler-link, +.status__content .status__content__spoiler-link { + background: $ui-base-color; + + &:hover { + background: lighten($ui-base-color, 4%); + } +} + +// Change the background colors of media and video spoilers +.media-spoiler, +.video-player__spoiler { + background: $ui-base-color; +} + +.privacy-dropdown.active .privacy-dropdown__value.active .icon-button { + color: $white; +} + +.account-gallery__item a { + background-color: $ui-base-color; +} + +// Change the colors used in the dropdown menu +.dropdown-menu { + background: $white; + + &__arrow { + &.left { + border-left-color: $white; + } + + &.top { + border-top-color: $white; + } + + &.bottom { + border-bottom-color: $white; + } + + &.right { + border-right-color: $white; + } + } + + &__item { + a { + background: $white; + color: $darker-text-color; + } + } +} + +// Change the text colors on inverted background +.privacy-dropdown__option.active, +.privacy-dropdown__option:hover, +.privacy-dropdown__option.active .privacy-dropdown__option__content, +.privacy-dropdown__option.active .privacy-dropdown__option__content strong, +.privacy-dropdown__option:hover .privacy-dropdown__option__content, +.privacy-dropdown__option:hover .privacy-dropdown__option__content strong, +.dropdown-menu__item a:active, +.dropdown-menu__item a:focus, +.dropdown-menu__item a:hover, +.actions-modal ul li:not(:empty) a.active, +.actions-modal ul li:not(:empty) a.active button, +.actions-modal ul li:not(:empty) a:active, +.actions-modal ul li:not(:empty) a:active button, +.actions-modal ul li:not(:empty) a:focus, +.actions-modal ul li:not(:empty) a:focus button, +.actions-modal ul li:not(:empty) a:hover, +.actions-modal ul li:not(:empty) a:hover button, +.admin-wrapper .sidebar ul .simple-navigation-active-leaf a, +.simple_form .block-button, +.simple_form .button, +.simple_form button { + color: $white; +} + +.dropdown-menu__separator { + border-bottom-color: lighten($ui-base-color, 4%); +} + +// Change the background colors of modals +.actions-modal, +.boost-modal, +.confirmation-modal, +.mute-modal, +.block-modal, +.report-modal, +.embed-modal, +.error-modal, +.onboarding-modal, +.report-modal__comment .setting-text__wrapper, +.report-modal__comment .setting-text { + background: $white; + border: 1px solid lighten($ui-base-color, 8%); +} + +.report-modal__comment { + border-right-color: lighten($ui-base-color, 8%); +} + +.report-modal__container { + border-top-color: lighten($ui-base-color, 8%); +} + +.column-header__collapsible-inner { + background: darken($ui-base-color, 4%); + border: 1px solid lighten($ui-base-color, 8%); + border-top: 0; +} + +.focal-point__preview strong { + color: $white; +} + +.boost-modal__action-bar, +.confirmation-modal__action-bar, +.mute-modal__action-bar, +.block-modal__action-bar, +.onboarding-modal__paginator, +.error-modal__footer { + background: darken($ui-base-color, 6%); + + .onboarding-modal__nav, + .error-modal__nav { + &:hover, + &:focus, + &:active { + background-color: darken($ui-base-color, 12%); + } + } +} + +.display-case__case { + background: $white; +} + +.embed-modal .embed-modal__container .embed-modal__html { + background: $white; + border: 1px solid lighten($ui-base-color, 8%); + + &:focus { + border-color: lighten($ui-base-color, 12%); + background: $white; + } +} + +.react-toggle-track { + background: $ui-secondary-color; +} + +.react-toggle:hover:not(.react-toggle--disabled) .react-toggle-track { + background: darken($ui-secondary-color, 10%); +} + +.react-toggle.react-toggle--checked:hover:not(.react-toggle--disabled) .react-toggle-track { + background: lighten($ui-highlight-color, 10%); +} + +// Change the default color used for the text in an empty column or on the error column +.empty-column-indicator, +.error-column { + color: $primary-text-color; + background: $white; +} + +.tabs-bar { + background: $white; + border: 1px solid lighten($ui-base-color, 8%); + border-bottom: 0; + + @media screen and (max-width: $no-gap-breakpoint) { + border-top: 0; + } + + &__link { + padding-bottom: 14px; + border-bottom-width: 1px; + border-bottom-color: lighten($ui-base-color, 8%); + + &:hover, + &:active, + &:focus { + background: $ui-base-color; + } + + &.active { + &:hover, + &:active, + &:focus { + background: transparent; + border-bottom-color: $ui-highlight-color; + } + } + } +} + +// Change the default colors used on some parts of the profile pages +.activity-stream-tabs { + background: $account-background-color; + border-bottom-color: lighten($ui-base-color, 8%); +} + +.box-widget, +.nothing-here, +.page-header, +.directory__tag > a, +.directory__tag > div, +.landing-page__call-to-action, +.contact-widget, +.landing .hero-widget__text, +.landing-page__information.contact-widget { + background: $white; + border: 1px solid lighten($ui-base-color, 8%); + + @media screen and (max-width: $no-gap-breakpoint) { + border-left: 0; + border-right: 0; + border-top: 0; + } +} + +.landing .hero-widget__text { + border-top: 0; + border-bottom: 0; +} + +.simple_form { + input[type=text], + input[type=number], + input[type=email], + input[type=password], + textarea { + &:hover { + border-color: lighten($ui-base-color, 12%); + } + } +} + +.landing .hero-widget__footer { + background: $white; + border: 1px solid lighten($ui-base-color, 8%); + border-top: 0; + + @media screen and (max-width: $no-gap-breakpoint) { + border: 0; + } +} + +.brand__tagline { + color: $ui-secondary-color; +} + +.directory__tag > a { + &:hover, + &:active, + &:focus { + background: $ui-base-color; + } + + @media screen and (max-width: $no-gap-breakpoint) { + border: 0; + } +} + +.directory__tag.active > a, +.directory__tag.active > div { + border-color: $ui-highlight-color; + + &, + h4, + h4 small, + .fa, + .trends__item__current { + color: $white; + } + + &:hover, + &:active, + &:focus { + background: $ui-highlight-color; + } +} + +.batch-table { + &__toolbar, + &__row, + .nothing-here { + border-color: lighten($ui-base-color, 8%); + } +} + +.activity-stream { + border: 1px solid lighten($ui-base-color, 8%); + + &--under-tabs { + border-top: 0; + } + + .entry { + background: $account-background-color; + + .detailed-status.light, + .more.light, + .status.light { + border-bottom-color: lighten($ui-base-color, 8%); + } + } + + .status.light { + .status__content { + color: $primary-text-color; + } + + .display-name { + strong { + color: $primary-text-color; + } + } + } +} + +.accounts-grid { + .account-grid-card { + .controls { + .icon-button { + color: $darker-text-color; + } + } + + .name { + a { + color: $primary-text-color; + } + } + + .username { + color: $darker-text-color; + } + + .account__header__content { + color: $primary-text-color; + } + } +} + +.simple_form, +.table-form { + .warning { + box-shadow: none; + background: rgba($error-red, 0.5); + text-shadow: none; + } + + .recommended { + border-color: $ui-highlight-color; + color: $ui-highlight-color; + background-color: rgba($ui-highlight-color, 0.1); + } +} + +.compose-form .compose-form__warning { + border-color: $ui-highlight-color; + background-color: rgba($ui-highlight-color, 0.1); + + &, + a { + color: $ui-highlight-color; + } +} + +.status__content, +.reply-indicator__content { + a { + color: $highlight-text-color; + } +} + +.button.logo-button { + color: $white; + + svg { + fill: $white; + } +} + +.public-layout { + .account__section-headline { + border: 1px solid lighten($ui-base-color, 8%); + + @media screen and (max-width: $no-gap-breakpoint) { + border-top: 0; + } + } + + .header, + .public-account-header, + .public-account-bio { + box-shadow: none; + } + + .public-account-bio, + .hero-widget__text { + background: $account-background-color; + border: 1px solid lighten($ui-base-color, 8%); + } + + .header { + background: $ui-base-color; + border: 1px solid lighten($ui-base-color, 8%); + + @media screen and (max-width: $no-gap-breakpoint) { + border: 0; + } + + .brand { + &:hover, + &:focus, + &:active { + background: lighten($ui-base-color, 4%); + } + } + } + + .public-account-header { + &__image { + background: lighten($ui-base-color, 12%); + + &::after { + box-shadow: none; + } + } + + &__bar { + &::before { + background: $account-background-color; + border: 1px solid lighten($ui-base-color, 8%); + border-top: 0; + } + + .avatar img { + border-color: $account-background-color; + } + + @media screen and (max-width: $no-columns-breakpoint) { + background: $account-background-color; + border: 1px solid lighten($ui-base-color, 8%); + border-top: 0; + } + } + + &__tabs { + &__name { + h1, + h1 small { + color: $white; + + @media screen and (max-width: $no-columns-breakpoint) { + color: $primary-text-color; + } + } + } + } + + &__extra { + .public-account-bio { + border: 0; + } + + .public-account-bio .account__header__fields { + border-color: lighten($ui-base-color, 8%); + } + } + } +} + +.notification__filter-bar button.active::after, +.account__section-headline a.active::after { + border-color: transparent transparent $white; +} + +.hero-widget, +.box-widget, +.contact-widget, +.landing-page__information.contact-widget, +.moved-account-widget, +.memoriam-widget, +.activity-stream, +.nothing-here, +.directory__tag > a, +.directory__tag > div, +.card > a, +.page-header, +.compose-form .compose-form__warning { + box-shadow: none; +} + +.audio-player .video-player__controls button, +.audio-player .video-player__time-sep, +.audio-player .video-player__time-current, +.audio-player .video-player__time-total { + color: $primary-text-color; +} diff --git a/app/javascript/styles/light-green/variables.scss b/app/javascript/styles/light-green/variables.scss new file mode 100644 index 00000000000000..8c2ddee02dd83e --- /dev/null +++ b/app/javascript/styles/light-green/variables.scss @@ -0,0 +1,41 @@ +// Dependent colors +$black: #000000; +$white: #ffffff; + +$classic-base-color: #282c37; +$classic-primary-color: #9baec8; +$classic-secondary-color: #d9e1e8; +$classic-highlight-color: #38b208; + +// Differences +$success-green: lighten(#3c754d, 8%); + +$base-overlay-background: $white !default; +$valid-value-color: $success-green !default; + +$ui-base-color: $classic-secondary-color !default; +$ui-base-lighter-color: #b0c0cf; +$ui-primary-color: #9bcbed; +$ui-secondary-color: $classic-base-color !default; +$ui-highlight-color: #38b208; + +$primary-text-color: $black !default; +$darker-text-color: $classic-base-color !default; +$dark-text-color: #444b5d; +$action-button-color: #606984; + +$inverted-text-color: $black !default; +$lighter-text-color: $classic-base-color !default; +$light-text-color: #444b5d; + +//Newly added colors +$account-background-color: $white !default; + +//Invert darkened and lightened colors +@function darken($color, $amount) { + @return hsl(hue($color), saturation($color), lightness($color) + $amount); +} + +@function lighten($color, $amount) { + @return hsl(hue($color), saturation($color), lightness($color) - $amount); +} diff --git a/app/javascript/styles/light-red/diff.scss b/app/javascript/styles/light-red/diff.scss new file mode 100644 index 00000000000000..7a846bcc678ff4 --- /dev/null +++ b/app/javascript/styles/light-red/diff.scss @@ -0,0 +1,776 @@ +// Notes! +// Sass color functions, "darken" and "lighten" are automatically replaced. + +html { + scrollbar-color: $ui-base-color rgba($ui-base-color, 0.25); +} + +// Change the colors of button texts +.button { + color: $white; + + &.button-alternative-2 { + color: $white; + } +} + +.status-card__actions button, +.status-card__actions a { + color: rgba($white, 0.8); + + &:hover, + &:active, + &:focus { + color: $white; + } +} + +// Change default background colors of columns +.column > .scrollable, +.getting-started, +.column-inline-form, +.error-column, +.regeneration-indicator { + background: $white; + border: 1px solid lighten($ui-base-color, 8%); + border-top: 0; +} + +.directory__card__img { + background: lighten($ui-base-color, 12%); +} + +.filter-form, +.directory__card__bar { + background: $white; + border-bottom: 1px solid lighten($ui-base-color, 8%); +} + +.scrollable .directory__list { + width: calc(100% + 2px); + margin-left: -1px; + margin-right: -1px; +} + +.directory__card, +.table-of-contents { + border: 1px solid lighten($ui-base-color, 8%); +} + +.column-back-button, +.column-header { + background: $white; + border: 1px solid lighten($ui-base-color, 8%); + + @media screen and (max-width: $no-gap-breakpoint) { + border-top: 0; + } + + &--slim-button { + top: -50px; + right: 0; + } +} + +.column-header__back-button, +.column-header__button, +.column-header__button.active, +.account__header__bar, +.directory__card__extra { + background: $white; +} + +.column-header__button.active { + color: $ui-highlight-color; + + &:hover, + &:active, + &:focus { + color: $ui-highlight-color; + background: $white; + } +} + +.account__header__bar .avatar .account__avatar { + border-color: $white; +} + +.getting-started__footer a { + color: $ui-secondary-color; + text-decoration: underline; +} + +.confirmation-modal__secondary-button, +.confirmation-modal__cancel-button, +.mute-modal__cancel-button, +.block-modal__cancel-button { + color: lighten($ui-base-color, 26%); + + &:hover, + &:focus, + &:active { + color: $primary-text-color; + } +} + +.column-subheading { + background: darken($ui-base-color, 4%); + border-bottom: 1px solid lighten($ui-base-color, 8%); +} + +.getting-started, +.scrollable { + .column-link { + background: $white; + border-bottom: 1px solid lighten($ui-base-color, 8%); + + &:hover, + &:active, + &:focus { + background: $ui-base-color; + } + } +} + +.getting-started .navigation-bar { + border-top: 1px solid lighten($ui-base-color, 8%); + border-bottom: 1px solid lighten($ui-base-color, 8%); + + @media screen and (max-width: $no-gap-breakpoint) { + border-top: 0; + } +} + +.compose-form__autosuggest-wrapper, +.poll__option input[type="text"], +.compose-form .spoiler-input__input, +.compose-form__poll-wrapper select, +.search__input, +.setting-text, +.box-widget input[type="text"], +.box-widget input[type="email"], +.box-widget input[type="password"], +.box-widget textarea, +.statuses-grid .detailed-status, +.audio-player { + border: 1px solid lighten($ui-base-color, 8%); +} + +.search__input { + @media screen and (max-width: $no-gap-breakpoint) { + border-top: 0; + border-bottom: 0; + } +} + +.list-editor .search .search__input { + border-top: 0; + border-bottom: 0; +} + +.compose-form__poll-wrapper select { + background: $simple-background-color url("data:image/svg+xml;utf8,") no-repeat right 8px center / auto 16px; +} + +.compose-form__poll-wrapper, +.compose-form__poll-wrapper .poll__footer { + border-top-color: lighten($ui-base-color, 8%); +} + +.notification__filter-bar { + border: 1px solid lighten($ui-base-color, 8%); + border-top: 0; +} + +.compose-form .compose-form__buttons-wrapper { + background: $ui-base-color; + border: 1px solid lighten($ui-base-color, 8%); + border-top: 0; +} + +.drawer__header, +.drawer__inner { + background: $white; + border: 1px solid lighten($ui-base-color, 8%); +} + +.drawer__inner__mastodon { + background: $white url('data:image/svg+xml;utf8,') no-repeat bottom / 100% auto; +} + +// Change the colors used in compose-form +.compose-form { + .compose-form__modifiers { + .compose-form__upload__actions .icon-button { + color: lighten($white, 7%); + + &:active, + &:focus, + &:hover { + color: $white; + } + } + + .compose-form__upload-description input { + color: lighten($white, 7%); + + &::placeholder { + color: lighten($white, 7%); + } + } + } + + .compose-form__buttons-wrapper { + background: darken($ui-base-color, 6%); + } + + .autosuggest-textarea__suggestions { + background: darken($ui-base-color, 6%); + } + + .autosuggest-textarea__suggestions__item { + &:hover, + &:focus, + &:active, + &.selected { + background: lighten($ui-base-color, 4%); + } + } +} + +.emoji-mart-bar { + border-color: lighten($ui-base-color, 4%); + + &:first-child { + background: darken($ui-base-color, 6%); + } +} + +.emoji-mart-search input { + background: rgba($ui-base-color, 0.3); + border-color: $ui-base-color; +} + +// Change the background colors of statuses +.focusable:focus { + background: $ui-base-color; +} + +.status.status-direct { + background: lighten($ui-base-color, 4%); +} + +.focusable:focus .status.status-direct { + background: lighten($ui-base-color, 8%); +} + +.detailed-status, +.detailed-status__action-bar { + background: $white; +} + +// Change the background colors of status__content__spoiler-link +.reply-indicator__content .status__content__spoiler-link, +.status__content .status__content__spoiler-link { + background: $ui-base-color; + + &:hover { + background: lighten($ui-base-color, 4%); + } +} + +// Change the background colors of media and video spoilers +.media-spoiler, +.video-player__spoiler { + background: $ui-base-color; +} + +.privacy-dropdown.active .privacy-dropdown__value.active .icon-button { + color: $white; +} + +.account-gallery__item a { + background-color: $ui-base-color; +} + +// Change the colors used in the dropdown menu +.dropdown-menu { + background: $white; + + &__arrow { + &.left { + border-left-color: $white; + } + + &.top { + border-top-color: $white; + } + + &.bottom { + border-bottom-color: $white; + } + + &.right { + border-right-color: $white; + } + } + + &__item { + a { + background: $white; + color: $darker-text-color; + } + } +} + +// Change the text colors on inverted background +.privacy-dropdown__option.active, +.privacy-dropdown__option:hover, +.privacy-dropdown__option.active .privacy-dropdown__option__content, +.privacy-dropdown__option.active .privacy-dropdown__option__content strong, +.privacy-dropdown__option:hover .privacy-dropdown__option__content, +.privacy-dropdown__option:hover .privacy-dropdown__option__content strong, +.dropdown-menu__item a:active, +.dropdown-menu__item a:focus, +.dropdown-menu__item a:hover, +.actions-modal ul li:not(:empty) a.active, +.actions-modal ul li:not(:empty) a.active button, +.actions-modal ul li:not(:empty) a:active, +.actions-modal ul li:not(:empty) a:active button, +.actions-modal ul li:not(:empty) a:focus, +.actions-modal ul li:not(:empty) a:focus button, +.actions-modal ul li:not(:empty) a:hover, +.actions-modal ul li:not(:empty) a:hover button, +.admin-wrapper .sidebar ul .simple-navigation-active-leaf a, +.simple_form .block-button, +.simple_form .button, +.simple_form button { + color: $white; +} + +.dropdown-menu__separator { + border-bottom-color: lighten($ui-base-color, 4%); +} + +// Change the background colors of modals +.actions-modal, +.boost-modal, +.confirmation-modal, +.mute-modal, +.block-modal, +.report-modal, +.embed-modal, +.error-modal, +.onboarding-modal, +.report-modal__comment .setting-text__wrapper, +.report-modal__comment .setting-text { + background: $white; + border: 1px solid lighten($ui-base-color, 8%); +} + +.report-modal__comment { + border-right-color: lighten($ui-base-color, 8%); +} + +.report-modal__container { + border-top-color: lighten($ui-base-color, 8%); +} + +.column-header__collapsible-inner { + background: darken($ui-base-color, 4%); + border: 1px solid lighten($ui-base-color, 8%); + border-top: 0; +} + +.focal-point__preview strong { + color: $white; +} + +.boost-modal__action-bar, +.confirmation-modal__action-bar, +.mute-modal__action-bar, +.block-modal__action-bar, +.onboarding-modal__paginator, +.error-modal__footer { + background: darken($ui-base-color, 6%); + + .onboarding-modal__nav, + .error-modal__nav { + &:hover, + &:focus, + &:active { + background-color: darken($ui-base-color, 12%); + } + } +} + +.display-case__case { + background: $white; +} + +.embed-modal .embed-modal__container .embed-modal__html { + background: $white; + border: 1px solid lighten($ui-base-color, 8%); + + &:focus { + border-color: lighten($ui-base-color, 12%); + background: $white; + } +} + +.react-toggle-track { + background: $ui-secondary-color; +} + +.react-toggle:hover:not(.react-toggle--disabled) .react-toggle-track { + background: darken($ui-secondary-color, 10%); +} + +.react-toggle.react-toggle--checked:hover:not(.react-toggle--disabled) .react-toggle-track { + background: lighten($ui-highlight-color, 10%); +} + +// Change the default color used for the text in an empty column or on the error column +.empty-column-indicator, +.error-column { + color: $primary-text-color; + background: $white; +} + +.tabs-bar { + background: $white; + border: 1px solid lighten($ui-base-color, 8%); + border-bottom: 0; + + @media screen and (max-width: $no-gap-breakpoint) { + border-top: 0; + } + + &__link { + padding-bottom: 14px; + border-bottom-width: 1px; + border-bottom-color: lighten($ui-base-color, 8%); + + &:hover, + &:active, + &:focus { + background: $ui-base-color; + } + + &.active { + &:hover, + &:active, + &:focus { + background: transparent; + border-bottom-color: $ui-highlight-color; + } + } + } +} + +// Change the default colors used on some parts of the profile pages +.activity-stream-tabs { + background: $account-background-color; + border-bottom-color: lighten($ui-base-color, 8%); +} + +.box-widget, +.nothing-here, +.page-header, +.directory__tag > a, +.directory__tag > div, +.landing-page__call-to-action, +.contact-widget, +.landing .hero-widget__text, +.landing-page__information.contact-widget { + background: $white; + border: 1px solid lighten($ui-base-color, 8%); + + @media screen and (max-width: $no-gap-breakpoint) { + border-left: 0; + border-right: 0; + border-top: 0; + } +} + +.landing .hero-widget__text { + border-top: 0; + border-bottom: 0; +} + +.simple_form { + input[type=text], + input[type=number], + input[type=email], + input[type=password], + textarea { + &:hover { + border-color: lighten($ui-base-color, 12%); + } + } +} + +.landing .hero-widget__footer { + background: $white; + border: 1px solid lighten($ui-base-color, 8%); + border-top: 0; + + @media screen and (max-width: $no-gap-breakpoint) { + border: 0; + } +} + +.brand__tagline { + color: $ui-secondary-color; +} + +.directory__tag > a { + &:hover, + &:active, + &:focus { + background: $ui-base-color; + } + + @media screen and (max-width: $no-gap-breakpoint) { + border: 0; + } +} + +.directory__tag.active > a, +.directory__tag.active > div { + border-color: $ui-highlight-color; + + &, + h4, + h4 small, + .fa, + .trends__item__current { + color: $white; + } + + &:hover, + &:active, + &:focus { + background: $ui-highlight-color; + } +} + +.batch-table { + &__toolbar, + &__row, + .nothing-here { + border-color: lighten($ui-base-color, 8%); + } +} + +.activity-stream { + border: 1px solid lighten($ui-base-color, 8%); + + &--under-tabs { + border-top: 0; + } + + .entry { + background: $account-background-color; + + .detailed-status.light, + .more.light, + .status.light { + border-bottom-color: lighten($ui-base-color, 8%); + } + } + + .status.light { + .status__content { + color: $primary-text-color; + } + + .display-name { + strong { + color: $primary-text-color; + } + } + } +} + +.accounts-grid { + .account-grid-card { + .controls { + .icon-button { + color: $darker-text-color; + } + } + + .name { + a { + color: $primary-text-color; + } + } + + .username { + color: $darker-text-color; + } + + .account__header__content { + color: $primary-text-color; + } + } +} + +.simple_form, +.table-form { + .warning { + box-shadow: none; + background: rgba($error-red, 0.5); + text-shadow: none; + } + + .recommended { + border-color: $ui-highlight-color; + color: $ui-highlight-color; + background-color: rgba($ui-highlight-color, 0.1); + } +} + +.compose-form .compose-form__warning { + border-color: $ui-highlight-color; + background-color: rgba($ui-highlight-color, 0.1); + + &, + a { + color: $ui-highlight-color; + } +} + +.status__content, +.reply-indicator__content { + a { + color: $highlight-text-color; + } +} + +.button.logo-button { + color: $white; + + svg { + fill: $white; + } +} + +.public-layout { + .account__section-headline { + border: 1px solid lighten($ui-base-color, 8%); + + @media screen and (max-width: $no-gap-breakpoint) { + border-top: 0; + } + } + + .header, + .public-account-header, + .public-account-bio { + box-shadow: none; + } + + .public-account-bio, + .hero-widget__text { + background: $account-background-color; + border: 1px solid lighten($ui-base-color, 8%); + } + + .header { + background: $ui-base-color; + border: 1px solid lighten($ui-base-color, 8%); + + @media screen and (max-width: $no-gap-breakpoint) { + border: 0; + } + + .brand { + &:hover, + &:focus, + &:active { + background: lighten($ui-base-color, 4%); + } + } + } + + .public-account-header { + &__image { + background: lighten($ui-base-color, 12%); + + &::after { + box-shadow: none; + } + } + + &__bar { + &::before { + background: $account-background-color; + border: 1px solid lighten($ui-base-color, 8%); + border-top: 0; + } + + .avatar img { + border-color: $account-background-color; + } + + @media screen and (max-width: $no-columns-breakpoint) { + background: $account-background-color; + border: 1px solid lighten($ui-base-color, 8%); + border-top: 0; + } + } + + &__tabs { + &__name { + h1, + h1 small { + color: $white; + + @media screen and (max-width: $no-columns-breakpoint) { + color: $primary-text-color; + } + } + } + } + + &__extra { + .public-account-bio { + border: 0; + } + + .public-account-bio .account__header__fields { + border-color: lighten($ui-base-color, 8%); + } + } + } +} + +.notification__filter-bar button.active::after, +.account__section-headline a.active::after { + border-color: transparent transparent $white; +} + +.hero-widget, +.box-widget, +.contact-widget, +.landing-page__information.contact-widget, +.moved-account-widget, +.memoriam-widget, +.activity-stream, +.nothing-here, +.directory__tag > a, +.directory__tag > div, +.card > a, +.page-header, +.compose-form .compose-form__warning { + box-shadow: none; +} + +.audio-player .video-player__controls button, +.audio-player .video-player__time-sep, +.audio-player .video-player__time-current, +.audio-player .video-player__time-total { + color: $primary-text-color; +} diff --git a/app/javascript/styles/light-red/variables.scss b/app/javascript/styles/light-red/variables.scss new file mode 100644 index 00000000000000..3bbef4ae0f1432 --- /dev/null +++ b/app/javascript/styles/light-red/variables.scss @@ -0,0 +1,41 @@ +// Dependent colors +$black: #000000; +$white: #ffffff; + +$classic-base-color: #282c37; +$classic-primary-color: #9baec8; +$classic-secondary-color: #d9e1e8; +$classic-highlight-color: #d92b2b; + +// Differences +$success-green: lighten(#3c754d, 8%); + +$base-overlay-background: $white !default; +$valid-value-color: $success-green !default; + +$ui-base-color: $classic-secondary-color !default; +$ui-base-lighter-color: #b0c0cf; +$ui-primary-color: #9bcbed; +$ui-secondary-color: $classic-base-color !default; +$ui-highlight-color: #d92b2b; + +$primary-text-color: $black !default; +$darker-text-color: $classic-base-color !default; +$dark-text-color: #444b5d; +$action-button-color: #606984; + +$inverted-text-color: $black !default; +$lighter-text-color: $classic-base-color !default; +$light-text-color: #444b5d; + +//Newly added colors +$account-background-color: $white !default; + +//Invert darkened and lightened colors +@function darken($color, $amount) { + @return hsl(hue($color), saturation($color), lightness($color) + $amount); +} + +@function lighten($color, $amount) { + @return hsl(hue($color), saturation($color), lightness($color) - $amount); +} diff --git a/app/javascript/styles/light-yellow/diff.scss b/app/javascript/styles/light-yellow/diff.scss new file mode 100644 index 00000000000000..7a846bcc678ff4 --- /dev/null +++ b/app/javascript/styles/light-yellow/diff.scss @@ -0,0 +1,776 @@ +// Notes! +// Sass color functions, "darken" and "lighten" are automatically replaced. + +html { + scrollbar-color: $ui-base-color rgba($ui-base-color, 0.25); +} + +// Change the colors of button texts +.button { + color: $white; + + &.button-alternative-2 { + color: $white; + } +} + +.status-card__actions button, +.status-card__actions a { + color: rgba($white, 0.8); + + &:hover, + &:active, + &:focus { + color: $white; + } +} + +// Change default background colors of columns +.column > .scrollable, +.getting-started, +.column-inline-form, +.error-column, +.regeneration-indicator { + background: $white; + border: 1px solid lighten($ui-base-color, 8%); + border-top: 0; +} + +.directory__card__img { + background: lighten($ui-base-color, 12%); +} + +.filter-form, +.directory__card__bar { + background: $white; + border-bottom: 1px solid lighten($ui-base-color, 8%); +} + +.scrollable .directory__list { + width: calc(100% + 2px); + margin-left: -1px; + margin-right: -1px; +} + +.directory__card, +.table-of-contents { + border: 1px solid lighten($ui-base-color, 8%); +} + +.column-back-button, +.column-header { + background: $white; + border: 1px solid lighten($ui-base-color, 8%); + + @media screen and (max-width: $no-gap-breakpoint) { + border-top: 0; + } + + &--slim-button { + top: -50px; + right: 0; + } +} + +.column-header__back-button, +.column-header__button, +.column-header__button.active, +.account__header__bar, +.directory__card__extra { + background: $white; +} + +.column-header__button.active { + color: $ui-highlight-color; + + &:hover, + &:active, + &:focus { + color: $ui-highlight-color; + background: $white; + } +} + +.account__header__bar .avatar .account__avatar { + border-color: $white; +} + +.getting-started__footer a { + color: $ui-secondary-color; + text-decoration: underline; +} + +.confirmation-modal__secondary-button, +.confirmation-modal__cancel-button, +.mute-modal__cancel-button, +.block-modal__cancel-button { + color: lighten($ui-base-color, 26%); + + &:hover, + &:focus, + &:active { + color: $primary-text-color; + } +} + +.column-subheading { + background: darken($ui-base-color, 4%); + border-bottom: 1px solid lighten($ui-base-color, 8%); +} + +.getting-started, +.scrollable { + .column-link { + background: $white; + border-bottom: 1px solid lighten($ui-base-color, 8%); + + &:hover, + &:active, + &:focus { + background: $ui-base-color; + } + } +} + +.getting-started .navigation-bar { + border-top: 1px solid lighten($ui-base-color, 8%); + border-bottom: 1px solid lighten($ui-base-color, 8%); + + @media screen and (max-width: $no-gap-breakpoint) { + border-top: 0; + } +} + +.compose-form__autosuggest-wrapper, +.poll__option input[type="text"], +.compose-form .spoiler-input__input, +.compose-form__poll-wrapper select, +.search__input, +.setting-text, +.box-widget input[type="text"], +.box-widget input[type="email"], +.box-widget input[type="password"], +.box-widget textarea, +.statuses-grid .detailed-status, +.audio-player { + border: 1px solid lighten($ui-base-color, 8%); +} + +.search__input { + @media screen and (max-width: $no-gap-breakpoint) { + border-top: 0; + border-bottom: 0; + } +} + +.list-editor .search .search__input { + border-top: 0; + border-bottom: 0; +} + +.compose-form__poll-wrapper select { + background: $simple-background-color url("data:image/svg+xml;utf8,") no-repeat right 8px center / auto 16px; +} + +.compose-form__poll-wrapper, +.compose-form__poll-wrapper .poll__footer { + border-top-color: lighten($ui-base-color, 8%); +} + +.notification__filter-bar { + border: 1px solid lighten($ui-base-color, 8%); + border-top: 0; +} + +.compose-form .compose-form__buttons-wrapper { + background: $ui-base-color; + border: 1px solid lighten($ui-base-color, 8%); + border-top: 0; +} + +.drawer__header, +.drawer__inner { + background: $white; + border: 1px solid lighten($ui-base-color, 8%); +} + +.drawer__inner__mastodon { + background: $white url('data:image/svg+xml;utf8,') no-repeat bottom / 100% auto; +} + +// Change the colors used in compose-form +.compose-form { + .compose-form__modifiers { + .compose-form__upload__actions .icon-button { + color: lighten($white, 7%); + + &:active, + &:focus, + &:hover { + color: $white; + } + } + + .compose-form__upload-description input { + color: lighten($white, 7%); + + &::placeholder { + color: lighten($white, 7%); + } + } + } + + .compose-form__buttons-wrapper { + background: darken($ui-base-color, 6%); + } + + .autosuggest-textarea__suggestions { + background: darken($ui-base-color, 6%); + } + + .autosuggest-textarea__suggestions__item { + &:hover, + &:focus, + &:active, + &.selected { + background: lighten($ui-base-color, 4%); + } + } +} + +.emoji-mart-bar { + border-color: lighten($ui-base-color, 4%); + + &:first-child { + background: darken($ui-base-color, 6%); + } +} + +.emoji-mart-search input { + background: rgba($ui-base-color, 0.3); + border-color: $ui-base-color; +} + +// Change the background colors of statuses +.focusable:focus { + background: $ui-base-color; +} + +.status.status-direct { + background: lighten($ui-base-color, 4%); +} + +.focusable:focus .status.status-direct { + background: lighten($ui-base-color, 8%); +} + +.detailed-status, +.detailed-status__action-bar { + background: $white; +} + +// Change the background colors of status__content__spoiler-link +.reply-indicator__content .status__content__spoiler-link, +.status__content .status__content__spoiler-link { + background: $ui-base-color; + + &:hover { + background: lighten($ui-base-color, 4%); + } +} + +// Change the background colors of media and video spoilers +.media-spoiler, +.video-player__spoiler { + background: $ui-base-color; +} + +.privacy-dropdown.active .privacy-dropdown__value.active .icon-button { + color: $white; +} + +.account-gallery__item a { + background-color: $ui-base-color; +} + +// Change the colors used in the dropdown menu +.dropdown-menu { + background: $white; + + &__arrow { + &.left { + border-left-color: $white; + } + + &.top { + border-top-color: $white; + } + + &.bottom { + border-bottom-color: $white; + } + + &.right { + border-right-color: $white; + } + } + + &__item { + a { + background: $white; + color: $darker-text-color; + } + } +} + +// Change the text colors on inverted background +.privacy-dropdown__option.active, +.privacy-dropdown__option:hover, +.privacy-dropdown__option.active .privacy-dropdown__option__content, +.privacy-dropdown__option.active .privacy-dropdown__option__content strong, +.privacy-dropdown__option:hover .privacy-dropdown__option__content, +.privacy-dropdown__option:hover .privacy-dropdown__option__content strong, +.dropdown-menu__item a:active, +.dropdown-menu__item a:focus, +.dropdown-menu__item a:hover, +.actions-modal ul li:not(:empty) a.active, +.actions-modal ul li:not(:empty) a.active button, +.actions-modal ul li:not(:empty) a:active, +.actions-modal ul li:not(:empty) a:active button, +.actions-modal ul li:not(:empty) a:focus, +.actions-modal ul li:not(:empty) a:focus button, +.actions-modal ul li:not(:empty) a:hover, +.actions-modal ul li:not(:empty) a:hover button, +.admin-wrapper .sidebar ul .simple-navigation-active-leaf a, +.simple_form .block-button, +.simple_form .button, +.simple_form button { + color: $white; +} + +.dropdown-menu__separator { + border-bottom-color: lighten($ui-base-color, 4%); +} + +// Change the background colors of modals +.actions-modal, +.boost-modal, +.confirmation-modal, +.mute-modal, +.block-modal, +.report-modal, +.embed-modal, +.error-modal, +.onboarding-modal, +.report-modal__comment .setting-text__wrapper, +.report-modal__comment .setting-text { + background: $white; + border: 1px solid lighten($ui-base-color, 8%); +} + +.report-modal__comment { + border-right-color: lighten($ui-base-color, 8%); +} + +.report-modal__container { + border-top-color: lighten($ui-base-color, 8%); +} + +.column-header__collapsible-inner { + background: darken($ui-base-color, 4%); + border: 1px solid lighten($ui-base-color, 8%); + border-top: 0; +} + +.focal-point__preview strong { + color: $white; +} + +.boost-modal__action-bar, +.confirmation-modal__action-bar, +.mute-modal__action-bar, +.block-modal__action-bar, +.onboarding-modal__paginator, +.error-modal__footer { + background: darken($ui-base-color, 6%); + + .onboarding-modal__nav, + .error-modal__nav { + &:hover, + &:focus, + &:active { + background-color: darken($ui-base-color, 12%); + } + } +} + +.display-case__case { + background: $white; +} + +.embed-modal .embed-modal__container .embed-modal__html { + background: $white; + border: 1px solid lighten($ui-base-color, 8%); + + &:focus { + border-color: lighten($ui-base-color, 12%); + background: $white; + } +} + +.react-toggle-track { + background: $ui-secondary-color; +} + +.react-toggle:hover:not(.react-toggle--disabled) .react-toggle-track { + background: darken($ui-secondary-color, 10%); +} + +.react-toggle.react-toggle--checked:hover:not(.react-toggle--disabled) .react-toggle-track { + background: lighten($ui-highlight-color, 10%); +} + +// Change the default color used for the text in an empty column or on the error column +.empty-column-indicator, +.error-column { + color: $primary-text-color; + background: $white; +} + +.tabs-bar { + background: $white; + border: 1px solid lighten($ui-base-color, 8%); + border-bottom: 0; + + @media screen and (max-width: $no-gap-breakpoint) { + border-top: 0; + } + + &__link { + padding-bottom: 14px; + border-bottom-width: 1px; + border-bottom-color: lighten($ui-base-color, 8%); + + &:hover, + &:active, + &:focus { + background: $ui-base-color; + } + + &.active { + &:hover, + &:active, + &:focus { + background: transparent; + border-bottom-color: $ui-highlight-color; + } + } + } +} + +// Change the default colors used on some parts of the profile pages +.activity-stream-tabs { + background: $account-background-color; + border-bottom-color: lighten($ui-base-color, 8%); +} + +.box-widget, +.nothing-here, +.page-header, +.directory__tag > a, +.directory__tag > div, +.landing-page__call-to-action, +.contact-widget, +.landing .hero-widget__text, +.landing-page__information.contact-widget { + background: $white; + border: 1px solid lighten($ui-base-color, 8%); + + @media screen and (max-width: $no-gap-breakpoint) { + border-left: 0; + border-right: 0; + border-top: 0; + } +} + +.landing .hero-widget__text { + border-top: 0; + border-bottom: 0; +} + +.simple_form { + input[type=text], + input[type=number], + input[type=email], + input[type=password], + textarea { + &:hover { + border-color: lighten($ui-base-color, 12%); + } + } +} + +.landing .hero-widget__footer { + background: $white; + border: 1px solid lighten($ui-base-color, 8%); + border-top: 0; + + @media screen and (max-width: $no-gap-breakpoint) { + border: 0; + } +} + +.brand__tagline { + color: $ui-secondary-color; +} + +.directory__tag > a { + &:hover, + &:active, + &:focus { + background: $ui-base-color; + } + + @media screen and (max-width: $no-gap-breakpoint) { + border: 0; + } +} + +.directory__tag.active > a, +.directory__tag.active > div { + border-color: $ui-highlight-color; + + &, + h4, + h4 small, + .fa, + .trends__item__current { + color: $white; + } + + &:hover, + &:active, + &:focus { + background: $ui-highlight-color; + } +} + +.batch-table { + &__toolbar, + &__row, + .nothing-here { + border-color: lighten($ui-base-color, 8%); + } +} + +.activity-stream { + border: 1px solid lighten($ui-base-color, 8%); + + &--under-tabs { + border-top: 0; + } + + .entry { + background: $account-background-color; + + .detailed-status.light, + .more.light, + .status.light { + border-bottom-color: lighten($ui-base-color, 8%); + } + } + + .status.light { + .status__content { + color: $primary-text-color; + } + + .display-name { + strong { + color: $primary-text-color; + } + } + } +} + +.accounts-grid { + .account-grid-card { + .controls { + .icon-button { + color: $darker-text-color; + } + } + + .name { + a { + color: $primary-text-color; + } + } + + .username { + color: $darker-text-color; + } + + .account__header__content { + color: $primary-text-color; + } + } +} + +.simple_form, +.table-form { + .warning { + box-shadow: none; + background: rgba($error-red, 0.5); + text-shadow: none; + } + + .recommended { + border-color: $ui-highlight-color; + color: $ui-highlight-color; + background-color: rgba($ui-highlight-color, 0.1); + } +} + +.compose-form .compose-form__warning { + border-color: $ui-highlight-color; + background-color: rgba($ui-highlight-color, 0.1); + + &, + a { + color: $ui-highlight-color; + } +} + +.status__content, +.reply-indicator__content { + a { + color: $highlight-text-color; + } +} + +.button.logo-button { + color: $white; + + svg { + fill: $white; + } +} + +.public-layout { + .account__section-headline { + border: 1px solid lighten($ui-base-color, 8%); + + @media screen and (max-width: $no-gap-breakpoint) { + border-top: 0; + } + } + + .header, + .public-account-header, + .public-account-bio { + box-shadow: none; + } + + .public-account-bio, + .hero-widget__text { + background: $account-background-color; + border: 1px solid lighten($ui-base-color, 8%); + } + + .header { + background: $ui-base-color; + border: 1px solid lighten($ui-base-color, 8%); + + @media screen and (max-width: $no-gap-breakpoint) { + border: 0; + } + + .brand { + &:hover, + &:focus, + &:active { + background: lighten($ui-base-color, 4%); + } + } + } + + .public-account-header { + &__image { + background: lighten($ui-base-color, 12%); + + &::after { + box-shadow: none; + } + } + + &__bar { + &::before { + background: $account-background-color; + border: 1px solid lighten($ui-base-color, 8%); + border-top: 0; + } + + .avatar img { + border-color: $account-background-color; + } + + @media screen and (max-width: $no-columns-breakpoint) { + background: $account-background-color; + border: 1px solid lighten($ui-base-color, 8%); + border-top: 0; + } + } + + &__tabs { + &__name { + h1, + h1 small { + color: $white; + + @media screen and (max-width: $no-columns-breakpoint) { + color: $primary-text-color; + } + } + } + } + + &__extra { + .public-account-bio { + border: 0; + } + + .public-account-bio .account__header__fields { + border-color: lighten($ui-base-color, 8%); + } + } + } +} + +.notification__filter-bar button.active::after, +.account__section-headline a.active::after { + border-color: transparent transparent $white; +} + +.hero-widget, +.box-widget, +.contact-widget, +.landing-page__information.contact-widget, +.moved-account-widget, +.memoriam-widget, +.activity-stream, +.nothing-here, +.directory__tag > a, +.directory__tag > div, +.card > a, +.page-header, +.compose-form .compose-form__warning { + box-shadow: none; +} + +.audio-player .video-player__controls button, +.audio-player .video-player__time-sep, +.audio-player .video-player__time-current, +.audio-player .video-player__time-total { + color: $primary-text-color; +} diff --git a/app/javascript/styles/light-yellow/variables.scss b/app/javascript/styles/light-yellow/variables.scss new file mode 100644 index 00000000000000..6b92d5b424b6f6 --- /dev/null +++ b/app/javascript/styles/light-yellow/variables.scss @@ -0,0 +1,41 @@ +// Dependent colors +$black: #000000; +$white: #ffffff; + +$classic-base-color: #282c37; +$classic-primary-color: #9baec8; +$classic-secondary-color: #d9e1e8; +$classic-highlight-color: #dec80f; + +// Differences +$success-green: lighten(#3c754d, 8%); + +$base-overlay-background: $white !default; +$valid-value-color: $success-green !default; + +$ui-base-color: $classic-secondary-color !default; +$ui-base-lighter-color: #b0c0cf; +$ui-primary-color: #9bcbed; +$ui-secondary-color: $classic-base-color !default; +$ui-highlight-color: #dec80f; + +$primary-text-color: $black !default; +$darker-text-color: $classic-base-color !default; +$dark-text-color: #444b5d; +$action-button-color: #606984; + +$inverted-text-color: $black !default; +$lighter-text-color: $classic-base-color !default; +$light-text-color: #444b5d; + +//Newly added colors +$account-background-color: $white !default; + +//Invert darkened and lightened colors +@function darken($color, $amount) { + @return hsl(hue($color), saturation($color), lightness($color) + $amount); +} + +@function lighten($color, $amount) { + @return hsl(hue($color), saturation($color), lightness($color) - $amount); +} diff --git a/app/javascript/styles/light_green.scss b/app/javascript/styles/light_green.scss new file mode 100644 index 00000000000000..c08b547a04b6ce --- /dev/null +++ b/app/javascript/styles/light_green.scss @@ -0,0 +1,3 @@ +@import 'light-green/variables'; +@import 'application'; +@import 'light-green/diff'; diff --git a/app/javascript/styles/light_red.scss b/app/javascript/styles/light_red.scss new file mode 100644 index 00000000000000..6969822c1ce3b0 --- /dev/null +++ b/app/javascript/styles/light_red.scss @@ -0,0 +1,3 @@ +@import 'light-red/variables'; +@import 'application'; +@import 'light-red/diff'; diff --git a/app/javascript/styles/light_yellow.scss b/app/javascript/styles/light_yellow.scss new file mode 100644 index 00000000000000..59b687687383c3 --- /dev/null +++ b/app/javascript/styles/light_yellow.scss @@ -0,0 +1,3 @@ +@import 'light-yellow/variables'; +@import 'application'; +@import 'light-yellow/diff'; diff --git a/app/javascript/styles/plugins/boost.scss b/app/javascript/styles/plugins/boost.scss new file mode 100644 index 00000000000000..194146957069ac --- /dev/null +++ b/app/javascript/styles/plugins/boost.scss @@ -0,0 +1,63 @@ +/* https://github.com/mstdn/mastodon/blob/master/app/javascript/styles/boost.scss */ + +@function hex-color($color) { + @if type-of($color) == 'color' { + $color: str-slice(ie-hex-str($color), 4); + } + @return '%23' + unquote($color) +} + +@mixin boost-svg($color) { + background-image: url("data:image/svg+xml;utf8,"); +} + +@mixin boost-locked-svg($color) { + background-image: url("data:image/svg+xml;utf8,"); +} + +@mixin boost-svg-single($color) { + background-image: url("data:image/svg+xml;utf8,"); +} + +@mixin boost-locked-svg-single($color) { + background-image: url("data:image/svg+xml;utf8,"); +} + +@mixin envelope($color) { + background-image: url("data:image/svg+xml;utf8,"); +} + +button.icon-button i.fa-retweet { + @include boost-svg-single($ui-base-lighter-color); +} + +.status-private button.icon-button i.fa-retweet { + @include boost-locked-svg-single($ui-base-lighter-color); +} + +// Disabled variant +button.icon-button.disabled i.fa-retweet { + @include boost-locked-svg-single(lighten($ui-base-color, 13%)); +} + +// Disabled variant for use with DMs +.status-direct button.icon-button.disabled i.fa-retweet { + @include envelope(lighten($ui-base-color, 16%)); + background-position: center center; + background-repeat: no-repeat; +} + +.no-reduce-motion button.icon-button i.fa-retweet { + transition: none; + background-position: 0px 684px; +} + +.no-reduce-motion button.icon-button.active i.fa-retweet { + @include boost-svg($ui-highlight-color); + transition: background-position 0.6s steps(36); + background-size: 22px 684px; + background-position: 0px 0px; +} +.no-reduce-motion .status-private button.icon-button.active i.fa-retweet { + @include boost-locked-svg($ui-highlight-color); +} diff --git a/app/javascript/styles/plugins/fullwidth-media.scss b/app/javascript/styles/plugins/fullwidth-media.scss new file mode 100644 index 00000000000000..5e563aebc95f8b --- /dev/null +++ b/app/javascript/styles/plugins/fullwidth-media.scss @@ -0,0 +1,49 @@ +/* https://github.com/mstdn/mastodon/blob/master/app/javascript/styles/fullwidth-media.scss */ + +.detailed-status > .media-spoiler, +.status > .media-spoiler, +.status .video-player, +.media-gallery, +.status .status-card.interactive { + margin-top: 20px; + margin-left: -68px; + width: calc(100% + 80px); +} + +.detailed-status > .media-spoiler, +.status > .media-spoiler, +.video-player { + max-width: none; +} + +/* If there's no status text, add an extra margin on top */ +.status .status__info + .media-gallery, +.status .status__info + .media-spoiler, +.status .status__info + .video-player, +.status .status__info + .status-card { + margin-top: 40px; +} + +.status__video-player-video { + transform: unset; + top: unset; +} + +.detailed-status .media-gallery { + margin-left: -10px; + width: calc(100% + 22px); +} + +.public-layout .status { + .status__content { + min-height: 15px; + } + & > .media-spoiler, + .video-player, + .media-gallery, + .status-card { + margin-top: 20px; + width: calc(100% + 94px); + margin-left: -78px; + } +} \ No newline at end of file diff --git a/app/javascript/styles/sleeping-town.scss b/app/javascript/styles/sleeping-town.scss new file mode 100644 index 00000000000000..a627c888df3823 --- /dev/null +++ b/app/javascript/styles/sleeping-town.scss @@ -0,0 +1,889 @@ +/* https://github.com/mstdn/mastodon/blob/master/app/javascript/styles/sleepingtown.scss */ +// ========================================================================== +// +// Name: UI Color Palette +// Description: The color palette of material design. +// Version: 2.3.1 +// +// Author: Denis Malinochkin +// Git: https://github.com/mrmlnc/material-color +// +// twitter: @mrmlnc +// +// ========================================================================== + + +// +// List of base colors +// + +// $clr-red +// $clr-pink +// $clr-purple +// $clr-deep-purple +// $clr-indigo +// $clr-blue +// $clr-light-blue +// $clr-cyan +// $clr-teal +// $clr-green +// $clr-light-green +// $clr-lime +// $clr-yellow +// $clr-amber +// $clr-orange +// $clr-deep-orange +// $clr-brown +// $clr-grey +// $clr-blue-grey +// $clr-black +// $clr-white + + +// +// Red +// + +$clr-red-list: ( + "base": #f44336, + "50": #ffebee, + "100": #ffcdd2, + "200": #ef9a9a, + "300": #e57373, + "400": #ef5350, + "500": #f44336, + "600": #e53935, + "700": #d32f2f, + "800": #c62828, + "900": #b71c1c, + "a100": #ff8a80, + "a200": #ff5252, + "a400": #ff1744, + "a700": #d50000 +); + +$clr-red: map-get($clr-red-list, "base"); + +$clr-red-50: map-get($clr-red-list, "50"); +$clr-red-100: map-get($clr-red-list, "100"); +$clr-red-200: map-get($clr-red-list, "200"); +$clr-red-300: map-get($clr-red-list, "300"); +$clr-red-400: map-get($clr-red-list, "400"); +$clr-red-500: map-get($clr-red-list, "500"); +$clr-red-600: map-get($clr-red-list, "600"); +$clr-red-700: map-get($clr-red-list, "700"); +$clr-red-800: map-get($clr-red-list, "800"); +$clr-red-900: map-get($clr-red-list, "900"); +$clr-red-a100: map-get($clr-red-list, "a100"); +$clr-red-a200: map-get($clr-red-list, "a200"); +$clr-red-a400: map-get($clr-red-list, "a400"); +$clr-red-a700: map-get($clr-red-list, "a700"); + + +// +// Pink +// + +$clr-pink-list: ( + "base": #e91e63, + "50": #fce4ec, + "100": #f8bbd0, + "200": #f48fb1, + "300": #f06292, + "400": #ec407a, + "500": #e91e63, + "600": #d81b60, + "700": #c2185b, + "800": #ad1457, + "900": #880e4f, + "a100": #ff80ab, + "a200": #ff4081, + "a400": #f50057, + "a700": #c51162 +); + +$clr-pink: map-get($clr-pink-list, "base"); + +$clr-pink-50: map-get($clr-pink-list, "50"); +$clr-pink-100: map-get($clr-pink-list, "100"); +$clr-pink-200: map-get($clr-pink-list, "200"); +$clr-pink-300: map-get($clr-pink-list, "300"); +$clr-pink-400: map-get($clr-pink-list, "400"); +$clr-pink-500: map-get($clr-pink-list, "500"); +$clr-pink-600: map-get($clr-pink-list, "600"); +$clr-pink-700: map-get($clr-pink-list, "700"); +$clr-pink-800: map-get($clr-pink-list, "800"); +$clr-pink-900: map-get($clr-pink-list, "900"); +$clr-pink-a100: map-get($clr-pink-list, "a100"); +$clr-pink-a200: map-get($clr-pink-list, "a200"); +$clr-pink-a400: map-get($clr-pink-list, "a400"); +$clr-pink-a700: map-get($clr-pink-list, "a700"); + + +// +// Purple +// + +$clr-purple-list: ( + "base": #9c27b0, + "50": #f3e5f5, + "100": #e1bee7, + "200": #ce93d8, + "300": #ba68c8, + "400": #ab47bc, + "500": #9c27b0, + "600": #8e24aa, + "700": #7b1fa2, + "800": #6a1b9a, + "900": #4a148c, + "a100": #ea80fc, + "a200": #e040fb, + "a400": #d500f9, + "a700": #aa00ff +); + +$clr-purple: map-get($clr-purple-list, "base"); + +$clr-purple-50: map-get($clr-purple-list, "50"); +$clr-purple-100: map-get($clr-purple-list, "100"); +$clr-purple-200: map-get($clr-purple-list, "200"); +$clr-purple-300: map-get($clr-purple-list, "300"); +$clr-purple-400: map-get($clr-purple-list, "400"); +$clr-purple-500: map-get($clr-purple-list, "500"); +$clr-purple-600: map-get($clr-purple-list, "600"); +$clr-purple-700: map-get($clr-purple-list, "700"); +$clr-purple-800: map-get($clr-purple-list, "800"); +$clr-purple-900: map-get($clr-purple-list, "900"); +$clr-purple-a100: map-get($clr-purple-list, "a100"); +$clr-purple-a200: map-get($clr-purple-list, "a200"); +$clr-purple-a400: map-get($clr-purple-list, "a400"); +$clr-purple-a700: map-get($clr-purple-list, "a700"); + + +// +// Deep purple +// + +$clr-deep-purple-list: ( + "base": #673ab7, + "50": #ede7f6, + "100": #d1c4e9, + "200": #b39ddb, + "300": #9575cd, + "400": #7e57c2, + "500": #673ab7, + "600": #5e35b1, + "700": #512da8, + "800": #4527a0, + "900": #311b92, + "a100": #b388ff, + "a200": #7c4dff, + "a400": #651fff, + "a700": #6200ea +); + +$clr-deep-purple: map-get($clr-deep-purple-list, "base"); + +$clr-deep-purple-50: map-get($clr-deep-purple-list, "50"); +$clr-deep-purple-100: map-get($clr-deep-purple-list, "100"); +$clr-deep-purple-200: map-get($clr-deep-purple-list, "200"); +$clr-deep-purple-300: map-get($clr-deep-purple-list, "300"); +$clr-deep-purple-400: map-get($clr-deep-purple-list, "400"); +$clr-deep-purple-500: map-get($clr-deep-purple-list, "500"); +$clr-deep-purple-600: map-get($clr-deep-purple-list, "600"); +$clr-deep-purple-700: map-get($clr-deep-purple-list, "700"); +$clr-deep-purple-800: map-get($clr-deep-purple-list, "800"); +$clr-deep-purple-900: map-get($clr-deep-purple-list, "900"); +$clr-deep-purple-a100: map-get($clr-deep-purple-list, "a100"); +$clr-deep-purple-a200: map-get($clr-deep-purple-list, "a200"); +$clr-deep-purple-a400: map-get($clr-deep-purple-list, "a400"); +$clr-deep-purple-a700: map-get($clr-deep-purple-list, "a700"); + + +// +// Indigo +// + +$clr-indigo-list: ( + "base": #3f51b5, + "50": #e8eaf6, + "100": #c5cae9, + "200": #9fa8da, + "300": #7986cb, + "400": #5c6bc0, + "500": #3f51b5, + "600": #3949ab, + "700": #303f9f, + "800": #283593, + "900": #1a237e, + "a100": #8c9eff, + "a200": #536dfe, + "a400": #3d5afe, + "a700": #304ffe +); + +$clr-indigo: map-get($clr-indigo-list, "base"); + +$clr-indigo-50: map-get($clr-indigo-list, "50"); +$clr-indigo-100: map-get($clr-indigo-list, "100"); +$clr-indigo-200: map-get($clr-indigo-list, "200"); +$clr-indigo-300: map-get($clr-indigo-list, "300"); +$clr-indigo-400: map-get($clr-indigo-list, "400"); +$clr-indigo-500: map-get($clr-indigo-list, "500"); +$clr-indigo-600: map-get($clr-indigo-list, "600"); +$clr-indigo-700: map-get($clr-indigo-list, "700"); +$clr-indigo-800: map-get($clr-indigo-list, "800"); +$clr-indigo-900: map-get($clr-indigo-list, "900"); +$clr-indigo-a100: map-get($clr-indigo-list, "a100"); +$clr-indigo-a200: map-get($clr-indigo-list, "a200"); +$clr-indigo-a400: map-get($clr-indigo-list, "a400"); +$clr-indigo-a700: map-get($clr-indigo-list, "a700"); + + +// +// Blue +// + +$clr-blue-list: ( + "base": #2196f3, + "50": #e3f2fd, + "100": #bbdefb, + "200": #90caf9, + "300": #64b5f6, + "400": #42a5f5, + "500": #2196f3, + "600": #1e88e5, + "700": #1976d2, + "800": #1565c0, + "900": #0d47a1, + "a100": #82b1ff, + "a200": #448aff, + "a400": #2979ff, + "a700": #2962ff +); + +$clr-blue: map-get($clr-blue-list, "base"); + +$clr-blue-50: map-get($clr-blue-list, "50"); +$clr-blue-100: map-get($clr-blue-list, "100"); +$clr-blue-200: map-get($clr-blue-list, "200"); +$clr-blue-300: map-get($clr-blue-list, "300"); +$clr-blue-400: map-get($clr-blue-list, "400"); +$clr-blue-500: map-get($clr-blue-list, "500"); +$clr-blue-600: map-get($clr-blue-list, "600"); +$clr-blue-700: map-get($clr-blue-list, "700"); +$clr-blue-800: map-get($clr-blue-list, "800"); +$clr-blue-900: map-get($clr-blue-list, "900"); +$clr-blue-a100: map-get($clr-blue-list, "a100"); +$clr-blue-a200: map-get($clr-blue-list, "a200"); +$clr-blue-a400: map-get($clr-blue-list, "a400"); +$clr-blue-a700: map-get($clr-blue-list, "a700"); + + +// +// Light Blue +// + +$clr-light-blue-list: ( + "base": #03a9f4, + "50": #e1f5fe, + "100": #b3e5fc, + "200": #81d4fa, + "300": #4fc3f7, + "400": #29b6f6, + "500": #03a9f4, + "600": #039be5, + "700": #0288d1, + "800": #0277bd, + "900": #01579b, + "a100": #80d8ff, + "a200": #40c4ff, + "a400": #00b0ff, + "a700": #0091ea +); + +$clr-light-blue: map-get($clr-light-blue-list, "base"); + +$clr-light-blue-50: map-get($clr-light-blue-list, "50"); +$clr-light-blue-100: map-get($clr-light-blue-list, "100"); +$clr-light-blue-200: map-get($clr-light-blue-list, "200"); +$clr-light-blue-300: map-get($clr-light-blue-list, "300"); +$clr-light-blue-400: map-get($clr-light-blue-list, "400"); +$clr-light-blue-500: map-get($clr-light-blue-list, "500"); +$clr-light-blue-600: map-get($clr-light-blue-list, "600"); +$clr-light-blue-700: map-get($clr-light-blue-list, "700"); +$clr-light-blue-800: map-get($clr-light-blue-list, "800"); +$clr-light-blue-900: map-get($clr-light-blue-list, "900"); +$clr-light-blue-a100: map-get($clr-light-blue-list, "a100"); +$clr-light-blue-a200: map-get($clr-light-blue-list, "a200"); +$clr-light-blue-a400: map-get($clr-light-blue-list, "a400"); +$clr-light-blue-a700: map-get($clr-light-blue-list, "a700"); + + +// +// Cyan +// + +$clr-cyan-list: ( + "base": #00bcd4, + "50": #e0f7fa, + "100": #b2ebf2, + "200": #80deea, + "300": #4dd0e1, + "400": #26c6da, + "500": #00bcd4, + "600": #00acc1, + "700": #0097a7, + "800": #00838f, + "900": #006064, + "a100": #84ffff, + "a200": #18ffff, + "a400": #00e5ff, + "a700": #00b8d4 +); + +$clr-cyan: map-get($clr-cyan-list, "base"); + +$clr-cyan-50: map-get($clr-cyan-list, "50"); +$clr-cyan-100: map-get($clr-cyan-list, "100"); +$clr-cyan-200: map-get($clr-cyan-list, "200"); +$clr-cyan-300: map-get($clr-cyan-list, "300"); +$clr-cyan-400: map-get($clr-cyan-list, "400"); +$clr-cyan-500: map-get($clr-cyan-list, "500"); +$clr-cyan-600: map-get($clr-cyan-list, "600"); +$clr-cyan-700: map-get($clr-cyan-list, "700"); +$clr-cyan-800: map-get($clr-cyan-list, "800"); +$clr-cyan-900: map-get($clr-cyan-list, "900"); +$clr-cyan-a100: map-get($clr-cyan-list, "a100"); +$clr-cyan-a200: map-get($clr-cyan-list, "a200"); +$clr-cyan-a400: map-get($clr-cyan-list, "a400"); +$clr-cyan-a700: map-get($clr-cyan-list, "a700"); + + +// +// Teal +// + +$clr-teal-list: ( + "base": #009688, + "50": #e0f2f1, + "100": #b2dfdb, + "200": #80cbc4, + "300": #4db6ac, + "400": #26a69a, + "500": #009688, + "600": #00897b, + "700": #00796b, + "800": #00695c, + "900": #004d40, + "a100": #a7ffeb, + "a200": #64ffda, + "a400": #1de9b6, + "a700": #00bfa5 +); + +$clr-teal: map-get($clr-teal-list, "base"); + +$clr-teal-50: map-get($clr-teal-list, "50"); +$clr-teal-100: map-get($clr-teal-list, "100"); +$clr-teal-200: map-get($clr-teal-list, "200"); +$clr-teal-300: map-get($clr-teal-list, "300"); +$clr-teal-400: map-get($clr-teal-list, "400"); +$clr-teal-500: map-get($clr-teal-list, "500"); +$clr-teal-600: map-get($clr-teal-list, "600"); +$clr-teal-700: map-get($clr-teal-list, "700"); +$clr-teal-800: map-get($clr-teal-list, "800"); +$clr-teal-900: map-get($clr-teal-list, "900"); +$clr-teal-a100: map-get($clr-teal-list, "a100"); +$clr-teal-a200: map-get($clr-teal-list, "a200"); +$clr-teal-a400: map-get($clr-teal-list, "a400"); +$clr-teal-a700: map-get($clr-teal-list, "a700"); + + +// +// Green +// + +$clr-green-list: ( + "base": #4caf50, + "50": #e8f5e9, + "100": #c8e6c9, + "200": #a5d6a7, + "300": #81c784, + "400": #66bb6a, + "500": #4caf50, + "600": #43a047, + "700": #388e3c, + "800": #2e7d32, + "900": #1b5e20, + "a100": #b9f6ca, + "a200": #69f0ae, + "a400": #00e676, + "a700": #00c853 +); + +$clr-green: map-get($clr-green-list, "base"); + +$clr-green-50: map-get($clr-green-list, "50"); +$clr-green-100: map-get($clr-green-list, "100"); +$clr-green-200: map-get($clr-green-list, "200"); +$clr-green-300: map-get($clr-green-list, "300"); +$clr-green-400: map-get($clr-green-list, "400"); +$clr-green-500: map-get($clr-green-list, "500"); +$clr-green-600: map-get($clr-green-list, "600"); +$clr-green-700: map-get($clr-green-list, "700"); +$clr-green-800: map-get($clr-green-list, "800"); +$clr-green-900: map-get($clr-green-list, "900"); +$clr-green-a100: map-get($clr-green-list, "a100"); +$clr-green-a200: map-get($clr-green-list, "a200"); +$clr-green-a400: map-get($clr-green-list, "a400"); +$clr-green-a700: map-get($clr-green-list, "a700"); + + +// +// Light green +// + +$clr-light-green-list: ( + "base": #8bc34a, + "50": #f1f8e9, + "100": #dcedc8, + "200": #c5e1a5, + "300": #aed581, + "400": #9ccc65, + "500": #8bc34a, + "600": #7cb342, + "700": #689f38, + "800": #558b2f, + "900": #33691e, + "a100": #ccff90, + "a200": #b2ff59, + "a400": #76ff03, + "a700": #64dd17 +); + +$clr-light-green: map-get($clr-light-green-list, "base"); + +$clr-light-green-50: map-get($clr-light-green-list, "50"); +$clr-light-green-100: map-get($clr-light-green-list, "100"); +$clr-light-green-200: map-get($clr-light-green-list, "200"); +$clr-light-green-300: map-get($clr-light-green-list, "300"); +$clr-light-green-400: map-get($clr-light-green-list, "400"); +$clr-light-green-500: map-get($clr-light-green-list, "500"); +$clr-light-green-600: map-get($clr-light-green-list, "600"); +$clr-light-green-700: map-get($clr-light-green-list, "700"); +$clr-light-green-800: map-get($clr-light-green-list, "800"); +$clr-light-green-900: map-get($clr-light-green-list, "900"); +$clr-light-green-a100: map-get($clr-light-green-list, "a100"); +$clr-light-green-a200: map-get($clr-light-green-list, "a200"); +$clr-light-green-a400: map-get($clr-light-green-list, "a400"); +$clr-light-green-a700: map-get($clr-light-green-list, "a700"); + + +// +// Lime +// + +$clr-lime-list: ( + "base": #cddc39, + "50": #f9fbe7, + "100": #f0f4c3, + "200": #e6ee9c, + "300": #dce775, + "400": #d4e157, + "500": #cddc39, + "600": #c0ca33, + "700": #afb42b, + "800": #9e9d24, + "900": #827717, + "a100": #f4ff81, + "a200": #eeff41, + "a400": #c6ff00, + "a700": #aeea00 +); + +$clr-lime: map-get($clr-lime-list, "base"); + +$clr-lime-50: map-get($clr-lime-list, "50"); +$clr-lime-100: map-get($clr-lime-list, "100"); +$clr-lime-200: map-get($clr-lime-list, "200"); +$clr-lime-300: map-get($clr-lime-list, "300"); +$clr-lime-400: map-get($clr-lime-list, "400"); +$clr-lime-500: map-get($clr-lime-list, "500"); +$clr-lime-600: map-get($clr-lime-list, "600"); +$clr-lime-700: map-get($clr-lime-list, "700"); +$clr-lime-800: map-get($clr-lime-list, "800"); +$clr-lime-900: map-get($clr-lime-list, "900"); +$clr-lime-a100: map-get($clr-lime-list, "a100"); +$clr-lime-a200: map-get($clr-lime-list, "a200"); +$clr-lime-a400: map-get($clr-lime-list, "a400"); +$clr-lime-a700: map-get($clr-lime-list, "a700"); + + +// +// Yellow +// + +$clr-yellow-list: ( + "base": #ffeb3b, + "50": #fffde7, + "100": #fff9c4, + "200": #fff59d, + "300": #fff176, + "400": #ffee58, + "500": #ffeb3b, + "600": #fdd835, + "700": #fbc02d, + "800": #f9a825, + "900": #f57f17, + "a100": #ffff8d, + "a200": #ffff00, + "a400": #ffea00, + "a700": #ffd600 +); + +$clr-yellow: map-get($clr-yellow-list, "base"); + +$clr-yellow-50: map-get($clr-yellow-list, "50"); +$clr-yellow-100: map-get($clr-yellow-list, "100"); +$clr-yellow-200: map-get($clr-yellow-list, "200"); +$clr-yellow-300: map-get($clr-yellow-list, "300"); +$clr-yellow-400: map-get($clr-yellow-list, "400"); +$clr-yellow-500: map-get($clr-yellow-list, "500"); +$clr-yellow-600: map-get($clr-yellow-list, "600"); +$clr-yellow-700: map-get($clr-yellow-list, "700"); +$clr-yellow-800: map-get($clr-yellow-list, "800"); +$clr-yellow-900: map-get($clr-yellow-list, "900"); +$clr-yellow-a100: map-get($clr-yellow-list, "a100"); +$clr-yellow-a200: map-get($clr-yellow-list, "a200"); +$clr-yellow-a400: map-get($clr-yellow-list, "a400"); +$clr-yellow-a700: map-get($clr-yellow-list, "a700"); + + +// +// amber +// + +$clr-amber-list: ( + "base": #ffc107, + "50": #fff8e1, + "100": #ffecb3, + "200": #ffe082, + "300": #ffd54f, + "400": #ffca28, + "500": #ffc107, + "600": #ffb300, + "700": #ffa000, + "800": #ff8f00, + "900": #ff6f00, + "a100": #ffe57f, + "a200": #ffd740, + "a400": #ffc400, + "a700": #ffab00 +); + +$clr-amber: map-get($clr-amber-list, "base"); + +$clr-amber-50: map-get($clr-amber-list, "50"); +$clr-amber-100: map-get($clr-amber-list, "100"); +$clr-amber-200: map-get($clr-amber-list, "200"); +$clr-amber-300: map-get($clr-amber-list, "300"); +$clr-amber-400: map-get($clr-amber-list, "400"); +$clr-amber-500: map-get($clr-amber-list, "500"); +$clr-amber-600: map-get($clr-amber-list, "600"); +$clr-amber-700: map-get($clr-amber-list, "700"); +$clr-amber-800: map-get($clr-amber-list, "800"); +$clr-amber-900: map-get($clr-amber-list, "900"); +$clr-amber-a100: map-get($clr-amber-list, "a100"); +$clr-amber-a200: map-get($clr-amber-list, "a200"); +$clr-amber-a400: map-get($clr-amber-list, "a400"); +$clr-amber-a700: map-get($clr-amber-list, "a700"); + + +// +// Orange +// + +$clr-orange-list: ( + "base": #ff9800, + "50": #fff3e0, + "100": #ffe0b2, + "200": #ffcc80, + "300": #ffb74d, + "400": #ffa726, + "500": #ff9800, + "600": #fb8c00, + "700": #f57c00, + "800": #ef6c00, + "900": #e65100, + "a100": #ffd180, + "a200": #ffab40, + "a400": #ff9100, + "a700": #ff6d00 +); + +$clr-orange: map-get($clr-orange-list, "base"); + +$clr-orange-50: map-get($clr-orange-list, "50"); +$clr-orange-100: map-get($clr-orange-list, "100"); +$clr-orange-200: map-get($clr-orange-list, "200"); +$clr-orange-300: map-get($clr-orange-list, "300"); +$clr-orange-400: map-get($clr-orange-list, "400"); +$clr-orange-500: map-get($clr-orange-list, "500"); +$clr-orange-600: map-get($clr-orange-list, "600"); +$clr-orange-700: map-get($clr-orange-list, "700"); +$clr-orange-800: map-get($clr-orange-list, "800"); +$clr-orange-900: map-get($clr-orange-list, "900"); +$clr-orange-a100: map-get($clr-orange-list, "a100"); +$clr-orange-a200: map-get($clr-orange-list, "a200"); +$clr-orange-a400: map-get($clr-orange-list, "a400"); +$clr-orange-a700: map-get($clr-orange-list, "a700"); + + +// +// Deep orange +// + +$clr-deep-orange-list: ( + "base": #ff5722, + "50": #fbe9e7, + "100": #ffccbc, + "200": #ffab91, + "300": #ff8a65, + "400": #ff7043, + "500": #ff5722, + "600": #f4511e, + "700": #e64a19, + "800": #d84315, + "900": #bf360c, + "a100": #ff9e80, + "a200": #ff6e40, + "a400": #ff3d00, + "a700": #dd2c00 +); + +$clr-deep-orange: map-get($clr-deep-orange-list, "base"); + +$clr-deep-orange-50: map-get($clr-deep-orange-list, "50"); +$clr-deep-orange-100: map-get($clr-deep-orange-list, "100"); +$clr-deep-orange-200: map-get($clr-deep-orange-list, "200"); +$clr-deep-orange-300: map-get($clr-deep-orange-list, "300"); +$clr-deep-orange-400: map-get($clr-deep-orange-list, "400"); +$clr-deep-orange-500: map-get($clr-deep-orange-list, "500"); +$clr-deep-orange-600: map-get($clr-deep-orange-list, "600"); +$clr-deep-orange-700: map-get($clr-deep-orange-list, "700"); +$clr-deep-orange-800: map-get($clr-deep-orange-list, "800"); +$clr-deep-orange-900: map-get($clr-deep-orange-list, "900"); +$clr-deep-orange-a100: map-get($clr-deep-orange-list, "a100"); +$clr-deep-orange-a200: map-get($clr-deep-orange-list, "a200"); +$clr-deep-orange-a400: map-get($clr-deep-orange-list, "a400"); +$clr-deep-orange-a700: map-get($clr-deep-orange-list, "a700"); + + +// +// Brown +// + +$clr-brown-list: ( + "base": #795548, + "50": #efebe9, + "100": #d7ccc8, + "200": #bcaaa4, + "300": #a1887f, + "400": #8d6e63, + "500": #795548, + "600": #6d4c41, + "700": #5d4037, + "800": #4e342e, + "900": #3e2723, +); + +$clr-brown: map-get($clr-brown-list, "base"); + +$clr-brown-50: map-get($clr-brown-list, "50"); +$clr-brown-100: map-get($clr-brown-list, "100"); +$clr-brown-200: map-get($clr-brown-list, "200"); +$clr-brown-300: map-get($clr-brown-list, "300"); +$clr-brown-400: map-get($clr-brown-list, "400"); +$clr-brown-500: map-get($clr-brown-list, "500"); +$clr-brown-600: map-get($clr-brown-list, "600"); +$clr-brown-700: map-get($clr-brown-list, "700"); +$clr-brown-800: map-get($clr-brown-list, "800"); +$clr-brown-900: map-get($clr-brown-list, "900"); + + +// +// Grey +// + +$clr-grey-list: ( + "base": #9e9e9e, + "50": #fafafa, + "100": #f5f5f5, + "200": #eeeeee, + "300": #e0e0e0, + "400": #bdbdbd, + "500": #9e9e9e, + "600": #757575, + "700": #616161, + "800": #424242, + "900": #212121, +); + +$clr-grey: map-get($clr-grey-list, "base"); + +$clr-grey-50: map-get($clr-grey-list, "50"); +$clr-grey-100: map-get($clr-grey-list, "100"); +$clr-grey-200: map-get($clr-grey-list, "200"); +$clr-grey-300: map-get($clr-grey-list, "300"); +$clr-grey-400: map-get($clr-grey-list, "400"); +$clr-grey-500: map-get($clr-grey-list, "500"); +$clr-grey-600: map-get($clr-grey-list, "600"); +$clr-grey-700: map-get($clr-grey-list, "700"); +$clr-grey-800: map-get($clr-grey-list, "800"); +$clr-grey-900: map-get($clr-grey-list, "900"); + + +// +// Blue grey +// + +$clr-blue-grey-list: ( + "base": #607d8b, + "50": #eceff1, + "100": #cfd8dc, + "200": #b0bec5, + "300": #90a4ae, + "400": #78909c, + "500": #607d8b, + "600": #546e7a, + "700": #455a64, + "800": #37474f, + "900": #263238, +); + +$clr-blue-grey: map-get($clr-blue-grey-list, "base"); + +$clr-blue-grey-50: map-get($clr-blue-grey-list, "50"); +$clr-blue-grey-100: map-get($clr-blue-grey-list, "100"); +$clr-blue-grey-200: map-get($clr-blue-grey-list, "200"); +$clr-blue-grey-300: map-get($clr-blue-grey-list, "300"); +$clr-blue-grey-400: map-get($clr-blue-grey-list, "400"); +$clr-blue-grey-500: map-get($clr-blue-grey-list, "500"); +$clr-blue-grey-600: map-get($clr-blue-grey-list, "600"); +$clr-blue-grey-700: map-get($clr-blue-grey-list, "700"); +$clr-blue-grey-800: map-get($clr-blue-grey-list, "800"); +$clr-blue-grey-900: map-get($clr-blue-grey-list, "900"); + + +// +// Black +// + +$clr-black-list: ( + "base": #000 +); + +$clr-black: map-get($clr-black-list, "base"); + + +// +// White +// + +$clr-white-list: ( + "base": #fff +); + +$clr-white: map-get($clr-white-list, "base"); + + +// +// List for all Colors for looping +// + +$clr-list-all: ( + "red": $clr-red-list, + "pink": $clr-pink-list, + "purple": $clr-purple-list, + "deep-purple": $clr-deep-purple-list, + "indigo": $clr-indigo-list, + "blue": $clr-blue-list, + "light-blue": $clr-light-blue-list, + "cyan": $clr-cyan-list, + "teal": $clr-teal-list, + "green": $clr-green-list, + "light-green": $clr-light-green-list, + "lime": $clr-lime-list, + "yellow": $clr-yellow-list, + "amber": $clr-amber-list, + "orange": $clr-orange-list, + "deep-orange": $clr-deep-orange-list, + "brown": $clr-brown-list, + "grey": $clr-grey-list, + "blue-grey": $clr-blue-grey-list, + "black": $clr-black-list, + "white": $clr-white-list +); + + +// +// Typography +// + +$clr-ui-display-4: $clr-grey-600; +$clr-ui-display-3: $clr-grey-600; +$clr-ui-display-2: $clr-grey-600; +$clr-ui-display-1: $clr-grey-600; +$clr-ui-headline: $clr-grey-900; +$clr-ui-title: $clr-grey-900; +$clr-ui-subhead-1: $clr-grey-900; +$clr-ui-body-2: $clr-grey-900; +$clr-ui-body-1: $clr-grey-900; +$clr-ui-caption: $clr-grey-600; +$clr-ui-menu: $clr-grey-900; +$clr-ui-button: $clr-grey-900; + + +$error-red: $clr-red-500; +$success-green: $clr-green-500; + +$valid-value-color: $clr-green-a400; +$error-value-color: $clr-red-a400; + +$base-shadow-color: #000; +$base-overlay-background: #000; +$base-border-color: #fff; +$simple-background-color: #fff; +$primary-text-color: #FFF; + +$gold-star: $clr-amber-500; + +$ui-base-dark-color: $clr-blue-grey-900; +$ui-base-color: $clr-blue-grey-800; +$ui-base-light-color: $clr-blue-grey-700; +$ui-base-lighter-color: $clr-blue-grey-400; +$ui-base-lightest-color: $clr-blue-grey-300; +$ui-primary-color: $clr-blue-grey-100; +$ui-secondary-color: $clr-blue-grey-200; +$ui-highlight-color: $clr-pink-a200; + +$secondary-text-color: $ui-secondary-color; +$darker-text-color: rgba($primary-text-color, 0.7); +$dark-text-color: rgba($primary-text-color, 0.5); +$inverted-text-color: #000 !default; +$lighter-text-color: rgba($inverted-text-color, 0.7); +$light-text-color: rgba($inverted-text-color, 0.5); + +$primary: $clr-teal-500; +$accent: $clr-pink-a200; + +$ui-avatar-border-size: 0%; + +@import 'application'; +.activity-stream .status.light .status__content a.status__content__spoiler-link { + color: #000; +} +$ui-highlight-color: $clr-light-blue-500; +@import 'plugins/boost'; +@import 'plugins/fullwidth-media'; diff --git a/app/javascript/styles/witches-town.scss b/app/javascript/styles/witches-town.scss new file mode 100644 index 00000000000000..c074367658b340 --- /dev/null +++ b/app/javascript/styles/witches-town.scss @@ -0,0 +1,60 @@ +/* https://github.com/mstdn/mastodon/blob/master/app/javascript/styles/witches-town.scss */ + +// Colors +$ui-base-color: #383144; +$ui-base-lighter-color: #D5BDD6; +$ui-primary-color: #E6E6FA; +$ui-secondary-color: #DBD3FF; +$ui-highlight-color: #A288BD; + +// Columns width +div.column { + flex-grow: 1; +} + +// Fonts +@font-face { + font-family: 'witchesAwesome'; + src: url('/assets/fonts/witchesAwesome/witchesAwesome.eot?c15'); + src: url('/assets/fonts/witchesAwesome/witchesAwesome.eot?c15#iefix') format('embedded-opentype'), + url('/assets/fonts/witchesAwesome/witchesAwesome.ttf?c15') format('truetype'), + url('/assets/fonts/witchesAwesome/witchesAwesome.woff?c15') format('woff'), + url('/assets/fonts/witchesAwesome/witchesAwesome.svg?c15#witchesAwesome') format('svg'); + font-weight: normal; + font-style: normal; +} + +.fa { + font-family: witchesAwesome, FontAwesome; +} + +.detailed-status__link .fa-star { + font-size: 11px; +} + +.detailed-status__link .fa-retweet { + font-size: 12px; +} + +// Import defaults +@import 'application'; + +// Boost icon +@function hex-color($color) { + @if type-of($color) == 'color' { + $color: str-slice(ie-hex-str($color), 4); + } + @return '%23' + unquote($color) +} + +button.icon-button i.fa-retweet { + background-image: url("data:image/svg+xml;utf8,%3Csvg width='22px' height='209px' version='1.1' viewBox='0 0 22 209' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg fill='%238BB82D'%3E%3Cg transform='translate%283 191.19%29'%3E%3Cpath d='m11.202 1.8024c0.053418 0.4381-0.55297 0.8378-1.3543 0.89265-0.80148 0.05463-1.4946-0.25628-1.5479-0.69448-0.02991-0.24647 0.14882-0.48081 0.45348-0.64839 0.029595-0.016136 0.06045-0.03185 0.092459-0.046826 0.22364-0.10483 0.50196-0.17644 0.80873-0.19732 0.80148-0.054841 1.4942 0.25607 1.5476 0.69437m4.0378-0.29825c-1.8351 0.33063-4.0974-2.4486-6.9584-0.95392l-1.0495e-4 1.0546e-4c-0.52978 0.27674-1.0802 0.70017-1.6522 1.3169-1.0516 0.34107-3.4064 0.58553-4.7676 1.4599-1.9651 1.2623 1.362 4.314 2.1613 3.9165 0.52757-0.2625 1.8362-0.81745 2.2249-0.85753l-0.22648-0.31745 0.23361-0.31207c0.35777-0.47743 0.60334-1.0416 0.75604-1.6872l0.13108-0.74289c0.0016792-0.012339 0.0034633-0.024468 0.0048276-0.036807l1.0509 0.12476c-0.11387 0.96679-0.38022 1.8657-0.86424 2.6402 0.49073 0.64122 1.159 1.371 1.9607 1.9757 1.3809 0.96816 2.9499 1.7304 4.3583 1.2366-1.1538-0.5405-2.0283-1.1814-2.6207-1.861-0.6682-0.76693-1.0017-1.6169-0.81912-2.4124 0.13696-0.5965 0.57259-1.0764 1.1973-1.3759 0.20832-0.099769 0.43753-0.1795 0.68373-0.23698 0.93823-0.21884 2.1614-0.17096 3.6984 0.20534 0.14798-0.74658-0.087002-1.4232-0.55223-2.0819'/%3E%3Cpath d='m13.162 4.5324c-0.0018891-7.3825e-4 -0.0036732-0.0012656-0.0055622-0.0017929-0.25744-0.062013-0.48591-0.034276-0.63252-1.0547e-4 -0.15259 0.035647-0.2715 0.11844-0.367 0.18498-0.037151 0.025839-0.071889 0.050201-0.10526 0.069395-0.018681 0.010546-0.02886 0.031428-0.026027 0.052837 0.0028335 0.021304 0.018261 0.038811 0.03904 0.044084l0.20874 0.055263-0.18985 0.68794-0.35808-0.091543c-0.016792-0.0040076-0.035052 0.0011601-0.047961 0.013183-0.012804 0.012234-0.018471 0.030057-0.015427 0.047564 0.03967 0.22116 0.15721 0.46562 0.33982 0.70703 0.0053523 0.0070661 0.012384 0.012656 0.020465 0.016241 2.3313 1.0468 2.2046 3.1414 2.058 5.567-0.018786 0.31006-0.038096 0.63078-0.051634 0.94548-4.198e-4 0.0023202-0.041979 0.23634-0.21115 0.45065-0.13675 0.17328-0.35777 0.25796-0.66232 0.24858l-9.4027-4.219e-4c-0.037256 0-0.073778-0.036807-0.073778-0.074246l-0.056987-5.532c-0.80579-0.14238-2.2168-1.3662-2.6936-2.4784-0.37151 0.52764-0.39786 0.95666-0.39786 1.6508v6.3596c0 1.7855 1.4454 3.2382 3.2222 3.2382h9.3819c1.6916 0 3.6583-1.4301 3.6582-3.2714l0.0072414-0.15472c0.19741-4.2307 0.33993-7.2874-3.6379-8.7342'/%3E%3C/g%3E%3Cg transform='translate%283 133%29'%3E%3Cpath transform='translate%288.5407 5.5337%29 rotate%28180%29 translate%28-8.5407 -5.5337%29' d='m5.8815 8.495c-0.053418-0.4382 0.55297-0.83791 1.3543-0.89275 0.80148-0.05463 1.4946 0.25628 1.5479 0.69448 0.02991 0.24647-0.14882 0.48081-0.45348 0.64839-0.029595 0.016241-0.06045 0.03185-0.092459 0.046826-0.22364 0.10483-0.50196 0.17644-0.80873 0.19732-0.80138 0.054841-1.4942-0.25607-1.5476-0.69427m-4.0376 0.29825c1.8351-0.33073 4.0974 2.4484 6.9583 0.95381l1.0495e-4 -1.0547e-4c0.52978-0.27674 1.0802-0.70017 1.6522-1.3169 1.0516-0.34107 3.4064-0.58553 4.7676-1.4599 1.9651-1.2623-1.362-4.314-2.1613-3.9165-0.52757 0.2625-1.8362 0.81745-2.2249 0.85753l0.22648 0.31745-0.23361 0.31207c-0.35777 0.47743-0.60334 1.0416-0.75604 1.6872l-0.13108 0.74289c-0.0016792 0.012445-0.0034633 0.024468-0.0048276 0.036807l-1.0509-0.12476c0.11387-0.96668 0.38022-1.8655 0.86424-2.6402-0.49073-0.64122-1.159-1.371-1.9607-1.9757-1.3809-0.96816-2.9499-1.7304-4.3583-1.2366 1.1538 0.5405 2.0284 1.1814 2.6207 1.8611 0.6682 0.76683 1.0017 1.6168 0.81912 2.4123-0.13696 0.5965-0.57249 1.0764-1.1973 1.3759-0.20832 0.099769-0.43742 0.1796-0.68373 0.23708-0.93823 0.21873-2.1614 0.17085-3.6984-0.20544-0.14798 0.74658 0.087001 1.4233 0.55234 2.082'/%3E%3Cpath transform='translate%288.7093 11.363%29 rotate%28180%29 translate%28-8.7093 -11.363%29' d='m4.2522 17.424c0.0018891 7.382e-4 0.0036732 0.0012655 0.0055622 0.0017928 0.25744 0.062013 0.48591 0.034276 0.63252 1.055e-4 0.15259-0.035647 0.2715-0.11844 0.367-0.18498 0.037151-0.025839 0.071889-0.050201 0.10526-0.069395 0.018681-0.010546 0.028861-0.031428 0.026027-0.052837-0.0028336-0.021304-0.018261-0.038811-0.03904-0.044084l-0.20874-0.055263 0.18985-0.68794 0.35808 0.091543c0.016792 0.0040076 0.035052-0.0011601 0.047961-0.013183 0.012804-0.012234 0.018471-0.030057 0.015427-0.047564-0.03967-0.22116-0.15721-0.46562-0.33982-0.70703-0.0053523-0.007066-0.012384-0.012656-0.020465-0.016241-2.3313-1.0468-2.2046-3.1414-2.058-5.567 0.018786-0.31006 0.038096-0.63078 0.051634-0.94548 4.1979e-4 -0.0023202 0.041979-0.23634 0.21115-0.45065 0.13675-0.17328 0.35777-0.25796 0.66232-0.24858l9.4027 4.2185e-4c0.037256 0 0.073778 0.036807 0.073778 0.074247l0.056986 5.532c0.80579 0.14238 2.2168 1.3662 2.6936 2.4784 0.37151-0.52764 0.39786-0.95666 0.39786-1.6508v-6.3596c0-1.7855-1.4454-3.2382-3.2222-3.2382h-9.3819c-1.6916 0-3.6583 1.4301-3.6582 3.2714l-0.0072414 0.15472c-0.19741 4.2307-0.33993 7.2874 3.6379 8.7342'/%3E%3C/g%3E%3Cg transform='translate%283 152%29'%3E%3Cpath transform='translate%288.5407 5.5337%29 rotate%28180%29 translate%28-8.5407 -5.5337%29' d='m5.8815 8.495c-0.053418-0.4382 0.55297-0.83791 1.3543-0.89275 0.80148-0.05463 1.4946 0.25628 1.5479 0.69448 0.02991 0.24647-0.14882 0.48081-0.45348 0.64839-0.029595 0.016241-0.06045 0.03185-0.092459 0.046826-0.22364 0.10483-0.50196 0.17644-0.80873 0.19732-0.80138 0.054841-1.4942-0.25607-1.5476-0.69427m-4.0376 0.29825c1.8351-0.33073 4.0974 2.4484 6.9583 0.95381l1.0495e-4 -1.0547e-4c0.52978-0.27674 1.0802-0.70017 1.6522-1.3169 1.0516-0.34107 3.4064-0.58553 4.7676-1.4599 1.9651-1.2623-1.362-4.314-2.1613-3.9165-0.52757 0.2625-1.8362 0.81745-2.2249 0.85753l0.22648 0.31745-0.23361 0.31207c-0.35777 0.47743-0.60334 1.0416-0.75604 1.6872l-0.13108 0.74289c-0.0016792 0.012445-0.0034633 0.024468-0.0048276 0.036807l-1.0509-0.12476c0.11387-0.96668 0.38022-1.8655 0.86424-2.6402-0.49073-0.64122-1.159-1.371-1.9607-1.9757-1.3809-0.96816-2.9499-1.7304-4.3583-1.2366 1.1538 0.5405 2.0284 1.1814 2.6207 1.8611 0.6682 0.76683 1.0017 1.6168 0.81912 2.4123-0.13696 0.5965-0.57249 1.0764-1.1973 1.3759-0.20832 0.099769-0.43742 0.1796-0.68373 0.23708-0.93823 0.21873-2.1614 0.17085-3.6984-0.20544-0.14798 0.74658 0.087001 1.4233 0.55234 2.082'/%3E%3Cpath transform='translate%288.7093 11.363%29 rotate%28180%29 translate%28-8.7093 -11.363%29' d='m4.2522 17.424c0.0018891 7.382e-4 0.0036732 0.0012655 0.0055622 0.0017928 0.25744 0.062013 0.48591 0.034276 0.63252 1.055e-4 0.15259-0.035647 0.2715-0.11844 0.367-0.18498 0.037151-0.025839 0.071889-0.050201 0.10526-0.069395 0.018681-0.010546 0.028861-0.031428 0.026027-0.052837-0.0028336-0.021304-0.018261-0.038811-0.03904-0.044084l-0.20874-0.055263 0.18985-0.68794 0.35808 0.091543c0.016792 0.0040076 0.035052-0.0011601 0.047961-0.013183 0.012804-0.012234 0.018471-0.030057 0.015427-0.047564-0.03967-0.22116-0.15721-0.46562-0.33982-0.70703-0.0053523-0.007066-0.012384-0.012656-0.020465-0.016241-2.3313-1.0468-2.2046-3.1414-2.058-5.567 0.018786-0.31006 0.038096-0.63078 0.051634-0.94548 4.1979e-4 -0.0023202 0.041979-0.23634 0.21115-0.45065 0.13675-0.17328 0.35777-0.25796 0.66232-0.24858l9.4027 4.2185e-4c0.037256 0 0.073778 0.036807 0.073778 0.074247l0.056986 5.532c0.80579 0.14238 2.2168 1.3662 2.6936 2.4784 0.37151-0.52764 0.39786-0.95666 0.39786-1.6508v-6.3596c0-1.7855-1.4454-3.2382-3.2222-3.2382h-9.3819c-1.6916 0-3.6583 1.4301-3.6582 3.2714l-0.0072414 0.15472c-0.19741 4.2307-0.33993 7.2874 3.6379 8.7342'/%3E%3C/g%3E%3Cg transform='translate%283 171.6%29'%3E%3Cpath transform='translate%288.5407 5.5337%29 rotate%28180%29 translate%28-8.5407 -5.5337%29' d='m5.8815 8.495c-0.053418-0.4382 0.55297-0.83791 1.3543-0.89275 0.80148-0.05463 1.4946 0.25628 1.5479 0.69448 0.02991 0.24647-0.14882 0.48081-0.45348 0.64839-0.029595 0.016241-0.06045 0.03185-0.092459 0.046826-0.22364 0.10483-0.50196 0.17644-0.80873 0.19732-0.80138 0.054841-1.4942-0.25607-1.5476-0.69427m-4.0376 0.29825c1.8351-0.33073 4.0974 2.4484 6.9583 0.95381l1.0495e-4 -1.0547e-4c0.52978-0.27674 1.0802-0.70017 1.6522-1.3169 1.0516-0.34107 3.4064-0.58553 4.7676-1.4599 1.9651-1.2623-1.362-4.314-2.1613-3.9165-0.52757 0.2625-1.8362 0.81745-2.2249 0.85753l0.22648 0.31745-0.23361 0.31207c-0.35777 0.47743-0.60334 1.0416-0.75604 1.6872l-0.13108 0.74289c-0.0016792 0.012445-0.0034633 0.024468-0.0048276 0.036807l-1.0509-0.12476c0.11387-0.96668 0.38022-1.8655 0.86424-2.6402-0.49073-0.64122-1.159-1.371-1.9607-1.9757-1.3809-0.96816-2.9499-1.7304-4.3583-1.2366 1.1538 0.5405 2.0284 1.1814 2.6207 1.8611 0.6682 0.76683 1.0017 1.6168 0.81912 2.4123-0.13696 0.5965-0.57249 1.0764-1.1973 1.3759-0.20832 0.099769-0.43742 0.1796-0.68373 0.23708-0.93823 0.21873-2.1614 0.17085-3.6984-0.20544-0.14798 0.74658 0.087001 1.4233 0.55234 2.082'/%3E%3Cpath transform='translate%288.7093 11.363%29 rotate%28180%29 translate%28-8.7093 -11.363%29' d='m4.2522 17.424c0.0018891 7.382e-4 0.0036732 0.0012655 0.0055622 0.0017928 0.25744 0.062013 0.48591 0.034276 0.63252 1.055e-4 0.15259-0.035647 0.2715-0.11844 0.367-0.18498 0.037151-0.025839 0.071889-0.050201 0.10526-0.069395 0.018681-0.010546 0.028861-0.031428 0.026027-0.052837-0.0028336-0.021304-0.018261-0.038811-0.03904-0.044084l-0.20874-0.055263 0.18985-0.68794 0.35808 0.091543c0.016792 0.0040076 0.035052-0.0011601 0.047961-0.013183 0.012804-0.012234 0.018471-0.030057 0.015427-0.047564-0.03967-0.22116-0.15721-0.46562-0.33982-0.70703-0.0053523-0.007066-0.012384-0.012656-0.020465-0.016241-2.3313-1.0468-2.2046-3.1414-2.058-5.567 0.018786-0.31006 0.038096-0.63078 0.051634-0.94548 4.1979e-4 -0.0023202 0.041979-0.23634 0.21115-0.45065 0.13675-0.17328 0.35777-0.25796 0.66232-0.24858l9.4027 4.2185e-4c0.037256 0 0.073778 0.036807 0.073778 0.074247l0.056986 5.532c0.80579 0.14238 2.2168 1.3662 2.6936 2.4784 0.37151-0.52764 0.39786-0.95666 0.39786-1.6508v-6.3596c0-1.7855-1.4454-3.2382-3.2222-3.2382h-9.3819c-1.6916 0-3.6583 1.4301-3.6582 3.2714l-0.0072414 0.15472c-0.19741 4.2307-0.33993 7.2874 3.6379 8.7342'/%3E%3C/g%3E%3Cg transform='translate%283 113.92%29'%3E%3Cpath transform='translate%288.5407 5.5337%29 rotate%28180%29 translate%28-8.5407 -5.5337%29' d='m5.8815 8.495c-0.053418-0.4382 0.55297-0.83791 1.3543-0.89275 0.80148-0.05463 1.4946 0.25628 1.5479 0.69448 0.02991 0.24647-0.14882 0.48081-0.45348 0.64839-0.029595 0.016241-0.06045 0.03185-0.092459 0.046826-0.22364 0.10483-0.50196 0.17644-0.80873 0.19732-0.80138 0.054841-1.4942-0.25607-1.5476-0.69427m-4.0376 0.29825c1.8351-0.33073 4.0974 2.4484 6.9583 0.95381l1.0495e-4 -1.0547e-4c0.52978-0.27674 1.0802-0.70017 1.6522-1.3169 1.0516-0.34107 3.4064-0.58553 4.7676-1.4599 1.9651-1.2623-1.362-4.314-2.1613-3.9165-0.52757 0.2625-1.8362 0.81745-2.2249 0.85753l0.22648 0.31745-0.23361 0.31207c-0.35777 0.47743-0.60334 1.0416-0.75604 1.6872l-0.13108 0.74289c-0.0016792 0.012445-0.0034633 0.024468-0.0048276 0.036807l-1.0509-0.12476c0.11387-0.96668 0.38022-1.8655 0.86424-2.6402-0.49073-0.64122-1.159-1.371-1.9607-1.9757-1.3809-0.96816-2.9499-1.7304-4.3583-1.2366 1.1538 0.5405 2.0284 1.1814 2.6207 1.8611 0.6682 0.76683 1.0017 1.6168 0.81912 2.4123-0.13696 0.5965-0.57249 1.0764-1.1973 1.3759-0.20832 0.099769-0.43742 0.1796-0.68373 0.23708-0.93823 0.21873-2.1614 0.17085-3.6984-0.20544-0.14798 0.74658 0.087001 1.4233 0.55234 2.082'/%3E%3Cpath transform='translate%288.7093 11.363%29 rotate%28180%29 translate%28-8.7093 -11.363%29' d='m4.2522 17.424c0.0018891 7.382e-4 0.0036732 0.0012655 0.0055622 0.0017928 0.25744 0.062013 0.48591 0.034276 0.63252 1.055e-4 0.15259-0.035647 0.2715-0.11844 0.367-0.18498 0.037151-0.025839 0.071889-0.050201 0.10526-0.069395 0.018681-0.010546 0.028861-0.031428 0.026027-0.052837-0.0028336-0.021304-0.018261-0.038811-0.03904-0.044084l-0.20874-0.055263 0.18985-0.68794 0.35808 0.091543c0.016792 0.0040076 0.035052-0.0011601 0.047961-0.013183 0.012804-0.012234 0.018471-0.030057 0.015427-0.047564-0.03967-0.22116-0.15721-0.46562-0.33982-0.70703-0.0053523-0.007066-0.012384-0.012656-0.020465-0.016241-2.3313-1.0468-2.2046-3.1414-2.058-5.567 0.018786-0.31006 0.038096-0.63078 0.051634-0.94548 4.1979e-4 -0.0023202 0.041979-0.23634 0.21115-0.45065 0.13675-0.17328 0.35777-0.25796 0.66232-0.24858l9.4027 4.2185e-4c0.037256 0 0.073778 0.036807 0.073778 0.074247l0.056986 5.532c0.80579 0.14238 2.2168 1.3662 2.6936 2.4784 0.37151-0.52764 0.39786-0.95666 0.39786-1.6508v-6.3596c0-1.7855-1.4454-3.2382-3.2222-3.2382h-9.3819c-1.6916 0-3.6583 1.4301-3.6582 3.2714l-0.0072414 0.15472c-0.19741 4.2307-0.33993 7.2874 3.6379 8.7342'/%3E%3C/g%3E%3Cg transform='translate%281 98.1%29'%3E%3Cpath transform='translate%284.2656 7.449%29 rotate%28180%29 translate%28-4.2656 -7.449%29' d='m6.9773 9.4652c-0.40121 0.049357-0.76727-0.5115-0.81744-1.2526-0.050165-0.74109 0.23466-1.3819 0.63598-1.4314 0.22564-0.027737 0.44025 0.13752 0.59379 0.41932 0.014693 0.027421 0.029175 0.056001 0.042819 0.085531 0.096027 0.20681 0.16151 0.46415 0.18082 0.74795 0.05006 0.74109-0.23456 1.3818-0.63598 1.4311m0.27318 3.7338c-0.30277-1.697 2.2422-3.7891 0.87348-6.4349v-1.0546e-4c-0.25355-0.48998-0.78238-1.9433-1.5057-2.2148-0.65876-0.77832-2.251-2.3071-3.4701-3.1623-1.76-1.2346-3.1705 2.6827-2.5527 3.2255 0.40793 0.35847 1.6273 0.54367 1.7981 0.86174l0.1888-0.30532 0.77388-0.27864c0.43721 0.33073 0.95376 0.5579 1.5451 0.69912l0.68027 0.12118c0.011334 0.0014765 0.022354 0.0031639 0.033583 0.0044295l-0.11408 0.97185c-0.88544-0.10525-1.7085-0.35162-2.4178-0.7992-0.58718 0.45392-1.2555 1.0718-1.8092 1.8133-0.8867 1.277-1.5846 2.7278-1.1325 4.0302 0.49504-1.0668 1.082-1.8757 1.7043-2.4235 0.7022-0.61802 1.4806-0.92629 2.209-0.75755 0.54625 0.12666 0.98577 0.52953 1.26 1.1073 0.091304 0.19268 0.16445 0.40466 0.21703 0.63226 0.20034 0.86765 0.15658 1.999-0.18807 3.4203 0.68363 0.13668 1.3032-0.080574 1.9065-0.51087'/%3E%3Cpath transform='translate%2811.421 6.603%29 rotate%28180%29 translate%28-11.421 -6.603%29' d='m18.57 8.7472l-0.097286 0.24626-0.0010495 0.0042186-0.0011544 0.0044295-0.036522 0.13236-0.78574-0.21894 0.035367-0.12793 0.052789-0.20913 0.016372-0.071294c-0.18901 0.03417-0.45337 0.029108-0.62391 0.30595-0.010914 0.017612-0.15018 0.276-0.15669 0.29572-0.73537 2.2486-3.3947 1.4306-6.0615 1.2467-0.10327-0.007066-3.5133-0.39791-3.5133-0.39791-0.50973-0.10304-0.43837-0.34466-0.43837-0.44042v-6.3596c0-0.098925 0.080495-0.17971 0.17883-0.17971h7.1843c-0.24705-0.62603 0.064333-1.5771 0.18439-1.8982 0.13444-0.35932 0.31757-0.72717 0.54384-1.0547h-7.9125c-1.7217 0-3.1174 1.4026-3.1174 3.1327v6.3596c0 1.7301 1.3957 3.1327 3.1174 3.1327 0 0 3.036 0.32725 4.1752 0.39254 2.8306 0.16189 6.0343 0.7992 7.4377-3.0978 0.054678-0.22907 0.094873-0.59323 0.055832-0.7624-0.046492-0.20144-0.16802-0.31375-0.23666-0.43504'/%3E%3C/g%3E%3Cg transform='translate%281 78.28%29'%3E%3Cpath transform='translate%286.1503 9.7893%29 rotate%28180%29 translate%28-6.1503 -9.7893%29' d='m9.3801 8.4249c-0.24894 0.32008-0.90244 0.18361-1.4593-0.3049-0.55706-0.4883-0.80663-1.1438-0.55759-1.4638 0.1401-0.18013 0.40814-0.21557 0.71501-0.1254 0.0297 0.008859 0.059925 0.018773 0.09036 0.029846h1.0495e-4c0.21336 0.078043 0.44078 0.21356 0.65393 0.40045 0.55696 0.48851 0.80663 1.1438 0.55748 1.4638m2.8205 2.4461c-1.4082-0.98482-1.0807-4.2724-3.9102-5.1708h-1.0495e-4c-0.524-0.16632-1.9206-0.81819-2.6231-0.49621-1.0135-0.082367-3.1013-0.70798-4.565-0.44643-2.1131 0.37756-0.3542 4.1498 0.46471 4.0947 0.54048-0.03649 1.4191-0.095867 1.7636 0.0076988l-0.081334-0.35003 0.35126-0.74689c0.54184-0.076989 1.067-0.28328 1.5844-0.60367l0.5664-0.3977c0.0090255-0.0069606 0.018051-0.013605 0.026972-0.020776l0.60303 0.76841c-0.7001 0.55463-1.4554 0.96542-2.2721 1.1528-0.095712 0.73825-0.13349 1.6501-0.0032534 2.5678 0.2716 1.533 0.79886 3.0549 2.0352 3.6545-0.40079-1.1061-0.55486-2.095-0.50028-2.9247 0.061709-0.93599 0.39523-1.7072 1.0291-2.1054 0.47541-0.29867 1.0695-0.32599 1.67-0.11242 0.20013 0.071294 0.4009 0.16937 0.59841 0.29298 0.75205 0.471 1.517 1.3021 2.2736 2.552 0.57963-0.38916 0.86487-0.98303 0.98861-1.716'/%3E%3Cpath transform='translate%2810.498 6.9503%29 rotate%28180%29 translate%28-10.498 -6.9503%29' d='m17.813 6.0808c-0.12247-0.2008-0.28346-0.34054-0.43028-0.4324-0.17453-0.10926-0.36501-0.11264-0.49892-0.14965l0.063388 0.10705 0.0022039 0.0037967 0.0023089 0.0039022 0.067271 0.11949-0.70966 0.40361-0.065067-0.11559-0.10978-0.1853-0.038621-0.062224c-0.11313 0.16379-0.20528 0.40097-0.24841 0.71852 0.85784 2.2542 0.50616 3.1966-0.80946 3.8269-0.015532-0.0053786-0.02907-0.0090698-0.038516-0.0090698h-9.3819c-0.098441 0-0.17883-0.080891-0.17883-0.17971v-6.3596c0-0.098925 0.08039-0.17971 0.17883-0.17971h3.3528c0.1463 0 0.29133-0.027315 0.42766-0.080363l0.092984-0.16125c-0.63787-0.59102-1.1325-1.8017-1.2086-2.6698-0.0012594-0.014238-0.0012594-0.027632-0.0023088-0.041553h-2.6625c-1.7217 0-3.1174 1.4026-3.1174 3.1327v6.3596c0 1.7301 1.3957 3.1327 3.1174 3.1327h9.1164c0.18765 0 0.37445-0.029424 0.55328-0.087219 1.3051-0.42175 2.4628-1.1709 2.757-2.4129 0.60807-1.1847 0.66936-2.7502-0.2312-4.6819'/%3E%3C/g%3E%3Cg transform='translate%283 58.46%29'%3E%3Cpath d='m5.794 15.428c-0.053418-0.4382 0.55297-0.83791 1.3543-0.89275 0.80148-0.05463 1.4946 0.25628 1.5479 0.69448 0.02991 0.24647-0.14882 0.48081-0.45348 0.64839-0.029595 0.016241-0.06045 0.03185-0.092459 0.046826-0.22364 0.10483-0.50196 0.17644-0.80873 0.19732-0.80138 0.054841-1.4942-0.25607-1.5476-0.69427m-4.0376 0.29825c1.8351-0.33073 4.0974 2.4484 6.9583 0.95381l1.0495e-4 -1.054e-4c0.52978-0.27674 1.0802-0.70017 1.6522-1.3169 1.0516-0.34107 3.4064-0.58553 4.7676-1.4599 1.9651-1.2623-1.362-4.314-2.1613-3.9165-0.52757 0.2625-1.8362 0.81745-2.2249 0.85753l0.22648 0.31745-0.23361 0.31207c-0.35777 0.47743-0.60334 1.0416-0.75604 1.6872l-0.13108 0.74289c-0.0016792 0.012445-0.0034633 0.024468-0.0048276 0.036807l-1.0509-0.12476c0.11387-0.96668 0.38022-1.8655 0.86424-2.6402-0.49073-0.64122-1.159-1.371-1.9607-1.9757-1.3809-0.96816-2.9499-1.7304-4.3583-1.2366 1.1538 0.5405 2.0284 1.1814 2.6207 1.8611 0.6682 0.76683 1.0017 1.6168 0.81912 2.4123-0.13696 0.5965-0.57249 1.0764-1.1973 1.3759-0.20832 0.099769-0.43742 0.1796-0.68373 0.23708-0.93823 0.21873-2.1614 0.17085-3.6984-0.20544-0.14798 0.74658 0.087002 1.4233 0.55234 2.082'/%3E%3Cpath d='m3.8274 12.701c0.001889 7.383e-4 0.0036732 0.0012656 0.0055622 0.0017929 0.25744 0.062013 0.48591 0.034276 0.63252 1.055e-4 0.15259-0.035647 0.2715-0.11844 0.367-0.18498 0.037151-0.025839 0.071889-0.050201 0.10526-0.069395 0.018681-0.010546 0.028861-0.031428 0.026027-0.052837-0.0028336-0.021304-0.018261-0.038811-0.03904-0.044084l-0.20874-0.055263 0.18985-0.68794 0.35808 0.091543c0.016792 0.0040076 0.035052-0.0011601 0.047961-0.013183 0.012804-0.012234 0.018471-0.030057 0.015427-0.047564-0.03967-0.22116-0.15721-0.46562-0.33982-0.70703-0.0053523-0.0070661-0.012384-0.012656-0.020465-0.016241-2.3313-1.0468-2.2046-3.1414-2.058-5.567 0.018786-0.31006 0.038096-0.63078 0.051634-0.94548 4.1979e-4 -0.0023202 0.041979-0.23634 0.21115-0.45065 0.13675-0.17328 0.35777-0.25796 0.66232-0.24858l9.4027 4.2186e-4c0.037256 0 0.073778 0.036807 0.073778 0.074246l0.056986 5.532c0.80579 0.14238 2.2168 1.3662 2.6936 2.4784 0.37151-0.52764 0.39786-0.95666 0.39786-1.6508v-6.3596c0-1.7855-1.4454-3.2382-3.2222-3.2382h-9.3819c-1.6916 0-3.6583 1.4301-3.6582 3.2714l-0.0072414 0.15472c-0.19741 4.2307-0.33993 7.2874 3.6379 8.7342'/%3E%3C/g%3E%3Cg transform='translate%283 40.64%29'%3E%3Cpath d='m17.377 8.5671c-0.40121 0.049357-0.76727-0.5115-0.81744-1.2526-0.050165-0.74109 0.23466-1.3819 0.63598-1.4314 0.22564-0.027737 0.44025 0.13752 0.59379 0.41932 0.014693 0.027421 0.029175 0.056001 0.042819 0.085531 0.096027 0.20681 0.16151 0.46415 0.18082 0.74795 0.05006 0.74109-0.23456 1.3818-0.63598 1.4311m0.27318 3.7338c-0.30277-1.697 2.2422-3.7891 0.87348-6.4349v-1.0546e-4c-0.25355-0.48998-0.78238-1.9433-1.5057-2.2148-0.65876-0.77832-2.251-2.3071-3.4701-3.1623-1.76-1.2346-3.1705 2.6827-2.5527 3.2255 0.40793 0.35847 1.6273 0.54367 1.7981 0.86174l0.1888-0.30532 0.77388-0.27864c0.43721 0.33073 0.95376 0.5579 1.5451 0.69912l0.68027 0.12118c0.011334 0.0014765 0.022354 0.0031639 0.033583 0.0044295l-0.11408 0.97185c-0.88544-0.10525-1.7085-0.35162-2.4178-0.7992-0.58718 0.45392-1.2555 1.0718-1.8092 1.8133-0.8867 1.277-1.5846 2.7278-1.1325 4.0302 0.49504-1.0668 1.082-1.8757 1.7043-2.4235 0.7022-0.61802 1.4806-0.92629 2.209-0.75755 0.54625 0.12666 0.98577 0.52953 1.26 1.1073 0.091304 0.19268 0.16445 0.40466 0.21703 0.63226 0.20034 0.86765 0.15658 1.999-0.18807 3.4203 0.68363 0.13668 1.3032-0.080574 1.9065-0.51087'/%3E%3Cpath d='m14.66 9.5411l-0.097286 0.24626-0.0010495 0.0042186-0.0011544 0.0044295-0.036522 0.13236-0.78574-0.21894 0.035367-0.12793 0.052789-0.20913 0.016372-0.071294c-0.18901 0.03417-0.45337 0.029108-0.62391 0.30595-0.010914 0.017612-0.15018 0.276-0.15669 0.29572-0.73537 2.2486-3.3947 1.4306-6.0615 1.2467-0.10327-0.0070661-3.5133-0.39791-3.5133-0.39791-0.50973-0.10304-0.43837-0.34466-0.43837-0.44042v-6.3596c0-0.098925 0.080495-0.17971 0.17883-0.17971h7.1843c-0.24705-0.62603 0.064333-1.5771 0.18439-1.8982 0.13444-0.35932 0.31757-0.72717 0.54384-1.0547h-7.9125c-1.7217 0-3.1174 1.4026-3.1174 3.1327v6.3596c0 1.7301 1.3957 3.1327 3.1174 3.1327 0 0 3.036 0.32725 4.1752 0.39254 2.8306 0.16189 6.0343 0.7992 7.4377-3.0978 0.054678-0.22907 0.094873-0.59323 0.055832-0.7624-0.046492-0.20144-0.16802-0.31375-0.23666-0.43504'/%3E%3C/g%3E%3Cg transform='translate%283 20.82%29'%3E%3Cpath d='m15.575 3.8463c-0.24894 0.32008-0.90244 0.18361-1.4593-0.3049-0.55706-0.4883-0.80663-1.1438-0.55759-1.4638 0.1401-0.18013 0.40814-0.21557 0.71501-0.1254 0.0297 0.008859 0.059925 0.018773 0.09036 0.029846h1.049e-4c0.21336 0.078043 0.44078 0.21356 0.65393 0.40045 0.55696 0.48851 0.80663 1.1438 0.55748 1.4638m2.8205 2.4461c-1.4082-0.98482-1.0807-4.2724-3.9102-5.1708h-1.049e-4c-0.524-0.16632-1.9206-0.81819-2.6231-0.49621-1.0135-0.082367-3.1013-0.70798-4.565-0.44643-2.1131 0.37756-0.3542 4.1498 0.46471 4.0947 0.54048-0.03649 1.4191-0.095867 1.7636 0.0076989l-0.081334-0.35003 0.35126-0.74689c0.54184-0.076989 1.067-0.28328 1.5844-0.60367l0.5664-0.3977c0.0090254-0.0069606 0.018051-0.013605 0.026972-0.020776l0.60303 0.76841c-0.7001 0.55463-1.4554 0.96542-2.2721 1.1528-0.095712 0.73825-0.13349 1.6501-0.0032534 2.5678 0.2716 1.533 0.79886 3.0549 2.0352 3.6545-0.40079-1.1061-0.55486-2.095-0.50028-2.9247 0.061709-0.93599 0.39523-1.7072 1.0291-2.1054 0.47541-0.29867 1.0695-0.32599 1.67-0.11242 0.20013 0.071294 0.4009 0.16937 0.59841 0.29298 0.75205 0.471 1.517 1.3021 2.2736 2.552 0.57963-0.38916 0.86487-0.98303 0.98861-1.716'/%3E%3Cpath d='m15.313 7.1802c-0.12247-0.2008-0.28346-0.34054-0.43028-0.4324-0.17453-0.10926-0.36501-0.11264-0.49892-0.14965l0.063388 0.10705 0.0022039 0.0037967 0.0023088 0.0039022 0.067271 0.11949-0.70966 0.40361-0.065067-0.11559-0.10978-0.1853-0.038621-0.062224c-0.11313 0.16379-0.20528 0.40097-0.24841 0.71852 0.85784 2.2542 0.50616 3.1966-0.80946 3.8269-0.015532-0.0053786-0.02907-0.0090699-0.038516-0.0090699h-9.3819c-0.098441 0-0.17883-0.080891-0.17883-0.17971v-6.3596c0-0.098925 0.08039-0.17971 0.17883-0.17971h3.3528c0.1463 0 0.29133-0.027315 0.42766-0.080363l0.092984-0.16125c-0.63787-0.59102-1.1325-1.8017-1.2086-2.6698-0.0012594-0.014238-0.0012594-0.027632-0.0023088-0.041553h-2.6625c-1.7217 0-3.1174 1.4026-3.1174 3.1327v6.3596c0 1.7301 1.3957 3.1327 3.1174 3.1327h9.1164c0.18765 0 0.37445-0.029424 0.55328-0.087218 1.3051-0.42175 2.4628-1.1709 2.757-2.4129 0.60807-1.1847 0.66936-2.7502-0.2312-4.6819'/%3E%3C/g%3E%3C/g%3E%3Cg transform='translate%283 1%29' fill='#{hex-color($ui-base-lighter-color)}'%3E%3Cpath d='m11.202 1.8024c0.053418 0.4381-0.55297 0.8378-1.3543 0.89265-0.80148 0.05463-1.4946-0.25628-1.5479-0.69448-0.02991-0.24647 0.14882-0.48081 0.45348-0.64839 0.029595-0.016136 0.06045-0.03185 0.092459-0.046826 0.22364-0.10483 0.50196-0.17644 0.80873-0.19732 0.80148-0.054841 1.4942 0.25607 1.5476 0.69437m4.0378-0.29825c-1.8351 0.33063-4.0974-2.4486-6.9584-0.95392l-1.0495e-4 1.0546e-4c-0.52978 0.27674-1.0802 0.70017-1.6522 1.3169-1.0516 0.34107-3.4064 0.58553-4.7676 1.4599-1.9651 1.2623 1.362 4.314 2.1613 3.9165 0.52757-0.2625 1.8362-0.81745 2.2249-0.85753l-0.22648-0.31745 0.23361-0.31207c0.35777-0.47743 0.60334-1.0416 0.75604-1.6872l0.13108-0.74289c0.0016792-0.012339 0.0034633-0.024468 0.0048276-0.036807l1.0509 0.12476c-0.11387 0.96679-0.38022 1.8657-0.86424 2.6402 0.49073 0.64122 1.159 1.371 1.9607 1.9757 1.3809 0.96816 2.9499 1.7304 4.3583 1.2366-1.1538-0.5405-2.0283-1.1814-2.6207-1.861-0.6682-0.76693-1.0017-1.6169-0.81912-2.4124 0.13696-0.5965 0.57259-1.0764 1.1973-1.3759 0.20832-0.099769 0.43753-0.1795 0.68373-0.23698 0.93823-0.21884 2.1614-0.17096 3.6984 0.20534 0.14798-0.74658-0.087002-1.4232-0.55223-2.0819'/%3E%3Cpath d='m13.162 4.5324c-0.0018891-7.3825e-4 -0.0036732-0.0012656-0.0055622-0.0017929-0.25744-0.062013-0.48591-0.034276-0.63252-1.0547e-4 -0.15259 0.035647-0.2715 0.11844-0.367 0.18498-0.037151 0.025839-0.071889 0.050201-0.10526 0.069395-0.018681 0.010546-0.02886 0.031428-0.026027 0.052837 0.0028335 0.021304 0.018261 0.038811 0.03904 0.044084l0.20874 0.055263-0.18985 0.68794-0.35808-0.091543c-0.016792-0.0040076-0.035052 0.0011601-0.047961 0.013183-0.012804 0.012234-0.018471 0.030057-0.015427 0.047564 0.03967 0.22116 0.15721 0.46562 0.33982 0.70703 0.0053523 0.0070661 0.012384 0.012656 0.020465 0.016241 2.3313 1.0468 2.2046 3.1414 2.058 5.567-0.018786 0.31006-0.038096 0.63078-0.051634 0.94548-4.198e-4 0.0023202-0.041979 0.23634-0.21115 0.45065-0.13675 0.17328-0.35777 0.25796-0.66232 0.24858l-9.4027-4.219e-4c-0.037256 0-0.073778-0.036807-0.073778-0.074246l-0.056987-5.532c-0.80579-0.14238-2.2168-1.3662-2.6936-2.4784-0.37151 0.52764-0.39786 0.95666-0.39786 1.6508v6.3596c0 1.7855 1.4454 3.2382 3.2222 3.2382h9.3819c1.6916 0 3.6583-1.4301 3.6582-3.2714l0.0072414-0.15472c0.19741-4.2307 0.33993-7.2874-3.6379-8.7342'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E"); + + &:hover { + background-image: url("data:image/svg+xml;utf8,%3Csvg width='22px' height='209px' version='1.1' viewBox='0 0 22 209' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg fill='%238BB82D'%3E%3Cg transform='translate%283 191.19%29'%3E%3Cpath d='m11.202 1.8024c0.053418 0.4381-0.55297 0.8378-1.3543 0.89265-0.80148 0.05463-1.4946-0.25628-1.5479-0.69448-0.02991-0.24647 0.14882-0.48081 0.45348-0.64839 0.029595-0.016136 0.06045-0.03185 0.092459-0.046826 0.22364-0.10483 0.50196-0.17644 0.80873-0.19732 0.80148-0.054841 1.4942 0.25607 1.5476 0.69437m4.0378-0.29825c-1.8351 0.33063-4.0974-2.4486-6.9584-0.95392l-1.0495e-4 1.0546e-4c-0.52978 0.27674-1.0802 0.70017-1.6522 1.3169-1.0516 0.34107-3.4064 0.58553-4.7676 1.4599-1.9651 1.2623 1.362 4.314 2.1613 3.9165 0.52757-0.2625 1.8362-0.81745 2.2249-0.85753l-0.22648-0.31745 0.23361-0.31207c0.35777-0.47743 0.60334-1.0416 0.75604-1.6872l0.13108-0.74289c0.0016792-0.012339 0.0034633-0.024468 0.0048276-0.036807l1.0509 0.12476c-0.11387 0.96679-0.38022 1.8657-0.86424 2.6402 0.49073 0.64122 1.159 1.371 1.9607 1.9757 1.3809 0.96816 2.9499 1.7304 4.3583 1.2366-1.1538-0.5405-2.0283-1.1814-2.6207-1.861-0.6682-0.76693-1.0017-1.6169-0.81912-2.4124 0.13696-0.5965 0.57259-1.0764 1.1973-1.3759 0.20832-0.099769 0.43753-0.1795 0.68373-0.23698 0.93823-0.21884 2.1614-0.17096 3.6984 0.20534 0.14798-0.74658-0.087002-1.4232-0.55223-2.0819'/%3E%3Cpath d='m13.162 4.5324c-0.0018891-7.3825e-4 -0.0036732-0.0012656-0.0055622-0.0017929-0.25744-0.062013-0.48591-0.034276-0.63252-1.0547e-4 -0.15259 0.035647-0.2715 0.11844-0.367 0.18498-0.037151 0.025839-0.071889 0.050201-0.10526 0.069395-0.018681 0.010546-0.02886 0.031428-0.026027 0.052837 0.0028335 0.021304 0.018261 0.038811 0.03904 0.044084l0.20874 0.055263-0.18985 0.68794-0.35808-0.091543c-0.016792-0.0040076-0.035052 0.0011601-0.047961 0.013183-0.012804 0.012234-0.018471 0.030057-0.015427 0.047564 0.03967 0.22116 0.15721 0.46562 0.33982 0.70703 0.0053523 0.0070661 0.012384 0.012656 0.020465 0.016241 2.3313 1.0468 2.2046 3.1414 2.058 5.567-0.018786 0.31006-0.038096 0.63078-0.051634 0.94548-4.198e-4 0.0023202-0.041979 0.23634-0.21115 0.45065-0.13675 0.17328-0.35777 0.25796-0.66232 0.24858l-9.4027-4.219e-4c-0.037256 0-0.073778-0.036807-0.073778-0.074246l-0.056987-5.532c-0.80579-0.14238-2.2168-1.3662-2.6936-2.4784-0.37151 0.52764-0.39786 0.95666-0.39786 1.6508v6.3596c0 1.7855 1.4454 3.2382 3.2222 3.2382h9.3819c1.6916 0 3.6583-1.4301 3.6582-3.2714l0.0072414-0.15472c0.19741-4.2307 0.33993-7.2874-3.6379-8.7342'/%3E%3C/g%3E%3Cg transform='translate%283 133%29'%3E%3Cpath transform='translate%288.5407 5.5337%29 rotate%28180%29 translate%28-8.5407 -5.5337%29' d='m5.8815 8.495c-0.053418-0.4382 0.55297-0.83791 1.3543-0.89275 0.80148-0.05463 1.4946 0.25628 1.5479 0.69448 0.02991 0.24647-0.14882 0.48081-0.45348 0.64839-0.029595 0.016241-0.06045 0.03185-0.092459 0.046826-0.22364 0.10483-0.50196 0.17644-0.80873 0.19732-0.80138 0.054841-1.4942-0.25607-1.5476-0.69427m-4.0376 0.29825c1.8351-0.33073 4.0974 2.4484 6.9583 0.95381l1.0495e-4 -1.0547e-4c0.52978-0.27674 1.0802-0.70017 1.6522-1.3169 1.0516-0.34107 3.4064-0.58553 4.7676-1.4599 1.9651-1.2623-1.362-4.314-2.1613-3.9165-0.52757 0.2625-1.8362 0.81745-2.2249 0.85753l0.22648 0.31745-0.23361 0.31207c-0.35777 0.47743-0.60334 1.0416-0.75604 1.6872l-0.13108 0.74289c-0.0016792 0.012445-0.0034633 0.024468-0.0048276 0.036807l-1.0509-0.12476c0.11387-0.96668 0.38022-1.8655 0.86424-2.6402-0.49073-0.64122-1.159-1.371-1.9607-1.9757-1.3809-0.96816-2.9499-1.7304-4.3583-1.2366 1.1538 0.5405 2.0284 1.1814 2.6207 1.8611 0.6682 0.76683 1.0017 1.6168 0.81912 2.4123-0.13696 0.5965-0.57249 1.0764-1.1973 1.3759-0.20832 0.099769-0.43742 0.1796-0.68373 0.23708-0.93823 0.21873-2.1614 0.17085-3.6984-0.20544-0.14798 0.74658 0.087001 1.4233 0.55234 2.082'/%3E%3Cpath transform='translate%288.7093 11.363%29 rotate%28180%29 translate%28-8.7093 -11.363%29' d='m4.2522 17.424c0.0018891 7.382e-4 0.0036732 0.0012655 0.0055622 0.0017928 0.25744 0.062013 0.48591 0.034276 0.63252 1.055e-4 0.15259-0.035647 0.2715-0.11844 0.367-0.18498 0.037151-0.025839 0.071889-0.050201 0.10526-0.069395 0.018681-0.010546 0.028861-0.031428 0.026027-0.052837-0.0028336-0.021304-0.018261-0.038811-0.03904-0.044084l-0.20874-0.055263 0.18985-0.68794 0.35808 0.091543c0.016792 0.0040076 0.035052-0.0011601 0.047961-0.013183 0.012804-0.012234 0.018471-0.030057 0.015427-0.047564-0.03967-0.22116-0.15721-0.46562-0.33982-0.70703-0.0053523-0.007066-0.012384-0.012656-0.020465-0.016241-2.3313-1.0468-2.2046-3.1414-2.058-5.567 0.018786-0.31006 0.038096-0.63078 0.051634-0.94548 4.1979e-4 -0.0023202 0.041979-0.23634 0.21115-0.45065 0.13675-0.17328 0.35777-0.25796 0.66232-0.24858l9.4027 4.2185e-4c0.037256 0 0.073778 0.036807 0.073778 0.074247l0.056986 5.532c0.80579 0.14238 2.2168 1.3662 2.6936 2.4784 0.37151-0.52764 0.39786-0.95666 0.39786-1.6508v-6.3596c0-1.7855-1.4454-3.2382-3.2222-3.2382h-9.3819c-1.6916 0-3.6583 1.4301-3.6582 3.2714l-0.0072414 0.15472c-0.19741 4.2307-0.33993 7.2874 3.6379 8.7342'/%3E%3C/g%3E%3Cg transform='translate%283 152%29'%3E%3Cpath transform='translate%288.5407 5.5337%29 rotate%28180%29 translate%28-8.5407 -5.5337%29' d='m5.8815 8.495c-0.053418-0.4382 0.55297-0.83791 1.3543-0.89275 0.80148-0.05463 1.4946 0.25628 1.5479 0.69448 0.02991 0.24647-0.14882 0.48081-0.45348 0.64839-0.029595 0.016241-0.06045 0.03185-0.092459 0.046826-0.22364 0.10483-0.50196 0.17644-0.80873 0.19732-0.80138 0.054841-1.4942-0.25607-1.5476-0.69427m-4.0376 0.29825c1.8351-0.33073 4.0974 2.4484 6.9583 0.95381l1.0495e-4 -1.0547e-4c0.52978-0.27674 1.0802-0.70017 1.6522-1.3169 1.0516-0.34107 3.4064-0.58553 4.7676-1.4599 1.9651-1.2623-1.362-4.314-2.1613-3.9165-0.52757 0.2625-1.8362 0.81745-2.2249 0.85753l0.22648 0.31745-0.23361 0.31207c-0.35777 0.47743-0.60334 1.0416-0.75604 1.6872l-0.13108 0.74289c-0.0016792 0.012445-0.0034633 0.024468-0.0048276 0.036807l-1.0509-0.12476c0.11387-0.96668 0.38022-1.8655 0.86424-2.6402-0.49073-0.64122-1.159-1.371-1.9607-1.9757-1.3809-0.96816-2.9499-1.7304-4.3583-1.2366 1.1538 0.5405 2.0284 1.1814 2.6207 1.8611 0.6682 0.76683 1.0017 1.6168 0.81912 2.4123-0.13696 0.5965-0.57249 1.0764-1.1973 1.3759-0.20832 0.099769-0.43742 0.1796-0.68373 0.23708-0.93823 0.21873-2.1614 0.17085-3.6984-0.20544-0.14798 0.74658 0.087001 1.4233 0.55234 2.082'/%3E%3Cpath transform='translate%288.7093 11.363%29 rotate%28180%29 translate%28-8.7093 -11.363%29' d='m4.2522 17.424c0.0018891 7.382e-4 0.0036732 0.0012655 0.0055622 0.0017928 0.25744 0.062013 0.48591 0.034276 0.63252 1.055e-4 0.15259-0.035647 0.2715-0.11844 0.367-0.18498 0.037151-0.025839 0.071889-0.050201 0.10526-0.069395 0.018681-0.010546 0.028861-0.031428 0.026027-0.052837-0.0028336-0.021304-0.018261-0.038811-0.03904-0.044084l-0.20874-0.055263 0.18985-0.68794 0.35808 0.091543c0.016792 0.0040076 0.035052-0.0011601 0.047961-0.013183 0.012804-0.012234 0.018471-0.030057 0.015427-0.047564-0.03967-0.22116-0.15721-0.46562-0.33982-0.70703-0.0053523-0.007066-0.012384-0.012656-0.020465-0.016241-2.3313-1.0468-2.2046-3.1414-2.058-5.567 0.018786-0.31006 0.038096-0.63078 0.051634-0.94548 4.1979e-4 -0.0023202 0.041979-0.23634 0.21115-0.45065 0.13675-0.17328 0.35777-0.25796 0.66232-0.24858l9.4027 4.2185e-4c0.037256 0 0.073778 0.036807 0.073778 0.074247l0.056986 5.532c0.80579 0.14238 2.2168 1.3662 2.6936 2.4784 0.37151-0.52764 0.39786-0.95666 0.39786-1.6508v-6.3596c0-1.7855-1.4454-3.2382-3.2222-3.2382h-9.3819c-1.6916 0-3.6583 1.4301-3.6582 3.2714l-0.0072414 0.15472c-0.19741 4.2307-0.33993 7.2874 3.6379 8.7342'/%3E%3C/g%3E%3Cg transform='translate%283 171.6%29'%3E%3Cpath transform='translate%288.5407 5.5337%29 rotate%28180%29 translate%28-8.5407 -5.5337%29' d='m5.8815 8.495c-0.053418-0.4382 0.55297-0.83791 1.3543-0.89275 0.80148-0.05463 1.4946 0.25628 1.5479 0.69448 0.02991 0.24647-0.14882 0.48081-0.45348 0.64839-0.029595 0.016241-0.06045 0.03185-0.092459 0.046826-0.22364 0.10483-0.50196 0.17644-0.80873 0.19732-0.80138 0.054841-1.4942-0.25607-1.5476-0.69427m-4.0376 0.29825c1.8351-0.33073 4.0974 2.4484 6.9583 0.95381l1.0495e-4 -1.0547e-4c0.52978-0.27674 1.0802-0.70017 1.6522-1.3169 1.0516-0.34107 3.4064-0.58553 4.7676-1.4599 1.9651-1.2623-1.362-4.314-2.1613-3.9165-0.52757 0.2625-1.8362 0.81745-2.2249 0.85753l0.22648 0.31745-0.23361 0.31207c-0.35777 0.47743-0.60334 1.0416-0.75604 1.6872l-0.13108 0.74289c-0.0016792 0.012445-0.0034633 0.024468-0.0048276 0.036807l-1.0509-0.12476c0.11387-0.96668 0.38022-1.8655 0.86424-2.6402-0.49073-0.64122-1.159-1.371-1.9607-1.9757-1.3809-0.96816-2.9499-1.7304-4.3583-1.2366 1.1538 0.5405 2.0284 1.1814 2.6207 1.8611 0.6682 0.76683 1.0017 1.6168 0.81912 2.4123-0.13696 0.5965-0.57249 1.0764-1.1973 1.3759-0.20832 0.099769-0.43742 0.1796-0.68373 0.23708-0.93823 0.21873-2.1614 0.17085-3.6984-0.20544-0.14798 0.74658 0.087001 1.4233 0.55234 2.082'/%3E%3Cpath transform='translate%288.7093 11.363%29 rotate%28180%29 translate%28-8.7093 -11.363%29' d='m4.2522 17.424c0.0018891 7.382e-4 0.0036732 0.0012655 0.0055622 0.0017928 0.25744 0.062013 0.48591 0.034276 0.63252 1.055e-4 0.15259-0.035647 0.2715-0.11844 0.367-0.18498 0.037151-0.025839 0.071889-0.050201 0.10526-0.069395 0.018681-0.010546 0.028861-0.031428 0.026027-0.052837-0.0028336-0.021304-0.018261-0.038811-0.03904-0.044084l-0.20874-0.055263 0.18985-0.68794 0.35808 0.091543c0.016792 0.0040076 0.035052-0.0011601 0.047961-0.013183 0.012804-0.012234 0.018471-0.030057 0.015427-0.047564-0.03967-0.22116-0.15721-0.46562-0.33982-0.70703-0.0053523-0.007066-0.012384-0.012656-0.020465-0.016241-2.3313-1.0468-2.2046-3.1414-2.058-5.567 0.018786-0.31006 0.038096-0.63078 0.051634-0.94548 4.1979e-4 -0.0023202 0.041979-0.23634 0.21115-0.45065 0.13675-0.17328 0.35777-0.25796 0.66232-0.24858l9.4027 4.2185e-4c0.037256 0 0.073778 0.036807 0.073778 0.074247l0.056986 5.532c0.80579 0.14238 2.2168 1.3662 2.6936 2.4784 0.37151-0.52764 0.39786-0.95666 0.39786-1.6508v-6.3596c0-1.7855-1.4454-3.2382-3.2222-3.2382h-9.3819c-1.6916 0-3.6583 1.4301-3.6582 3.2714l-0.0072414 0.15472c-0.19741 4.2307-0.33993 7.2874 3.6379 8.7342'/%3E%3C/g%3E%3Cg transform='translate%283 113.92%29'%3E%3Cpath transform='translate%288.5407 5.5337%29 rotate%28180%29 translate%28-8.5407 -5.5337%29' d='m5.8815 8.495c-0.053418-0.4382 0.55297-0.83791 1.3543-0.89275 0.80148-0.05463 1.4946 0.25628 1.5479 0.69448 0.02991 0.24647-0.14882 0.48081-0.45348 0.64839-0.029595 0.016241-0.06045 0.03185-0.092459 0.046826-0.22364 0.10483-0.50196 0.17644-0.80873 0.19732-0.80138 0.054841-1.4942-0.25607-1.5476-0.69427m-4.0376 0.29825c1.8351-0.33073 4.0974 2.4484 6.9583 0.95381l1.0495e-4 -1.0547e-4c0.52978-0.27674 1.0802-0.70017 1.6522-1.3169 1.0516-0.34107 3.4064-0.58553 4.7676-1.4599 1.9651-1.2623-1.362-4.314-2.1613-3.9165-0.52757 0.2625-1.8362 0.81745-2.2249 0.85753l0.22648 0.31745-0.23361 0.31207c-0.35777 0.47743-0.60334 1.0416-0.75604 1.6872l-0.13108 0.74289c-0.0016792 0.012445-0.0034633 0.024468-0.0048276 0.036807l-1.0509-0.12476c0.11387-0.96668 0.38022-1.8655 0.86424-2.6402-0.49073-0.64122-1.159-1.371-1.9607-1.9757-1.3809-0.96816-2.9499-1.7304-4.3583-1.2366 1.1538 0.5405 2.0284 1.1814 2.6207 1.8611 0.6682 0.76683 1.0017 1.6168 0.81912 2.4123-0.13696 0.5965-0.57249 1.0764-1.1973 1.3759-0.20832 0.099769-0.43742 0.1796-0.68373 0.23708-0.93823 0.21873-2.1614 0.17085-3.6984-0.20544-0.14798 0.74658 0.087001 1.4233 0.55234 2.082'/%3E%3Cpath transform='translate%288.7093 11.363%29 rotate%28180%29 translate%28-8.7093 -11.363%29' d='m4.2522 17.424c0.0018891 7.382e-4 0.0036732 0.0012655 0.0055622 0.0017928 0.25744 0.062013 0.48591 0.034276 0.63252 1.055e-4 0.15259-0.035647 0.2715-0.11844 0.367-0.18498 0.037151-0.025839 0.071889-0.050201 0.10526-0.069395 0.018681-0.010546 0.028861-0.031428 0.026027-0.052837-0.0028336-0.021304-0.018261-0.038811-0.03904-0.044084l-0.20874-0.055263 0.18985-0.68794 0.35808 0.091543c0.016792 0.0040076 0.035052-0.0011601 0.047961-0.013183 0.012804-0.012234 0.018471-0.030057 0.015427-0.047564-0.03967-0.22116-0.15721-0.46562-0.33982-0.70703-0.0053523-0.007066-0.012384-0.012656-0.020465-0.016241-2.3313-1.0468-2.2046-3.1414-2.058-5.567 0.018786-0.31006 0.038096-0.63078 0.051634-0.94548 4.1979e-4 -0.0023202 0.041979-0.23634 0.21115-0.45065 0.13675-0.17328 0.35777-0.25796 0.66232-0.24858l9.4027 4.2185e-4c0.037256 0 0.073778 0.036807 0.073778 0.074247l0.056986 5.532c0.80579 0.14238 2.2168 1.3662 2.6936 2.4784 0.37151-0.52764 0.39786-0.95666 0.39786-1.6508v-6.3596c0-1.7855-1.4454-3.2382-3.2222-3.2382h-9.3819c-1.6916 0-3.6583 1.4301-3.6582 3.2714l-0.0072414 0.15472c-0.19741 4.2307-0.33993 7.2874 3.6379 8.7342'/%3E%3C/g%3E%3Cg transform='translate%281 98.1%29'%3E%3Cpath transform='translate%284.2656 7.449%29 rotate%28180%29 translate%28-4.2656 -7.449%29' d='m6.9773 9.4652c-0.40121 0.049357-0.76727-0.5115-0.81744-1.2526-0.050165-0.74109 0.23466-1.3819 0.63598-1.4314 0.22564-0.027737 0.44025 0.13752 0.59379 0.41932 0.014693 0.027421 0.029175 0.056001 0.042819 0.085531 0.096027 0.20681 0.16151 0.46415 0.18082 0.74795 0.05006 0.74109-0.23456 1.3818-0.63598 1.4311m0.27318 3.7338c-0.30277-1.697 2.2422-3.7891 0.87348-6.4349v-1.0546e-4c-0.25355-0.48998-0.78238-1.9433-1.5057-2.2148-0.65876-0.77832-2.251-2.3071-3.4701-3.1623-1.76-1.2346-3.1705 2.6827-2.5527 3.2255 0.40793 0.35847 1.6273 0.54367 1.7981 0.86174l0.1888-0.30532 0.77388-0.27864c0.43721 0.33073 0.95376 0.5579 1.5451 0.69912l0.68027 0.12118c0.011334 0.0014765 0.022354 0.0031639 0.033583 0.0044295l-0.11408 0.97185c-0.88544-0.10525-1.7085-0.35162-2.4178-0.7992-0.58718 0.45392-1.2555 1.0718-1.8092 1.8133-0.8867 1.277-1.5846 2.7278-1.1325 4.0302 0.49504-1.0668 1.082-1.8757 1.7043-2.4235 0.7022-0.61802 1.4806-0.92629 2.209-0.75755 0.54625 0.12666 0.98577 0.52953 1.26 1.1073 0.091304 0.19268 0.16445 0.40466 0.21703 0.63226 0.20034 0.86765 0.15658 1.999-0.18807 3.4203 0.68363 0.13668 1.3032-0.080574 1.9065-0.51087'/%3E%3Cpath transform='translate%2811.421 6.603%29 rotate%28180%29 translate%28-11.421 -6.603%29' d='m18.57 8.7472l-0.097286 0.24626-0.0010495 0.0042186-0.0011544 0.0044295-0.036522 0.13236-0.78574-0.21894 0.035367-0.12793 0.052789-0.20913 0.016372-0.071294c-0.18901 0.03417-0.45337 0.029108-0.62391 0.30595-0.010914 0.017612-0.15018 0.276-0.15669 0.29572-0.73537 2.2486-3.3947 1.4306-6.0615 1.2467-0.10327-0.007066-3.5133-0.39791-3.5133-0.39791-0.50973-0.10304-0.43837-0.34466-0.43837-0.44042v-6.3596c0-0.098925 0.080495-0.17971 0.17883-0.17971h7.1843c-0.24705-0.62603 0.064333-1.5771 0.18439-1.8982 0.13444-0.35932 0.31757-0.72717 0.54384-1.0547h-7.9125c-1.7217 0-3.1174 1.4026-3.1174 3.1327v6.3596c0 1.7301 1.3957 3.1327 3.1174 3.1327 0 0 3.036 0.32725 4.1752 0.39254 2.8306 0.16189 6.0343 0.7992 7.4377-3.0978 0.054678-0.22907 0.094873-0.59323 0.055832-0.7624-0.046492-0.20144-0.16802-0.31375-0.23666-0.43504'/%3E%3C/g%3E%3Cg transform='translate%281 78.28%29'%3E%3Cpath transform='translate%286.1503 9.7893%29 rotate%28180%29 translate%28-6.1503 -9.7893%29' d='m9.3801 8.4249c-0.24894 0.32008-0.90244 0.18361-1.4593-0.3049-0.55706-0.4883-0.80663-1.1438-0.55759-1.4638 0.1401-0.18013 0.40814-0.21557 0.71501-0.1254 0.0297 0.008859 0.059925 0.018773 0.09036 0.029846h1.0495e-4c0.21336 0.078043 0.44078 0.21356 0.65393 0.40045 0.55696 0.48851 0.80663 1.1438 0.55748 1.4638m2.8205 2.4461c-1.4082-0.98482-1.0807-4.2724-3.9102-5.1708h-1.0495e-4c-0.524-0.16632-1.9206-0.81819-2.6231-0.49621-1.0135-0.082367-3.1013-0.70798-4.565-0.44643-2.1131 0.37756-0.3542 4.1498 0.46471 4.0947 0.54048-0.03649 1.4191-0.095867 1.7636 0.0076988l-0.081334-0.35003 0.35126-0.74689c0.54184-0.076989 1.067-0.28328 1.5844-0.60367l0.5664-0.3977c0.0090255-0.0069606 0.018051-0.013605 0.026972-0.020776l0.60303 0.76841c-0.7001 0.55463-1.4554 0.96542-2.2721 1.1528-0.095712 0.73825-0.13349 1.6501-0.0032534 2.5678 0.2716 1.533 0.79886 3.0549 2.0352 3.6545-0.40079-1.1061-0.55486-2.095-0.50028-2.9247 0.061709-0.93599 0.39523-1.7072 1.0291-2.1054 0.47541-0.29867 1.0695-0.32599 1.67-0.11242 0.20013 0.071294 0.4009 0.16937 0.59841 0.29298 0.75205 0.471 1.517 1.3021 2.2736 2.552 0.57963-0.38916 0.86487-0.98303 0.98861-1.716'/%3E%3Cpath transform='translate%2810.498 6.9503%29 rotate%28180%29 translate%28-10.498 -6.9503%29' d='m17.813 6.0808c-0.12247-0.2008-0.28346-0.34054-0.43028-0.4324-0.17453-0.10926-0.36501-0.11264-0.49892-0.14965l0.063388 0.10705 0.0022039 0.0037967 0.0023089 0.0039022 0.067271 0.11949-0.70966 0.40361-0.065067-0.11559-0.10978-0.1853-0.038621-0.062224c-0.11313 0.16379-0.20528 0.40097-0.24841 0.71852 0.85784 2.2542 0.50616 3.1966-0.80946 3.8269-0.015532-0.0053786-0.02907-0.0090698-0.038516-0.0090698h-9.3819c-0.098441 0-0.17883-0.080891-0.17883-0.17971v-6.3596c0-0.098925 0.08039-0.17971 0.17883-0.17971h3.3528c0.1463 0 0.29133-0.027315 0.42766-0.080363l0.092984-0.16125c-0.63787-0.59102-1.1325-1.8017-1.2086-2.6698-0.0012594-0.014238-0.0012594-0.027632-0.0023088-0.041553h-2.6625c-1.7217 0-3.1174 1.4026-3.1174 3.1327v6.3596c0 1.7301 1.3957 3.1327 3.1174 3.1327h9.1164c0.18765 0 0.37445-0.029424 0.55328-0.087219 1.3051-0.42175 2.4628-1.1709 2.757-2.4129 0.60807-1.1847 0.66936-2.7502-0.2312-4.6819'/%3E%3C/g%3E%3Cg transform='translate%283 58.46%29'%3E%3Cpath d='m5.794 15.428c-0.053418-0.4382 0.55297-0.83791 1.3543-0.89275 0.80148-0.05463 1.4946 0.25628 1.5479 0.69448 0.02991 0.24647-0.14882 0.48081-0.45348 0.64839-0.029595 0.016241-0.06045 0.03185-0.092459 0.046826-0.22364 0.10483-0.50196 0.17644-0.80873 0.19732-0.80138 0.054841-1.4942-0.25607-1.5476-0.69427m-4.0376 0.29825c1.8351-0.33073 4.0974 2.4484 6.9583 0.95381l1.0495e-4 -1.054e-4c0.52978-0.27674 1.0802-0.70017 1.6522-1.3169 1.0516-0.34107 3.4064-0.58553 4.7676-1.4599 1.9651-1.2623-1.362-4.314-2.1613-3.9165-0.52757 0.2625-1.8362 0.81745-2.2249 0.85753l0.22648 0.31745-0.23361 0.31207c-0.35777 0.47743-0.60334 1.0416-0.75604 1.6872l-0.13108 0.74289c-0.0016792 0.012445-0.0034633 0.024468-0.0048276 0.036807l-1.0509-0.12476c0.11387-0.96668 0.38022-1.8655 0.86424-2.6402-0.49073-0.64122-1.159-1.371-1.9607-1.9757-1.3809-0.96816-2.9499-1.7304-4.3583-1.2366 1.1538 0.5405 2.0284 1.1814 2.6207 1.8611 0.6682 0.76683 1.0017 1.6168 0.81912 2.4123-0.13696 0.5965-0.57249 1.0764-1.1973 1.3759-0.20832 0.099769-0.43742 0.1796-0.68373 0.23708-0.93823 0.21873-2.1614 0.17085-3.6984-0.20544-0.14798 0.74658 0.087002 1.4233 0.55234 2.082'/%3E%3Cpath d='m3.8274 12.701c0.001889 7.383e-4 0.0036732 0.0012656 0.0055622 0.0017929 0.25744 0.062013 0.48591 0.034276 0.63252 1.055e-4 0.15259-0.035647 0.2715-0.11844 0.367-0.18498 0.037151-0.025839 0.071889-0.050201 0.10526-0.069395 0.018681-0.010546 0.028861-0.031428 0.026027-0.052837-0.0028336-0.021304-0.018261-0.038811-0.03904-0.044084l-0.20874-0.055263 0.18985-0.68794 0.35808 0.091543c0.016792 0.0040076 0.035052-0.0011601 0.047961-0.013183 0.012804-0.012234 0.018471-0.030057 0.015427-0.047564-0.03967-0.22116-0.15721-0.46562-0.33982-0.70703-0.0053523-0.0070661-0.012384-0.012656-0.020465-0.016241-2.3313-1.0468-2.2046-3.1414-2.058-5.567 0.018786-0.31006 0.038096-0.63078 0.051634-0.94548 4.1979e-4 -0.0023202 0.041979-0.23634 0.21115-0.45065 0.13675-0.17328 0.35777-0.25796 0.66232-0.24858l9.4027 4.2186e-4c0.037256 0 0.073778 0.036807 0.073778 0.074246l0.056986 5.532c0.80579 0.14238 2.2168 1.3662 2.6936 2.4784 0.37151-0.52764 0.39786-0.95666 0.39786-1.6508v-6.3596c0-1.7855-1.4454-3.2382-3.2222-3.2382h-9.3819c-1.6916 0-3.6583 1.4301-3.6582 3.2714l-0.0072414 0.15472c-0.19741 4.2307-0.33993 7.2874 3.6379 8.7342'/%3E%3C/g%3E%3Cg transform='translate%283 40.64%29'%3E%3Cpath d='m17.377 8.5671c-0.40121 0.049357-0.76727-0.5115-0.81744-1.2526-0.050165-0.74109 0.23466-1.3819 0.63598-1.4314 0.22564-0.027737 0.44025 0.13752 0.59379 0.41932 0.014693 0.027421 0.029175 0.056001 0.042819 0.085531 0.096027 0.20681 0.16151 0.46415 0.18082 0.74795 0.05006 0.74109-0.23456 1.3818-0.63598 1.4311m0.27318 3.7338c-0.30277-1.697 2.2422-3.7891 0.87348-6.4349v-1.0546e-4c-0.25355-0.48998-0.78238-1.9433-1.5057-2.2148-0.65876-0.77832-2.251-2.3071-3.4701-3.1623-1.76-1.2346-3.1705 2.6827-2.5527 3.2255 0.40793 0.35847 1.6273 0.54367 1.7981 0.86174l0.1888-0.30532 0.77388-0.27864c0.43721 0.33073 0.95376 0.5579 1.5451 0.69912l0.68027 0.12118c0.011334 0.0014765 0.022354 0.0031639 0.033583 0.0044295l-0.11408 0.97185c-0.88544-0.10525-1.7085-0.35162-2.4178-0.7992-0.58718 0.45392-1.2555 1.0718-1.8092 1.8133-0.8867 1.277-1.5846 2.7278-1.1325 4.0302 0.49504-1.0668 1.082-1.8757 1.7043-2.4235 0.7022-0.61802 1.4806-0.92629 2.209-0.75755 0.54625 0.12666 0.98577 0.52953 1.26 1.1073 0.091304 0.19268 0.16445 0.40466 0.21703 0.63226 0.20034 0.86765 0.15658 1.999-0.18807 3.4203 0.68363 0.13668 1.3032-0.080574 1.9065-0.51087'/%3E%3Cpath d='m14.66 9.5411l-0.097286 0.24626-0.0010495 0.0042186-0.0011544 0.0044295-0.036522 0.13236-0.78574-0.21894 0.035367-0.12793 0.052789-0.20913 0.016372-0.071294c-0.18901 0.03417-0.45337 0.029108-0.62391 0.30595-0.010914 0.017612-0.15018 0.276-0.15669 0.29572-0.73537 2.2486-3.3947 1.4306-6.0615 1.2467-0.10327-0.0070661-3.5133-0.39791-3.5133-0.39791-0.50973-0.10304-0.43837-0.34466-0.43837-0.44042v-6.3596c0-0.098925 0.080495-0.17971 0.17883-0.17971h7.1843c-0.24705-0.62603 0.064333-1.5771 0.18439-1.8982 0.13444-0.35932 0.31757-0.72717 0.54384-1.0547h-7.9125c-1.7217 0-3.1174 1.4026-3.1174 3.1327v6.3596c0 1.7301 1.3957 3.1327 3.1174 3.1327 0 0 3.036 0.32725 4.1752 0.39254 2.8306 0.16189 6.0343 0.7992 7.4377-3.0978 0.054678-0.22907 0.094873-0.59323 0.055832-0.7624-0.046492-0.20144-0.16802-0.31375-0.23666-0.43504'/%3E%3C/g%3E%3Cg transform='translate%283 20.82%29'%3E%3Cpath d='m15.575 3.8463c-0.24894 0.32008-0.90244 0.18361-1.4593-0.3049-0.55706-0.4883-0.80663-1.1438-0.55759-1.4638 0.1401-0.18013 0.40814-0.21557 0.71501-0.1254 0.0297 0.008859 0.059925 0.018773 0.09036 0.029846h1.049e-4c0.21336 0.078043 0.44078 0.21356 0.65393 0.40045 0.55696 0.48851 0.80663 1.1438 0.55748 1.4638m2.8205 2.4461c-1.4082-0.98482-1.0807-4.2724-3.9102-5.1708h-1.049e-4c-0.524-0.16632-1.9206-0.81819-2.6231-0.49621-1.0135-0.082367-3.1013-0.70798-4.565-0.44643-2.1131 0.37756-0.3542 4.1498 0.46471 4.0947 0.54048-0.03649 1.4191-0.095867 1.7636 0.0076989l-0.081334-0.35003 0.35126-0.74689c0.54184-0.076989 1.067-0.28328 1.5844-0.60367l0.5664-0.3977c0.0090254-0.0069606 0.018051-0.013605 0.026972-0.020776l0.60303 0.76841c-0.7001 0.55463-1.4554 0.96542-2.2721 1.1528-0.095712 0.73825-0.13349 1.6501-0.0032534 2.5678 0.2716 1.533 0.79886 3.0549 2.0352 3.6545-0.40079-1.1061-0.55486-2.095-0.50028-2.9247 0.061709-0.93599 0.39523-1.7072 1.0291-2.1054 0.47541-0.29867 1.0695-0.32599 1.67-0.11242 0.20013 0.071294 0.4009 0.16937 0.59841 0.29298 0.75205 0.471 1.517 1.3021 2.2736 2.552 0.57963-0.38916 0.86487-0.98303 0.98861-1.716'/%3E%3Cpath d='m15.313 7.1802c-0.12247-0.2008-0.28346-0.34054-0.43028-0.4324-0.17453-0.10926-0.36501-0.11264-0.49892-0.14965l0.063388 0.10705 0.0022039 0.0037967 0.0023088 0.0039022 0.067271 0.11949-0.70966 0.40361-0.065067-0.11559-0.10978-0.1853-0.038621-0.062224c-0.11313 0.16379-0.20528 0.40097-0.24841 0.71852 0.85784 2.2542 0.50616 3.1966-0.80946 3.8269-0.015532-0.0053786-0.02907-0.0090699-0.038516-0.0090699h-9.3819c-0.098441 0-0.17883-0.080891-0.17883-0.17971v-6.3596c0-0.098925 0.08039-0.17971 0.17883-0.17971h3.3528c0.1463 0 0.29133-0.027315 0.42766-0.080363l0.092984-0.16125c-0.63787-0.59102-1.1325-1.8017-1.2086-2.6698-0.0012594-0.014238-0.0012594-0.027632-0.0023088-0.041553h-2.6625c-1.7217 0-3.1174 1.4026-3.1174 3.1327v6.3596c0 1.7301 1.3957 3.1327 3.1174 3.1327h9.1164c0.18765 0 0.37445-0.029424 0.55328-0.087218 1.3051-0.42175 2.4628-1.1709 2.757-2.4129 0.60807-1.1847 0.66936-2.7502-0.2312-4.6819'/%3E%3C/g%3E%3C/g%3E%3Cg transform='translate%283 1%29' fill='#{hex-color(lighten($ui-base-color, 33%))}'%3E%3Cpath d='m11.202 1.8024c0.053418 0.4381-0.55297 0.8378-1.3543 0.89265-0.80148 0.05463-1.4946-0.25628-1.5479-0.69448-0.02991-0.24647 0.14882-0.48081 0.45348-0.64839 0.029595-0.016136 0.06045-0.03185 0.092459-0.046826 0.22364-0.10483 0.50196-0.17644 0.80873-0.19732 0.80148-0.054841 1.4942 0.25607 1.5476 0.69437m4.0378-0.29825c-1.8351 0.33063-4.0974-2.4486-6.9584-0.95392l-1.0495e-4 1.0546e-4c-0.52978 0.27674-1.0802 0.70017-1.6522 1.3169-1.0516 0.34107-3.4064 0.58553-4.7676 1.4599-1.9651 1.2623 1.362 4.314 2.1613 3.9165 0.52757-0.2625 1.8362-0.81745 2.2249-0.85753l-0.22648-0.31745 0.23361-0.31207c0.35777-0.47743 0.60334-1.0416 0.75604-1.6872l0.13108-0.74289c0.0016792-0.012339 0.0034633-0.024468 0.0048276-0.036807l1.0509 0.12476c-0.11387 0.96679-0.38022 1.8657-0.86424 2.6402 0.49073 0.64122 1.159 1.371 1.9607 1.9757 1.3809 0.96816 2.9499 1.7304 4.3583 1.2366-1.1538-0.5405-2.0283-1.1814-2.6207-1.861-0.6682-0.76693-1.0017-1.6169-0.81912-2.4124 0.13696-0.5965 0.57259-1.0764 1.1973-1.3759 0.20832-0.099769 0.43753-0.1795 0.68373-0.23698 0.93823-0.21884 2.1614-0.17096 3.6984 0.20534 0.14798-0.74658-0.087002-1.4232-0.55223-2.0819'/%3E%3Cpath d='m13.162 4.5324c-0.0018891-7.3825e-4 -0.0036732-0.0012656-0.0055622-0.0017929-0.25744-0.062013-0.48591-0.034276-0.63252-1.0547e-4 -0.15259 0.035647-0.2715 0.11844-0.367 0.18498-0.037151 0.025839-0.071889 0.050201-0.10526 0.069395-0.018681 0.010546-0.02886 0.031428-0.026027 0.052837 0.0028335 0.021304 0.018261 0.038811 0.03904 0.044084l0.20874 0.055263-0.18985 0.68794-0.35808-0.091543c-0.016792-0.0040076-0.035052 0.0011601-0.047961 0.013183-0.012804 0.012234-0.018471 0.030057-0.015427 0.047564 0.03967 0.22116 0.15721 0.46562 0.33982 0.70703 0.0053523 0.0070661 0.012384 0.012656 0.020465 0.016241 2.3313 1.0468 2.2046 3.1414 2.058 5.567-0.018786 0.31006-0.038096 0.63078-0.051634 0.94548-4.198e-4 0.0023202-0.041979 0.23634-0.21115 0.45065-0.13675 0.17328-0.35777 0.25796-0.66232 0.24858l-9.4027-4.219e-4c-0.037256 0-0.073778-0.036807-0.073778-0.074246l-0.056987-5.532c-0.80579-0.14238-2.2168-1.3662-2.6936-2.4784-0.37151 0.52764-0.39786 0.95666-0.39786 1.6508v6.3596c0 1.7855 1.4454 3.2382 3.2222 3.2382h9.3819c1.6916 0 3.6583-1.4301 3.6582-3.2714l0.0072414-0.15472c0.19741-4.2307 0.33993-7.2874-3.6379-8.7342'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E"); + } +} + +button.icon-button.disabled i.fa-retweet { + background-image: url("data:image/svg+xml;utf8,"); +} \ No newline at end of file diff --git a/config/locales/en.yml b/config/locales/en.yml index 116db449858720..bfac28c3c17fb5 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -1240,8 +1240,16 @@ en: title: "%{instance} Terms of Service and Privacy Policy" themes: contrast: Mastodon (High contrast) - default: Mastodon (Dark) - mastodon-light: Mastodon (Light) + default: Mastodon (Dark-Blue) + mastodon-light: Mastodon (Light-Blue) + dark-red: Mastodon (Dark-Red) + light-red: Mastodon (Light-Red) + dark-green: Mastodon (Dark-Green) + light-green: Mastodon (Light-Green) + dark-yellow: Mastodon (Dark-Yellow) + light-yellow: Mastodon (Light-Yellow) + witches-town: Witches Town + sleeping-town: Sleeping Town time: formats: default: "%b %d, %Y, %H:%M" diff --git a/config/locales/zh-CN.yml b/config/locales/zh-CN.yml index be116f6e754e8f..bd5ffca3112ee0 100644 --- a/config/locales/zh-CN.yml +++ b/config/locales/zh-CN.yml @@ -1222,8 +1222,16 @@ zh-CN: title: "%{instance} 使用条款和隐私权政策" themes: contrast: Mastodon(高对比度) - default: Mastodon(暗色主题) - mastodon-light: Mastodon(亮色主题) + default: Mastodon(暗色主题-蓝色调) + mastodon-light: Mastodon(亮色主题-蓝色调) + dark-red: Mastodon (暗色主题-红色调) + light-red: Mastodon (亮色主题-红色调) + dark-green: Mastodon (暗色主题-绿色调) + light-green: Mastodon (亮色主题-绿色调) + dark-yellow: Mastodon (暗色主题-黄色调) + light-yellow: Mastodon (亮色主题-黄色调) + witches-town: 巫师小镇 + sleeping-town: 小镇黎明 time: formats: default: "%Y年%-m月%d日 %H:%M" diff --git a/config/themes.yml b/config/themes.yml index 9c21c9459f3bcf..349243ce27944f 100644 --- a/config/themes.yml +++ b/config/themes.yml @@ -1,3 +1,11 @@ default: styles/application.scss contrast: styles/contrast.scss mastodon-light: styles/mastodon-light.scss +dark-red: styles/dark_red.scss +light-red: styles/light_red.scss +dark-green: styles/dark_green.scss +light-green: styles/light_green.scss +dark-yellow: styles/dark_yellow.scss +light-yellow: styles/light_yellow.scss +witches-town: styles/witches-town.scss +sleeping-town: styles/sleeping-town.scss \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml index 0adbef9fe3f664..8f5a52e5fc4749 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -39,7 +39,7 @@ services: web: # build: . - image: mashirozx/mastodon:v3.1.5 + image: mashirozx/mastodon:v3.1.5.1 restart: always env_file: .env.production command: bash -c "rm -f /mastodon/tmp/pids/server.pid; bundle exec rails s -p 3000" @@ -67,7 +67,7 @@ services: streaming: # build: . - image: mashirozx/mastodon:v3.1.5 + image: mashirozx/mastodon:v3.1.5.1 restart: always env_file: .env.production command: node ./streaming @@ -84,7 +84,7 @@ services: sidekiq: # build: . - image: mashirozx/mastodon:v3.1.5 + image: mashirozx/mastodon:v3.1.5.1 restart: always env_file: .env.production command: bundle exec sidekiq From c3afce491104b49fdc6f4ce1c81100fc7a3d5d9f Mon Sep 17 00:00:00 2001 From: mashiro Date: Wed, 15 Jul 2020 23:32:46 +0800 Subject: [PATCH 010/137] update fonts --- app/javascript/styles/witches-town.scss | 10 +++++----- config/themes.yml | 2 +- docker-compose.yml | 18 +++++++++++------- .../fonts/witchesAwesome/witchesAwesome.eot | Bin 0 -> 4640 bytes .../fonts/witchesAwesome/witchesAwesome.svg | 17 +++++++++++++++++ .../fonts/witchesAwesome/witchesAwesome.ttf | Bin 0 -> 4448 bytes .../fonts/witchesAwesome/witchesAwesome.woff | Bin 0 -> 4524 bytes 7 files changed, 34 insertions(+), 13 deletions(-) create mode 100644 public/fonts/witchesAwesome/witchesAwesome.eot create mode 100644 public/fonts/witchesAwesome/witchesAwesome.svg create mode 100644 public/fonts/witchesAwesome/witchesAwesome.ttf create mode 100644 public/fonts/witchesAwesome/witchesAwesome.woff diff --git a/app/javascript/styles/witches-town.scss b/app/javascript/styles/witches-town.scss index c074367658b340..68346e329f5dd1 100644 --- a/app/javascript/styles/witches-town.scss +++ b/app/javascript/styles/witches-town.scss @@ -15,11 +15,11 @@ div.column { // Fonts @font-face { font-family: 'witchesAwesome'; - src: url('/assets/fonts/witchesAwesome/witchesAwesome.eot?c15'); - src: url('/assets/fonts/witchesAwesome/witchesAwesome.eot?c15#iefix') format('embedded-opentype'), - url('/assets/fonts/witchesAwesome/witchesAwesome.ttf?c15') format('truetype'), - url('/assets/fonts/witchesAwesome/witchesAwesome.woff?c15') format('woff'), - url('/assets/fonts/witchesAwesome/witchesAwesome.svg?c15#witchesAwesome') format('svg'); + src: url('/fonts/witchesAwesome/witchesAwesome.eot?c15'); + src: url('/fonts/witchesAwesome/witchesAwesome.eot?c15#iefix') format('embedded-opentype'), + url('/fonts/witchesAwesome/witchesAwesome.ttf?c15') format('truetype'), + url('/fonts/witchesAwesome/witchesAwesome.woff?c15') format('woff'), + url('/fonts/witchesAwesome/witchesAwesome.svg?c15#witchesAwesome') format('svg'); font-weight: normal; font-style: normal; } diff --git a/config/themes.yml b/config/themes.yml index 349243ce27944f..5eb40cf59efcc0 100644 --- a/config/themes.yml +++ b/config/themes.yml @@ -1,5 +1,4 @@ default: styles/application.scss -contrast: styles/contrast.scss mastodon-light: styles/mastodon-light.scss dark-red: styles/dark_red.scss light-red: styles/light_red.scss @@ -7,5 +6,6 @@ dark-green: styles/dark_green.scss light-green: styles/light_green.scss dark-yellow: styles/dark_yellow.scss light-yellow: styles/light_yellow.scss +contrast: styles/contrast.scss witches-town: styles/witches-town.scss sleeping-town: styles/sleeping-town.scss \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml index 8f5a52e5fc4749..c96cb4db7a454f 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -4,11 +4,11 @@ services: db: restart: always image: postgres:9.6-alpine - #ports: - #- "0.0.0.0:543:5432" - #- "127.0.0.1:543:5432" + ports: + # - "0.0.0.0:543:5432" + - "127.0.0.1:543:5432" networks: - #- external_network + - external_network - internal_network healthcheck: test: ["CMD", "pg_isready", "-U", "postgres"] @@ -18,7 +18,11 @@ services: redis: restart: always image: redis:5.0-alpine + ports: + # - "0.0.0.0:637:6379" + - "127.0.0.1:637:6379" networks: + - external_network - internal_network healthcheck: test: ["CMD", "redis-cli", "ping"] @@ -39,7 +43,7 @@ services: web: # build: . - image: mashirozx/mastodon:v3.1.5.1 + image: mashirozx/mastodon:v3.1.5.2 restart: always env_file: .env.production command: bash -c "rm -f /mastodon/tmp/pids/server.pid; bundle exec rails s -p 3000" @@ -67,7 +71,7 @@ services: streaming: # build: . - image: mashirozx/mastodon:v3.1.5.1 + image: mashirozx/mastodon:v3.1.5.2 restart: always env_file: .env.production command: node ./streaming @@ -84,7 +88,7 @@ services: sidekiq: # build: . - image: mashirozx/mastodon:v3.1.5.1 + image: mashirozx/mastodon:v3.1.5.2 restart: always env_file: .env.production command: bundle exec sidekiq diff --git a/public/fonts/witchesAwesome/witchesAwesome.eot b/public/fonts/witchesAwesome/witchesAwesome.eot new file mode 100644 index 0000000000000000000000000000000000000000..b56aa18f2362906ee58302dbe622f41a6799ac6d GIT binary patch literal 4640 zcmb^#TWlQF^}goL%+Ait&hG5&uD!e7hxg&vdLQ0L?D(Aoov;wXh@g8LM$ch^*>m7tyx?uNo7pQjKTks_iY}qEXce78 zXV4tFfW`q9&tLWB)fD6kZ zz!?~5G62v6ID+e+4cr+r&jPEM0HhIIkp$M|1FXvt;@NZ(MuXH9M&*GTFxJyTtXL)| z1X95TV9lvJwGeme6(D4JZiLna2bHq}xh&}B)PflJD`TU86l}6*-%zf-#-G^S+jgXDNJTnqyVQ{kfw9bf-7eVP6W z64evvY4ig4-#|7OsAcpl#Z@5J<2Yy=B%Mofzy>R|0l=o~ zE>x-%U5LK?*u%$&0$VZY!=3xO4!`i&L^^?E0Zr|WdIN-*y4NOn_`5}ngI?VvB;d{e zU;A|g+~$8+4~+VCVkPT7 z+$EbtqKdNiE|UVu-iSYC;QT}T2XaHsFrZb7QANe~bw)_Ps!(RBib5?rGloBds?KQ7 z!2V--BON$uMp6Mg6)`0SyA2aY;L?Iho1O~?0DY*<4~GJmzin4Q$An-#AW{uvxAhy4 zBVIv%v=4nBPRM}+$mX(c+=7v7PN>ccM3_~E(ByH*8MvNe^ZF=&0}P@yx#Zo%vMr{3>vMzlBQXpgbBuC_o{6;ux$aPB15e zESchR2Et^ZKsEv{iOWvV=1mYDSrI-f!bHIWG%;c+g{hA)o@{t&n!*ajRhiorv{uUqRyaRrhP%xyZc%L=iOlAG#q z8_1R7X0ljc$gaSeZV(LNI^-O86IHkJfshVCu0lBc7e~sS>vEK9f}^?h>_8QAmm5f; z&T@NW545RRQ$F-fu%+!FBu`LgE6!oiw}7j~@?GW1PNf^C>6()Fv4A(SEfGp-@svS1 zr4cK#)o!o1XZPnk00uqGi~Z@q@Rn|o_9fxuM7F^>H7Jl2E~bgNfqbuz<_(8wF)Kc4 z%L?VPS&MN~!Bpj*h@p5~r^bZ&CB@4nU8aP1xY`C3m@Z@x$>Oq?D?vl`$*LjCeuHpg zhJjN=1T)&al1v!)a*tQcAeeFq;=zp0Y zkyzMt8sS8}Ju_X?16*OCofWofl`QB;sjwVXqBf{1_98CAKyE&!nuOb4r$^>g3Y(fq zjkKR&rg0N8wyUjIBqpL;pb`bNB-DXT2s8s8up+}==HetD7#Y@Llu0TOh%OPq4+5D5 zR;C1C1{4^YlBi=+m&HIom22rX)yE|+_D$5m9ouaxv(Qk?j_NQ;_8HlT3fl(}U}R{N zeDbjguTA0<85DQs){S+@J3cgs4#H;(%0QlpK^+&VXBY~7I#Zy{&~iOL1hEEJtw2O^ zfeI0)vPe)xJ6$e{>LSX1%V+CFo)hJ}2Yfju-T{*ZO!logT|>4`R&;x)3%|||E z1{4Q7SeIn$UOxqAN_4JW4;U{Qfzs|ELBZWm z4R%lJwyjTg4}Q3C>t~A|wf&V_e?B@o&Bv}jad`-2fyALJSFcS3pS-sA2ki7ZMu=e3 z8?8qT2}`|3AYk+w&x=%4Mi-;vEw1n^&?o zXUwf1BMqDm+VA_&i+7*vH=u&t09g6#Qyk{F-*>`Ep+PSsZEh_|O%#+N!7~Z>aeBuc zSH#SX+vV~g8^!T)Qlvh*B<+!I@vE*>4bO>lhbF{)z8UD}t+g?Hz;Eb5kc@uV!c)NS zZjBj?-)M~`_&V=yjXB^iw#FXRhCUSEjZ6hh6e!IxfzeM|V+!~qtuce~+pVz#?+De_ zm;?S>t+59UpnqOEyL#%(+=cN=a~GBu=f3P`#G$$K7tSs(B}#?j7yp6y>Y~0n=k(nC z#dEXg@BIn#)u-=RURq7e&n?ZJpIx0hoj7?pvGdgO-sR<`0@~sJJXu8v__;C%zfr_5 jm09=^GlxzC?j*Vl{Z5GGWwaM=@uQ^xCn^34d`bHc$NzI{ literal 0 HcmV?d00001 diff --git a/public/fonts/witchesAwesome/witchesAwesome.svg b/public/fonts/witchesAwesome/witchesAwesome.svg new file mode 100644 index 00000000000000..59395cbfe85687 --- /dev/null +++ b/public/fonts/witchesAwesome/witchesAwesome.svg @@ -0,0 +1,17 @@ + + + +Generated by IcoMoon + + + + + + + + + + + + + \ No newline at end of file diff --git a/public/fonts/witchesAwesome/witchesAwesome.ttf b/public/fonts/witchesAwesome/witchesAwesome.ttf new file mode 100644 index 0000000000000000000000000000000000000000..f8dff87753ac58c2080a5bac4ed84615ee406158 GIT binary patch literal 4448 zcmb^#S!`U@^=|LJ_vUT0ym>QY&x~jBEZ)Ymc$V1lo&;r&9Y{z5ahzmuV&a9wQAmVB zs-}V>Xe;ppDpe~~Dn8mGB)$r2Q$8voQK3pS9~2=~l`5q6BT+>c73`k-W=z~g2&r7X z<(~DPd+u4@48jN@4c$N#6%QUBEL(ol1DLnqK6Peke)adyztN8njskphVgAx8yuASb z0N%>Ng{zMoosn+>{3=5Fr{|jUXN{{nUqi_JA<%2*03p9k-v#(XfV&5Z&1Vmm$)O{3EsJS=f`*ca@T)1wei`;hO6O!;qk^FtPSgq^_+FW z3Yvd2KL#CJ*LDTl4~#HqvbN9(LiKGf`#qU2#xXR#@jm@CeGMhiG4w9_0JfSniEQFH z4#jE686)*Enk&GCz_|t37KbsRR{oS3|Az9b@>46a)fv`orKvi zb(K+hs0NJnv`{OS$q9v2Z~<6z>P{`hoq7cbS)LoCb-_X9>`*QXwmG#R2L1{t0KCnE zcw^T$E}x8dMx<0CHZ#9GTwh)|nahu43|Y>PA1-bC+9V!cD@tCT-q}qJriXQ3+LxM2 z84<&b8ct7G_Q=_KoEbzV!G34QQ%^s&gIn^z+4B0w5|#Yjelu$7QIBHE!+f-o)L30zX^ZSe^AOV*6cJ3$B&;FU{uvJqrDj8XSJZVQ}!w#j_GSSzvq$h`s3HG43+O6&q>_K z4CnKw7FQdM3v-8}$!d+XeltER=#K9;IRkq_Qkn3?A zv`v!Er8r=NmD&(s({&drRf;Y|Uw-W26GVZnnDpW913gDycx)=2z_Ea)_D1ypA(o-r z1do2Jh;dLiEJ6Z${(HMHvD-kh=+OePRCfL3?kDH!^|>c^=l7&oIDxMzT$ws35I6mi zBe=u=un`#d8^o8advT9!5s50w`g=?YB>N-&l!@~X9URJyIHQ18eT*t9zOOq%233VJ zpQzV5cIM#9+5!!U$YiQ0Xvo;Q*kIbok*=;PQ9u z2^g3VYy?E9f$Fw#3u?qG$d3-7@4^W=Z~)m{*3DaRa?J_Vd4UMG%8;5o4mAVUbMP3) z+i^*xxyXDsMGNAv#05gNY))?AG#sZ8#B$1pgRX?+TrZZ391b#MmrHTtl8fS*PNuR| zh>0AWpU;kyO0qmgMsaNjP~>@1%48aZcp+7=7BMpo`j6gIi&v&1m5#`s!!wBi@5G@% zc+PK{zL2a;N*zvUG&Aw+WOXLm6;*jIrUv!Ci}%R^=LXh-vaB&e2_&JRJMhFrQ*f;j zA`}xWDcrU`dy7z-dDQXCUA5gkWI8u9*(2rWAEHO?1SJt0Tnl0n$21ZQD82nw%E-qQ zD-g9~$7d?4o+Ea^8HyJ$mIr3L;}g+=niCo6>fV=$_L-7QJ(52?-t{KfKxDBf*g|L@ zhquSkaOA#Y3k@q~`8;su1V13pRl);_^(#HQ>s?*--F=?C;`!X*%$?aHT^!#&&4n22%G!Y}uuK!H4EG@sQ8uxlMD>rovcdq|N@yc9=%d6l)!{;+* z1{Q~ffDjyB9KgS_G|h@vcjbj_`S?^0LHFADD?{`dycdg352nIdi>k00G_BCte2Q&> z*$|*5lLk!@bpV%a!7Zu?fDK$424qcC0!Kug%d;8FV}d^fVFAdHdQn_~ zA_TInAa+?H7gBP|9Bu=-Qrt=w>kHi#Skp~{5nP9w<8Gqrc0N$jCCF7shyUV8xw0-t zxh6PTTh9(vp?0~6B>F73H}^nWhPCv=vjw)T9fslw#%#wq4E7dqwOGDqT-mAg;xt`X z@?I9uBRdkIlon5!lv5hVPAN#SCe z$Q!8l#(3Uzm=^QJr)^oGT()X4ZYh|m+!HYsj~mpOFu$beTry-zh=;2kKml=~gGfFu z>s$$%s#jJ`S@xTR6DtgyA|sgDp-VDhT<0ELNDxf91o`0R3$r2ylc61LAv2X3irwoc zl832244T9$lyGJZRR>heAoV#jJWv{CjqvWMY|4}~*#~;u1=e2=_WFcvs>v0w1~$wn zaML;6gqq0|iED!q$s@6_fMoNX}s1mioRIwLv5e9nm zG1Vg6)}20?Qz>j|7B$m;f|&(STUT`w3 z#VC_hAP_?$f*%wzA9$G(fEiF=YDuDxNj*LW_NiP;cc@-2aj|cr4)5A&Q<;TEVs_L3 zA=ztYBPwhkRDhFVQ1a;~7JN2|Q)JNGncFuupze6lFglFRAe4bR6N5f3O3x@X`gEp1 zTdCzneh6|6u3CYJ<^mlePGwP`igvnO6x~I%{dUaOi##XVcOS%ZOnd_-3z!^OcX~!_ zgRC0%NDqFU9bS4Yr3VxTJ6WH8pu)Mo(@Ram2s0}hkfrio{w8dWGwLxkf7k+r-yr|4cj)Rdxt+-y#13UkJ|al?LQtLpXC$RpSU^#xsD=45~WBoex>c-Fj1U zJE&-|CGcgjybVJ^`Dz@terl_~N+I2E2Mx=(CMfc zsd5>*oA`!=`<-jqcjm0^pCAo_4#sZ>(2Mup8@Hf?+yYn;{lpz0V&MQK4^LDvB$VPE|k`$?zE=&8Q+x)t#Rl`kj?l3l2cY*f9L_ck> zjgbksmK_Ai==<$C1^nLjoWcB!_FRHr=e_MY2mIys+=DvMN8)!QQvnkNN^4GF_M`Tk z0{&Qg&S3s_doIB@LbW~Tfd6`X?mwg!4dJMhR3x1yuajv$B6>Wx0TMxu&my@e81P+1=1Q?7fN3 c0`4@r3eVl(i50XTZn4b*oTT_y;0wmT0NIya5dZ)H literal 0 HcmV?d00001 diff --git a/public/fonts/witchesAwesome/witchesAwesome.woff b/public/fonts/witchesAwesome/witchesAwesome.woff new file mode 100644 index 0000000000000000000000000000000000000000..d1f69451d7bbfccb0d055179212513108d9677b9 GIT binary patch literal 4524 zcmb^#S&SUTwXUx2o}TWWneOSC*`1l4W9Qgwc8;CHyWSfw^6g!NjcxFHZ4YZN-UE9r zV+$FgI5I&dLE;A#qDV+Y`5+-ke1#}+_=to=gd!1tBoR^+DMAV#wi0qEu$xysv)CaK zLJFm>>UY(vSFhfC)iam&&&(iIu=!fZ;i{ys!qe zGk{+c{SPm^*}u4OLC`(|T*!*4jAFZ=c^FFXP3n$H8CaJwHb zt}HA!f%aoq`?sPGKKshQ)>bd9!+vjkCPx9H^k?{aBq2mzBJTqJ?baLr8C9?f_`MDL z?!^Q=fzX{4y}5Z4O;G4SaeWGJ(Gu?Ht^!aLcmj^XD5Ro@A>ls<`GCTKmbfk54&J_e z`?cGDxf8gP+Wd5L6ZoL#f6(#fAI(kkw)vcS%nTZTH$H4@btimozzBmT(_OX2A_&#D zxu)K=_ls!^O>e$WKccUrBszlLMZ&9DgUAMs<4~N2oH0@#qqzb+SPlWrz`&CMff3L# zT>lJkXUIGYqGAHD#&AUvR96nDu0)7u(@B7asjH02Lp2brr-fRvOin1ILJH8DQ+H}1 z?$j&5$nxA6tqTb%XNPiGu+6CjG00ay0nlw8#G5nUxOhC?8Ie+n*zCf}aD8R*crHJZ z(PcS5ez3IdYm<0*y(sy3dPg_anK$h9r~Rp^lpfKIsP6QHWsjV#$C*x466|;GyZ+4e z`?x6&oGx#CC{ZcU9WbJXH|kLgdHCYRi^EnXu<;)ENR73%)du#E$gX3HH4g!~9eUW* zJ32db$_dQzr_(8);!|qPL(?|XrNQHaSdkmt;5`rIvU~RK$r_zT;pow01B|NP%xEvh z_=XnLcE~;jrepd#&hL73y#BQ_Lxy0r9I6*F~U`f!<1j0xo$3Fd>C zvd(&=(Fr1nsj10?>{qJGi$~L#l8xUdCzIh~7+9E!7-i`A<}c_g^ylahdJ;X0UWE7? z%I2(Eb`WQ|Oba-jGDy&NLJ)AaQ-ZiD1%bhxkW(AS)i~~gNQL+j@mVd`>Y?CW6oR5y z18t=-T$NGZWYP#-XrApDo=qryu za*Qaj6@xy~y|3r+i;qvG6F6pRYH!qQ5n}3Io8ZxJ6)_Hab(0XwoB!?%CUzT17Co93 zOJz5X?|f>$UY~zzXMR_Tg%kLS!j-B0f^aPmIfOd`kLcETKqvlW-G_T*lSouiHr`{B zmF$lMQU=aHyniS+;*0`W^)srd`2Ow)8B`U@{Hmf*znz)DpJ7#Jyl-g#vAmJCj+&8_ zWv3#h#9+5!!U#NCQ0dTfVGGEIIs$Mg@B}(`Svn>J>z1f1P~A3fLXCJ81<*e99XKHe z4j`M$x_Jvut~sGPFA(8Y8B&wSp=RKE4u)~O9hXF!i_CXZv>*;kJTR%2&B+a%hT{|y zv7EBuperFc*Nf#Mhl32+C#lB(h=Epa5gdEn>b*F=L3e}56Q};)Zv6iGZQx^tFzIrsLFFO zHR$a-f4^)wPh%}8%Niq;KoaU+2S!XZ1=kuOLNURT!fo@@pAt$lk2wLktG2U;Oy_1N zd!+or!}PG7pd@00YhjwiF^vQ*rMKTq>G_yqT2VW8bhe^;bHuisp?Cpfd0?(PJ`o+L zIgydB?md}kpCQTABL&jqU2lO6L>7yJErj-QczYZTNA5qe*f3+J-veh(@PqPvB|MPW zxYV<=-qls#+2>jK!8aFEt@EqE`TYuRG6&_+7(y0>^oe8eo;bmrNU~&#%NaFPv$Z_J_Qfze!o6Durw?th>62X1NfJwrkU~TOkT__ADzk} zxV<+2#t?lL@5bhSBm$t#ri^b z1=e(vUZg1^@whU|O zhp~mWtsREq3C3*4ISlp|aJ5*zYh2l>^x`z#Q1U)zc_a5FLMbhtGAO4s;*V^%JL{d< z{W%YyK@aodK-wDJ)+@@sB!ZmCHUy^z7bJy;X(Df+-s|Ie!(m#?AD^~mg>u=f#ki?p zs&Y@nP&{r>W5NQG;^mSqQ$jpk?Enr;7dnXK=dzb8K|}S)sv*k(gK%PoK~iJ{GdjGI zOc?iak5|kfm~sj7!Oa(DMsy~_b#xD#sZ3Yw-T;w2O!Z^XBvzq>GjpgqpkfB8&zbIl z(kN?$cSmJIrku%s(Bm$!@kX%MFKkl{u7EYLVMalk&U+20nM{$mHW-mS5(}G7Bb=yr zX6961B?!lq_YBOM@^Y21X0 z?ON*qny*D92y)0qNorIs7{A;>j&Y6T)L7q}tfR2BuQ zXs63Xal43Xza6vnBF~BIyANVHCcXia1x)sBI6Wh_PS$jLqzAvj4lX~Q@>+_6ovh!x zuflnt(?<L1r$x?YYe+xFp8TIMlHE)1IFeSP-u35&*hE>`fBq+H1nc?1P-M01V z-r*0HZvAlCqjtV}>rY3==lI0cCohkHF3>n~MqhA4D_S++87x?YuQ1NjK0@~DbRPfVFvJ< zZCHX|_`PkI1N~wf_Mi^*f%x6XRG>tG(}D>=-*3Yd=ttTx1NiMWEWtNIwGDHif4vQR z&=C5^rL*g&&NMGfUTR)gh2PJb&Tr>Pn(iD8h$* z6P*XfSzxW81S+8dDt>uYUtV&qxp?v1!g(|Y3oe2;&Y=Z#{>x9FSzTFAEH+n~=NHzS zrxPbHCw87%-MhNFQb04V>FZ$pBIsUmH?#nIZ=%ycJBcpCxD!0FiuOVm+bqCIihl*Z Gp#2+A&STO5 literal 0 HcmV?d00001 From d4c31848fc326d209566365f8fd5e2e9a9d1b3ac Mon Sep 17 00:00:00 2001 From: mashiro Date: Thu, 16 Jul 2020 03:03:37 +0800 Subject: [PATCH 011/137] add change poll limit & add a mstd version suffix & add theme --- .gitignore | 1 + .../features/compose/components/poll_form.js | 2 +- app/javascript/styles/forrest.scss | 41 +++++++++++++++++ app/javascript/styles/new-year.scss | 40 ++++++++++++++++ app/javascript/styles/nga.scss | 46 +++++++++++++++++++ app/validators/poll_validator.rb | 2 +- config/locales/en.yml | 3 ++ config/locales/zh-CN.yml | 3 ++ config/themes.yml | 5 +- lib/mastodon/version.rb | 2 +- 10 files changed, 141 insertions(+), 4 deletions(-) create mode 100644 app/javascript/styles/forrest.scss create mode 100644 app/javascript/styles/new-year.scss create mode 100644 app/javascript/styles/nga.scss diff --git a/.gitignore b/.gitignore index ea61b2724c787e..8b4670dd20a8fe 100644 --- a/.gitignore +++ b/.gitignore @@ -25,6 +25,7 @@ public/packs-test .env .env.production .env.development +.env.development.sample node_modules/ build/ diff --git a/app/javascript/mastodon/features/compose/components/poll_form.js b/app/javascript/mastodon/features/compose/components/poll_form.js index db49f90eb4cb95..0c3d808310387e 100644 --- a/app/javascript/mastodon/features/compose/components/poll_form.js +++ b/app/javascript/mastodon/features/compose/components/poll_form.js @@ -157,7 +157,7 @@ class PollForm extends ImmutablePureComponent {
- + {/* eslint-disable-next-line jsx-a11y/no-onchange */}