Add light theme and some more CSS variables

pull/429/head
Andrew Godwin 2023-01-16 13:05:21 -07:00
rodzic 5309ef425a
commit 50f8c8040d
4 zmienionych plików z 49 dodań i 30 usunięć

Wyświetl plik

@ -247,6 +247,7 @@ class Config(models.Model):
toot_mode: bool = False toot_mode: bool = False
default_post_visibility: int = 0 # Post.Visibilities.public default_post_visibility: int = 0 # Post.Visibilities.public
visible_follows: bool = True visible_follows: bool = True
light_theme: bool = False
# wellness Options # wellness Options
visible_reaction_counts: bool = True visible_reaction_counts: bool = True

Wyświetl plik

@ -88,16 +88,20 @@ td a {
--color-bg-error: rgb(87, 32, 32); --color-bg-error: rgb(87, 32, 32);
--color-highlight: #449c8c; --color-highlight: #449c8c;
--color-delete: #8b2821; --color-delete: #8b2821;
--color-header-menu: rgba(0, 0, 0, 0.5);
--color-main-shadow: rgba(0, 0, 0, 0.6);
--size-main-shadow: 50px;
--color-text-duller: #5f6983; --color-text-duller: #5f6983;
--color-text-dull: #99a; --color-text-dull: #99a;
--color-text-main: #fff; --color-text-main: #fff;
--color-text-link: rgb(176, 194, 206); --color-text-link: var(--color-highlight);
--color-text-in-highlight: #fff;
--color-input-background: #26323c;
--color-input-border: #000; --color-input-border: #000;
--color-input-border-active: #444b5d; --color-input-border-active: #444b5d;
--color-button-main: #444b5d; --color-button-secondary: #2e3e4c;
--color-button-main-hover: #515d7c;
--color-button-disabled: #7c9c97; --color-button-disabled: #7c9c97;
--sm-header-height: 50px; --sm-header-height: 50px;
@ -109,6 +113,29 @@ td a {
--emoji-height: 1.1em; --emoji-height: 1.1em;
} }
body.light-theme {
--color-bg-main: #dfe3e7;
--color-bg-menu: #cfd6dd;
--color-bg-box: #f2f5f8;
--color-bg-error: rgb(219, 144, 144);
--color-highlight: #449c8c;
--color-delete: #884743;
--color-header-menu: rgba(0, 0, 0, 0.1);
--color-main-shadow: rgba(0, 0, 0, 0.1);
--size-main-shadow: 20px;
--color-text-duller: #3a3b3d;
--color-text-dull: rgb(44, 44, 48);
--color-text-main: rgb(0, 0, 0);
--color-text-link: var(--color-highlight);
--color-input-background: #fff;
--color-input-border: rgb(109, 109, 109);
--color-input-border-active: #464646;
--color-button-secondary: #5c6770;
--color-button-disabled: #a1a1a1;
}
body { body {
background-color: var(--color-bg-main); background-color: var(--color-bg-main);
color: var(--color-text-main); color: var(--color-text-main);
@ -120,7 +147,7 @@ body {
main { main {
width: 1100px; width: 1100px;
margin: 20px auto; margin: 20px auto;
box-shadow: 0 0 50px rgba(0, 0, 0, 0.6); box-shadow: 0 0 var(--size-main-shadow) var(--color-main-shadow);
border-radius: 5px; border-radius: 5px;
} }
@ -162,7 +189,7 @@ header .logo {
padding: 10px 11px 9px 10px; padding: 10px 11px 9px 10px;
height: 50px; height: 50px;
font-size: 130%; font-size: 130%;
color: var(--color-text-main); color: var(--color-text-in-highlight);
border-bottom: 3px solid rgba(0, 0, 0, 0); border-bottom: 3px solid rgba(0, 0, 0, 0);
z-index: 10; z-index: 10;
overflow: hidden; overflow: hidden;
@ -197,7 +224,7 @@ header menu {
header menu a { header menu a {
padding: 10px 20px 4px 20px; padding: 10px 20px 4px 20px;
color: #eee; color: var(--color-text-main);
line-height: 30px; line-height: 30px;
border-bottom: 3px solid rgba(0, 0, 0, 0); border-bottom: 3px solid rgba(0, 0, 0, 0);
} }
@ -376,6 +403,7 @@ nav a i {
.right-column h2 { .right-column h2 {
background: var(--color-highlight); background: var(--color-highlight);
color: var(--color-text-in-highlight);
padding: 8px 10px; padding: 8px 10px;
font-weight: bold; font-weight: bold;
font-size: 90%; font-size: 90%;
@ -772,7 +800,7 @@ div.follow-profile .actions a:hover {
} }
div.follow-profile .actions a.active { div.follow-profile .actions a.active {
color: var(--color-highlight); color: var(--color-text-link);
} }
form.inline-menu { form.inline-menu {
@ -889,7 +917,7 @@ form select,
form textarea { form textarea {
width: 100%; width: 100%;
padding: 5px 7px; padding: 5px 7px;
background: var(--color-bg-main); background: var(--color-input-background);
border: 1px solid var(--color-input-border); border: 1px solid var(--color-input-border);
border-radius: 3px; border-radius: 3px;
color: var(--color-text-main); color: var(--color-text-main);
@ -930,21 +958,6 @@ form textarea:focus {
border: 1px solid var(--color-input-border-active); border: 1px solid var(--color-input-border-active);
} }
form input[type=submit] {
width: 100%;
padding: 4px 6px;
margin: 0 0 10px;
background: var(--color-button-main);
border: 0;
border-radius: 3px;
color: var(--color-text-main);
cursor: pointer;
}
form input[type=submit]:hover {
background: var(--color-button-main-hover);
}
form img.preview { form img.preview {
max-height: 100%; max-height: 100%;
max-width: 100px; max-width: 100px;
@ -1012,7 +1025,7 @@ button,
cursor: pointer; cursor: pointer;
font-weight: bold; font-weight: bold;
background-color: var(--color-highlight); background-color: var(--color-highlight);
color: var(--color-text-main); color: var(--color-text-in-highlight);
display: inline-block; display: inline-block;
} }
@ -1030,7 +1043,7 @@ button.destructive:hover,
button.secondary, button.secondary,
.button.secondary { .button.secondary {
background: var(--color-bg-menu); background: var(--color-button-secondary);
} }
button.toggle, button.toggle,
@ -1587,7 +1600,7 @@ form .post {
} }
.post .actions a.active { .post .actions a.active {
color: var(--color-highlight); color: var(--color-text-link);
} }
.post .handle .link:hover { .post .handle .link:hover {
@ -1597,7 +1610,7 @@ form .post {
.post .content a { .post .content a {
word-break: break-all; word-break: break-all;
text-decoration: none; text-decoration: none;
color: var(--color-highlight); color: var(--color-text-link);
} }
.post .content a:hover { .post .content a:hover {
@ -1734,7 +1747,7 @@ form .post {
} }
body:not(.no-sidebar) header menu a { body:not(.no-sidebar) header menu a {
background: rgba(0, 0, 0, 0.5); background: var(--color-header-menu);
} }
main { main {

Wyświetl plik

@ -16,6 +16,7 @@
<style> <style>
body { body {
--color-highlight: {{ config.highlight_color }}; --color-highlight: {{ config.highlight_color }};
--color-text-link: {{ config.highlight_color }};
} }
{% if not config_identity.visible_reaction_counts %} {% if not config_identity.visible_reaction_counts %}
.like-count { .like-count {
@ -32,7 +33,7 @@
{% block extra_head %}{% endblock %} {% block extra_head %}{% endblock %}
{% block custom_head %}{% if config.custom_head %}{{ config.custom_head|safe }}{% endif %}{% endblock %} {% block custom_head %}{% if config.custom_head %}{{ config.custom_head|safe }}{% endif %}{% endblock %}
</head> </head>
<body class="{% block body_class %}{% endblock %}" hx-headers='{"X-CSRFToken": "{{ csrf_token }}"}'> <body class="{% if config_identity.light_theme %}light-theme {% endif %}{% block body_class %}{% endblock %}" hx-headers='{"X-CSRFToken": "{{ csrf_token }}"}'>
<a id="skip-to-main" class="screenreader-text" href="#main-content">Skip to Content</a> <a id="skip-to-main" class="screenreader-text" href="#main-content">Skip to Content</a>
<a id="skip-to-nav" class="screenreader-text" href="#side-navigation">Skip to Navigation</a> <a id="skip-to-nav" class="screenreader-text" href="#side-navigation">Skip to Navigation</a>
<main> <main>

Wyświetl plik

@ -33,10 +33,14 @@ class InterfacePage(SettingsPage):
"title": "Infinite Scroll", "title": "Infinite Scroll",
"help_text": "Automatically loads more posts when you get to the bottom of a timeline.", "help_text": "Automatically loads more posts when you get to the bottom of a timeline.",
}, },
"light_theme": {
"title": "Light Mode",
"help_text": "Use a light theme rather than the default dark theme.",
},
} }
layout = { layout = {
"Posting": ["toot_mode", "default_post_visibility"], "Posting": ["toot_mode", "default_post_visibility"],
"Wellness": ["infinite_scroll", "visible_reaction_counts", "expand_linked_cws"], "Wellness": ["infinite_scroll", "visible_reaction_counts", "expand_linked_cws"],
"Appearance": ["custom_css"], "Appearance": ["light_theme", "custom_css"],
} }