mirror of
https://github.com/Findus23/se-simulator.git
synced 2024-09-19 15:53:45 +02:00
add better colors for all sites
This commit is contained in:
parent
5465e1ddab
commit
9b0fda436e
10 changed files with 111 additions and 12 deletions
10
apply_colors.py
Normal file
10
apply_colors.py
Normal file
|
@ -0,0 +1,10 @@
|
|||
import utils
|
||||
from models import *
|
||||
from extra_data import site_colors
|
||||
|
||||
for site in Site.select():
|
||||
if site.url in site_colors:
|
||||
site.primary_color = "#" + site_colors[site.url]["primary"]
|
||||
site.foreground_color = "#" + site_colors[site.url]["fg"]
|
||||
site.background_color = "#" + site_colors[site.url]["bg"]
|
||||
site.save()
|
67
extra_data.py
Normal file
67
extra_data.py
Normal file
|
@ -0,0 +1,67 @@
|
|||
site_colors = {
|
||||
"stackoverflow.com": {"fg": "FF9900", "bg": "ffffff", "primary": "FF9900"},
|
||||
"serverfault.com": {"fg": "F3F1D9", "bg": "444444", "primary": "F3F1D9"},
|
||||
"superuser.com": {"fg": "ffffff", "bg": "00a1c9", "primary": "00a1c9"},
|
||||
"webapps.stackexchange.com": {"fg": "d9dde0", "bg": "444444", "primary": "d9dde0"},
|
||||
"webmasters.stackexchange.com": {"fg": "ffffff", "bg": "6ad4fc", "primary": "6ad4fc"},
|
||||
"gamedev.stackexchange.com": {"fg": "416d63", "bg": "fffeee", "primary": "edec80"},
|
||||
"gaming.stackexchange.com": {"fg": "ffffff", "bg": "374a75", "primary": "374a75"},
|
||||
"cooking.stackexchange.com": {"fg": "bc4133", "bg": "e5f9e7", "primary": "bc4133"},
|
||||
"photo.stackexchange.com": {"fg": "ffffff", "bg": "4d4b4b", "primary": "4d4b4b"},
|
||||
"stats.stackexchange.com": {"fg": "155078", "bg": "ffffff", "primary": "e8eceb"},
|
||||
"math.stackexchange.com": {"fg": "0f3559", "bg": "ffffff", "primary": "cb181f"},
|
||||
"diy.stackexchange.com": {"fg": "ffffff", "bg": "5588b9", "primary": "5588b9"},
|
||||
"gis.stackexchange.com": {"fg": "748a95", "bg": "f2e8d0", "primary": "f2e8d0"},
|
||||
"tex.stackexchange.com": {"fg": "c14748", "bg": "6b8087", "primary": "6b8087"},
|
||||
"askubuntu.com": {"fg": "ffffff", "bg": "de4508", "primary": "de4508"},
|
||||
"english.stackexchange.com": {"fg": "382f2a", "bg": "f4e3c8", "primary": "f4e3c8"},
|
||||
"unix.stackexchange.com": {"fg": "ffffff", "bg": "293a5d", "primary": "293a5d"},
|
||||
"cstheory.stackexchange.com": {"fg": "103f5f", "bg": "b8e3fe", "primary": "b8e3fe"},
|
||||
"apple.stackexchange.com": {"fg": "333333", "bg": "dde9f4", "primary": "f1f2f3"},
|
||||
"bicycles.stackexchange.com": {"fg": "ffffff", "bg": "0ba097", "primary": "0ba097"},
|
||||
"electronics.stackexchange.com": {"fg": "e74c3c", "bg": "ffffff", "primary": "e74c3c"},
|
||||
"android.stackexchange.com": {"fg": "ffffff", "bg": "1589e4", "primary": "1589e4"},
|
||||
"physics.stackexchange.com": {"fg": "3d9d9e", "bg": "daede1", "primary": "3d9d9e"},
|
||||
"scifi.stackexchange.com": {"fg": "74abb2", "bg": "000000", "primary": "000000"},
|
||||
"music.stackexchange.com": {"fg": "141045", "bg": "3e9cd8", "primary": "3e9cd8"},
|
||||
"christianity.stackexchange.com": {"fg": "0093b6", "bg": "fcf5e0", "primary": "0093b6"},
|
||||
"workplace.stackexchange.com": {"fg": "2e4d64", "bg": "acdadd", "primary": "acdadd"},
|
||||
"vegetarianism.stackexchange.com": {"fg": "ffffff", "bg": "3e9cd8", "primary": "3e9cd8"},
|
||||
"quantumcomputing.stackexchange.com": {"fg": "ffffff", "bg": "213341", "primary": "213341"},
|
||||
"money.stackexchange.com": {"fg": "3f6673", "bg": "e5efe1", "primary": "e5efe1"},
|
||||
"wordpress.stackexchange.com": {"fg": "ffffff", "bg": "363c42", "primary": "363c42"},
|
||||
"ux.stackexchange.com": {"fg": "ffffff", "bg": "23629f", "primary": "23629f"},
|
||||
"rpg.stackexchange.com": {"fg": "ffffff", "bg": "613121", "primary": "613121"},
|
||||
"softwareengineering.stackexchange.com": {"fg": "1b3e6c", "bg": "f8f8f8", "primary": "1b3e6c"},
|
||||
"security.stackexchange.com": {"fg": "98dbe7", "bg": "112a3d", "primary": "112a3d"},
|
||||
"graphicdesign.stackexchange.com": {"fg": "ea4a5a", "bg": "f4f4f4", "primary": "ea4a5a"},
|
||||
"dba.stackexchange.com": {"fg": "2180a9", "bg": "f8f8f8", "primary": "2180a9"},
|
||||
"codereview.stackexchange.com": {"fg": "485A62", "bg": "e9eff3", "primary": "485A62"},
|
||||
"skeptics.stackexchange.com": {"fg": "222222", "bg": "fdfdf9", "primary": "33ace3"},
|
||||
"sharepoint.stackexchange.com": {"fg": "ffffff", "bg": "1cb8d2", "primary": "3a3552"},
|
||||
"judaism.stackexchange.com": {"fg": "663a2a", "bg": "fbefdc", "primary": "663a2a"},
|
||||
"japanese.stackexchange.com": {"fg": "e16558", "bg": "f0f1f4", "primary": "e16558"},
|
||||
"travel.stackexchange.com": {"fg": "ffffff", "bg": "18748a", "primary": "18748a"},
|
||||
"crypto.stackexchange.com": {"fg": "ffffff", "bg": "1a2f4d", "primary": "1a2f4d"},
|
||||
"dsp.stackexchange.com": {"fg": "2db9c5", "bg": "f4f4f4", "primary": "2db9c5"},
|
||||
"academia.stackexchange.com": {"fg": "5b5b5b", "bg": "fbf8f3", "primary": "5b5b5b"},
|
||||
"cs.stackexchange.com": {"fg": "ffffff", "bg": "42bbbc", "primary": "42bbbc"},
|
||||
"chemistry.stackexchange.com": {"fg": "ffffff", "bg": "2c8559", "primary": "2c8559"},
|
||||
"mathematica.stackexchange.com": {"fg": "3b3b3b", "bg": "fcfcfc", "primary": "d35036"},
|
||||
"movies.stackexchange.com": {"fg": "000000", "bg": "ed2f0b", "primary": "ed2f0b"},
|
||||
"biology.stackexchange.com": {"fg": "65a9a5", "bg": "eeeee0", "primary": "65a9a5"},
|
||||
"raspberrypi.stackexchange.com": {"fg": "ffffff", "bg": "3ab37d", "primary": "e41f3f"},
|
||||
"salesforge.stackexchange.com": {"fg": "ffffff", "bg": "01344e", "primary": "01344e"},
|
||||
"patents.stackexchange.com": {"fg": "ffffff", "bg": "4ea6d8", "primary": "4ea6d8"},
|
||||
"expressionengine.stackexchange.com": {"fg": "ffffff", "bg": "e74c3c", "primary": "e74c3c"},
|
||||
"magento.stackexchange.com": {"fg": "ffffff", "bg": "fd7620", "primary": "fd7620"},
|
||||
"ell.stackexchange.com": {"fg": "4b4f51", "bg": "d1e8e7", "primary": "f2f2e0"},
|
||||
"networkengineering.stackexchange.com": {"fg": "ffffff", "bg": "464343", "primary": "464343"},
|
||||
"puzzling.stackexchange.com": {"fg": "2d4254", "bg": "e5e5c5", "primary": "15b58a"},
|
||||
"worldbuilding.stackexchange.com": {"fg": "385a5f", "bg": "f0c09e", "primary": "f0c09e"},
|
||||
"emacs.stackexchange.com": {"fg": "5a85e6", "bg": "ebebeb", "primary": "5a85e6"},
|
||||
"blender.stackexchange.com": {"fg": "ffffff", "bg": "0069ac", "primary": "f37929"},
|
||||
"mathoverflow.net": {"fg": "ffffff", "bg": "777777", "primary": "777777"},
|
||||
"aviation.stackexchange.com": {"fg": "f74f57", "bg": "daecec", "primary": "f74f57"},
|
||||
"softwarerecs.stackexchange.com": {"fg": "ffffff", "bg": "134a5d", "primary": "134a5d"},
|
||||
}
|
|
@ -12,6 +12,9 @@ class Site(BaseModel):
|
|||
tag_background_color = CharField(max_length=7)
|
||||
tag_foreground_color = CharField(max_length=7)
|
||||
link_color = CharField(max_length=7)
|
||||
background_color = CharField(max_length=7, null=True)
|
||||
foreground_color = CharField(max_length=7, null=True)
|
||||
primary_color = CharField(max_length=7, null=True)
|
||||
enabled = BooleanField(default=True)
|
||||
|
||||
|
||||
|
|
|
@ -16,6 +16,7 @@ from app import app
|
|||
from models import *
|
||||
|
||||
app.jinja_env.globals.update(prettydate=utils.prettydate)
|
||||
app.jinja_env.globals.update(is_light_color=utils.is_light_color)
|
||||
|
||||
SESSION_TYPE = 'redis'
|
||||
SESSION_COOKIE_SECURE = config.production
|
||||
|
|
|
@ -15,7 +15,7 @@
|
|||
{% for question in questions %}
|
||||
{% set vote=voted[("question", question.id)] %}
|
||||
<div class="content question"
|
||||
style="border-right-color:{{ question.site.tag_foreground_color }};background-color:{{ question.site.tag_background_color }}">
|
||||
style="border-right-color:{{ question.site.primary_color }}">
|
||||
<div class="vote" data-id="{{ question.id }}" data-type="question">
|
||||
<a class="up {{ "active" if vote == True }}"></a>
|
||||
<div>{{ question.upvotes - question.downvotes }}</div>
|
||||
|
@ -23,7 +23,7 @@
|
|||
</div>
|
||||
<div class="contentbox">
|
||||
<div>
|
||||
<a class="title" style="color:{{ question.site.link_color }}"
|
||||
<a class="title" style=""
|
||||
href="{{ url_for("question",slug=question.title.slug) }}">{{ question.title.text }}</a>
|
||||
</div>
|
||||
{{ question.text|truncate(200, False, ' …', 10) }}
|
||||
|
|
|
@ -44,8 +44,8 @@
|
|||
|
||||
{% macro siteheader(site) %}
|
||||
<header class="siteheader"
|
||||
style="background-color: {{ site.tag_background_color if site.tag_background_color!="#FFF" }};
|
||||
color: {{ site.link_color }}">
|
||||
style="background-color: {{ site.background_color }};
|
||||
color: {{ site.foreground_color }}">
|
||||
<img src="{{ site.icon_url }}" width="30" height="30">
|
||||
<span>{{ site.name }}</span>
|
||||
<a class="gotolink" href="https://{{ site.url }}" target="_blank" rel="noopener">Go to site</a>
|
||||
|
|
|
@ -13,7 +13,8 @@
|
|||
<div id="quizchoices" data-id="{{ question.id }}">
|
||||
{% for choice in choices %}
|
||||
<button data-id="{{ choice.id }}" data-url="{{ choice.url }}"
|
||||
style="color: {{ choice.tag_foreground_color }};background-color: {{ choice.tag_background_color }}"
|
||||
style="color: {{ choice.foreground_color }};background-color: {{ choice.background_color }};
|
||||
{{ ("border: solid 1px " + choice.foreground_color) if choice.background_color and is_light_color(choice.background_color) }}"
|
||||
>{{ choice.name }}</button>
|
||||
{% endfor %}
|
||||
</div>
|
||||
|
|
18
utils.py
18
utils.py
|
@ -114,5 +114,21 @@ def get_fallback_site():
|
|||
"name": "Stack Exchange",
|
||||
"url": "stackexchange.com/",
|
||||
"icon_url": "https://cdn.sstatic.net/Sites/stackexchange/img/apple-touch-icon.png",
|
||||
"fallback": True
|
||||
"fallback": True,
|
||||
"background_color": False,
|
||||
"foreground_color": False,
|
||||
"primary_color": False
|
||||
}
|
||||
|
||||
|
||||
def hex_to_rgb(hex):
|
||||
""" https://stackoverflow.com/a/29643643 """
|
||||
return tuple(int(hex[i:i + 2], 16) for i in (0, 2, 4))
|
||||
|
||||
|
||||
def is_light_color(hex):
|
||||
""" https://stackoverflow.com/a/596241 """
|
||||
r, g, b = hex_to_rgb(hex[1:])
|
||||
brightness = 0.2126 * r + 0.7152 * g + 0.0722 * b
|
||||
print(brightness)
|
||||
return brightness > 245
|
||||
|
|
|
@ -69,8 +69,8 @@ document.addEventListener("DOMContentLoaded", function (event) {
|
|||
setHeader(resp.site, true);
|
||||
// headertitle.innerText = resp.site.name;
|
||||
// headerimg.src = resp.site.icon_url;
|
||||
header.style.backgroundColor = resp.site.tag_background_color;
|
||||
header.style.color = resp.site.link_color;
|
||||
header.style.backgroundColor = resp.site.background_color;
|
||||
header.style.color = resp.site.foreground_color;
|
||||
var result = document.getElementById(resp.correct ? "correct" : "incorrect");
|
||||
result.style.display = "block";
|
||||
next.focus()
|
||||
|
@ -128,10 +128,10 @@ document.addEventListener("DOMContentLoaded", function (event) {
|
|||
|
||||
entered = true;
|
||||
console.log(selectedSite);
|
||||
check.style.backgroundColor = selectedSite.tag_background_color;
|
||||
header.style.backgroundColor = selectedSite.tag_background_color;
|
||||
check.style.color = selectedSite.link_color;
|
||||
header.style.color = selectedSite.link_color;
|
||||
check.style.backgroundColor = selectedSite.background_color;
|
||||
header.style.backgroundColor = selectedSite.background_color;
|
||||
check.style.color = selectedSite.foreground_color;
|
||||
header.style.color = selectedSite.foreground_color;
|
||||
setHeader(selectedSite, false)
|
||||
}
|
||||
});
|
||||
|
|
|
@ -157,6 +157,7 @@ h2 {
|
|||
display: flex;
|
||||
flex-direction: row;
|
||||
justify-content: space-between;
|
||||
flex-wrap: wrap;
|
||||
}
|
||||
|
||||
button {
|
||||
|
|
Loading…
Reference in a new issue