Add a new color palette and rework all site colors (both light mode and dark mode) to
use the new palette.
This ensures that colors are used consistently, from a carefully designed color palette,
instead of being chosen at random.
Before, colors in light mode were chosen on an ad-hoc basis, which resulted in a lot of
random colors and inconsistent design.
The new palette has 7 hues: red, orange, yellow, green, blue, azure (a lighter blue), and
purple. There's also a greyscale. Each hue has 10 shades of brightness, which (including
grey) gives us 80 total colors.
Colors are named like this:
var(--red-0); /* very light red */
var(--red-2); /* light red */
var(--red-5); /* medium red */
var(--red-7); /* dark red */
var(--red-9); /* very dark red */
var(--green-7); /* dark green */
var(--blue-5); /* medium blue */
var(--purple-3); /* light purple */
/* etc */
The color palette is designed to meet the following criteria:
* To have close equivalents to the main colors used in the old color scheme,
especially tag colors, so that changes to major colors are minimized.
* To produce a set of colors that can be used as as main text colors, as background
colors, and as accent colors, both in light mode and dark mode.
* To ensure that colors at the same brightness level have the same perceived brightness.
Green-4, blue-4, red-4, purple-4, etc should all have the same brightness and contrast
ratios. This way colors look balanced. This is actually a difficult problem, because human
color perception is non-linear, so you can't just scale brightness values linearly.
There's a color palette test page at https://danbooru.donmai/static/colors
Notable changes to colors in light mode:
* Username colors are the same as tag colors.
* Copyright tags are a deeper purple.
* Builders are a deeper purple (fixes #4626).
* Moderators are green.
* Gold users are orange.
* Parent borders are a darker green.
* Child borders are a darker orange.
* Unsaved notes have a thicker red border.
* Selected notes have a thicker blue (not green) border.
95 lines
2.2 KiB
Ruby
95 lines
2.2 KiB
Ruby
source 'https://rubygems.org/'
|
|
|
|
gem 'dotenv-rails', :require => "dotenv/rails-now"
|
|
|
|
gem "rails", "~> 6.0"
|
|
gem "pg"
|
|
gem "delayed_job"
|
|
gem "delayed_job_active_record"
|
|
gem "simple_form"
|
|
gem "whenever", :require => false
|
|
gem "sanitize"
|
|
gem 'ruby-vips'
|
|
gem 'net-sftp'
|
|
gem 'diff-lcs', :require => "diff/lcs/array"
|
|
gem 'bcrypt', :require => "bcrypt"
|
|
gem 'capistrano', '~> 3.10'
|
|
gem 'capistrano-rails'
|
|
gem 'capistrano-rbenv'
|
|
gem 'streamio-ffmpeg'
|
|
gem 'rubyzip', :require => "zip"
|
|
gem 'stripe'
|
|
gem 'aws-sdk-sqs', '~> 1'
|
|
gem 'responders'
|
|
gem 'dtext_rb', git: "https://github.com/evazion/dtext_rb.git", require: "dtext"
|
|
gem 'memoist'
|
|
gem 'daemons'
|
|
gem 'oauth2'
|
|
gem 'bootsnap'
|
|
gem 'addressable'
|
|
gem 'rakismet'
|
|
gem 'recaptcha', require: "recaptcha/rails"
|
|
gem 'activemodel-serializers-xml'
|
|
gem 'webpacker', '= 6.0.0.beta.4'
|
|
gem 'rake'
|
|
gem 'redis'
|
|
gem 'builder'
|
|
# gem 'did_you_mean' # github.com/yuki24/did_you_mean/issues/117
|
|
gem 'puma'
|
|
gem 'scenic'
|
|
gem 'ipaddress_2'
|
|
gem 'http'
|
|
gem 'activerecord-hierarchical_query', git: "https://github.com/walski/activerecord-hierarchical_query", branch: "rails-6-1"
|
|
gem 'http-cookie', git: "https://github.com/danbooru/http-cookie"
|
|
gem 'pundit'
|
|
gem 'mail'
|
|
gem 'nokogiri'
|
|
gem 'view_component', require: 'view_component/engine'
|
|
gem 'tzinfo-data'
|
|
gem 'hsluv'
|
|
|
|
group :production, :staging do
|
|
gem 'unicorn', :platforms => :ruby
|
|
gem 'capistrano3-unicorn'
|
|
end
|
|
|
|
group :production do
|
|
gem 'unicorn-worker-killer'
|
|
gem 'newrelic_rpm'
|
|
gem 'capistrano-deploytags', '~> 1.0.0', require: false
|
|
end
|
|
|
|
group :development do
|
|
gem 'rubocop'
|
|
gem 'rubocop-rails'
|
|
gem 'meta_request', git: "https://github.com/alpaca-tc/rails_panel", branch: "support_rails6_1"
|
|
gem 'rack-mini-profiler'
|
|
gem 'stackprof'
|
|
gem 'flamegraph'
|
|
gem 'memory_profiler'
|
|
gem 'better_errors'
|
|
gem 'binding_of_caller'
|
|
end
|
|
|
|
group :development, :test do
|
|
gem 'pry-byebug'
|
|
gem 'pry-rails'
|
|
gem 'listen'
|
|
end
|
|
|
|
group :test do
|
|
gem "shoulda-context"
|
|
gem "shoulda-matchers"
|
|
gem "factory_bot"
|
|
gem "mocha", require: "mocha/minitest"
|
|
gem "ffaker"
|
|
gem "simplecov", require: false
|
|
gem "minitest-ci"
|
|
gem "minitest-reporters", require: "minitest/reporters"
|
|
gem "mock_redis"
|
|
gem "capybara"
|
|
gem "selenium-webdriver"
|
|
gem "codecov", require: false
|
|
gem 'stripe-ruby-mock', require: "stripe_mock"
|
|
end
|