diff --git a/app/app.vue b/app/app.vue index 4f165a3a9..4d1df64a5 100644 --- a/app/app.vue +++ b/app/app.vue @@ -126,4 +126,15 @@ a { } } } + +/* Dark mode styles */ +.dark-mode body { + background-color: #020420; + color: #F4F4F5; +} + +.dark-mode a { + color: #F4F4F5; +} + diff --git a/app/components/AppHeader.vue b/app/components/AppHeader.vue index ee0bdc512..bd99c9a50 100644 --- a/app/components/AppHeader.vue +++ b/app/components/AppHeader.vue @@ -1,5 +1,14 @@ diff --git a/app/components/ItemListNav.vue b/app/components/ItemListNav.vue index bfc06cf1e..371fb921c 100644 --- a/app/components/ItemListNav.vue +++ b/app/components/ItemListNav.vue @@ -59,4 +59,24 @@ const hasMore = computed(() => props.page < props.maxPage) text-align: center; } } + +/* Dark mode styles */ +.dark-mode .news-list-nav, .dark-mode .news-list { + background-color: #2e2e2e; +} + +.dark-mode .news-list-nav { + & a { + color: #ccc; + } + + .disabled { + opacity: 0.5; + } + + .page { + color: #ccc; + } +} + diff --git a/app/components/PostComment.vue b/app/components/PostComment.vue index e6e45fa4e..9c6e9caa5 100644 --- a/app/components/PostComment.vue +++ b/app/components/PostComment.vue @@ -103,4 +103,44 @@ function pluralize(n: number) { } } } + +/* Dark mode styles */ +.dark-mode .comment { + border-top: 1px solid #444; + + .by { + color: #ccc; + + & a { + color: #ccc; + } + } + + .text { + color: #ccc; + + & a:hover { + color: #00C48D; + } + + & pre { + background-color: #333; + color: #ccc; + } + } + + .toggle { + background-color: #333; + color: #ccc; + + & a { + color: #00C48D; + } + + &.open { + background-color: transparent; + } + } +} + diff --git a/app/components/PostItem.vue b/app/components/PostItem.vue index 3bd5008d8..72b09c67a 100644 --- a/app/components/PostItem.vue +++ b/app/components/PostItem.vue @@ -86,4 +86,27 @@ defineProps<{ } } } + +/* Dark mode styles */ +.dark-mode .news-item { + background-color: #2e2e2e; + border-bottom: 1px solid #444; + + .score { + color: #00C48D; + } + + .meta, .host { + color: #ccc; + + & a { + color: #ccc; + + &:hover { + color: #00C48D; + } + } + } +} + diff --git a/app/pages/[feed]/[page].vue b/app/pages/[feed]/[page].vue index 140301f96..a12b6d1f1 100644 --- a/app/pages/[feed]/[page].vue +++ b/app/pages/[feed]/[page].vue @@ -139,4 +139,10 @@ watch(page, to => pageChanged(to)) margin: 10px 0; } } + +/* Dark mode styles */ +.dark-mode .news-list { + background-color: #2e2e2e; +} + diff --git a/app/pages/item/[id].vue b/app/pages/item/[id].vue index dab061a0c..74bed4594 100755 --- a/app/pages/item/[id].vue +++ b/app/pages/item/[id].vue @@ -123,4 +123,30 @@ useHead({ } } } + +/* Dark mode styles */ +.dark-mode .item-view-header { + background-color: #2e2e2e; + box-shadow: 0 1px 2px rgba(255, 255, 255, 0.1); + + & h1 { + color: #F4F4F5; + } + + .host, .meta, .meta a { + color: #ccc; + } + .meta a:hover { + color: #00C48D; + } +} + +.dark-mode .item-view-comments { + background-color: #2e2e2e; +} + +.dark-mode .item-view-comments-header { + color: #F4F4F5; +} + diff --git a/app/pages/user/[id].vue b/app/pages/user/[id].vue index 2a8c76d42..64d8de10c 100644 --- a/app/pages/user/[id].vue +++ b/app/pages/user/[id].vue @@ -72,4 +72,27 @@ useHead({ text-decoration: underline; } } + +/* Dark mode styles */ +.dark-mode .user-view { + background-color: #2e2e2e; + color: #F4F4F5; + + & h1 { + color: #F4F4F5; + } + + .label { + color: #ccc; + } + + .about { + color: #ccc; + } + + .links a { + color: #00C48D; + } +} +