From 46f017ead6b9854a711d224ff7c1de533f1b1883 Mon Sep 17 00:00:00 2001 From: Rintan Date: Tue, 13 Aug 2019 22:29:46 +0900 Subject: [PATCH] =?UTF-8?q?G+=E3=83=86=E3=83=BC=E3=83=9E=E3=81=AE=E5=B0=8E?= =?UTF-8?q?=E5=85=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dark-gplus-theme-for-mastodon-dev.scss | 24 ++ .../_functions.scss | 15 + .../_mixins.scss | 13 + .../_variables.scss | 98 +++++++ .../about.scss | 138 +++++++++ .../accounts.scss | 191 +++++++++++++ .../basics.scss | 47 ++++ .../columns.scss | 263 ++++++++++++++++++ .../components-button.scss | 39 +++ .../components-card.scss | 38 +++ .../components-dropdown.scss | 69 +++++ .../components-status-card.scss | 12 + .../components.scss | 6 + .../emoji-picker.scss | 68 +++++ .../explore.scss | 47 ++++ .../icons.scss | 179 ++++++++++++ .../keyboard_shortcuts.scss | 21 ++ .../lists.scss | 55 ++++ .../notifications.scss | 27 ++ .../profile.scss | 232 +++++++++++++++ .../searches.scss | 41 +++ .../settings-account.scss | 54 ++++ .../settings-dashboard.scss | 30 ++ .../settings-directory_tag.scss | 21 ++ .../settings-log.scss | 30 ++ .../settings-report.scss | 75 +++++ .../settings.scss | 244 ++++++++++++++++ .../statuses.scss | 121 ++++++++ .../tables.scss | 29 ++ .../styles/gplus-theme-for-mastodon-dev.scss | 24 ++ .../_functions.scss | 15 + .../gplus-theme-for-mastodon-dev/_mixins.scss | 13 + .../_variables.scss | 98 +++++++ .../gplus-theme-for-mastodon-dev/about.scss | 138 +++++++++ .../accounts.scss | 191 +++++++++++++ .../gplus-theme-for-mastodon-dev/basics.scss | 47 ++++ .../gplus-theme-for-mastodon-dev/columns.scss | 263 ++++++++++++++++++ .../components-button.scss | 39 +++ .../components-card.scss | 38 +++ .../components-dropdown.scss | 69 +++++ .../components-status-card.scss | 12 + .../components.scss | 6 + .../emoji-picker.scss | 68 +++++ .../gplus-theme-for-mastodon-dev/explore.scss | 47 ++++ .../gplus-theme-for-mastodon-dev/icons.scss | 179 ++++++++++++ .../keyboard_shortcuts.scss | 21 ++ .../gplus-theme-for-mastodon-dev/lists.scss | 55 ++++ .../notifications.scss | 27 ++ .../gplus-theme-for-mastodon-dev/profile.scss | 232 +++++++++++++++ .../searches.scss | 41 +++ .../settings-account.scss | 54 ++++ .../settings-dashboard.scss | 30 ++ .../settings-directory_tag.scss | 21 ++ .../settings-log.scss | 30 ++ .../settings-report.scss | 75 +++++ .../settings.scss | 244 ++++++++++++++++ .../statuses.scss | 121 ++++++++ .../gplus-theme-for-mastodon-dev/tables.scss | 29 ++ .../styles/gplus-theme-for-mastodon.scss | 22 ++ .../gplus-theme-for-mastodon/_mixins.scss | 11 + .../gplus-theme-for-mastodon/_variables.scss | 81 ++++++ .../gplus-theme-for-mastodon/about.scss | 138 +++++++++ .../gplus-theme-for-mastodon/accounts.scss | 109 ++++++++ .../gplus-theme-for-mastodon/basics.scss | 47 ++++ .../gplus-theme-for-mastodon/columns.scss | 197 +++++++++++++ .../components-button.scss | 11 + .../components-card.scss | 37 +++ .../components-dropdown.scss | 42 +++ .../gplus-theme-for-mastodon/components.scss | 5 + .../gplus-theme-for-mastodon/explore.scss | 38 +++ .../gplus-theme-for-mastodon/icons.scss | 97 +++++++ .../gplus-theme-for-mastodon/lists.scss | 34 +++ .../notifications.scss | 27 ++ .../gplus-theme-for-mastodon/profile.scss | 231 +++++++++++++++ .../gplus-theme-for-mastodon/searches.scss | 41 +++ .../settings-account.scss | 44 +++ .../settings-dashboard.scss | 28 ++ .../settings-report.scss | 63 +++++ .../gplus-theme-for-mastodon/settings.scss | 208 ++++++++++++++ .../gplus-theme-for-mastodon/statuses.scss | 107 +++++++ .../gplus-theme-for-mastodon/tables.scss | 29 ++ .../initializers/content_security_policy.rb | 4 +- config/locales/en.yml | 4 + config/locales/ja.yml | 3 + config/themes.yml | 3 + 85 files changed, 6114 insertions(+), 1 deletion(-) create mode 100644 app/javascript/styles/dark-gplus-theme-for-mastodon-dev.scss create mode 100644 app/javascript/styles/dark-gplus-theme-for-mastodon-dev/_functions.scss create mode 100644 app/javascript/styles/dark-gplus-theme-for-mastodon-dev/_mixins.scss create mode 100644 app/javascript/styles/dark-gplus-theme-for-mastodon-dev/_variables.scss create mode 100644 app/javascript/styles/dark-gplus-theme-for-mastodon-dev/about.scss create mode 100644 app/javascript/styles/dark-gplus-theme-for-mastodon-dev/accounts.scss create mode 100644 app/javascript/styles/dark-gplus-theme-for-mastodon-dev/basics.scss create mode 100644 app/javascript/styles/dark-gplus-theme-for-mastodon-dev/columns.scss create mode 100644 app/javascript/styles/dark-gplus-theme-for-mastodon-dev/components-button.scss create mode 100644 app/javascript/styles/dark-gplus-theme-for-mastodon-dev/components-card.scss create mode 100644 app/javascript/styles/dark-gplus-theme-for-mastodon-dev/components-dropdown.scss create mode 100644 app/javascript/styles/dark-gplus-theme-for-mastodon-dev/components-status-card.scss create mode 100644 app/javascript/styles/dark-gplus-theme-for-mastodon-dev/components.scss create mode 100644 app/javascript/styles/dark-gplus-theme-for-mastodon-dev/emoji-picker.scss create mode 100644 app/javascript/styles/dark-gplus-theme-for-mastodon-dev/explore.scss create mode 100644 app/javascript/styles/dark-gplus-theme-for-mastodon-dev/icons.scss create mode 100644 app/javascript/styles/dark-gplus-theme-for-mastodon-dev/keyboard_shortcuts.scss create mode 100644 app/javascript/styles/dark-gplus-theme-for-mastodon-dev/lists.scss create mode 100644 app/javascript/styles/dark-gplus-theme-for-mastodon-dev/notifications.scss create mode 100644 app/javascript/styles/dark-gplus-theme-for-mastodon-dev/profile.scss create mode 100644 app/javascript/styles/dark-gplus-theme-for-mastodon-dev/searches.scss create mode 100644 app/javascript/styles/dark-gplus-theme-for-mastodon-dev/settings-account.scss create mode 100644 app/javascript/styles/dark-gplus-theme-for-mastodon-dev/settings-dashboard.scss create mode 100644 app/javascript/styles/dark-gplus-theme-for-mastodon-dev/settings-directory_tag.scss create mode 100644 app/javascript/styles/dark-gplus-theme-for-mastodon-dev/settings-log.scss create mode 100644 app/javascript/styles/dark-gplus-theme-for-mastodon-dev/settings-report.scss create mode 100644 app/javascript/styles/dark-gplus-theme-for-mastodon-dev/settings.scss create mode 100644 app/javascript/styles/dark-gplus-theme-for-mastodon-dev/statuses.scss create mode 100644 app/javascript/styles/dark-gplus-theme-for-mastodon-dev/tables.scss create mode 100644 app/javascript/styles/gplus-theme-for-mastodon-dev.scss create mode 100644 app/javascript/styles/gplus-theme-for-mastodon-dev/_functions.scss create mode 100644 app/javascript/styles/gplus-theme-for-mastodon-dev/_mixins.scss create mode 100644 app/javascript/styles/gplus-theme-for-mastodon-dev/_variables.scss create mode 100644 app/javascript/styles/gplus-theme-for-mastodon-dev/about.scss create mode 100644 app/javascript/styles/gplus-theme-for-mastodon-dev/accounts.scss create mode 100644 app/javascript/styles/gplus-theme-for-mastodon-dev/basics.scss create mode 100644 app/javascript/styles/gplus-theme-for-mastodon-dev/columns.scss create mode 100644 app/javascript/styles/gplus-theme-for-mastodon-dev/components-button.scss create mode 100644 app/javascript/styles/gplus-theme-for-mastodon-dev/components-card.scss create mode 100644 app/javascript/styles/gplus-theme-for-mastodon-dev/components-dropdown.scss create mode 100644 app/javascript/styles/gplus-theme-for-mastodon-dev/components-status-card.scss create mode 100644 app/javascript/styles/gplus-theme-for-mastodon-dev/components.scss create mode 100644 app/javascript/styles/gplus-theme-for-mastodon-dev/emoji-picker.scss create mode 100644 app/javascript/styles/gplus-theme-for-mastodon-dev/explore.scss create mode 100644 app/javascript/styles/gplus-theme-for-mastodon-dev/icons.scss create mode 100644 app/javascript/styles/gplus-theme-for-mastodon-dev/keyboard_shortcuts.scss create mode 100644 app/javascript/styles/gplus-theme-for-mastodon-dev/lists.scss create mode 100644 app/javascript/styles/gplus-theme-for-mastodon-dev/notifications.scss create mode 100644 app/javascript/styles/gplus-theme-for-mastodon-dev/profile.scss create mode 100644 app/javascript/styles/gplus-theme-for-mastodon-dev/searches.scss create mode 100644 app/javascript/styles/gplus-theme-for-mastodon-dev/settings-account.scss create mode 100644 app/javascript/styles/gplus-theme-for-mastodon-dev/settings-dashboard.scss create mode 100644 app/javascript/styles/gplus-theme-for-mastodon-dev/settings-directory_tag.scss create mode 100644 app/javascript/styles/gplus-theme-for-mastodon-dev/settings-log.scss create mode 100644 app/javascript/styles/gplus-theme-for-mastodon-dev/settings-report.scss create mode 100644 app/javascript/styles/gplus-theme-for-mastodon-dev/settings.scss create mode 100644 app/javascript/styles/gplus-theme-for-mastodon-dev/statuses.scss create mode 100644 app/javascript/styles/gplus-theme-for-mastodon-dev/tables.scss create mode 100644 app/javascript/styles/gplus-theme-for-mastodon.scss create mode 100644 app/javascript/styles/gplus-theme-for-mastodon/_mixins.scss create mode 100644 app/javascript/styles/gplus-theme-for-mastodon/_variables.scss create mode 100644 app/javascript/styles/gplus-theme-for-mastodon/about.scss create mode 100644 app/javascript/styles/gplus-theme-for-mastodon/accounts.scss create mode 100644 app/javascript/styles/gplus-theme-for-mastodon/basics.scss create mode 100644 app/javascript/styles/gplus-theme-for-mastodon/columns.scss create mode 100644 app/javascript/styles/gplus-theme-for-mastodon/components-button.scss create mode 100644 app/javascript/styles/gplus-theme-for-mastodon/components-card.scss create mode 100644 app/javascript/styles/gplus-theme-for-mastodon/components-dropdown.scss create mode 100644 app/javascript/styles/gplus-theme-for-mastodon/components.scss create mode 100644 app/javascript/styles/gplus-theme-for-mastodon/explore.scss create mode 100644 app/javascript/styles/gplus-theme-for-mastodon/icons.scss create mode 100644 app/javascript/styles/gplus-theme-for-mastodon/lists.scss create mode 100644 app/javascript/styles/gplus-theme-for-mastodon/notifications.scss create mode 100644 app/javascript/styles/gplus-theme-for-mastodon/profile.scss create mode 100644 app/javascript/styles/gplus-theme-for-mastodon/searches.scss create mode 100644 app/javascript/styles/gplus-theme-for-mastodon/settings-account.scss create mode 100644 app/javascript/styles/gplus-theme-for-mastodon/settings-dashboard.scss create mode 100644 app/javascript/styles/gplus-theme-for-mastodon/settings-report.scss create mode 100644 app/javascript/styles/gplus-theme-for-mastodon/settings.scss create mode 100644 app/javascript/styles/gplus-theme-for-mastodon/statuses.scss create mode 100644 app/javascript/styles/gplus-theme-for-mastodon/tables.scss diff --git a/app/javascript/styles/dark-gplus-theme-for-mastodon-dev.scss b/app/javascript/styles/dark-gplus-theme-for-mastodon-dev.scss new file mode 100644 index 000000000..8c2471deb --- /dev/null +++ b/app/javascript/styles/dark-gplus-theme-for-mastodon-dev.scss @@ -0,0 +1,24 @@ +/** + * Google+ Theme for Mastodon v1.1 + * Copyright (C) 2018-2019 Genbu Project + */ + +@charset "UTF-8"; + +// @import 'application'; +@import 'application'; +@import 'dark-gplus-theme-for-mastodon-dev/basics'; +@import 'dark-gplus-theme-for-mastodon-dev/components'; +@import 'dark-gplus-theme-for-mastodon-dev/emoji-picker'; +@import 'dark-gplus-theme-for-mastodon-dev/tables'; +@import 'dark-gplus-theme-for-mastodon-dev/columns'; +@import 'dark-gplus-theme-for-mastodon-dev/lists'; +@import 'dark-gplus-theme-for-mastodon-dev/accounts'; +@import 'dark-gplus-theme-for-mastodon-dev/statuses'; +@import 'dark-gplus-theme-for-mastodon-dev/notifications'; +@import 'dark-gplus-theme-for-mastodon-dev/searches'; +@import 'dark-gplus-theme-for-mastodon-dev/settings'; +@import 'dark-gplus-theme-for-mastodon-dev/icons'; +@import 'dark-gplus-theme-for-mastodon-dev/profile'; +@import 'dark-gplus-theme-for-mastodon-dev/about'; +@import 'dark-gplus-theme-for-mastodon-dev/explore'; \ No newline at end of file diff --git a/app/javascript/styles/dark-gplus-theme-for-mastodon-dev/_functions.scss b/app/javascript/styles/dark-gplus-theme-for-mastodon-dev/_functions.scss new file mode 100644 index 000000000..e5aea0e4e --- /dev/null +++ b/app/javascript/styles/dark-gplus-theme-for-mastodon-dev/_functions.scss @@ -0,0 +1,15 @@ +@charset "UTF-8"; + + + +@function adjust-lightness ($color, $lightness) { + @if (lightness($color) - $lightness <= 0 and lightness($color) + $lightness < 100) { + @return lighten($color, $lightness); + } + + @if (0 < lightness($color) - $lightness and 100 <= lightness($color) + $lightness) { + @return darken($color, $lightness); + } + + @return change-color($color, $lightness: $lightness); +} \ No newline at end of file diff --git a/app/javascript/styles/dark-gplus-theme-for-mastodon-dev/_mixins.scss b/app/javascript/styles/dark-gplus-theme-for-mastodon-dev/_mixins.scss new file mode 100644 index 000000000..400a1ac90 --- /dev/null +++ b/app/javascript/styles/dark-gplus-theme-for-mastodon-dev/_mixins.scss @@ -0,0 +1,13 @@ +@charset "UTF-8"; + +@import 'variables'; + + + +@mixin column-shadow { box-shadow: 0 1px 8px 0 $column-header-shadow-color } +@mixin status-shadow { box-shadow: 0 1px 4px 0 $status-shadow-color } +@mixin status-focus-shadow { box-shadow: 0 0 20px 0 $status-focused-shadow-color } +@mixin button-shadow { box-shadow: 0 2px 5px 0 $button-shadow-color } +@mixin material-border { border-radius: 4px } +@mixin material-card-radius { border-radius: 2px } +@mixin material-icon-large { font-size: 20px } \ No newline at end of file diff --git a/app/javascript/styles/dark-gplus-theme-for-mastodon-dev/_variables.scss b/app/javascript/styles/dark-gplus-theme-for-mastodon-dev/_variables.scss new file mode 100644 index 000000000..9f5098b22 --- /dev/null +++ b/app/javascript/styles/dark-gplus-theme-for-mastodon-dev/_variables.scss @@ -0,0 +1,98 @@ +@charset "UTF-8"; + + + +// Base colors +$active-color: #db4437; +$accent-color: #fbbc04; +$valid-color: #4285f4; +$error-color: #d50000; +$checked-color: #4285f4; +$verified-color: #4caf50; + + +// Text colors +$primary-text-color: #ffffff; +$primary-lighter1-text-color: change-color($color: $primary-text-color, $lightness: 62%, $alpha: 1.0); // ex: 時間表示 +$primary-lighter2-text-color: change-color($color: $primary-text-color, $lightness: 38%, $alpha: 1.0); // ex: 通知メッセージ表示 +$secondary-text-color: #2196F3; // ex: リンク +$secondary-lighter1-text-color: #00bfff; // ex: アカウントTLのユーザーID +$light-text-color: #000000; +$light-darker1-text-color: darken($light-text-color, 15%); +$active-text-color: $active-color; +$error-text-color: $error-color; + + +// Icon colors +$icon-color: #BDBDBD; +$icon-active-color: $active-color; + + +// Background colors +$base-color: #212121; +$base-lighter1-color: #2d2d2d; +$base-darker1-color: #000000; + +$column-header-color: $base-lighter1-color; +$column-header-hover-color: change-color($color: $column-header-color, $lightness: 10%); + +$status-color: $base-lighter1-color; +$status-direct-color: darken($status-color, 5%); +$status-actionbar-color: darken($status-color, 2%); + +$account-color: $base-lighter1-color; +$account-foreground-color: $base-darker1-color; + +$card-color: $base-lighter1-color; +$card-hover-color: $column-header-hover-color; +$card-image-color: $base-color; + +$form-color: rgba(0, 0, 0, 0.1); +$form-focused-color: lighten($form-color, 20%); +$trend-color: $base-lighter1-color; + +$setting-base-color: $base-color; +$setting-lists-selected-color: darken($base-color, 2%); +$setting-lists-hover-color: darken($base-color, 5%); +$setting-content-base-color: $base-lighter1-color; + +$setting-toggle-color: #b9b9b9; +$setting-toggle-checked-color: change-color($color: $checked-color, $alpha: 0.5); +$setting-toggle-thumb-color: #fafafa; +$setting-toggle-thumb-checked-color: $checked-color; + +$setting-emphasis-color: $verified-color; + +$dashboard-counters-base-color: $base-color; +$dashboard-counters-hover-color: lighten($base-color, 2%); + +$log-entry-color: $base-lighter1-color; +$log-entry-extra-color: $base-color; +$log-entry-extra--neutral-color: $valid-color; +$log-entry-extra--old-color: $active-color; +$log-entry-extra--new-color: $verified-color; + +$explore-header-color: lighten($accent-color, 16%); +$explore-directory-color: $base-lighter1-color; + +$active-button-color: $valid-color; //文字入りボタン +$non-active-button-color: lighten($base-color, 20%); + +$floating-acton-button-hover-color: lighten($active-color, 10%); + + +// Shadow colors +$column-header-shadow-color: rgba(0, 0, 0, 0.3); +$status-shadow-color: rgba(0, 0, 0, 0.14); +$status-focused-shadow-color: change-color($color: $status-shadow-color, $alpha: 0.3); +$icon-hovered-shadow-color: rgba(0, 0, 0, 0.26); +$account-header-image-shadow-color: linear-gradient(rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.46)); +$button-shadow-color: rgba(0, 0, 0, 0.4); + + +// Separation colors +$base-separation-color: rgba(0, 0, 0, 0.14); + + +//Border colors +$non-elevated-card-boader : #e0e0e0; \ No newline at end of file diff --git a/app/javascript/styles/dark-gplus-theme-for-mastodon-dev/about.scss b/app/javascript/styles/dark-gplus-theme-for-mastodon-dev/about.scss new file mode 100644 index 000000000..de48883a8 --- /dev/null +++ b/app/javascript/styles/dark-gplus-theme-for-mastodon-dev/about.scss @@ -0,0 +1,138 @@ +@charset "UTF-8"; + +@import 'variables'; +@import 'mixins'; + + + +// from mastodon/about.scss +$column-breakpoint: 700px; + + + +.landing-page { + h3, h4, h5, h6 { color: $primary-lighter2-text-color } + p { color: $primary-lighter1-text-color } + em { color: $primary-text-color } + + .column-0 { background: $base-darker1-color } + .column-2 { + .landing-page { + &__information { padding: 0 } + + &__short-description { + & > .row:first-child { + background: $base-darker1-color; + padding: 10px 20px; + } + + & > * { + padding-left: 40px; padding-right: 40px; + &:last-child { padding-bottom: 45px } + + @media screen and (max-width: $column-breakpoint) { + padding-left: 20px; padding-right: 20px; + &:last-child { padding-bottom: 25px } + } + } + } + } + } + + &__forms, + &__information, + &__call-to-action { + @include status-shadow; + background: $column-header-color; + } + + &__forms { + padding: 0; + + & > *:first-child { margin: inherit } + & > * { margin-left: 20px; margin-right: 20px; } + + .brand { background: $base-darker1-color } + + form { + & > .input input { + background: $form-color; + + &:focus { background: $form-focused-color } + } + } + + .separator-or { + margin-left: 20px; margin-right: 20px; + + span { + color: $primary-lighter1-text-color; + background: $column-header-color; + } + } + + @media screen and (max-width: $column-breakpoint) { + background: inherit; + box-shadow: none; + + .separator-or span { background: $base-color } + } + } + + &__information { + color: $primary-lighter1-text-color; + + &.contact-widget { + @include status-shadow; + background: $column-header-color; + + .contact-widget { + &__mail { + a { color: $primary-text-color } + } + } + } + + strong { color: inherit } + + .row:first-child { + h1 small { + color: $light-darker1-text-color; + + span { color: $light-text-color } + } + } + } + + &__call-to-action { + .row__information-board { + .information-board__section { + color: $primary-lighter2-text-color; + + & > span:last-child { color: $primary-lighter1-text-color } + } + } + } + + &__features { + .features-list { + .features-list__row { + .text { color: $primary-lighter1-text-color } + .visual .fa { color: $icon-color } + } + } + } + + &__footer { color: $primary-lighter1-text-color } + + #mastodon-timeline { + color: $primary-text-color; + background: transparent; + + p { + color: $primary-text-color; + + a { color: $secondary-text-color } + } + } +} \ No newline at end of file diff --git a/app/javascript/styles/dark-gplus-theme-for-mastodon-dev/accounts.scss b/app/javascript/styles/dark-gplus-theme-for-mastodon-dev/accounts.scss new file mode 100644 index 000000000..984a8c9ae --- /dev/null +++ b/app/javascript/styles/dark-gplus-theme-for-mastodon-dev/accounts.scss @@ -0,0 +1,191 @@ +@charset "UTF-8"; + +@import 'variables'; +@import 'mixins'; + + + +.account { + background: $account-color; + border-color: $base-separation-color; + + .account { + &__display-name { + color: $secondary-text-color; + strong { color: $primary-text-color } + } + } + + &-role { + color: $primary-lighter2-text-color; + background-color: rgba($base-separation-color, 0.1); + border-color: rgba($base-separation-color, 0.5); + } +} + +.column { + > .column-back-button { + @include column-shadow; + background: $column-header-color; + } +} + +.account-timeline__header { + .account__header { + background-color: $account-foreground-color; + + > div { background-color: inherit } // -> v2.7.4 + + .account__header { + &__username { color: $secondary-lighter1-text-color } + &__fields { @extend .account__header__fields; } + + &__image { // v2.8.0 -> + &::after { + content: ""; + + position: absolute; + top: auto; + left: 0; + bottom: 0; + + width: 100%; + height: 30%; + background: $account-header-image-shadow-color; + box-shadow: none; + } + + > img:not([src]), + > img[src$="/headers/original/missing.png"] { + content: url("https://raw.githubusercontent.com/GenbuProject/GPlusTheme-for-Mastodon/asset/account-default_header.jpg"); + } + } + + &__bar { // v2.8.0 -> + background-color: $base-lighter1-color; + + .account__header { + &__tabs { + .avatar { + .account__avatar { + border-color: $base-lighter1-color; + border-radius: 50%; + } + } + + &__buttons { + .icon-button { border: 0 } + } + + &__name { + h1 { color: $primary-text-color } + small { color: $secondary-text-color } + } + } + + &__bio { + .account__header { + &__content { color: $primary-text-color } + &__fields { border-color: $base-separation-color } + } + } + + &__extra { + &__links { + &, a { color: $primary-lighter1-text-color } + strong { color: $primary-lighter2-text-color } + } + } + } + } + } + + .account--action-button { + .icon-button:not(.active) { + color: darken($light-text-color, 7%); + + &:active, + &:focus, + &:hover { + color: $light-text-color; + } + } + } + } + + .account { + &__disclaimer, + &__action-bar, + &__section-headline { + background: $base-lighter1-color; + border-color: $base-separation-color; + } + + &__action-bar { + &__tab { + border-color: $base-separation-color; + &.active { border-bottom-color: $active-color } + + > span { color: $primary-lighter1-text-color } + } + } + + &__section-headline { + a { + color: $primary-text-color; + + &.active { + color: $active-color; + + &::before { border-color: transparent transparent $base-separation-color } + &::after { border-color: transparent transparent $status-color } + } + } + } + } +} + +.account-authorize__wrapper { + @include status-shadow; + background: $base-lighter1-color; + + &:focus { @include status-focus-shadow; } + + .account { + &__header__content { + color: $primary-lighter2-text-color; + } + + &--panel { + background: $account-color; + border-color: $base-separation-color; + } + } +} + +.account__header__fields { + dl { + border-color: $base-separation-color; + + dt, + dd { + color: $primary-text-color; + background: $base-lighter1-color; + } + + dd { + &.verified { + border-color: transparentize($valid-color, 0.5); + background: transparentize($valid-color, 0.75); + + a { color: lighten($verified-color, 20%) } + } + } + } + + a { color: $secondary-text-color } +} + +.account__action-bar__tab { + strong { color: $primary-text-color } +} \ No newline at end of file diff --git a/app/javascript/styles/dark-gplus-theme-for-mastodon-dev/basics.scss b/app/javascript/styles/dark-gplus-theme-for-mastodon-dev/basics.scss new file mode 100644 index 000000000..a141ecd13 --- /dev/null +++ b/app/javascript/styles/dark-gplus-theme-for-mastodon-dev/basics.scss @@ -0,0 +1,47 @@ +@charset "UTF-8"; + +@import 'variables'; +@import 'mixins'; + + + +body { + &, + .ui { + color: $primary-text-color; + background: $base-color; + } +} + +.focusable { + &:focus { + background: inherit; + + .status { + @include status-focus-shadow; + + &.status-direct { background: $status-direct-color } + } + + .detailed-status { + & { background: $status-color } + &__action-bar { background: $status-actionbar-color } + } + } +} + +::-webkit-scrollbar-thumb { + background: darken($base-lighter1-color, 12%); + + &:hover { background: darken($base-lighter1-color, 16%) } + &:active { background: darken($base-lighter1-color, 12%) } +} + +::-webkit-scrollbar-track { + background: $base-color; + + &:hover, + &:active { + background: darken($base-lighter1-color, 8%); + } +} \ No newline at end of file diff --git a/app/javascript/styles/dark-gplus-theme-for-mastodon-dev/columns.scss b/app/javascript/styles/dark-gplus-theme-for-mastodon-dev/columns.scss new file mode 100644 index 000000000..9e5cd2621 --- /dev/null +++ b/app/javascript/styles/dark-gplus-theme-for-mastodon-dev/columns.scss @@ -0,0 +1,263 @@ +@charset "UTF-8"; + +@import 'variables'; +@import 'mixins'; + + + +.tabs-bar { + @include column-shadow; + margin: 0; + background: $column-header-color; + + .tabs-bar { + &__link { + color: $icon-color; + border-bottom: 4px solid $column-header-color; + padding: 15px 10px 11px 10px; + + &.active { + border-bottom: 4px solid $active-color; + } + + .fa { + @include material-icon-large; + vertical-align: top; + } + } + } +} + +.drawer { + .drawer { + &__header { + @include column-shadow; + background: $column-header-color; + + .drawer__tab { + @include material-icon-large; + color: $icon-color; + } + + a { + &:hover { background: $column-header-hover-color } + } + } + + &__pager { + @include status-shadow; + @include material-card-radius; + + .drawer__inner { + background: $column-header-color; + + &__mastodon { display: none } + } + } + } +} + +.navigation-bar { + color: $secondary-text-color; + background: $column-header-color; + + .navigation-bar { + &__profile { + strong { color: $primary-text-color } + &-edit { color: $secondary-text-color } + } + } +} + + +.compose-form { + .compose-form { + &__buttons-wrapper { + background: $column-header-color; + + &.character-counter__wrapper { + .character-counter { color: $primary-lighter1-text-color } + } + } + + &__publish { border-top: 1px solid $base-separation-color } + &__publish-button-wrapper { @include button-shadow } + &__modifiers { background-color: $base-lighter1-color } + } + + .autosuggest-textarea__textarea { + background-color: $base-lighter1-color; + color: $primary-text-color; + } + + .character-counter { + color: $icon-color + } +} + +.column { + .column-header { + @include column-shadow; + background: $column-header-color; + + &.active { + .column-header__icon { + color: $icon-active-color; + text-shadow: 0 0 10px change-color($color: $icon-active-color, $alpha: 0.4); + } + } + + * { background: inherit } + + &__icon { + @include material-icon-large; + color: $icon-color; + vertical-align: bottom; + margin-right: 10px; + } + + &__buttons { + height: 50px; + + .column-header { + &__back-button { + .column-back-button__icon { vertical-align: unset } + } + + &__button { + &.active { + color: $icon-active-color; + background: inherit; + } + + .fa { vertical-align: unset } + } + } + } + + &__button { + color: $icon-color; + padding: 0 16px; + } + + &__collapsible { + color: $secondary-text-color; + border-bottom: 1px solid $base-separation-color; + + &-inner { background: $column-header-color } + } + } + + .column-back-button { + &__icon { + @include material-icon-large; + vertical-align: bottom; + margin-right: 8px; + } + } + + .column { + &-subheading, + &-link__badge { background: $base-color } + + &-link { + color: $primary-text-color; + background: $base-color; + + &__icon { + @include material-icon-large; + color: $icon-color; + vertical-align: bottom; + margin-right: 8px; + } + } + } + + .scrollable { + background: transparent; + + *[role="feed"] { + article { + margin: 1em 0; + &:first-of-type { margin: 0 } + + &:focus { outline: none } + } + } + + div[tabindex="-1"] { margin-bottom: 1em } + } + + .notification__filter-bar { + background: $column-header-color; + border-bottom-color: $base-separation-color; + + button { + color: $icon-color; + background: $column-header-color; + + &.active { + color: $icon-active-color; + + &::before { border-color: transparent transparent $base-separation-color } + &::after { border-color: transparent transparent $column-header-color } + } + } + } + + .empty-column-indicator { + flex-direction: column; + background: $base-color; + + &::before { + content: ""; + display: block; + + width: 100px; + height: 100px; + margin-bottom: 1em; + + background: none center / contain no-repeat; + background-image: url("https://raw.githubusercontent.com/GenbuProject/GPlusTheme-for-Mastodon/asset/notification-jingle_2x.gif"); + } + } +} + +.getting-started { + &__wrapper, + & { + background: $base-color; + } + + & { + border-top: 1px solid $base-separation-color; + + a { color: $primary-text-color } + } +} + +.load { + &-more, + &-gap { + background: transparent; + + &:hover { background: darken($column-header-color, 10%) } + } + + &-gap { border: 0 } +} + +.confirmation-modal { + @include material-card-radius; + color: $primary-text-color; + background-color: $base-lighter1-color; + + &__action-bar { + background-color: $base-lighter1-color; + } + + &__cancel-button { + color: $primary-lighter1-text-color; + box-shadow: 0 2px 5px 0 transparent; + } +} \ No newline at end of file diff --git a/app/javascript/styles/dark-gplus-theme-for-mastodon-dev/components-button.scss b/app/javascript/styles/dark-gplus-theme-for-mastodon-dev/components-button.scss new file mode 100644 index 000000000..42d4f8db8 --- /dev/null +++ b/app/javascript/styles/dark-gplus-theme-for-mastodon-dev/components-button.scss @@ -0,0 +1,39 @@ +@charset "UTF-8"; + +@import 'variables'; +@import 'mixins'; + + + +.floating-action-button { + font-size: 24px; + background-color: $active-color; + width: 3.6rem; + height: 3.6rem; + + &:active { + background-color: $active-color; + } + + &:hover { + background-color: $floating-acton-button-hover-color; + } +} + +.button { + @include button-shadow; + @include material-card-radius; + background-color: $active-button-color; + + .text-icon-button { color: $primary-lighter1-text-color } +} + +.modal-root { + &__modal { + .media-modal { + &__close.icon-button { + font-size: 40px !important; + } + } + } +} \ No newline at end of file diff --git a/app/javascript/styles/dark-gplus-theme-for-mastodon-dev/components-card.scss b/app/javascript/styles/dark-gplus-theme-for-mastodon-dev/components-card.scss new file mode 100644 index 000000000..dc72775a1 --- /dev/null +++ b/app/javascript/styles/dark-gplus-theme-for-mastodon-dev/components-card.scss @@ -0,0 +1,38 @@ +@charset "UTF-8"; + +@import 'variables'; + + + +.card { + //border: 1px solid $base-separation-color; + //不要(?) + + > a { + @include status-shadow; + + &:hover, + &:focus, + &:active { + .card__bar { + background: initial; + + .display-name strong { color: $secondary-text-color } + } + } + + .card__img { background: $card-image-color } + .card__bar { + background: $card-color; + + .avatar { + img { background: transparent } + } + + .display-name { + strong { color: $primary-text-color } + span { color: $primary-lighter2-text-color } + } + } + } +} \ No newline at end of file diff --git a/app/javascript/styles/dark-gplus-theme-for-mastodon-dev/components-dropdown.scss b/app/javascript/styles/dark-gplus-theme-for-mastodon-dev/components-dropdown.scss new file mode 100644 index 000000000..a9c6dc5ef --- /dev/null +++ b/app/javascript/styles/dark-gplus-theme-for-mastodon-dev/components-dropdown.scss @@ -0,0 +1,69 @@ +@charset "UTF-8"; + +@import 'variables'; +@import 'mixins'; + + +.dropdown-menu { + background-color: $column-header-color; +} + +.dropdown-menu, +.actions-modal { + @include material-card-radius; + + & > ul { + background: $base-lighter1-color; + + .dropdown-menu { + &__arrow { + &.top { border-top-color: $column-header-color } + &.bottom { border-bottom-color: $column-header-color } + } + + &__item { + a { + color: $primary-lighter2-text-color; + + padding: 16px 16px; + background: $column-header-color; + + &:active, + &:focus, + &:hover { + color: $primary-text-color; + background: $column-header-hover-color; + } + } + } + + &__separator { border-bottom-color: $base-separation-color } + } + + & > li:not(:empty) { + @extend .dropdown-menu__item; + + a { + padding: 12px 16px; + color: $primary-text-color; + + &:hover { + color: $primary-text-color; + background-color: $column-header-hover-color; + } + } + } + } + + .status { + background-color: $base-lighter1-color; + padding-top: 16px; + padding-bottom: 16px; + padding-right: 16px; + padding-left: 74px; + + &__avatar { + top: 16px; + } + } +} \ No newline at end of file diff --git a/app/javascript/styles/dark-gplus-theme-for-mastodon-dev/components-status-card.scss b/app/javascript/styles/dark-gplus-theme-for-mastodon-dev/components-status-card.scss new file mode 100644 index 000000000..9b64572f9 --- /dev/null +++ b/app/javascript/styles/dark-gplus-theme-for-mastodon-dev/components-status-card.scss @@ -0,0 +1,12 @@ +@charset "UTF-8"; + +@import 'variables'; + + + +.status-card { + color: $primary-lighter1-text-color; + &__title, &__description { color: $primary-lighter2-text-color } + + &__image { background: transparent } +} \ No newline at end of file diff --git a/app/javascript/styles/dark-gplus-theme-for-mastodon-dev/components.scss b/app/javascript/styles/dark-gplus-theme-for-mastodon-dev/components.scss new file mode 100644 index 000000000..e735b108d --- /dev/null +++ b/app/javascript/styles/dark-gplus-theme-for-mastodon-dev/components.scss @@ -0,0 +1,6 @@ +@charset "UTF-8"; + +@import 'components-button'; +@import 'components-card'; +@import 'components-dropdown'; +@import 'components-status-card'; \ No newline at end of file diff --git a/app/javascript/styles/dark-gplus-theme-for-mastodon-dev/emoji-picker.scss b/app/javascript/styles/dark-gplus-theme-for-mastodon-dev/emoji-picker.scss new file mode 100644 index 000000000..0937158bf --- /dev/null +++ b/app/javascript/styles/dark-gplus-theme-for-mastodon-dev/emoji-picker.scss @@ -0,0 +1,68 @@ +@charset "UTF-8"; + +@import 'variables'; +@import 'mixins'; + + + +.emoji-mart { + &-bar { + border: 0 solid $base-separation-color; + + &:first-child { + border-top-left-radius: 2px; + border-top-right-radius: 2px; + background-color: $base-color; + } + } + + &-anchors { + color: $icon-color; + } + &-anchor { + &-selected { + color: $icon-active-color; + + &:hover { + color: $icon-active-color; + } + } + + &-bar { + background-color: $icon-active-color; + } + } + + &-search { + background-color: $base-lighter1-color; + } + &-search input { + color: $primary-text-color; + background-color: $form-color; + border: 0px solid #ffffff00; + } + + &-category-label span { + color: $primary-text-color; + background-color: $base-lighter1-color; + } + + &-scroll { + background-color: $base-lighter1-color; + } +} + +.emoji-picker-dropdown { + &__modifiers { + &__menu { + @include status-shadow; + @include material-card-radius; + background-color: $base-lighter1-color; + } + } + + &__menu { + @include column-shadow; + background-color: $base-lighter1-color; + } +} \ No newline at end of file diff --git a/app/javascript/styles/dark-gplus-theme-for-mastodon-dev/explore.scss b/app/javascript/styles/dark-gplus-theme-for-mastodon-dev/explore.scss new file mode 100644 index 000000000..ae80b3884 --- /dev/null +++ b/app/javascript/styles/dark-gplus-theme-for-mastodon-dev/explore.scss @@ -0,0 +1,47 @@ +@charset "UTF-8"; + +@import 'variables'; +@import 'mixins'; + + + +.public-layout { + .page-header { + background: $explore-header-color; + + h1 { color: $primary-text-color } + p { color: $primary-lighter2-text-color } + } + + .directory, + .notice-widget { @include column-shadow; } + + .directory { + background: $explore-directory-color; + + .accounts-table { + &__count { + color: $primary-lighter2-text-color; + small { color: $primary-lighter1-text-color } + } + } + + &__tag { + & > a { + @include status-shadow; + background: $explore-directory-color; + } + + h4 { color: $primary-lighter2-text-color } + .fa, small { color: $primary-lighter1-text-color } + .trends__item__current { color: $primary-text-color } + } + } + + .notice-widget { + color: $primary-lighter1-text-color; + background: $explore-directory-color; + + a { color: $secondary-text-color } + } +} \ No newline at end of file diff --git a/app/javascript/styles/dark-gplus-theme-for-mastodon-dev/icons.scss b/app/javascript/styles/dark-gplus-theme-for-mastodon-dev/icons.scss new file mode 100644 index 000000000..825d18dac --- /dev/null +++ b/app/javascript/styles/dark-gplus-theme-for-mastodon-dev/icons.scss @@ -0,0 +1,179 @@ +@charset "UTF-8"; + +@import 'variables'; + + + +@function hex-color($color) { + @if type-of($color) == 'color' { + $color: str-slice(ie-hex-str($color), 4); + } + + @return '%23' + unquote($color) +}; + + + +@font-face { + font-family: "Material Icons Extended"; + src: + local("Material Icons Extended"), + url("https://fonts.gstatic.com/s/materialiconsextended/v50/kJEjBvgX7BgnkSrUwT8UnLVc38YydejYY-oE_LvJ.woff2"), + url("https://raw.githubusercontent.com/GenbuProject/GPlusTheme-for-Mastodon/asset/font-Material_Icons_Extended-v50.woff2"); +} + +.icon-button { + color: $icon-color; + + &:active, + &:focus, + &:hover { + color: lighten($icon-color, 7%); + } + + &.star-icon { + &.active { + color: $light-text-color; + background: $icon-active-color; + border-radius: 50%; + } + + .fa.fa-star { vertical-align: top } + } + + &.inverted { + color: $icon-color; + } + + &.disabled { + color: lighten($icon-color, 13%); + + .fa.fa-retweet { + background-image: url("data:image/svg+xml;utf8,"); + } + } + + .fa { + @include material-icon-large; + vertical-align: middle; + + &.fa-retweet { + background-image: url("data:image/svg+xml;utf8,"); + + &:active, + &:hover, + &:focus { + background-image: url("data:image/svg+xml;utf8,"); + } + } + } +} + +.fa { + &.fa-users, + &.fa-globe, + &.fa-cog, + &.fa-cogs, + &.fa-gears, + &.fa-sign-out, + &.fa-star, + &.fa-reply, + &.fa-reply-all, + &.fa-mail-reply, + &.fa-mail-reply-all, + &.fa-envelope, + &.fa-bookmark, + &.fa-home, + &.fa-bell, + &.fa-eraser, + &.fa-ellipsis-h, + &.fa-ellipsis-v, + &.fa-address-book, + &.fa-thumb-tack, + &.fa-lock, + &.fa-pencil, + &.fa-chevron-left, + &.fa-chevron-right, + &.fa-camera, + &.fa-tasks, + &.fa-sliders, + &.fa-fire, + &.fa-list-ul, + &.fa-search, + &.fa-close, + &.fa-remove, + &.fa-times, + &.fa-user, + &.fa-mobile-phone, + &.fa-mobile, + &.fa-filter, + &.fa-user-plus, + &.fa-cloud-upload, + &.fa-cloud-download, + &.fa-eye, + &.fa-eye-slash, + &.fa-share-alt, + &.fa-chevron-down, + &.fa-bars, + &.fa-navicon, + &.fa-reorder { + font-family: "Material Icons Extended"; + } + + &.fa-users::before { content: "people" } // 人々マーク(.drawer__header > .drawer__tab:2) + &.fa-globe::before { content: "public" } // 地球マーク(.drawer__header > .drawer__tab:3) + &.fa-cog::before { content: "settings" } // 歯車マーク(.drawer__header > .drawer__tab:4) + &.fa-cogs::before { content: "settings" } //歯車マーク(モバイル) + &.fa-gears::before { content: "settings" } //歯車マーク(モバイル) + &.fa-sign-out::before { content: "exit_to_app" } //サインアウト + &.fa-star::before { content: "plus_one" } // +1(.status .status__action-bar > .star-icon) + &.fa-reply::before { content: "reply" } //返信ボタン + &.fa-reply-all::before { content: "reply_all" } //全員に返信ボタン + &.fa-mail-reply::before { content: "reply" } //返信ボタン + &.fa-mail-reply-all::before { content: "reply_all" } //全員に返信ボタン + &.fa-envelope::before { content: "mail" } //ダイレクトメッセージボタン + &.fa-bookmark::before { content: "bookmark" } //ブックマークボタン + &.fa-home::before { content: "home" } // 家マーク(ホームタイムライン) + &.fa-bell::before { content: "notifications" } // ベルマーク(通知) + &.fa-eraser::before { content: "clear_all" } // 通知を消去のマーク + &.fa-ellipsis-h::before { content: "more_horiz" } // 三点リーダー(横) + &.fa-ellipsis-v::before { content: "more_vert" } // 三点リーダー(縦) + &.fa-address-book::before { content: "explore" } // discoverマーク(explore遷移タブ) + &.fa-thumb-tack::before { content: "" } // ピンマーク(ピン留め投稿) + &.fa-lock::before { content: "" } // サークルマーク(フォロワー限定投稿) + &.fa-pencil::before { content: "create" } // 鉛筆マーク(モバイル用フローティングボタン) + &.fa-chevron-left::before { content: "arrow_back" } //戻るボタン + &.fa-chevron-right::before { content: "arrow_forward" } //進むボタン + &.fa-camera::before { content: "camera_alt" } //メディアを追加ボタン + &.fa-tasks::before { content: "poll" } //投票を追加ボタン + &.fa-sliders::before { content: "tune" } //設定を表示ボタン + &.fa-fire::before { content: "whatshot" } //トレンドマーク + &.fa-list-ul::before { content: "list" } //リストマーク + &.fa-search::before { content: "search" } //検索アイコン(モバイル、トップバー内) + &.fa-close::before { content: "close" } //閉じるボタン + &.fa-remove::before { content: "close" } //閉じるボタン + &.fa-times::before { content: "close" } //閉じるボタン(メディア) + &.fa-user::before { content: "account_circle" } //ユーザーアイコン + &.fa-mobile-phone::before { content: "smartphone" } //モバイルアイコン + &.fa-mobile::before { content: "smartphone" } //モバイルアイコン + &.fa-filter::before { content: "filter_list" } //フィルターアイコン + &.fa-user-plus::before { content: "person_add" } //ユーザーの追加アイコン + &.fa-cloud-upload::before { content: "cloud_upload" } //インポートアイコン + &.fa-cloud-download::before { content: "cloud_download" } //エクスポートアイコン + &.fa-eye::before { content: "visibility" } //目のアイコン + &.fa-eye-slash::before { content : "visibility_off" } //閉じた目のアイコン + &.fa-share-alt::before { content: "share" } //モバイル共有ボタン + &.fa-chevron-down::before { content: "keyboard_arrow_down" } //メニューボタン + &.fa-bars::before { content: "menu" } //ハンバーガーボタン + &.fa-navicon::before { content: "menu" } //ハンバーガーボタン + &.fa-reorder::before { content: "menu" } //ハンバーガーボタン +} + +.fa { + &.fa-chevron-left, + &.fa-chevron-right, + &.fa.fa-times { + @include material-icon-large; + vertical-align: bottom; + } +} \ No newline at end of file diff --git a/app/javascript/styles/dark-gplus-theme-for-mastodon-dev/keyboard_shortcuts.scss b/app/javascript/styles/dark-gplus-theme-for-mastodon-dev/keyboard_shortcuts.scss new file mode 100644 index 000000000..6c664b32f --- /dev/null +++ b/app/javascript/styles/dark-gplus-theme-for-mastodon-dev/keyboard_shortcuts.scss @@ -0,0 +1,21 @@ +@charset "UTF-8"; + +@import 'variables'; +@import 'mixins'; + + + +.keyboard-shortcuts { + kbd { + @include status-shadow; + + color: $primary-text-color; + background-color: $base-lighter1-color; + border-color: $base-darker1-color; + + margin: 0 0.25em; + + &:first-child { margin-left: 0 } + &:last-child { margin-right: 0 } + } +} \ No newline at end of file diff --git a/app/javascript/styles/dark-gplus-theme-for-mastodon-dev/lists.scss b/app/javascript/styles/dark-gplus-theme-for-mastodon-dev/lists.scss new file mode 100644 index 000000000..05c29a6df --- /dev/null +++ b/app/javascript/styles/dark-gplus-theme-for-mastodon-dev/lists.scss @@ -0,0 +1,55 @@ +@charset "UTF-8"; + +@import 'variables'; + + + +.column { + .column-back-button { background: inherit } + + .column-inline-form { + background: $column-header-color; + + label input { + color: $secondary-text-color; + &:focus { color: $primary-text-color } + } + } + + .column-inline-form ~ .scrollable { + article { margin: 0 } + } +} + +.modal-root { + .column-inline-form { + background: $column-header-color; + + .setting-text { + color: $primary-text-color; + &:active, &:focus { color: $primary-lighter2-text-color } + } + } + + .list-editor { + background: $base-color; + h4 { background: $column-header-color } + + .drawer__pager { + .drawer__inner { background: $column-header-color } + } + } + + .list-adder { + background: $base-color; + + .column-inline-form { border-bottom: 1px solid $base-separation-color } + + &__account, + &__lists { background: $column-header-color } + + &__lists { + .list { border-color: $base-separation-color } + } + } +} \ No newline at end of file diff --git a/app/javascript/styles/dark-gplus-theme-for-mastodon-dev/notifications.scss b/app/javascript/styles/dark-gplus-theme-for-mastodon-dev/notifications.scss new file mode 100644 index 000000000..bab098372 --- /dev/null +++ b/app/javascript/styles/dark-gplus-theme-for-mastodon-dev/notifications.scss @@ -0,0 +1,27 @@ +@charset "UTF-8"; + +@import 'variables'; + + + +.notification { + &.notification-favourite { + .status { + &.status-direct { background: transparent } + } + } + + > .notification__message { + color: $primary-lighter2-text-color; + font-size: 13px; + padding: 8px 0; + + .notification__display-name { + &:hover { color: inherit } + } + + .notification__favourite-icon-wrapper { + .star-icon { color: $icon-active-color } + } + } +} \ No newline at end of file diff --git a/app/javascript/styles/dark-gplus-theme-for-mastodon-dev/profile.scss b/app/javascript/styles/dark-gplus-theme-for-mastodon-dev/profile.scss new file mode 100644 index 000000000..246d24b7d --- /dev/null +++ b/app/javascript/styles/dark-gplus-theme-for-mastodon-dev/profile.scss @@ -0,0 +1,232 @@ +@charset "UTF-8"; + +@import 'variables'; +@import 'mixins'; + + + +.public-layout { + a.button { + @include button-shadow; + + color: $primary-text-color; + background: $base-lighter1-color; + + &:hover, + &:focus, + &:active { + background: darken($base-lighter1-color, 8%); + } + } + + .logo-button { + svg path { + /* Only for Itabashi-don */ + &:not(#Mastodon):not(#Itabashi) { fill: $secondary-text-color !important } + &#Mastodon { fill: $base-lighter1-color !important } + } + } + + .public-account-header { + @include status-shadow; + + &__image { + background: $base-lighter1-color; + + @media screen and (min-width: 600px) { height: 500px } + + &::after { + content: ""; + + position: absolute; + top: auto; + left: 0; + bottom: 0; + + width: 100%; + height: 30%; + background: $account-header-image-shadow-color; + box-shadow: none; + } + + > img:not([src]), + > img[src="/headers/original/missing.png"] { + content: url("https://raw.githubusercontent.com/GenbuProject/GPlusTheme-for-Mastodon/asset/account-default_header.jpg"); + } + } + + &__bar { + @media screen and (max-width: 600px) { + flex-direction: column; + background: $base-color; + } + + @media screen and (min-width: 600px) { margin-top: -140px } + + &::before { background: $base-lighter1-color } + + .avatar { + @media screen and (max-width: 600px) { + position: relative; + bottom: 30px; + + display: initial; + width: 60px; + height: 60px; + margin: 0 auto; + padding: 0; + } + + img { + border: 2px solid $base-lighter1-color; + border-radius: 50%; + background: transparent; + } + } + } + + &__tabs { + @media screen and (max-width: 600px) { + flex-wrap: wrap; + margin-left: 0; + + &__name { + width: 100%; + text-align: center; + + h1 { + color: $primary-text-color; + + small { color: $primary-lighter1-text-color } + } + } + + &__tabs { + justify-content: center; + flex: auto; + + .spacer { display: none } + + a.button.logo-button { + color: $light-text-color; + background: $secondary-text-color; + + svg path { + /* Only for Itabashi-don */ + &:not(#Mastodon):not(#Itabashi) { fill: $base-lighter1-color !important } + &#Mastodon { fill: $secondary-text-color !important } + } + } + } + } + + .details-counters { + .counter { + color: $light-text-color; + border-right: 0; + + &::after { border-bottom-color: $base-color } + + &.active { + &::after { border-bottom-color: $active-color } + } + } + } + } + + &__extra { + .public-account-bio { + .account__header__content { text-align: center } + } + + &__links { + color: $primary-text-color; + + a { + &, strong { color: $primary-text-color } + } + } + } + } + + .public-account-bio, + .endorsements-widget, + .hero-widget { @include status-shadow; } + + .public-account-bio { + background: $base-lighter1-color; + + .account__header__content { color: $primary-text-color } + &__extra { color: $primary-lighter1-text-color } + } + + .endorsements-widget { + padding-bottom: 0; + border-radius: 4px; + + h4 { + color: $primary-lighter1-text-color; + background: $base-lighter1-color; + } + } + + .hero-widget { + &__img { background: $base-color } + &__text { + background: $base-lighter1-color; + + &, em { color: $primary-lighter2-text-color } + a { color: $secondary-text-color } + } + } + + .account__section-headline { + background: $base-lighter1-color; + border-bottom-color: $base-separation-color; + + a { + color: $primary-lighter1-text-color; + + &.active { + color: $primary-lighter2-text-color; + + &::before { border-color: transparent transparent $base-separation-color } + &::after { border-color: transparent transparent $status-color } + } + } + } + + .activity-stream { + box-shadow: none; + + .entry { + margin: 1em 0; + background: transparent; + + &:first-of-type { margin: 0 } + } + } + + .nothing-here { + @include status-shadow; + + color: $primary-lighter1-text-color; + background: $base-lighter1-color; + } + + .footer { + h4 { color: $primary-lighter1-text-color } + + ul { + a { color: $primary-lighter2-text-color } + } + + .brand { + svg path { + /* Only for Itabashi-don */ + &:not(#Mastodon):not(#Itabashi) { fill: $secondary-text-color !important } + &#Mastodon { fill: $base-lighter1-color !important } + } + } + } +} \ No newline at end of file diff --git a/app/javascript/styles/dark-gplus-theme-for-mastodon-dev/searches.scss b/app/javascript/styles/dark-gplus-theme-for-mastodon-dev/searches.scss new file mode 100644 index 000000000..b4478b91b --- /dev/null +++ b/app/javascript/styles/dark-gplus-theme-for-mastodon-dev/searches.scss @@ -0,0 +1,41 @@ +@charset "UTF-8"; + +@import 'variables'; +@import 'mixins'; + + + +.search { + .search { + &__input { + @include material-border; + + color: $primary-text-color; + background: $form-color; + + &:focus { background: $form-focused-color } + } + + &__icon { + .fa { color: $icon-color } + } + } + + &-results { + > .search-results { + &__header { background: $base-color } + &__section { + > h5 { background: darken($base-color, 10%) } + } + } + } +} + +.trends__item { + background: $trend-color; + + .trends__item { + &__name a { color: $secondary-text-color } + &__current { color: lighten($secondary-text-color, 10%) } + } +} \ No newline at end of file diff --git a/app/javascript/styles/dark-gplus-theme-for-mastodon-dev/settings-account.scss b/app/javascript/styles/dark-gplus-theme-for-mastodon-dev/settings-account.scss new file mode 100644 index 000000000..02fb9eac4 --- /dev/null +++ b/app/javascript/styles/dark-gplus-theme-for-mastodon-dev/settings-account.scss @@ -0,0 +1,54 @@ +@charset "UTF-8"; + +@import 'variables'; + + + +.edit_account { + @media screen and (min-width: 415px) { + .card { + > a { + position: relative; + + .card__img { + border-bottom: 1px solid $base-separation-color; + + > img:not([src]), + > img[src="/headers/original/missing.png"] { + content: url("https://raw.githubusercontent.com/GenbuProject/GPlusTheme-for-Mastodon/asset/account-default_header.jpg"); + } + } + + .card__bar { + position: static; + padding-top: 30%; + + .avatar { + position: absolute; + left: 0; + bottom: 0; + + display: flex; + justify-content: center; + align-items: center; + width: 100%; + height: 100%; + + img { + width: 128px; + height: 128px; + + border-radius: 50%; + } + } + + .display-name { + flex: auto; + margin-left: 0; + text-align: center; + } + } + } + } + } +} \ No newline at end of file diff --git a/app/javascript/styles/dark-gplus-theme-for-mastodon-dev/settings-dashboard.scss b/app/javascript/styles/dark-gplus-theme-for-mastodon-dev/settings-dashboard.scss new file mode 100644 index 000000000..b4303249b --- /dev/null +++ b/app/javascript/styles/dark-gplus-theme-for-mastodon-dev/settings-dashboard.scss @@ -0,0 +1,30 @@ +@charset "UTF-8"; + +@import 'variables'; + + + +.dashboard { + &__counters { + & > div { + & > div, & > a { background: $dashboard-counters-base-color } + + & > a { + &:hover, + &:focus, + &:active { + background: $dashboard-counters-hover-color; + } + } + } + + &__text, + &__num { color: $primary-text-color } + + &__label { color: $primary-lighter1-text-color } + } + + &__widgets { + a:not(.name-tag) { color: $primary-lighter2-text-color } + } +} \ No newline at end of file diff --git a/app/javascript/styles/dark-gplus-theme-for-mastodon-dev/settings-directory_tag.scss b/app/javascript/styles/dark-gplus-theme-for-mastodon-dev/settings-directory_tag.scss new file mode 100644 index 000000000..9f75646ac --- /dev/null +++ b/app/javascript/styles/dark-gplus-theme-for-mastodon-dev/settings-directory_tag.scss @@ -0,0 +1,21 @@ +@charset "UTF-8"; + +@import 'variables'; + + + +.admin-wrapper { + .content { + .directory__tag { + & > a, + & > div { background: $setting-base-color } + + h4 { + & { color: $primary-lighter2-text-color } + .fa, small { color: $primary-lighter1-text-color } + } + + .trends__item__current { color: $primary-text-color } + } + } +} \ No newline at end of file diff --git a/app/javascript/styles/dark-gplus-theme-for-mastodon-dev/settings-log.scss b/app/javascript/styles/dark-gplus-theme-for-mastodon-dev/settings-log.scss new file mode 100644 index 000000000..672a77c06 --- /dev/null +++ b/app/javascript/styles/dark-gplus-theme-for-mastodon-dev/settings-log.scss @@ -0,0 +1,30 @@ +@charset "UTF-8"; + +@import 'variables'; + + + +.log-entry { + .log-entry { + &__header { + color: $primary-lighter2-text-color; + background: $log-entry-color; + + .username, + .target, + a { color: $secondary-text-color } + } + + &__timestamp { color: $primary-lighter1-text-color } + &__icon { color: $icon-color } + + &__extras { + color: $primary-text-color; + background: $log-entry-extra-color; + + .diff-neutral { color: $log-entry-extra--neutral-color } + .diff-old { color: $log-entry-extra--old-color } + .diff-new { color: $log-entry-extra--new-color } + } + } +} \ No newline at end of file diff --git a/app/javascript/styles/dark-gplus-theme-for-mastodon-dev/settings-report.scss b/app/javascript/styles/dark-gplus-theme-for-mastodon-dev/settings-report.scss new file mode 100644 index 000000000..2e198f338 --- /dev/null +++ b/app/javascript/styles/dark-gplus-theme-for-mastodon-dev/settings-report.scss @@ -0,0 +1,75 @@ +@charset "UTF-8"; + +@import 'variables'; + + + +.report-card { + background: $setting-content-base-color; + + &__profile__stats { + color: $primary-lighter2-text-color; + + a { + &:focus, + &:hover, + &:active { + color: lighten($primary-lighter2-text-color, 8%); + } + } + } + + &__summary { + &__item { + border-top-color: $base-separation-color; + + &:hover { background: $column-header-hover-color } + + &__reported-by, + &__assigned { + color: $primary-lighter2-text-color; + } + + &__content { + &__icon { color: $icon-color } + a { color: $primary-lighter2-text-color } + } + } + } +} + +.batch-table { + &__toolbar { + background: $base-lighter1-color; + border-color: $base-separation-color; + } + + &__row { + &, &:nth-child(2n) { background: $base-lighter1-color } + &:hover, &:nth-child(2n):hover { background: $column-header-hover-color } + + border-color: $base-separation-color; + + &__content { + .status__content { color: $primary-text-color } + .detailed-status__meta { color: $primary-lighter1-text-color } + + + .accounts-table { // v2.8.0 -> + .accounts-table { + &__count { + & {color: $primary-text-color } + small { color: $primary-lighter1-text-color } + } + } + + td .account { background: inherit } + } + } + } +} + +.speech-bubble { + &__bubble { color: $primary-text-color } + a { color: $secondary-text-color } +} \ No newline at end of file diff --git a/app/javascript/styles/dark-gplus-theme-for-mastodon-dev/settings.scss b/app/javascript/styles/dark-gplus-theme-for-mastodon-dev/settings.scss new file mode 100644 index 000000000..308c7e6a0 --- /dev/null +++ b/app/javascript/styles/dark-gplus-theme-for-mastodon-dev/settings.scss @@ -0,0 +1,244 @@ +@charset "UTF-8"; + +@import 'variables'; +@import 'mixins'; +@import 'settings-account'; +@import 'settings-report'; +@import 'settings-log'; +@import 'settings-dashboard'; +@import 'settings-directory_tag'; + + + +body.admin { + color: $primary-text-color; + background: $setting-base-color; + + .sidebar { + &-wrapper { background: inherit } + + ul { + border-radius: 0; + + a { + color: $primary-lighter2-text-color; + border-radius: 0; + + &:hover { + color: $primary-text-color; + background: $setting-lists-hover-color; + } + + &.selected { + color: $primary-text-color; + background: $setting-lists-selected-color; + } + + i.fa { + @include material-icon-large; + margin-right: 8px; + vertical-align: bottom; + } + } + + ul { background: darken($setting-base-color, 4%) } + + .simple-navigation-active-leaf a { + color: $icon-active-color; + background: initial; + + &:hover { background: $setting-lists-hover-color } + } + } + } + + .content { + @include column-shadow; + background: $setting-content-base-color; + + h2, h3, h4, h6 { color: $primary-text-color } + + p { + color: $primary-text-color; + strong { color: $primary-text-color } + } + + h2, h4, hr { border-bottom-color: $base-separation-color } + .muted-hint { color: $primary-lighter1-text-color } + } +} + +.simple_form { + .input { + &.boolean, + &.with_label, + &.with_floating_label { + .label_input > label { color: $primary-text-color } + } + + &.with_block_label { + & > label { color: $primary-text-color } + } + + &.radio_buttons{ + .radio label { color: $primary-text-color } + } + + &-copy { + background: $base-color; + border-color: $base-separation-color; + } + } + + .check_boxes { + .checkbox { + label { color: $primary-text-color } + } + } + + input[type=text], + input[type=number], + input[type=email], + input[type=password], + textarea { + color: $primary-text-color; + background: $setting-content-base-color; + border-color: $base-separation-color; + + &:hover { + border-color: $base-separation-color; + } + + &:active, + &:focus { + background: darken($setting-content-base-color, 8%); + } + } + + select { + color: $primary-text-color; + background-color: $setting-content-base-color; + border-color: $base-separation-color; + } + + .input.field_with_errors { + label, + .error { + color: $error-text-color; + } + } + + .hint, p.hint { + color: $primary-lighter1-text-color !important; + + code { + color: $light-text-color; + background: $setting-emphasis-color; + } + } + + .recommended { + color: $verified-color; + background-color: transparentize($verified-color, 0.75); + border-color: $verified-color; + } + + .label_input { + &__append { color: $primary-lighter1-text-color } + } + + button { + @include button-shadow; + } +} + +.simple_form, +.table-form { + .warning { background: change-color($color: $error-color, $alpha: 0.8) } +} + +.quick-nav { + a { + color: $secondary-text-color; + + &:hover, + &:focus, + &:active { + color: lighten($secondary-text-color, 8%); + } + } +} + +.pagination { + .page, + a { + color: $primary-text-color; + } + + .page { + &.current { + background: $icon-active-color; + color: $light-text-color; + } + } +} + +.filters { + .filter-subset { + strong { color: $primary-text-color } + + a { + color: $primary-lighter2-text-color; + + &:hover { color: $primary-text-color } + + &.selected { + color: $active-text-color; + border-bottom-color: $active-text-color; + } + } + } +} + +.new_form_two_factor_confirmation { + .qr-wrapper { + .qr-code { box-shadow: none } + .qr-alternative { color: $secondary-lighter1-text-color } + } +} + +label, +select#user_setting_default_privacy { + &[for=user_setting_default_privacy_public], + &[for=user_setting_default_privacy_unlisted], + option[value="public"], + option[value="unlisted"] { color: $active-text-color !important } +} + +.column-header__collapsible__extra { + .column-settings__section { color: $primary-text-color } + + .setting-toggle { + .react-toggle { + &.react-toggle--checked { + > .react-toggle-track { background: $setting-toggle-checked-color } + + > .react-toggle-thumb { + border-color: $setting-toggle-checked-color; + background-color: $setting-toggle-thumb-checked-color; + } + } + + > .react-toggle-track { background: $setting-toggle-color } + + > .react-toggle-thumb { + border-color: $setting-toggle-color; + background-color: $setting-toggle-thumb-color; + } + } + + .setting-toggle__label { color: $primary-text-color } + } + + .setting-meta__label { color: $primary-lighter1-text-color } +} \ No newline at end of file diff --git a/app/javascript/styles/dark-gplus-theme-for-mastodon-dev/statuses.scss b/app/javascript/styles/dark-gplus-theme-for-mastodon-dev/statuses.scss new file mode 100644 index 000000000..6746032b4 --- /dev/null +++ b/app/javascript/styles/dark-gplus-theme-for-mastodon-dev/statuses.scss @@ -0,0 +1,121 @@ +@charset "UTF-8"; + +@import 'variables'; +@import 'mixins'; + + + +.status { + @include status-shadow; + @include material-card-radius; + border-bottom: 0; + + transition: box-shadow 0.1s 0s ease-out; + + &.light { + .status { + &__relative-time { color: $primary-lighter1-text-color } + &__display-name { + color: $primary-text-color; + + .display-name__account { color: $primary-lighter1-text-color } + } + + &__content { color: $primary-text-color } + } + } + + &.status-direct { + background: $status-direct-color; + + &:not(.read) { + background: inherit; + border-bottom-color: initial; + } + } + + &.muted { + .status__content { + p { color: lighten($primary-text-color, 20%) } + } + } + + .status { + &__info { + .status__display-name { + color: $primary-lighter1-text-color; + + strong { color: $primary-text-color } + } + + .status__relative-time { color: $primary-lighter1-text-color } + } + } + + &__action-bar__counter__label { color: $primary-lighter1-text-color } +} + +.detailed-status { + &__display-name { + color: $secondary-text-color; + + strong { color: $primary-text-color } + } + + &__meta { + .detailed-status__datetime { color: $primary-lighter1-text-color } + + .detailed-status__link { + .fa.fa-star { vertical-align: middle } + } + } + + &__wrapper { + @include status-shadow; + + .detailed-status { @extend .detailed-status; } + .detailed-status__action-bar { + background: $status-actionbar-color; + border-color: $base-separation-color; + } + } +} + +.status, +.detailed-status { + background: $status-color; + + .status__content { + color: $primary-text-color; + + a { color: $secondary-text-color } + + .status__content__spoiler-link { + color: $primary-text-color; + background: $base-color; + } + } +} + +a.status-card, +a.status-card.compact { + &:hover { background: initial } +} + +.status-card, +.status-card.compact { + border-color: $non-elevated-card-boader; + + &__title { + color : $primary-text-color; + } + + &__host { + color: $primary-lighter1-text-color; + } +} + +.name-tag, +a.name-tag { + color: $secondary-text-color; +} \ No newline at end of file diff --git a/app/javascript/styles/dark-gplus-theme-for-mastodon-dev/tables.scss b/app/javascript/styles/dark-gplus-theme-for-mastodon-dev/tables.scss new file mode 100644 index 000000000..e71ce7a38 --- /dev/null +++ b/app/javascript/styles/dark-gplus-theme-for-mastodon-dev/tables.scss @@ -0,0 +1,29 @@ +@charset "UTF-8"; + +@import 'variables'; + + + +.table { + thead th { border-bottom-color: $base-separation-color } + + th, + td { + color: $primary-text-color; + background-color: $base-color; + border-top: 0; + } + + & > tbody > tr:nth-child(odd) { + & > td, & > th { background: darken($base-color, 4%) } + } + + a { color: $secondary-text-color } +} + +a.table-action-link, +button.table-action-link { + color: $secondary-text-color; + + &:hover { color: darken($secondary-text-color, 8%) } +} \ No newline at end of file diff --git a/app/javascript/styles/gplus-theme-for-mastodon-dev.scss b/app/javascript/styles/gplus-theme-for-mastodon-dev.scss new file mode 100644 index 000000000..1c8df2bab --- /dev/null +++ b/app/javascript/styles/gplus-theme-for-mastodon-dev.scss @@ -0,0 +1,24 @@ +/** + * Google+ Theme for Mastodon v1.1 + * Copyright (C) 2018-2019 Genbu Project + */ + + @charset "UTF-8"; + + // @import 'application'; + @import 'application'; + @import 'gplus-theme-for-mastodon-dev/basics'; + @import 'gplus-theme-for-mastodon-dev/components'; + @import 'gplus-theme-for-mastodon-dev/emoji-picker'; + @import 'gplus-theme-for-mastodon-dev/tables'; + @import 'gplus-theme-for-mastodon-dev/columns'; + @import 'gplus-theme-for-mastodon-dev/lists'; + @import 'gplus-theme-for-mastodon-dev/accounts'; + @import 'gplus-theme-for-mastodon-dev/statuses'; + @import 'gplus-theme-for-mastodon-dev/notifications'; + @import 'gplus-theme-for-mastodon-dev/searches'; + @import 'gplus-theme-for-mastodon-dev/settings'; + @import 'gplus-theme-for-mastodon-dev/icons'; + @import 'gplus-theme-for-mastodon-dev/profile'; + @import 'gplus-theme-for-mastodon-dev/about'; + @import 'gplus-theme-for-mastodon-dev/explore'; \ No newline at end of file diff --git a/app/javascript/styles/gplus-theme-for-mastodon-dev/_functions.scss b/app/javascript/styles/gplus-theme-for-mastodon-dev/_functions.scss new file mode 100644 index 000000000..e5aea0e4e --- /dev/null +++ b/app/javascript/styles/gplus-theme-for-mastodon-dev/_functions.scss @@ -0,0 +1,15 @@ +@charset "UTF-8"; + + + +@function adjust-lightness ($color, $lightness) { + @if (lightness($color) - $lightness <= 0 and lightness($color) + $lightness < 100) { + @return lighten($color, $lightness); + } + + @if (0 < lightness($color) - $lightness and 100 <= lightness($color) + $lightness) { + @return darken($color, $lightness); + } + + @return change-color($color, $lightness: $lightness); +} \ No newline at end of file diff --git a/app/javascript/styles/gplus-theme-for-mastodon-dev/_mixins.scss b/app/javascript/styles/gplus-theme-for-mastodon-dev/_mixins.scss new file mode 100644 index 000000000..400a1ac90 --- /dev/null +++ b/app/javascript/styles/gplus-theme-for-mastodon-dev/_mixins.scss @@ -0,0 +1,13 @@ +@charset "UTF-8"; + +@import 'variables'; + + + +@mixin column-shadow { box-shadow: 0 1px 8px 0 $column-header-shadow-color } +@mixin status-shadow { box-shadow: 0 1px 4px 0 $status-shadow-color } +@mixin status-focus-shadow { box-shadow: 0 0 20px 0 $status-focused-shadow-color } +@mixin button-shadow { box-shadow: 0 2px 5px 0 $button-shadow-color } +@mixin material-border { border-radius: 4px } +@mixin material-card-radius { border-radius: 2px } +@mixin material-icon-large { font-size: 20px } \ No newline at end of file diff --git a/app/javascript/styles/gplus-theme-for-mastodon-dev/_variables.scss b/app/javascript/styles/gplus-theme-for-mastodon-dev/_variables.scss new file mode 100644 index 000000000..77a68f3b8 --- /dev/null +++ b/app/javascript/styles/gplus-theme-for-mastodon-dev/_variables.scss @@ -0,0 +1,98 @@ +@charset "UTF-8"; + + + +// Base colors +$active-color: #db4437; +$accent-color: #fbbc04; +$valid-color: #4285f4; +$error-color: #d50000; +$checked-color: #4285f4; +$verified-color: #4caf50; + + +// Text colors +$primary-text-color: rgba(0, 0, 0, 0.87); +$primary-lighter1-text-color: change-color($color: $primary-text-color, $lightness: 62%, $alpha: 1.0); // ex: 時間表示 +$primary-lighter2-text-color: change-color($color: $primary-text-color, $lightness: 38%, $alpha: 1.0); // ex: 通知メッセージ表示 +$secondary-text-color: #2962ff; // ex: リンク +$secondary-lighter1-text-color: #00bfff; // ex: アカウントTLのユーザーID +$light-text-color: #ffffff; +$light-darker1-text-color: darken($light-text-color, 15%); +$active-text-color: $active-color; +$error-text-color: $error-color; + + +// Icon colors +$icon-color: #757575; +$icon-active-color: $active-color; + + +// Background colors +$base-color: #f1f1f1; +$base-lighter1-color: #ffffff; +$base-darker1-color: rgba(0, 0, 0, 0.4); + +$column-header-color: $base-lighter1-color; +$column-header-hover-color: darken($column-header-color, 10%); + +$status-color: $base-lighter1-color; +$status-direct-color: darken($status-color, 5%); +$status-actionbar-color: darken($status-color, 2%); + +$account-color: $base-lighter1-color; +$account-foreground-color: $base-darker1-color; + +$card-color: $base-lighter1-color; +$card-hover-color: $column-header-hover-color; +$card-image-color: $base-color; + +$form-color: rgba(0, 0, 0, 0.1); +$form-focused-color: lighten($form-color, 20%); +$trend-color: $base-lighter1-color; + +$setting-base-color: $base-color; +$setting-lists-selected-color: darken($base-color, 2%); +$setting-lists-hover-color: darken($base-color, 5%); +$setting-content-base-color: $base-lighter1-color; + +$setting-toggle-color: #b9b9b9; +$setting-toggle-checked-color: change-color($color: $checked-color, $alpha: 0.5); +$setting-toggle-thumb-color: #fafafa; +$setting-toggle-thumb-checked-color: $checked-color; + +$setting-emphasis-color: $verified-color; + +$dashboard-counters-base-color: $base-color; +$dashboard-counters-hover-color: lighten($base-color, 2%); + +$log-entry-color: $base-lighter1-color; +$log-entry-extra-color: $base-color; +$log-entry-extra--neutral-color: $valid-color; +$log-entry-extra--old-color: $active-color; +$log-entry-extra--new-color: $verified-color; + +$explore-header-color: lighten($accent-color, 16%); +$explore-directory-color: $base-lighter1-color; + +$active-button-color: $valid-color; //文字入りボタン +$non-active-button-color: lighten($base-color, 20%); + +$floating-acton-button-hover-color: lighten($active-color, 10%); + + +// Shadow colors +$column-header-shadow-color: rgba(0, 0, 0, 0.3); +$status-shadow-color: rgba(0, 0, 0, 0.14); +$status-focused-shadow-color: change-color($color: $status-shadow-color, $alpha: 0.3); +$icon-hovered-shadow-color: rgba(0, 0, 0, 0.26); +$account-header-image-shadow-color: linear-gradient(rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.46)); +$button-shadow-color: rgba(0, 0, 0, 0.4); + + +// Separation colors +$base-separation-color: rgba(0, 0, 0, 0.14); + + +//Border colors +$non-elevated-card-boader : #e0e0e0; \ No newline at end of file diff --git a/app/javascript/styles/gplus-theme-for-mastodon-dev/about.scss b/app/javascript/styles/gplus-theme-for-mastodon-dev/about.scss new file mode 100644 index 000000000..de48883a8 --- /dev/null +++ b/app/javascript/styles/gplus-theme-for-mastodon-dev/about.scss @@ -0,0 +1,138 @@ +@charset "UTF-8"; + +@import 'variables'; +@import 'mixins'; + + + +// from mastodon/about.scss +$column-breakpoint: 700px; + + + +.landing-page { + h3, h4, h5, h6 { color: $primary-lighter2-text-color } + p { color: $primary-lighter1-text-color } + em { color: $primary-text-color } + + .column-0 { background: $base-darker1-color } + .column-2 { + .landing-page { + &__information { padding: 0 } + + &__short-description { + & > .row:first-child { + background: $base-darker1-color; + padding: 10px 20px; + } + + & > * { + padding-left: 40px; padding-right: 40px; + &:last-child { padding-bottom: 45px } + + @media screen and (max-width: $column-breakpoint) { + padding-left: 20px; padding-right: 20px; + &:last-child { padding-bottom: 25px } + } + } + } + } + } + + &__forms, + &__information, + &__call-to-action { + @include status-shadow; + background: $column-header-color; + } + + &__forms { + padding: 0; + + & > *:first-child { margin: inherit } + & > * { margin-left: 20px; margin-right: 20px; } + + .brand { background: $base-darker1-color } + + form { + & > .input input { + background: $form-color; + + &:focus { background: $form-focused-color } + } + } + + .separator-or { + margin-left: 20px; margin-right: 20px; + + span { + color: $primary-lighter1-text-color; + background: $column-header-color; + } + } + + @media screen and (max-width: $column-breakpoint) { + background: inherit; + box-shadow: none; + + .separator-or span { background: $base-color } + } + } + + &__information { + color: $primary-lighter1-text-color; + + &.contact-widget { + @include status-shadow; + background: $column-header-color; + + .contact-widget { + &__mail { + a { color: $primary-text-color } + } + } + } + + strong { color: inherit } + + .row:first-child { + h1 small { + color: $light-darker1-text-color; + + span { color: $light-text-color } + } + } + } + + &__call-to-action { + .row__information-board { + .information-board__section { + color: $primary-lighter2-text-color; + + & > span:last-child { color: $primary-lighter1-text-color } + } + } + } + + &__features { + .features-list { + .features-list__row { + .text { color: $primary-lighter1-text-color } + .visual .fa { color: $icon-color } + } + } + } + + &__footer { color: $primary-lighter1-text-color } + + #mastodon-timeline { + color: $primary-text-color; + background: transparent; + + p { + color: $primary-text-color; + + a { color: $secondary-text-color } + } + } +} \ No newline at end of file diff --git a/app/javascript/styles/gplus-theme-for-mastodon-dev/accounts.scss b/app/javascript/styles/gplus-theme-for-mastodon-dev/accounts.scss new file mode 100644 index 000000000..984a8c9ae --- /dev/null +++ b/app/javascript/styles/gplus-theme-for-mastodon-dev/accounts.scss @@ -0,0 +1,191 @@ +@charset "UTF-8"; + +@import 'variables'; +@import 'mixins'; + + + +.account { + background: $account-color; + border-color: $base-separation-color; + + .account { + &__display-name { + color: $secondary-text-color; + strong { color: $primary-text-color } + } + } + + &-role { + color: $primary-lighter2-text-color; + background-color: rgba($base-separation-color, 0.1); + border-color: rgba($base-separation-color, 0.5); + } +} + +.column { + > .column-back-button { + @include column-shadow; + background: $column-header-color; + } +} + +.account-timeline__header { + .account__header { + background-color: $account-foreground-color; + + > div { background-color: inherit } // -> v2.7.4 + + .account__header { + &__username { color: $secondary-lighter1-text-color } + &__fields { @extend .account__header__fields; } + + &__image { // v2.8.0 -> + &::after { + content: ""; + + position: absolute; + top: auto; + left: 0; + bottom: 0; + + width: 100%; + height: 30%; + background: $account-header-image-shadow-color; + box-shadow: none; + } + + > img:not([src]), + > img[src$="/headers/original/missing.png"] { + content: url("https://raw.githubusercontent.com/GenbuProject/GPlusTheme-for-Mastodon/asset/account-default_header.jpg"); + } + } + + &__bar { // v2.8.0 -> + background-color: $base-lighter1-color; + + .account__header { + &__tabs { + .avatar { + .account__avatar { + border-color: $base-lighter1-color; + border-radius: 50%; + } + } + + &__buttons { + .icon-button { border: 0 } + } + + &__name { + h1 { color: $primary-text-color } + small { color: $secondary-text-color } + } + } + + &__bio { + .account__header { + &__content { color: $primary-text-color } + &__fields { border-color: $base-separation-color } + } + } + + &__extra { + &__links { + &, a { color: $primary-lighter1-text-color } + strong { color: $primary-lighter2-text-color } + } + } + } + } + } + + .account--action-button { + .icon-button:not(.active) { + color: darken($light-text-color, 7%); + + &:active, + &:focus, + &:hover { + color: $light-text-color; + } + } + } + } + + .account { + &__disclaimer, + &__action-bar, + &__section-headline { + background: $base-lighter1-color; + border-color: $base-separation-color; + } + + &__action-bar { + &__tab { + border-color: $base-separation-color; + &.active { border-bottom-color: $active-color } + + > span { color: $primary-lighter1-text-color } + } + } + + &__section-headline { + a { + color: $primary-text-color; + + &.active { + color: $active-color; + + &::before { border-color: transparent transparent $base-separation-color } + &::after { border-color: transparent transparent $status-color } + } + } + } + } +} + +.account-authorize__wrapper { + @include status-shadow; + background: $base-lighter1-color; + + &:focus { @include status-focus-shadow; } + + .account { + &__header__content { + color: $primary-lighter2-text-color; + } + + &--panel { + background: $account-color; + border-color: $base-separation-color; + } + } +} + +.account__header__fields { + dl { + border-color: $base-separation-color; + + dt, + dd { + color: $primary-text-color; + background: $base-lighter1-color; + } + + dd { + &.verified { + border-color: transparentize($valid-color, 0.5); + background: transparentize($valid-color, 0.75); + + a { color: lighten($verified-color, 20%) } + } + } + } + + a { color: $secondary-text-color } +} + +.account__action-bar__tab { + strong { color: $primary-text-color } +} \ No newline at end of file diff --git a/app/javascript/styles/gplus-theme-for-mastodon-dev/basics.scss b/app/javascript/styles/gplus-theme-for-mastodon-dev/basics.scss new file mode 100644 index 000000000..a141ecd13 --- /dev/null +++ b/app/javascript/styles/gplus-theme-for-mastodon-dev/basics.scss @@ -0,0 +1,47 @@ +@charset "UTF-8"; + +@import 'variables'; +@import 'mixins'; + + + +body { + &, + .ui { + color: $primary-text-color; + background: $base-color; + } +} + +.focusable { + &:focus { + background: inherit; + + .status { + @include status-focus-shadow; + + &.status-direct { background: $status-direct-color } + } + + .detailed-status { + & { background: $status-color } + &__action-bar { background: $status-actionbar-color } + } + } +} + +::-webkit-scrollbar-thumb { + background: darken($base-lighter1-color, 12%); + + &:hover { background: darken($base-lighter1-color, 16%) } + &:active { background: darken($base-lighter1-color, 12%) } +} + +::-webkit-scrollbar-track { + background: $base-color; + + &:hover, + &:active { + background: darken($base-lighter1-color, 8%); + } +} \ No newline at end of file diff --git a/app/javascript/styles/gplus-theme-for-mastodon-dev/columns.scss b/app/javascript/styles/gplus-theme-for-mastodon-dev/columns.scss new file mode 100644 index 000000000..6a0239562 --- /dev/null +++ b/app/javascript/styles/gplus-theme-for-mastodon-dev/columns.scss @@ -0,0 +1,263 @@ +@charset "UTF-8"; + +@import 'variables'; +@import 'mixins'; + + + +.tabs-bar { + @include column-shadow; + margin: 0; + background: $column-header-color; + + .tabs-bar { + &__link { + color: $icon-color; + border-bottom: 4px solid $column-header-color; + padding: 15px 10px 11px 10px; + + &.active { + border-bottom: 4px solid $active-color; + } + + .fa { + @include material-icon-large; + vertical-align: top; + } + } + } +} + +.drawer { + .drawer { + &__header { + @include column-shadow; + background: $column-header-color; + + .drawer__tab { + @include material-icon-large; + color: $icon-color; + } + + a { + &:hover { background: $column-header-hover-color } + } + } + + &__pager { + @include status-shadow; + @include material-card-radius; + + .drawer__inner { + background: $column-header-color; + + &__mastodon { display: none } + } + } + } +} + +.navigation-bar { + color: $secondary-text-color; + background: $column-header-color; + + .navigation-bar { + &__profile { + strong { color: $primary-text-color } + &-edit { color: $secondary-text-color } + } + } +} + + +.compose-form { + .compose-form { + &__buttons-wrapper { + background: $column-header-color; + + &.character-counter__wrapper { + .character-counter { color: $primary-lighter1-text-color } + } + } + + &__publish { border-top: 1px solid $base-separation-color } + &__publish-button-wrapper { @include button-shadow } + &__modifiers { background-color: $base-lighter1-color } + } + + .autosuggest-textarea__textarea { + background-color: $base-lighter1-color; + color: $primary-text-color; + } + + .character-counter { + color: $icon-color + } +} + +.column { + .column-header { + @include column-shadow; + background: $column-header-color; + + &.active { + .column-header__icon { + color: $icon-active-color; + text-shadow: 0 0 10px change-color($color: $icon-active-color, $alpha: 0.4); + } + } + + * { background: inherit } + + &__icon { + @include material-icon-large; + color: $icon-color; + vertical-align: bottom; + margin-right: 10px; + } + + &__buttons { + height: 50px; + + .column-header { + &__back-button { + .column-back-button__icon { vertical-align: unset } + } + + &__button { + &.active { + color: $icon-active-color; + background: inherit; + } + + .fa { vertical-align: unset } + } + } + } + + &__button { + color: $icon-color; + padding: 0 16px; + } + + &__collapsible { + color: $secondary-text-color; + border-bottom: 1px solid $base-separation-color; + + &-inner { background: $column-header-color } + } + } + + .column-back-button { + &__icon { + @include material-icon-large; + vertical-align: bottom; + margin-right: 8px; + } + } + + .column { + &-subheading, + &-link__badge { background: darken($base-color, 10%) } + + &-link { + color: $primary-text-color; + background: $base-color; + + &__icon { + @include material-icon-large; + color: $icon-color; + vertical-align: bottom; + margin-right: 8px; + } + } + } + + .scrollable { + background: transparent; + + *[role="feed"] { + article { + margin: 1em 0; + &:first-of-type { margin: 0 } + + &:focus { outline: none } + } + } + + div[tabindex="-1"] { margin-bottom: 1em } + } + + .notification__filter-bar { + background: $column-header-color; + border-bottom-color: $base-separation-color; + + button { + color: $icon-color; + background: $column-header-color; + + &.active { + color: $icon-active-color; + + &::before { border-color: transparent transparent $base-separation-color } + &::after { border-color: transparent transparent $column-header-color } + } + } + } + + .empty-column-indicator { + flex-direction: column; + background: $base-color; + + &::before { + content: ""; + display: block; + + width: 100px; + height: 100px; + margin-bottom: 1em; + + background: none center / contain no-repeat; + background-image: url("https://raw.githubusercontent.com/GenbuProject/GPlusTheme-for-Mastodon/asset/notification-jingle_2x.gif"); + } + } +} + +.getting-started { + &__wrapper, + & { + background: $base-color; + } + + & { + border-top: 1px solid $base-separation-color; + + a { color: $primary-text-color } + } +} + +.load { + &-more, + &-gap { + background: transparent; + + &:hover { background: darken($column-header-color, 10%) } + } + + &-gap { border: 0 } +} + +.confirmation-modal { + @include material-card-radius; + color: $primary-text-color; + background-color: $base-lighter1-color; + + &__action-bar { + background-color: $base-lighter1-color; + } + + &__cancel-button { + color: $primary-lighter1-text-color; + box-shadow: 0 2px 5px 0 transparent; + } +} \ No newline at end of file diff --git a/app/javascript/styles/gplus-theme-for-mastodon-dev/components-button.scss b/app/javascript/styles/gplus-theme-for-mastodon-dev/components-button.scss new file mode 100644 index 000000000..42d4f8db8 --- /dev/null +++ b/app/javascript/styles/gplus-theme-for-mastodon-dev/components-button.scss @@ -0,0 +1,39 @@ +@charset "UTF-8"; + +@import 'variables'; +@import 'mixins'; + + + +.floating-action-button { + font-size: 24px; + background-color: $active-color; + width: 3.6rem; + height: 3.6rem; + + &:active { + background-color: $active-color; + } + + &:hover { + background-color: $floating-acton-button-hover-color; + } +} + +.button { + @include button-shadow; + @include material-card-radius; + background-color: $active-button-color; + + .text-icon-button { color: $primary-lighter1-text-color } +} + +.modal-root { + &__modal { + .media-modal { + &__close.icon-button { + font-size: 40px !important; + } + } + } +} \ No newline at end of file diff --git a/app/javascript/styles/gplus-theme-for-mastodon-dev/components-card.scss b/app/javascript/styles/gplus-theme-for-mastodon-dev/components-card.scss new file mode 100644 index 000000000..dc72775a1 --- /dev/null +++ b/app/javascript/styles/gplus-theme-for-mastodon-dev/components-card.scss @@ -0,0 +1,38 @@ +@charset "UTF-8"; + +@import 'variables'; + + + +.card { + //border: 1px solid $base-separation-color; + //不要(?) + + > a { + @include status-shadow; + + &:hover, + &:focus, + &:active { + .card__bar { + background: initial; + + .display-name strong { color: $secondary-text-color } + } + } + + .card__img { background: $card-image-color } + .card__bar { + background: $card-color; + + .avatar { + img { background: transparent } + } + + .display-name { + strong { color: $primary-text-color } + span { color: $primary-lighter2-text-color } + } + } + } +} \ No newline at end of file diff --git a/app/javascript/styles/gplus-theme-for-mastodon-dev/components-dropdown.scss b/app/javascript/styles/gplus-theme-for-mastodon-dev/components-dropdown.scss new file mode 100644 index 000000000..a9c6dc5ef --- /dev/null +++ b/app/javascript/styles/gplus-theme-for-mastodon-dev/components-dropdown.scss @@ -0,0 +1,69 @@ +@charset "UTF-8"; + +@import 'variables'; +@import 'mixins'; + + +.dropdown-menu { + background-color: $column-header-color; +} + +.dropdown-menu, +.actions-modal { + @include material-card-radius; + + & > ul { + background: $base-lighter1-color; + + .dropdown-menu { + &__arrow { + &.top { border-top-color: $column-header-color } + &.bottom { border-bottom-color: $column-header-color } + } + + &__item { + a { + color: $primary-lighter2-text-color; + + padding: 16px 16px; + background: $column-header-color; + + &:active, + &:focus, + &:hover { + color: $primary-text-color; + background: $column-header-hover-color; + } + } + } + + &__separator { border-bottom-color: $base-separation-color } + } + + & > li:not(:empty) { + @extend .dropdown-menu__item; + + a { + padding: 12px 16px; + color: $primary-text-color; + + &:hover { + color: $primary-text-color; + background-color: $column-header-hover-color; + } + } + } + } + + .status { + background-color: $base-lighter1-color; + padding-top: 16px; + padding-bottom: 16px; + padding-right: 16px; + padding-left: 74px; + + &__avatar { + top: 16px; + } + } +} \ No newline at end of file diff --git a/app/javascript/styles/gplus-theme-for-mastodon-dev/components-status-card.scss b/app/javascript/styles/gplus-theme-for-mastodon-dev/components-status-card.scss new file mode 100644 index 000000000..9b64572f9 --- /dev/null +++ b/app/javascript/styles/gplus-theme-for-mastodon-dev/components-status-card.scss @@ -0,0 +1,12 @@ +@charset "UTF-8"; + +@import 'variables'; + + + +.status-card { + color: $primary-lighter1-text-color; + &__title, &__description { color: $primary-lighter2-text-color } + + &__image { background: transparent } +} \ No newline at end of file diff --git a/app/javascript/styles/gplus-theme-for-mastodon-dev/components.scss b/app/javascript/styles/gplus-theme-for-mastodon-dev/components.scss new file mode 100644 index 000000000..e735b108d --- /dev/null +++ b/app/javascript/styles/gplus-theme-for-mastodon-dev/components.scss @@ -0,0 +1,6 @@ +@charset "UTF-8"; + +@import 'components-button'; +@import 'components-card'; +@import 'components-dropdown'; +@import 'components-status-card'; \ No newline at end of file diff --git a/app/javascript/styles/gplus-theme-for-mastodon-dev/emoji-picker.scss b/app/javascript/styles/gplus-theme-for-mastodon-dev/emoji-picker.scss new file mode 100644 index 000000000..0937158bf --- /dev/null +++ b/app/javascript/styles/gplus-theme-for-mastodon-dev/emoji-picker.scss @@ -0,0 +1,68 @@ +@charset "UTF-8"; + +@import 'variables'; +@import 'mixins'; + + + +.emoji-mart { + &-bar { + border: 0 solid $base-separation-color; + + &:first-child { + border-top-left-radius: 2px; + border-top-right-radius: 2px; + background-color: $base-color; + } + } + + &-anchors { + color: $icon-color; + } + &-anchor { + &-selected { + color: $icon-active-color; + + &:hover { + color: $icon-active-color; + } + } + + &-bar { + background-color: $icon-active-color; + } + } + + &-search { + background-color: $base-lighter1-color; + } + &-search input { + color: $primary-text-color; + background-color: $form-color; + border: 0px solid #ffffff00; + } + + &-category-label span { + color: $primary-text-color; + background-color: $base-lighter1-color; + } + + &-scroll { + background-color: $base-lighter1-color; + } +} + +.emoji-picker-dropdown { + &__modifiers { + &__menu { + @include status-shadow; + @include material-card-radius; + background-color: $base-lighter1-color; + } + } + + &__menu { + @include column-shadow; + background-color: $base-lighter1-color; + } +} \ No newline at end of file diff --git a/app/javascript/styles/gplus-theme-for-mastodon-dev/explore.scss b/app/javascript/styles/gplus-theme-for-mastodon-dev/explore.scss new file mode 100644 index 000000000..ae80b3884 --- /dev/null +++ b/app/javascript/styles/gplus-theme-for-mastodon-dev/explore.scss @@ -0,0 +1,47 @@ +@charset "UTF-8"; + +@import 'variables'; +@import 'mixins'; + + + +.public-layout { + .page-header { + background: $explore-header-color; + + h1 { color: $primary-text-color } + p { color: $primary-lighter2-text-color } + } + + .directory, + .notice-widget { @include column-shadow; } + + .directory { + background: $explore-directory-color; + + .accounts-table { + &__count { + color: $primary-lighter2-text-color; + small { color: $primary-lighter1-text-color } + } + } + + &__tag { + & > a { + @include status-shadow; + background: $explore-directory-color; + } + + h4 { color: $primary-lighter2-text-color } + .fa, small { color: $primary-lighter1-text-color } + .trends__item__current { color: $primary-text-color } + } + } + + .notice-widget { + color: $primary-lighter1-text-color; + background: $explore-directory-color; + + a { color: $secondary-text-color } + } +} \ No newline at end of file diff --git a/app/javascript/styles/gplus-theme-for-mastodon-dev/icons.scss b/app/javascript/styles/gplus-theme-for-mastodon-dev/icons.scss new file mode 100644 index 000000000..825d18dac --- /dev/null +++ b/app/javascript/styles/gplus-theme-for-mastodon-dev/icons.scss @@ -0,0 +1,179 @@ +@charset "UTF-8"; + +@import 'variables'; + + + +@function hex-color($color) { + @if type-of($color) == 'color' { + $color: str-slice(ie-hex-str($color), 4); + } + + @return '%23' + unquote($color) +}; + + + +@font-face { + font-family: "Material Icons Extended"; + src: + local("Material Icons Extended"), + url("https://fonts.gstatic.com/s/materialiconsextended/v50/kJEjBvgX7BgnkSrUwT8UnLVc38YydejYY-oE_LvJ.woff2"), + url("https://raw.githubusercontent.com/GenbuProject/GPlusTheme-for-Mastodon/asset/font-Material_Icons_Extended-v50.woff2"); +} + +.icon-button { + color: $icon-color; + + &:active, + &:focus, + &:hover { + color: lighten($icon-color, 7%); + } + + &.star-icon { + &.active { + color: $light-text-color; + background: $icon-active-color; + border-radius: 50%; + } + + .fa.fa-star { vertical-align: top } + } + + &.inverted { + color: $icon-color; + } + + &.disabled { + color: lighten($icon-color, 13%); + + .fa.fa-retweet { + background-image: url("data:image/svg+xml;utf8,"); + } + } + + .fa { + @include material-icon-large; + vertical-align: middle; + + &.fa-retweet { + background-image: url("data:image/svg+xml;utf8,"); + + &:active, + &:hover, + &:focus { + background-image: url("data:image/svg+xml;utf8,"); + } + } + } +} + +.fa { + &.fa-users, + &.fa-globe, + &.fa-cog, + &.fa-cogs, + &.fa-gears, + &.fa-sign-out, + &.fa-star, + &.fa-reply, + &.fa-reply-all, + &.fa-mail-reply, + &.fa-mail-reply-all, + &.fa-envelope, + &.fa-bookmark, + &.fa-home, + &.fa-bell, + &.fa-eraser, + &.fa-ellipsis-h, + &.fa-ellipsis-v, + &.fa-address-book, + &.fa-thumb-tack, + &.fa-lock, + &.fa-pencil, + &.fa-chevron-left, + &.fa-chevron-right, + &.fa-camera, + &.fa-tasks, + &.fa-sliders, + &.fa-fire, + &.fa-list-ul, + &.fa-search, + &.fa-close, + &.fa-remove, + &.fa-times, + &.fa-user, + &.fa-mobile-phone, + &.fa-mobile, + &.fa-filter, + &.fa-user-plus, + &.fa-cloud-upload, + &.fa-cloud-download, + &.fa-eye, + &.fa-eye-slash, + &.fa-share-alt, + &.fa-chevron-down, + &.fa-bars, + &.fa-navicon, + &.fa-reorder { + font-family: "Material Icons Extended"; + } + + &.fa-users::before { content: "people" } // 人々マーク(.drawer__header > .drawer__tab:2) + &.fa-globe::before { content: "public" } // 地球マーク(.drawer__header > .drawer__tab:3) + &.fa-cog::before { content: "settings" } // 歯車マーク(.drawer__header > .drawer__tab:4) + &.fa-cogs::before { content: "settings" } //歯車マーク(モバイル) + &.fa-gears::before { content: "settings" } //歯車マーク(モバイル) + &.fa-sign-out::before { content: "exit_to_app" } //サインアウト + &.fa-star::before { content: "plus_one" } // +1(.status .status__action-bar > .star-icon) + &.fa-reply::before { content: "reply" } //返信ボタン + &.fa-reply-all::before { content: "reply_all" } //全員に返信ボタン + &.fa-mail-reply::before { content: "reply" } //返信ボタン + &.fa-mail-reply-all::before { content: "reply_all" } //全員に返信ボタン + &.fa-envelope::before { content: "mail" } //ダイレクトメッセージボタン + &.fa-bookmark::before { content: "bookmark" } //ブックマークボタン + &.fa-home::before { content: "home" } // 家マーク(ホームタイムライン) + &.fa-bell::before { content: "notifications" } // ベルマーク(通知) + &.fa-eraser::before { content: "clear_all" } // 通知を消去のマーク + &.fa-ellipsis-h::before { content: "more_horiz" } // 三点リーダー(横) + &.fa-ellipsis-v::before { content: "more_vert" } // 三点リーダー(縦) + &.fa-address-book::before { content: "explore" } // discoverマーク(explore遷移タブ) + &.fa-thumb-tack::before { content: "" } // ピンマーク(ピン留め投稿) + &.fa-lock::before { content: "" } // サークルマーク(フォロワー限定投稿) + &.fa-pencil::before { content: "create" } // 鉛筆マーク(モバイル用フローティングボタン) + &.fa-chevron-left::before { content: "arrow_back" } //戻るボタン + &.fa-chevron-right::before { content: "arrow_forward" } //進むボタン + &.fa-camera::before { content: "camera_alt" } //メディアを追加ボタン + &.fa-tasks::before { content: "poll" } //投票を追加ボタン + &.fa-sliders::before { content: "tune" } //設定を表示ボタン + &.fa-fire::before { content: "whatshot" } //トレンドマーク + &.fa-list-ul::before { content: "list" } //リストマーク + &.fa-search::before { content: "search" } //検索アイコン(モバイル、トップバー内) + &.fa-close::before { content: "close" } //閉じるボタン + &.fa-remove::before { content: "close" } //閉じるボタン + &.fa-times::before { content: "close" } //閉じるボタン(メディア) + &.fa-user::before { content: "account_circle" } //ユーザーアイコン + &.fa-mobile-phone::before { content: "smartphone" } //モバイルアイコン + &.fa-mobile::before { content: "smartphone" } //モバイルアイコン + &.fa-filter::before { content: "filter_list" } //フィルターアイコン + &.fa-user-plus::before { content: "person_add" } //ユーザーの追加アイコン + &.fa-cloud-upload::before { content: "cloud_upload" } //インポートアイコン + &.fa-cloud-download::before { content: "cloud_download" } //エクスポートアイコン + &.fa-eye::before { content: "visibility" } //目のアイコン + &.fa-eye-slash::before { content : "visibility_off" } //閉じた目のアイコン + &.fa-share-alt::before { content: "share" } //モバイル共有ボタン + &.fa-chevron-down::before { content: "keyboard_arrow_down" } //メニューボタン + &.fa-bars::before { content: "menu" } //ハンバーガーボタン + &.fa-navicon::before { content: "menu" } //ハンバーガーボタン + &.fa-reorder::before { content: "menu" } //ハンバーガーボタン +} + +.fa { + &.fa-chevron-left, + &.fa-chevron-right, + &.fa.fa-times { + @include material-icon-large; + vertical-align: bottom; + } +} \ No newline at end of file diff --git a/app/javascript/styles/gplus-theme-for-mastodon-dev/keyboard_shortcuts.scss b/app/javascript/styles/gplus-theme-for-mastodon-dev/keyboard_shortcuts.scss new file mode 100644 index 000000000..6c664b32f --- /dev/null +++ b/app/javascript/styles/gplus-theme-for-mastodon-dev/keyboard_shortcuts.scss @@ -0,0 +1,21 @@ +@charset "UTF-8"; + +@import 'variables'; +@import 'mixins'; + + + +.keyboard-shortcuts { + kbd { + @include status-shadow; + + color: $primary-text-color; + background-color: $base-lighter1-color; + border-color: $base-darker1-color; + + margin: 0 0.25em; + + &:first-child { margin-left: 0 } + &:last-child { margin-right: 0 } + } +} \ No newline at end of file diff --git a/app/javascript/styles/gplus-theme-for-mastodon-dev/lists.scss b/app/javascript/styles/gplus-theme-for-mastodon-dev/lists.scss new file mode 100644 index 000000000..05c29a6df --- /dev/null +++ b/app/javascript/styles/gplus-theme-for-mastodon-dev/lists.scss @@ -0,0 +1,55 @@ +@charset "UTF-8"; + +@import 'variables'; + + + +.column { + .column-back-button { background: inherit } + + .column-inline-form { + background: $column-header-color; + + label input { + color: $secondary-text-color; + &:focus { color: $primary-text-color } + } + } + + .column-inline-form ~ .scrollable { + article { margin: 0 } + } +} + +.modal-root { + .column-inline-form { + background: $column-header-color; + + .setting-text { + color: $primary-text-color; + &:active, &:focus { color: $primary-lighter2-text-color } + } + } + + .list-editor { + background: $base-color; + h4 { background: $column-header-color } + + .drawer__pager { + .drawer__inner { background: $column-header-color } + } + } + + .list-adder { + background: $base-color; + + .column-inline-form { border-bottom: 1px solid $base-separation-color } + + &__account, + &__lists { background: $column-header-color } + + &__lists { + .list { border-color: $base-separation-color } + } + } +} \ No newline at end of file diff --git a/app/javascript/styles/gplus-theme-for-mastodon-dev/notifications.scss b/app/javascript/styles/gplus-theme-for-mastodon-dev/notifications.scss new file mode 100644 index 000000000..bab098372 --- /dev/null +++ b/app/javascript/styles/gplus-theme-for-mastodon-dev/notifications.scss @@ -0,0 +1,27 @@ +@charset "UTF-8"; + +@import 'variables'; + + + +.notification { + &.notification-favourite { + .status { + &.status-direct { background: transparent } + } + } + + > .notification__message { + color: $primary-lighter2-text-color; + font-size: 13px; + padding: 8px 0; + + .notification__display-name { + &:hover { color: inherit } + } + + .notification__favourite-icon-wrapper { + .star-icon { color: $icon-active-color } + } + } +} \ No newline at end of file diff --git a/app/javascript/styles/gplus-theme-for-mastodon-dev/profile.scss b/app/javascript/styles/gplus-theme-for-mastodon-dev/profile.scss new file mode 100644 index 000000000..246d24b7d --- /dev/null +++ b/app/javascript/styles/gplus-theme-for-mastodon-dev/profile.scss @@ -0,0 +1,232 @@ +@charset "UTF-8"; + +@import 'variables'; +@import 'mixins'; + + + +.public-layout { + a.button { + @include button-shadow; + + color: $primary-text-color; + background: $base-lighter1-color; + + &:hover, + &:focus, + &:active { + background: darken($base-lighter1-color, 8%); + } + } + + .logo-button { + svg path { + /* Only for Itabashi-don */ + &:not(#Mastodon):not(#Itabashi) { fill: $secondary-text-color !important } + &#Mastodon { fill: $base-lighter1-color !important } + } + } + + .public-account-header { + @include status-shadow; + + &__image { + background: $base-lighter1-color; + + @media screen and (min-width: 600px) { height: 500px } + + &::after { + content: ""; + + position: absolute; + top: auto; + left: 0; + bottom: 0; + + width: 100%; + height: 30%; + background: $account-header-image-shadow-color; + box-shadow: none; + } + + > img:not([src]), + > img[src="/headers/original/missing.png"] { + content: url("https://raw.githubusercontent.com/GenbuProject/GPlusTheme-for-Mastodon/asset/account-default_header.jpg"); + } + } + + &__bar { + @media screen and (max-width: 600px) { + flex-direction: column; + background: $base-color; + } + + @media screen and (min-width: 600px) { margin-top: -140px } + + &::before { background: $base-lighter1-color } + + .avatar { + @media screen and (max-width: 600px) { + position: relative; + bottom: 30px; + + display: initial; + width: 60px; + height: 60px; + margin: 0 auto; + padding: 0; + } + + img { + border: 2px solid $base-lighter1-color; + border-radius: 50%; + background: transparent; + } + } + } + + &__tabs { + @media screen and (max-width: 600px) { + flex-wrap: wrap; + margin-left: 0; + + &__name { + width: 100%; + text-align: center; + + h1 { + color: $primary-text-color; + + small { color: $primary-lighter1-text-color } + } + } + + &__tabs { + justify-content: center; + flex: auto; + + .spacer { display: none } + + a.button.logo-button { + color: $light-text-color; + background: $secondary-text-color; + + svg path { + /* Only for Itabashi-don */ + &:not(#Mastodon):not(#Itabashi) { fill: $base-lighter1-color !important } + &#Mastodon { fill: $secondary-text-color !important } + } + } + } + } + + .details-counters { + .counter { + color: $light-text-color; + border-right: 0; + + &::after { border-bottom-color: $base-color } + + &.active { + &::after { border-bottom-color: $active-color } + } + } + } + } + + &__extra { + .public-account-bio { + .account__header__content { text-align: center } + } + + &__links { + color: $primary-text-color; + + a { + &, strong { color: $primary-text-color } + } + } + } + } + + .public-account-bio, + .endorsements-widget, + .hero-widget { @include status-shadow; } + + .public-account-bio { + background: $base-lighter1-color; + + .account__header__content { color: $primary-text-color } + &__extra { color: $primary-lighter1-text-color } + } + + .endorsements-widget { + padding-bottom: 0; + border-radius: 4px; + + h4 { + color: $primary-lighter1-text-color; + background: $base-lighter1-color; + } + } + + .hero-widget { + &__img { background: $base-color } + &__text { + background: $base-lighter1-color; + + &, em { color: $primary-lighter2-text-color } + a { color: $secondary-text-color } + } + } + + .account__section-headline { + background: $base-lighter1-color; + border-bottom-color: $base-separation-color; + + a { + color: $primary-lighter1-text-color; + + &.active { + color: $primary-lighter2-text-color; + + &::before { border-color: transparent transparent $base-separation-color } + &::after { border-color: transparent transparent $status-color } + } + } + } + + .activity-stream { + box-shadow: none; + + .entry { + margin: 1em 0; + background: transparent; + + &:first-of-type { margin: 0 } + } + } + + .nothing-here { + @include status-shadow; + + color: $primary-lighter1-text-color; + background: $base-lighter1-color; + } + + .footer { + h4 { color: $primary-lighter1-text-color } + + ul { + a { color: $primary-lighter2-text-color } + } + + .brand { + svg path { + /* Only for Itabashi-don */ + &:not(#Mastodon):not(#Itabashi) { fill: $secondary-text-color !important } + &#Mastodon { fill: $base-lighter1-color !important } + } + } + } +} \ No newline at end of file diff --git a/app/javascript/styles/gplus-theme-for-mastodon-dev/searches.scss b/app/javascript/styles/gplus-theme-for-mastodon-dev/searches.scss new file mode 100644 index 000000000..b4478b91b --- /dev/null +++ b/app/javascript/styles/gplus-theme-for-mastodon-dev/searches.scss @@ -0,0 +1,41 @@ +@charset "UTF-8"; + +@import 'variables'; +@import 'mixins'; + + + +.search { + .search { + &__input { + @include material-border; + + color: $primary-text-color; + background: $form-color; + + &:focus { background: $form-focused-color } + } + + &__icon { + .fa { color: $icon-color } + } + } + + &-results { + > .search-results { + &__header { background: $base-color } + &__section { + > h5 { background: darken($base-color, 10%) } + } + } + } +} + +.trends__item { + background: $trend-color; + + .trends__item { + &__name a { color: $secondary-text-color } + &__current { color: lighten($secondary-text-color, 10%) } + } +} \ No newline at end of file diff --git a/app/javascript/styles/gplus-theme-for-mastodon-dev/settings-account.scss b/app/javascript/styles/gplus-theme-for-mastodon-dev/settings-account.scss new file mode 100644 index 000000000..02fb9eac4 --- /dev/null +++ b/app/javascript/styles/gplus-theme-for-mastodon-dev/settings-account.scss @@ -0,0 +1,54 @@ +@charset "UTF-8"; + +@import 'variables'; + + + +.edit_account { + @media screen and (min-width: 415px) { + .card { + > a { + position: relative; + + .card__img { + border-bottom: 1px solid $base-separation-color; + + > img:not([src]), + > img[src="/headers/original/missing.png"] { + content: url("https://raw.githubusercontent.com/GenbuProject/GPlusTheme-for-Mastodon/asset/account-default_header.jpg"); + } + } + + .card__bar { + position: static; + padding-top: 30%; + + .avatar { + position: absolute; + left: 0; + bottom: 0; + + display: flex; + justify-content: center; + align-items: center; + width: 100%; + height: 100%; + + img { + width: 128px; + height: 128px; + + border-radius: 50%; + } + } + + .display-name { + flex: auto; + margin-left: 0; + text-align: center; + } + } + } + } + } +} \ No newline at end of file diff --git a/app/javascript/styles/gplus-theme-for-mastodon-dev/settings-dashboard.scss b/app/javascript/styles/gplus-theme-for-mastodon-dev/settings-dashboard.scss new file mode 100644 index 000000000..b4303249b --- /dev/null +++ b/app/javascript/styles/gplus-theme-for-mastodon-dev/settings-dashboard.scss @@ -0,0 +1,30 @@ +@charset "UTF-8"; + +@import 'variables'; + + + +.dashboard { + &__counters { + & > div { + & > div, & > a { background: $dashboard-counters-base-color } + + & > a { + &:hover, + &:focus, + &:active { + background: $dashboard-counters-hover-color; + } + } + } + + &__text, + &__num { color: $primary-text-color } + + &__label { color: $primary-lighter1-text-color } + } + + &__widgets { + a:not(.name-tag) { color: $primary-lighter2-text-color } + } +} \ No newline at end of file diff --git a/app/javascript/styles/gplus-theme-for-mastodon-dev/settings-directory_tag.scss b/app/javascript/styles/gplus-theme-for-mastodon-dev/settings-directory_tag.scss new file mode 100644 index 000000000..9f75646ac --- /dev/null +++ b/app/javascript/styles/gplus-theme-for-mastodon-dev/settings-directory_tag.scss @@ -0,0 +1,21 @@ +@charset "UTF-8"; + +@import 'variables'; + + + +.admin-wrapper { + .content { + .directory__tag { + & > a, + & > div { background: $setting-base-color } + + h4 { + & { color: $primary-lighter2-text-color } + .fa, small { color: $primary-lighter1-text-color } + } + + .trends__item__current { color: $primary-text-color } + } + } +} \ No newline at end of file diff --git a/app/javascript/styles/gplus-theme-for-mastodon-dev/settings-log.scss b/app/javascript/styles/gplus-theme-for-mastodon-dev/settings-log.scss new file mode 100644 index 000000000..672a77c06 --- /dev/null +++ b/app/javascript/styles/gplus-theme-for-mastodon-dev/settings-log.scss @@ -0,0 +1,30 @@ +@charset "UTF-8"; + +@import 'variables'; + + + +.log-entry { + .log-entry { + &__header { + color: $primary-lighter2-text-color; + background: $log-entry-color; + + .username, + .target, + a { color: $secondary-text-color } + } + + &__timestamp { color: $primary-lighter1-text-color } + &__icon { color: $icon-color } + + &__extras { + color: $primary-text-color; + background: $log-entry-extra-color; + + .diff-neutral { color: $log-entry-extra--neutral-color } + .diff-old { color: $log-entry-extra--old-color } + .diff-new { color: $log-entry-extra--new-color } + } + } +} \ No newline at end of file diff --git a/app/javascript/styles/gplus-theme-for-mastodon-dev/settings-report.scss b/app/javascript/styles/gplus-theme-for-mastodon-dev/settings-report.scss new file mode 100644 index 000000000..2e198f338 --- /dev/null +++ b/app/javascript/styles/gplus-theme-for-mastodon-dev/settings-report.scss @@ -0,0 +1,75 @@ +@charset "UTF-8"; + +@import 'variables'; + + + +.report-card { + background: $setting-content-base-color; + + &__profile__stats { + color: $primary-lighter2-text-color; + + a { + &:focus, + &:hover, + &:active { + color: lighten($primary-lighter2-text-color, 8%); + } + } + } + + &__summary { + &__item { + border-top-color: $base-separation-color; + + &:hover { background: $column-header-hover-color } + + &__reported-by, + &__assigned { + color: $primary-lighter2-text-color; + } + + &__content { + &__icon { color: $icon-color } + a { color: $primary-lighter2-text-color } + } + } + } +} + +.batch-table { + &__toolbar { + background: $base-lighter1-color; + border-color: $base-separation-color; + } + + &__row { + &, &:nth-child(2n) { background: $base-lighter1-color } + &:hover, &:nth-child(2n):hover { background: $column-header-hover-color } + + border-color: $base-separation-color; + + &__content { + .status__content { color: $primary-text-color } + .detailed-status__meta { color: $primary-lighter1-text-color } + + + .accounts-table { // v2.8.0 -> + .accounts-table { + &__count { + & {color: $primary-text-color } + small { color: $primary-lighter1-text-color } + } + } + + td .account { background: inherit } + } + } + } +} + +.speech-bubble { + &__bubble { color: $primary-text-color } + a { color: $secondary-text-color } +} \ No newline at end of file diff --git a/app/javascript/styles/gplus-theme-for-mastodon-dev/settings.scss b/app/javascript/styles/gplus-theme-for-mastodon-dev/settings.scss new file mode 100644 index 000000000..308c7e6a0 --- /dev/null +++ b/app/javascript/styles/gplus-theme-for-mastodon-dev/settings.scss @@ -0,0 +1,244 @@ +@charset "UTF-8"; + +@import 'variables'; +@import 'mixins'; +@import 'settings-account'; +@import 'settings-report'; +@import 'settings-log'; +@import 'settings-dashboard'; +@import 'settings-directory_tag'; + + + +body.admin { + color: $primary-text-color; + background: $setting-base-color; + + .sidebar { + &-wrapper { background: inherit } + + ul { + border-radius: 0; + + a { + color: $primary-lighter2-text-color; + border-radius: 0; + + &:hover { + color: $primary-text-color; + background: $setting-lists-hover-color; + } + + &.selected { + color: $primary-text-color; + background: $setting-lists-selected-color; + } + + i.fa { + @include material-icon-large; + margin-right: 8px; + vertical-align: bottom; + } + } + + ul { background: darken($setting-base-color, 4%) } + + .simple-navigation-active-leaf a { + color: $icon-active-color; + background: initial; + + &:hover { background: $setting-lists-hover-color } + } + } + } + + .content { + @include column-shadow; + background: $setting-content-base-color; + + h2, h3, h4, h6 { color: $primary-text-color } + + p { + color: $primary-text-color; + strong { color: $primary-text-color } + } + + h2, h4, hr { border-bottom-color: $base-separation-color } + .muted-hint { color: $primary-lighter1-text-color } + } +} + +.simple_form { + .input { + &.boolean, + &.with_label, + &.with_floating_label { + .label_input > label { color: $primary-text-color } + } + + &.with_block_label { + & > label { color: $primary-text-color } + } + + &.radio_buttons{ + .radio label { color: $primary-text-color } + } + + &-copy { + background: $base-color; + border-color: $base-separation-color; + } + } + + .check_boxes { + .checkbox { + label { color: $primary-text-color } + } + } + + input[type=text], + input[type=number], + input[type=email], + input[type=password], + textarea { + color: $primary-text-color; + background: $setting-content-base-color; + border-color: $base-separation-color; + + &:hover { + border-color: $base-separation-color; + } + + &:active, + &:focus { + background: darken($setting-content-base-color, 8%); + } + } + + select { + color: $primary-text-color; + background-color: $setting-content-base-color; + border-color: $base-separation-color; + } + + .input.field_with_errors { + label, + .error { + color: $error-text-color; + } + } + + .hint, p.hint { + color: $primary-lighter1-text-color !important; + + code { + color: $light-text-color; + background: $setting-emphasis-color; + } + } + + .recommended { + color: $verified-color; + background-color: transparentize($verified-color, 0.75); + border-color: $verified-color; + } + + .label_input { + &__append { color: $primary-lighter1-text-color } + } + + button { + @include button-shadow; + } +} + +.simple_form, +.table-form { + .warning { background: change-color($color: $error-color, $alpha: 0.8) } +} + +.quick-nav { + a { + color: $secondary-text-color; + + &:hover, + &:focus, + &:active { + color: lighten($secondary-text-color, 8%); + } + } +} + +.pagination { + .page, + a { + color: $primary-text-color; + } + + .page { + &.current { + background: $icon-active-color; + color: $light-text-color; + } + } +} + +.filters { + .filter-subset { + strong { color: $primary-text-color } + + a { + color: $primary-lighter2-text-color; + + &:hover { color: $primary-text-color } + + &.selected { + color: $active-text-color; + border-bottom-color: $active-text-color; + } + } + } +} + +.new_form_two_factor_confirmation { + .qr-wrapper { + .qr-code { box-shadow: none } + .qr-alternative { color: $secondary-lighter1-text-color } + } +} + +label, +select#user_setting_default_privacy { + &[for=user_setting_default_privacy_public], + &[for=user_setting_default_privacy_unlisted], + option[value="public"], + option[value="unlisted"] { color: $active-text-color !important } +} + +.column-header__collapsible__extra { + .column-settings__section { color: $primary-text-color } + + .setting-toggle { + .react-toggle { + &.react-toggle--checked { + > .react-toggle-track { background: $setting-toggle-checked-color } + + > .react-toggle-thumb { + border-color: $setting-toggle-checked-color; + background-color: $setting-toggle-thumb-checked-color; + } + } + + > .react-toggle-track { background: $setting-toggle-color } + + > .react-toggle-thumb { + border-color: $setting-toggle-color; + background-color: $setting-toggle-thumb-color; + } + } + + .setting-toggle__label { color: $primary-text-color } + } + + .setting-meta__label { color: $primary-lighter1-text-color } +} \ No newline at end of file diff --git a/app/javascript/styles/gplus-theme-for-mastodon-dev/statuses.scss b/app/javascript/styles/gplus-theme-for-mastodon-dev/statuses.scss new file mode 100644 index 000000000..6746032b4 --- /dev/null +++ b/app/javascript/styles/gplus-theme-for-mastodon-dev/statuses.scss @@ -0,0 +1,121 @@ +@charset "UTF-8"; + +@import 'variables'; +@import 'mixins'; + + + +.status { + @include status-shadow; + @include material-card-radius; + border-bottom: 0; + + transition: box-shadow 0.1s 0s ease-out; + + &.light { + .status { + &__relative-time { color: $primary-lighter1-text-color } + &__display-name { + color: $primary-text-color; + + .display-name__account { color: $primary-lighter1-text-color } + } + + &__content { color: $primary-text-color } + } + } + + &.status-direct { + background: $status-direct-color; + + &:not(.read) { + background: inherit; + border-bottom-color: initial; + } + } + + &.muted { + .status__content { + p { color: lighten($primary-text-color, 20%) } + } + } + + .status { + &__info { + .status__display-name { + color: $primary-lighter1-text-color; + + strong { color: $primary-text-color } + } + + .status__relative-time { color: $primary-lighter1-text-color } + } + } + + &__action-bar__counter__label { color: $primary-lighter1-text-color } +} + +.detailed-status { + &__display-name { + color: $secondary-text-color; + + strong { color: $primary-text-color } + } + + &__meta { + .detailed-status__datetime { color: $primary-lighter1-text-color } + + .detailed-status__link { + .fa.fa-star { vertical-align: middle } + } + } + + &__wrapper { + @include status-shadow; + + .detailed-status { @extend .detailed-status; } + .detailed-status__action-bar { + background: $status-actionbar-color; + border-color: $base-separation-color; + } + } +} + +.status, +.detailed-status { + background: $status-color; + + .status__content { + color: $primary-text-color; + + a { color: $secondary-text-color } + + .status__content__spoiler-link { + color: $primary-text-color; + background: $base-color; + } + } +} + +a.status-card, +a.status-card.compact { + &:hover { background: initial } +} + +.status-card, +.status-card.compact { + border-color: $non-elevated-card-boader; + + &__title { + color : $primary-text-color; + } + + &__host { + color: $primary-lighter1-text-color; + } +} + +.name-tag, +a.name-tag { + color: $secondary-text-color; +} \ No newline at end of file diff --git a/app/javascript/styles/gplus-theme-for-mastodon-dev/tables.scss b/app/javascript/styles/gplus-theme-for-mastodon-dev/tables.scss new file mode 100644 index 000000000..e71ce7a38 --- /dev/null +++ b/app/javascript/styles/gplus-theme-for-mastodon-dev/tables.scss @@ -0,0 +1,29 @@ +@charset "UTF-8"; + +@import 'variables'; + + + +.table { + thead th { border-bottom-color: $base-separation-color } + + th, + td { + color: $primary-text-color; + background-color: $base-color; + border-top: 0; + } + + & > tbody > tr:nth-child(odd) { + & > td, & > th { background: darken($base-color, 4%) } + } + + a { color: $secondary-text-color } +} + +a.table-action-link, +button.table-action-link { + color: $secondary-text-color; + + &:hover { color: darken($secondary-text-color, 8%) } +} \ No newline at end of file diff --git a/app/javascript/styles/gplus-theme-for-mastodon.scss b/app/javascript/styles/gplus-theme-for-mastodon.scss new file mode 100644 index 000000000..e233cfbea --- /dev/null +++ b/app/javascript/styles/gplus-theme-for-mastodon.scss @@ -0,0 +1,22 @@ +/** + * Google+ Theme for Mastodon v1.1 + * Copyright (C) 2018-2019 Genbu Project + */ + +@charset "UTF-8"; + +@import 'application'; +@import 'gplus-theme-for-mastodon/basics'; +@import 'gplus-theme-for-mastodon/components'; +@import 'gplus-theme-for-mastodon/tables'; +@import 'gplus-theme-for-mastodon/columns'; +@import 'gplus-theme-for-mastodon/lists'; +@import 'gplus-theme-for-mastodon/accounts'; +@import 'gplus-theme-for-mastodon/statuses'; +@import 'gplus-theme-for-mastodon/notifications'; +@import 'gplus-theme-for-mastodon/searches'; +@import 'gplus-theme-for-mastodon/settings'; +@import 'gplus-theme-for-mastodon/icons'; +@import 'gplus-theme-for-mastodon/profile'; +@import 'gplus-theme-for-mastodon/about'; +@import 'gplus-theme-for-mastodon/explore'; \ No newline at end of file diff --git a/app/javascript/styles/gplus-theme-for-mastodon/_mixins.scss b/app/javascript/styles/gplus-theme-for-mastodon/_mixins.scss new file mode 100644 index 000000000..196473f89 --- /dev/null +++ b/app/javascript/styles/gplus-theme-for-mastodon/_mixins.scss @@ -0,0 +1,11 @@ +@charset "UTF-8"; + +@import 'variables'; + + + +@mixin column-shadow { box-shadow: 0 1px 8px 0 $column-header-shadow-color } +@mixin status-shadow { box-shadow: 0 1px 4px 0 $status-shadow-color } +@mixin status-focus-shadow { box-shadow: 0 0 20px 0 $status-focused-shadow-color } +@mixin button-shadow { box-shadow: 0 2px 5px 0 $button-shadow-color } +@mixin material-border { border-radius: 4px } \ No newline at end of file diff --git a/app/javascript/styles/gplus-theme-for-mastodon/_variables.scss b/app/javascript/styles/gplus-theme-for-mastodon/_variables.scss new file mode 100644 index 000000000..2160a8fc9 --- /dev/null +++ b/app/javascript/styles/gplus-theme-for-mastodon/_variables.scss @@ -0,0 +1,81 @@ +@charset "UTF-8"; + + + +// Base colors +$active-color: #db4437; +$accent-color: #fbbc04; +$valid-color: #4285f4; +$error-color: #d50000; +$checked-color: #4285f4; +$verified-color: #4caf50; + + +// Text colors +$primary-text-color: rgba(0, 0, 0, 0.87); +$primary-lighter1-text-color: change-color($color: $primary-text-color, $lightness: 62%, $alpha: 1.0); // ex: 時間表示 +$primary-lighter2-text-color: change-color($color: $primary-text-color, $lightness: 38%, $alpha: 1.0); // ex: 通知メッセージ表示 +$secondary-text-color: #2962ff; +$secondary-lighter1-text-color: #00bfff; // ex: アカウントTLのユーザーID +$light-text-color: #ffffff; +$light-darker1-text-color: darken($light-text-color, 15%); +$active-text-color: $active-color; +$error-text-color: $error-color; + + +// Icon colors +$icon-color: #757575; +$icon-active-color: $active-color; + + +// Background colors +$base-color: #f1f1f1; +$base-lighter1-color: #ffffff; +$base-darker1-color: rgba(0, 0, 0, 0.4); + +$column-header-color: $base-lighter1-color; +$column-header-hover-color: change-color($color: $column-header-color, $lightness: 90%); + +$status-color: $base-lighter1-color; +$status-direct-color: darken($status-color, 5%); +$status-actionbar-color: change-color($color: $status-color, $lightness: 98%); + +$account-color: $base-lighter1-color; +$account-foreground-color: $base-darker1-color; + +$card-color: $base-lighter1-color; +$card-hover-color: $column-header-hover-color; +$card-image-color: $base-color; + +$form-color: rgba(0, 0, 0, 0.1); +$form-focused-color: lighten($form-color, 20%); +$trend-color: $base-lighter1-color; + +$setting-base-color: $base-color; +$setting-lists-selected-color: darken($base-color, 2%); +$setting-lists-hover-color: darken($base-color, 5%); +$setting-content-base-color: $base-lighter1-color; + +$setting-toggle-color: #b9b9b9; +$setting-toggle-checked-color: change-color($color: $checked-color, $alpha: 0.5); +$setting-toggle-thumb-color: #fafafa; +$setting-toggle-thumb-checked-color: $checked-color; + +$dashboard-counters-base-color: $base-color; +$dashboard-counters-hover-color: lighten($base-color, 2%); + +$explore-header-color: lighten($accent-color, 16%); +$explore-directory-color: $base-lighter1-color; + + +// Shadow colors +$column-header-shadow-color: rgba(0, 0, 0, 0.3); +$status-shadow-color: rgba(0, 0, 0, 0.14); +$status-focused-shadow-color: change-color($color: $status-shadow-color, $alpha: 0.3); +$icon-hovered-shadow-color: rgba(0, 0, 0, 0.26); +$account-header-image-shadow-color: linear-gradient(rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.46)); +$button-shadow-color: rgba(0, 0, 0, 0.4); + + +// Separation colors +$base-separation-color: rgba(0, 0, 0, 0.14); \ No newline at end of file diff --git a/app/javascript/styles/gplus-theme-for-mastodon/about.scss b/app/javascript/styles/gplus-theme-for-mastodon/about.scss new file mode 100644 index 000000000..de48883a8 --- /dev/null +++ b/app/javascript/styles/gplus-theme-for-mastodon/about.scss @@ -0,0 +1,138 @@ +@charset "UTF-8"; + +@import 'variables'; +@import 'mixins'; + + + +// from mastodon/about.scss +$column-breakpoint: 700px; + + + +.landing-page { + h3, h4, h5, h6 { color: $primary-lighter2-text-color } + p { color: $primary-lighter1-text-color } + em { color: $primary-text-color } + + .column-0 { background: $base-darker1-color } + .column-2 { + .landing-page { + &__information { padding: 0 } + + &__short-description { + & > .row:first-child { + background: $base-darker1-color; + padding: 10px 20px; + } + + & > * { + padding-left: 40px; padding-right: 40px; + &:last-child { padding-bottom: 45px } + + @media screen and (max-width: $column-breakpoint) { + padding-left: 20px; padding-right: 20px; + &:last-child { padding-bottom: 25px } + } + } + } + } + } + + &__forms, + &__information, + &__call-to-action { + @include status-shadow; + background: $column-header-color; + } + + &__forms { + padding: 0; + + & > *:first-child { margin: inherit } + & > * { margin-left: 20px; margin-right: 20px; } + + .brand { background: $base-darker1-color } + + form { + & > .input input { + background: $form-color; + + &:focus { background: $form-focused-color } + } + } + + .separator-or { + margin-left: 20px; margin-right: 20px; + + span { + color: $primary-lighter1-text-color; + background: $column-header-color; + } + } + + @media screen and (max-width: $column-breakpoint) { + background: inherit; + box-shadow: none; + + .separator-or span { background: $base-color } + } + } + + &__information { + color: $primary-lighter1-text-color; + + &.contact-widget { + @include status-shadow; + background: $column-header-color; + + .contact-widget { + &__mail { + a { color: $primary-text-color } + } + } + } + + strong { color: inherit } + + .row:first-child { + h1 small { + color: $light-darker1-text-color; + + span { color: $light-text-color } + } + } + } + + &__call-to-action { + .row__information-board { + .information-board__section { + color: $primary-lighter2-text-color; + + & > span:last-child { color: $primary-lighter1-text-color } + } + } + } + + &__features { + .features-list { + .features-list__row { + .text { color: $primary-lighter1-text-color } + .visual .fa { color: $icon-color } + } + } + } + + &__footer { color: $primary-lighter1-text-color } + + #mastodon-timeline { + color: $primary-text-color; + background: transparent; + + p { + color: $primary-text-color; + + a { color: $secondary-text-color } + } + } +} \ No newline at end of file diff --git a/app/javascript/styles/gplus-theme-for-mastodon/accounts.scss b/app/javascript/styles/gplus-theme-for-mastodon/accounts.scss new file mode 100644 index 000000000..16bff9ee6 --- /dev/null +++ b/app/javascript/styles/gplus-theme-for-mastodon/accounts.scss @@ -0,0 +1,109 @@ +@charset "UTF-8"; + +@import 'variables'; +@import 'mixins'; + + + +.account { + background: $account-color; + border-color: $base-separation-color; + + .account { + &__display-name { + color: $secondary-text-color; + + strong { color: $primary-text-color } + } + } +} + +.column { + > .column-back-button { + @include column-shadow; + background: $column-header-color; + } +} + +.account-timeline__header { + .account__header { + background-color: $account-foreground-color; + + > div { background-color: inherit } + + .account__header { + &__username { color: $secondary-lighter1-text-color } + &__fields { @extend .account__header__fields; } + } + + .account--action-button { + .icon-button:not(.active) { + color: darken($light-text-color, 7%); + + &:active, + &:focus, + &:hover { + color: $light-text-color; + } + } + } + } + + .account { + &__disclaimer, + &__action-bar, + &__section-headline { + background: $column-header-color; + border-color: $base-separation-color; + } + + &__action-bar { + &__tab { + border-color: $base-separation-color; + &.active { border-bottom-color: $active-color } + + > span { color: $primary-lighter1-text-color } + } + } + + &__section-headline { + a { + color: $primary-text-color; + + &.active { + color: $primary-lighter1-text-color; + + &::before { border-color: transparent transparent $base-separation-color } + &::after { border-color: transparent transparent $status-color } + } + } + } + } +} + +.account__header__fields { + dl { + border-color: $base-separation-color; + + dt, + dd { + color: $primary-text-color; + background: $column-header-color; + } + + dd { + &.verified { + border-color: transparentize($valid-color, 0.5); + background: transparentize($valid-color, 0.75); + + a { color: lighten($verified-color, 20%) } + } + } + } + + a { color: $secondary-text-color } +} + +.account__action-bar__tab { + strong { color: $primary-text-color } +} \ No newline at end of file diff --git a/app/javascript/styles/gplus-theme-for-mastodon/basics.scss b/app/javascript/styles/gplus-theme-for-mastodon/basics.scss new file mode 100644 index 000000000..a141ecd13 --- /dev/null +++ b/app/javascript/styles/gplus-theme-for-mastodon/basics.scss @@ -0,0 +1,47 @@ +@charset "UTF-8"; + +@import 'variables'; +@import 'mixins'; + + + +body { + &, + .ui { + color: $primary-text-color; + background: $base-color; + } +} + +.focusable { + &:focus { + background: inherit; + + .status { + @include status-focus-shadow; + + &.status-direct { background: $status-direct-color } + } + + .detailed-status { + & { background: $status-color } + &__action-bar { background: $status-actionbar-color } + } + } +} + +::-webkit-scrollbar-thumb { + background: darken($base-lighter1-color, 12%); + + &:hover { background: darken($base-lighter1-color, 16%) } + &:active { background: darken($base-lighter1-color, 12%) } +} + +::-webkit-scrollbar-track { + background: $base-color; + + &:hover, + &:active { + background: darken($base-lighter1-color, 8%); + } +} \ No newline at end of file diff --git a/app/javascript/styles/gplus-theme-for-mastodon/columns.scss b/app/javascript/styles/gplus-theme-for-mastodon/columns.scss new file mode 100644 index 000000000..9086e30bc --- /dev/null +++ b/app/javascript/styles/gplus-theme-for-mastodon/columns.scss @@ -0,0 +1,197 @@ +@charset "UTF-8"; + +@import 'variables'; +@import 'mixins'; + + + +.tabs-bar { + margin: 0; + background: $column-header-color; + + .tabs-bar { + &__link { + color: $icon-color; + + .fa { vertical-align: top } + } + } +} + +.drawer { + .drawer { + &__header { + @include column-shadow; + background: $column-header-color; + + .drawer__tab { color: $icon-color } + + a { + &:hover { background: $column-header-hover-color } + } + } + + &__pager { + @include status-shadow; + + .drawer__inner { + background: $column-header-color; + + &__mastodon { display: none } + } + } + } +} + +.navigation-bar { + color: $secondary-text-color; + background: $column-header-color; + + .navigation-bar { + &__profile { + strong { color: $primary-text-color } + &-edit { color: $secondary-text-color } + } + } +} + +.compose-form { + .compose-form { + &__buttons-wrapper { background: $column-header-color } + &__publish { border-top: 1px solid $base-separation-color } + } +} + +.column { + .column-header { + @include column-shadow; + background: $column-header-color; + + &.active { + .column-header__icon { + color: $icon-active-color; + text-shadow: 0 0 10px change-color($color: $icon-active-color, $alpha: 0.4); + } + } + + * { background: inherit } + + &__icon { + color: $icon-color; + vertical-align: top; + } + + &__buttons { + .column-header { + &__back-button { + .column-back-button__icon { vertical-align: unset } + } + + &__button { + &.active { + color: $icon-active-color; + background: inherit; + } + + .fa { vertical-align: unset } + } + } + } + + &__collapsible { + color: $secondary-text-color; + border-bottom: 1px solid $base-separation-color; + + &-inner { background: $column-header-color } + } + } + + .column-back-button { + &__icon { vertical-align: unset } + } + + .column { + &-subheading { background: darken($base-color, 10%) } + + &-link { + color: $primary-text-color; + background: $base-color; + + &__icon { + color: $icon-color; + vertical-align: top; + } + } + } + + .scrollable { + background: transparent; + + *[role="feed"] { + article { + margin: 1em 0; + &:first-of-type { margin: 0 } + } + } + + div[tabindex="-1"] { margin-bottom: 1em } + } + + .notification__filter-bar { + background: $column-header-color; + border-bottom-color: $base-separation-color; + + button { + color: $icon-color; + background: $column-header-color; + + &.active { + color: $icon-active-color; + + &::before { border-color: transparent transparent $base-separation-color } + &::after { border-color: transparent transparent $column-header-color } + } + } + } + + .empty-column-indicator { + flex-direction: column; + background: $base-color; + + &::before { + content: ""; + display: block; + + width: 100px; + height: 100px; + margin-bottom: 1em; + + background: none center / contain no-repeat; + background-image: url("https://raw.githubusercontent.com/GenbuProject/GPlusTheme-for-Mastodon/asset/notification-jingle_2x.gif"); + } + } +} + +.getting-started { + &__wrapper, + & { + background: $base-color; + } + + & { + border-top: 1px solid $base-separation-color; + + a { color: $primary-text-color } + } +} + +.load { + &-more, + &-gap { + background: transparent; + + &:hover { background: darken($column-header-color, 10%) } + } + + &-gap { border: 0 } +} \ No newline at end of file diff --git a/app/javascript/styles/gplus-theme-for-mastodon/components-button.scss b/app/javascript/styles/gplus-theme-for-mastodon/components-button.scss new file mode 100644 index 000000000..ef50ce863 --- /dev/null +++ b/app/javascript/styles/gplus-theme-for-mastodon/components-button.scss @@ -0,0 +1,11 @@ +@charset "UTF-8"; + +@import 'variables'; +@import 'mixins'; + + + +.floating-action-button { + font-size: 24px; + background: $active-color; +} \ No newline at end of file diff --git a/app/javascript/styles/gplus-theme-for-mastodon/components-card.scss b/app/javascript/styles/gplus-theme-for-mastodon/components-card.scss new file mode 100644 index 000000000..cc6bf2808 --- /dev/null +++ b/app/javascript/styles/gplus-theme-for-mastodon/components-card.scss @@ -0,0 +1,37 @@ +@charset "UTF-8"; + +@import 'variables'; + + + +.card { + border: 1px solid $base-separation-color; + + > a { + @include status-shadow; + + &:hover, + &:focus, + &:active { + .card__bar { + background: initial; + + .display-name strong { color: $secondary-text-color } + } + } + + .card__img { background: $card-image-color } + .card__bar { + background: $card-color; + + .avatar { + img { background: transparent } + } + + .display-name { + strong { color: $primary-text-color } + span { color: $primary-lighter2-text-color } + } + } + } +} \ No newline at end of file diff --git a/app/javascript/styles/gplus-theme-for-mastodon/components-dropdown.scss b/app/javascript/styles/gplus-theme-for-mastodon/components-dropdown.scss new file mode 100644 index 000000000..afc55f95f --- /dev/null +++ b/app/javascript/styles/gplus-theme-for-mastodon/components-dropdown.scss @@ -0,0 +1,42 @@ +@charset "UTF-8"; + +@import 'variables'; +@import 'mixins'; + + + +.dropdown-menu, +.actions-modal > ul { + @include material-border; + background: $base-lighter1-color; + + .dropdown-menu { + &__arrow { + &.top { border-top-color: $column-header-color } + &.bottom { border-bottom-color: $column-header-color } + } + + &__item { + a { + color: $primary-lighter2-text-color; + + padding: 8px 16px; + background: $column-header-color; + + &:active, + &:focus, + &:hover { + background: $column-header-hover-color; + } + } + } + + &__separator { border-bottom-color: $base-separation-color } + } + + & > li:not(:empty) { + @extend .dropdown-menu__item; + + a { padding: 12px 16px } + } +} \ No newline at end of file diff --git a/app/javascript/styles/gplus-theme-for-mastodon/components.scss b/app/javascript/styles/gplus-theme-for-mastodon/components.scss new file mode 100644 index 000000000..2b0e8a816 --- /dev/null +++ b/app/javascript/styles/gplus-theme-for-mastodon/components.scss @@ -0,0 +1,5 @@ +@charset "UTF-8"; + +@import 'components-button'; +@import 'components-card'; +@import 'components-dropdown'; \ No newline at end of file diff --git a/app/javascript/styles/gplus-theme-for-mastodon/explore.scss b/app/javascript/styles/gplus-theme-for-mastodon/explore.scss new file mode 100644 index 000000000..7d4726790 --- /dev/null +++ b/app/javascript/styles/gplus-theme-for-mastodon/explore.scss @@ -0,0 +1,38 @@ +@charset "UTF-8"; + +@import 'variables'; + + + +.public-layout { + .page-header { + background: $explore-header-color; + + h1 { color: $primary-text-color } + p { color: $primary-lighter2-text-color } + } + + .directory { + background: $explore-directory-color; + + .accounts-table { + &__count { + color: $primary-lighter2-text-color; + small { color: $primary-lighter1-text-color } + } + } + + &__tag { + a { background: $explore-directory-color } + h4 { color: $primary-text-color } + .fa, small { color: $primary-lighter1-text-color } + } + } + + .notice-widget { + color: $primary-lighter1-text-color; + background: $explore-directory-color; + + a { color: $secondary-text-color } + } +} \ No newline at end of file diff --git a/app/javascript/styles/gplus-theme-for-mastodon/icons.scss b/app/javascript/styles/gplus-theme-for-mastodon/icons.scss new file mode 100644 index 000000000..0125172ad --- /dev/null +++ b/app/javascript/styles/gplus-theme-for-mastodon/icons.scss @@ -0,0 +1,97 @@ +@charset "UTF-8"; + +@import 'variables'; + + + +@function hex-color($color) { + @if type-of($color) == 'color' { + $color: str-slice(ie-hex-str($color), 4); + } + + @return '%23' + unquote($color) +}; + + + +@font-face { + font-family: "Material Icons Extended"; + src: + local("Material Icons Extended"), + url("https://fonts.gstatic.com/s/materialiconsextended/v50/kJEjBvgX7BgnkSrUwT8UnLVc38YydejYY-oE_LvJ.woff2"), + url("https://raw.githubusercontent.com/GenbuProject/GPlusTheme-for-Mastodon/asset/font-Material_Icons_Extended-v50.woff2"); +} + +.icon-button { + color: $icon-color; + + &:active, + &:focus, + &:hover { + color: lighten($icon-color, 7%); + } + + &.star-icon { + &.active { + color: $light-text-color; + background: $icon-active-color; + border-radius: 50%; + } + + .fa.fa-star { vertical-align: top } + } + + &.disabled { + color: lighten($icon-color, 13%); + + .fa.fa-retweet { + background-image: url("data:image/svg+xml;utf8,"); + } + } + + .fa { + vertical-align: middle; + + &.fa-retweet { + background-image: url("data:image/svg+xml;utf8,"); + + &:active, + &:hover, + &:focus { + background-image: url("data:image/svg+xml;utf8,"); + } + } + } +} + +.fa { + &.fa-users, + &.fa-globe, + &.fa-cog, + &.fa-star, + &.fa-home, + &.fa-bell, + &.fa-eraser, + &.fa-ellipsis-h, + &.fa-ellipsis-v, + &.fa-address-book, + &.fa-thumb-tack, + &.fa-lock, + &.fa-pencil { + font-family: "Material Icons Extended"; + } + + &.fa-users::before { content: "people" } // 人々マーク(.drawer__header > .drawer__tab:2) + &.fa-globe::before { content: "" } // 地球マーク(.drawer__header > .drawer__tab:3) + &.fa-cog::before { content: "settings" } // 歯車マーク(.drawer__header > .drawer__tab:4) + &.fa-star::before { content: "plus_one" } // +1(.status .status__action-bar > .star-icon) + &.fa-home::before { content: "home" } // 家マーク(ホームタイムライン) + &.fa-bell::before { content: "" } // ベルマーク(通知) + &.fa-eraser::before { content: "" } // 通知を消去のマーク + &.fa-ellipsis-h::before { content: "" } // 三点リーダー(横) + &.fa-ellipsis-v::before { content: "" } // 三点リーダー(縦) + &.fa-address-book::before { content: "" } // discoverマーク(explore遷移タブ) + &.fa-thumb-tack::before { content: "" } // ピンマーク(ピン留め投稿) + &.fa-lock::before { content: "" } // サークルマーク(フォロワー限定投稿) + &.fa-pencil::before { content: "" } // 鉛筆マーク(モバイル用フローティングボタン) +} \ No newline at end of file diff --git a/app/javascript/styles/gplus-theme-for-mastodon/lists.scss b/app/javascript/styles/gplus-theme-for-mastodon/lists.scss new file mode 100644 index 000000000..eb770001e --- /dev/null +++ b/app/javascript/styles/gplus-theme-for-mastodon/lists.scss @@ -0,0 +1,34 @@ +@charset "UTF-8"; + +@import 'variables'; + + + +.column { + .column-back-button { background: inherit } + + .column-inline-form { + background: $column-header-color; + + label input { + color: $secondary-text-color; + &:focus { color: $primary-text-color } + } + } + + .column-inline-form ~ .scrollable { + article { margin: 0 } + } +} + +.modal-root { + .list-editor { + background: $base-color; + + h4 { background: $column-header-color } + + .drawer__pager { + .drawer__inner { background: $column-header-color } + } + } +} \ No newline at end of file diff --git a/app/javascript/styles/gplus-theme-for-mastodon/notifications.scss b/app/javascript/styles/gplus-theme-for-mastodon/notifications.scss new file mode 100644 index 000000000..bab098372 --- /dev/null +++ b/app/javascript/styles/gplus-theme-for-mastodon/notifications.scss @@ -0,0 +1,27 @@ +@charset "UTF-8"; + +@import 'variables'; + + + +.notification { + &.notification-favourite { + .status { + &.status-direct { background: transparent } + } + } + + > .notification__message { + color: $primary-lighter2-text-color; + font-size: 13px; + padding: 8px 0; + + .notification__display-name { + &:hover { color: inherit } + } + + .notification__favourite-icon-wrapper { + .star-icon { color: $icon-active-color } + } + } +} \ No newline at end of file diff --git a/app/javascript/styles/gplus-theme-for-mastodon/profile.scss b/app/javascript/styles/gplus-theme-for-mastodon/profile.scss new file mode 100644 index 000000000..2bfa60c45 --- /dev/null +++ b/app/javascript/styles/gplus-theme-for-mastodon/profile.scss @@ -0,0 +1,231 @@ +@charset "UTF-8"; + +@import 'variables'; +@import 'mixins'; + + + +.public-layout { + a.button { + @include button-shadow; + + color: $primary-text-color; + background: $base-lighter1-color; + + &:hover, + &:focus, + &:active { + background: darken($base-lighter1-color, 8%); + } + } + + .logo-button { + svg path { + /* Only for Itabashi-don */ + &:not(#Mastodon):not(#Itabashi) { fill: $secondary-text-color !important } + &:last-child { fill: $base-lighter1-color !important } + } + } + + .public-account-header { + @include status-shadow; + + &__image { + background: $base-lighter1-color; + + @media screen and (min-width: 600px) { height: 500px } + + &::after { + position: absolute; + top: auto; + left: 0; + bottom: 0; + + width: 100%; + height: 30%; + background: $account-header-image-shadow-color; + box-shadow: none; + } + + > img:not([src]), + > img[src="/headers/original/missing.png"] { + content: url("https://raw.githubusercontent.com/GenbuProject/GPlusTheme-for-Mastodon/asset/account-default_header.jpg"); + } + } + + &__bar { + @media screen and (max-width: 600px) { + flex-direction: column; + background: $base-color; + } + + @media screen and (min-width: 600px) { margin-top: -140px } + + &::before { background: $base-lighter1-color } + + .avatar { + @media screen and (max-width: 600px) { + position: relative; + bottom: 30px; + + display: initial; + width: 60px; + height: 60px; + margin: 0 auto; + padding: 0; + } + + img { + border: 2px solid $base-lighter1-color; + border-radius: 50%; + background: transparent; + } + } + } + + &__tabs { + @media screen and (max-width: 600px) { + flex-wrap: wrap; + margin-left: 0; + + &__name { + width: 100%; + text-align: center; + + h1 { + color: $primary-text-color; + + small { color: $primary-lighter1-text-color } + } + } + + &__tabs { + justify-content: center; + flex: auto; + + .spacer { display: none } + + a.button.logo-button { + color: $light-text-color; + background: $secondary-text-color; + + svg path { + /* Only for Itabashi-don */ + &:not(#Mastodon):not(#Itabashi) { fill: $base-lighter1-color !important } + &:last-child { fill: $secondary-text-color !important } + } + } + } + } + + .details-counters { + .counter { + color: $light-text-color; + border-right: 0; + + &::after { border-bottom-color: $base-color } + + &.active { + &::after { border-bottom-color: $active-color } + } + } + } + } + + &__extra { + .public-account-bio { + .account__header__content { text-align: center } + } + + &__links { + color: $primary-text-color; + + a { + &, strong { color: $primary-text-color } + } + } + } + } + + .public-account-bio { + @include column-shadow; + background: $base-lighter1-color; + + .account__header__content { color: $primary-text-color } + &__extra { color: $primary-lighter1-text-color } + } + + .endorsements-widget { + @include column-shadow; + + padding-bottom: 0; + border-radius: 4px; + + h4 { + color: $primary-lighter1-text-color; + background: $base-lighter1-color; + } + } + + .hero-widget { + @include column-shadow; + + &__img { background: $base-color } + &__text { + background: $base-lighter1-color; + + &, em { color: $primary-lighter2-text-color } + a { color: $secondary-text-color } + } + } + + .account__section-headline { + background: $base-lighter1-color; + border-bottom-color: $base-separation-color; + + a { + color: $primary-lighter1-text-color; + + &.active { + color: $primary-lighter2-text-color; + + &::before { border-color: transparent transparent $base-separation-color } + &::after { border-color: transparent transparent $status-color } + } + } + } + + .activity-stream { + box-shadow: none; + + .entry { + margin: 1em 0; + background: transparent; + + &:first-of-type { margin: 0 } + } + } + + .nothing-here { + @include status-shadow; + + color: $primary-lighter1-text-color; + background: $base-lighter1-color; + } + + .footer { + h4 { color: $primary-lighter1-text-color } + + ul { + a { color: $primary-lighter2-text-color } + } + + .brand { + svg path { + /* Only for Itabashi-don */ + &:not(#Mastodon):not(#Itabashi) { fill: $secondary-text-color !important } + &:last-child { fill: $base-lighter1-color !important } + } + } + } +} \ No newline at end of file diff --git a/app/javascript/styles/gplus-theme-for-mastodon/searches.scss b/app/javascript/styles/gplus-theme-for-mastodon/searches.scss new file mode 100644 index 000000000..b4478b91b --- /dev/null +++ b/app/javascript/styles/gplus-theme-for-mastodon/searches.scss @@ -0,0 +1,41 @@ +@charset "UTF-8"; + +@import 'variables'; +@import 'mixins'; + + + +.search { + .search { + &__input { + @include material-border; + + color: $primary-text-color; + background: $form-color; + + &:focus { background: $form-focused-color } + } + + &__icon { + .fa { color: $icon-color } + } + } + + &-results { + > .search-results { + &__header { background: $base-color } + &__section { + > h5 { background: darken($base-color, 10%) } + } + } + } +} + +.trends__item { + background: $trend-color; + + .trends__item { + &__name a { color: $secondary-text-color } + &__current { color: lighten($secondary-text-color, 10%) } + } +} \ No newline at end of file diff --git a/app/javascript/styles/gplus-theme-for-mastodon/settings-account.scss b/app/javascript/styles/gplus-theme-for-mastodon/settings-account.scss new file mode 100644 index 000000000..d069af381 --- /dev/null +++ b/app/javascript/styles/gplus-theme-for-mastodon/settings-account.scss @@ -0,0 +1,44 @@ +@charset "UTF-8"; + +@import 'variables'; + + + +.edit_account { + @media screen and (min-width: 415px) { + .card { + > a { + position: relative; + + .card__img { border-bottom: 1px solid $base-separation-color } + .card__bar { + position: static; + padding-top: 30%; + + .avatar { + position: absolute; + left: 0; + bottom: 0; + + display: flex; + justify-content: center; + align-items: center; + width: 100%; + height: 100%; + + img { + width: 128px; + height: 128px; + } + } + + .display-name { + flex: auto; + margin-left: 0; + text-align: center; + } + } + } + } + } +} \ No newline at end of file diff --git a/app/javascript/styles/gplus-theme-for-mastodon/settings-dashboard.scss b/app/javascript/styles/gplus-theme-for-mastodon/settings-dashboard.scss new file mode 100644 index 000000000..0e9c55136 --- /dev/null +++ b/app/javascript/styles/gplus-theme-for-mastodon/settings-dashboard.scss @@ -0,0 +1,28 @@ +@charset "UTF-8"; + +@import 'variables'; + + + +.dashboard { + &__counters { + & > div { + & > div, & > a { background: $dashboard-counters-base-color } + + & > a { + &:hover, + &:focus, + &:active { + background: $dashboard-counters-hover-color; + } + } + } + + &__num { color: $primary-text-color } + &__label { color: $primary-lighter1-text-color } + } + + &__widgets { + a:not(.name-tag) { color: $primary-lighter2-text-color } + } +} \ No newline at end of file diff --git a/app/javascript/styles/gplus-theme-for-mastodon/settings-report.scss b/app/javascript/styles/gplus-theme-for-mastodon/settings-report.scss new file mode 100644 index 000000000..7912d1ddc --- /dev/null +++ b/app/javascript/styles/gplus-theme-for-mastodon/settings-report.scss @@ -0,0 +1,63 @@ +@charset "UTF-8"; + +@import 'variables'; + + + +.report-card { + background: $setting-content-base-color; + + &__profile__stats { + color: $primary-lighter2-text-color; + + a { + &:focus, + &:hover, + &:active { + color: lighten($primary-lighter2-text-color, 8%); + } + } + } + + &__summary { + &__item { + border-top-color: $base-separation-color; + + &:hover { background: $column-header-hover-color } + + &__reported-by, + &__assigned { + color: $primary-lighter2-text-color; + } + + &__content { + &__icon { color: $icon-color } + a { color: $primary-lighter2-text-color } + } + } + } +} + +.batch-table { + &__toolbar { + background: $base-lighter1-color; + border-color: $base-separation-color; + } + + &__row { + background: $base-lighter1-color; + border-color: $base-separation-color; + + &:hover { background: $column-header-hover-color } + + &__content { + .status__content { color: $primary-text-color } + .detailed-status__meta { color: $primary-lighter1-text-color } + } + } +} + +.speech-bubble { + &__bubble { color: $primary-text-color } + a { color: $secondary-text-color } +} \ No newline at end of file diff --git a/app/javascript/styles/gplus-theme-for-mastodon/settings.scss b/app/javascript/styles/gplus-theme-for-mastodon/settings.scss new file mode 100644 index 000000000..752d2c662 --- /dev/null +++ b/app/javascript/styles/gplus-theme-for-mastodon/settings.scss @@ -0,0 +1,208 @@ +@charset "UTF-8"; + +@import 'variables'; +@import 'mixins'; +@import 'settings-account'; +@import 'settings-report'; +@import 'settings-dashboard'; + + + +body.admin { + color: $primary-text-color; + background: $setting-base-color; + + .sidebar { + &-wrapper { background: inherit } + + ul { + border-radius: 0; + + a { + color: $primary-lighter2-text-color; + border-radius: 0; + + &:hover { + color: $primary-text-color; + background: $setting-lists-hover-color; + } + + &.selected { + color: $primary-text-color; + background: $setting-lists-selected-color; + } + } + + ul { background: darken($setting-base-color, 4%) } + + .simple-navigation-active-leaf a { + color: $icon-active-color; + background: initial; + + &:hover { background: $setting-lists-hover-color } + } + } + } + + .content { + @include column-shadow; + background: $setting-content-base-color; + + h2, h3, h4, h6 { color: $primary-text-color } + + p { + color: $primary-text-color; + strong { color: $primary-text-color } + } + + h2, h4, hr { border-bottom-color: $base-separation-color } + .muted-hint { color: $primary-lighter1-text-color } + } +} + +.simple_form { + .input { + &.boolean, + &.with_label, + &.with_floating_label { + .label_input > label { color: $primary-text-color } + } + + &.with_block_label { + & > label { color: $primary-text-color } + } + + &.radio_buttons{ + .radio label { color: $primary-text-color } + } + + &-copy { background: $base-color } + } + + .check_boxes { + .checkbox { + label { color: $primary-text-color } + } + } + + input[type=text], + input[type=number], + input[type=email], + input[type=password], + textarea { + color: $primary-text-color; + background: $setting-content-base-color; + border-color: $base-separation-color; + + &:hover { + border-color: $base-separation-color; + } + + &:active, + &:focus { + background: darken($setting-content-base-color, 8%); + } + } + + select { + color: $primary-text-color; + background-color: $setting-content-base-color; + border-color: $base-separation-color; + } + + .input.field_with_errors { + label, + .error { + color: $error-text-color; + } + } + + .hint, p.hint { color: $primary-lighter1-text-color !important } + + .label_input { + &__append { color: $primary-lighter1-text-color } + } +} + +.simple_form, +.table-form { + .warning { background: change-color($color: $error-color, $alpha: 0.8) } +} + +.quick-nav { + a { + color: $secondary-text-color; + + &:hover, + &:focus, + &:active { + color: lighten($secondary-text-color, 8%); + } + } +} + +.pagination { + .page, + a { + color: $primary-text-color; + } + + .page { + &.current { + background: $icon-active-color; + color: $light-text-color; + } + } +} + +.filters { + .filter-subset { + strong { color: $primary-text-color } + + a { + color: $primary-lighter2-text-color; + + &:hover { color: $primary-text-color } + + &.selected { + color: $active-text-color; + border-bottom-color: $active-text-color; + } + } + } +} + +label { + &[for=user_setting_default_privacy_public], + &[for=user_setting_default_privacy_unlisted] { + color: $active-text-color !important; + } +} + +.column-header__collapsible__extra { + .column-settings__section { color: $primary-text-color } + + .setting-toggle { + .react-toggle { + &.react-toggle--checked { + > .react-toggle-track { background: $setting-toggle-checked-color } + + > .react-toggle-thumb { + border-color: $setting-toggle-checked-color; + background-color: $setting-toggle-thumb-checked-color; + } + } + + > .react-toggle-track { background: $setting-toggle-color } + + > .react-toggle-thumb { + border-color: $setting-toggle-color; + background-color: $setting-toggle-thumb-color; + } + } + + .setting-toggle__label { color: $primary-text-color } + } + + .setting-meta__label { color: $primary-lighter1-text-color } +} \ No newline at end of file diff --git a/app/javascript/styles/gplus-theme-for-mastodon/statuses.scss b/app/javascript/styles/gplus-theme-for-mastodon/statuses.scss new file mode 100644 index 000000000..0532a0b90 --- /dev/null +++ b/app/javascript/styles/gplus-theme-for-mastodon/statuses.scss @@ -0,0 +1,107 @@ +@charset "UTF-8"; + +@import 'variables'; +@import 'mixins'; + + + +.status { + @include status-shadow; + border-bottom: 0; + + transition: box-shadow 0.1s 0s ease-out; + + &.light { + .status { + &__relative-time { color: $primary-lighter1-text-color } + &__display-name { + color: $primary-text-color; + + .display-name__account { color: $primary-lighter1-text-color } + } + + &__content { color: $primary-text-color } + } + } + + &.status-direct { + background: $status-direct-color; + + &:not(.read) { + background: inherit; + border-bottom-color: initial; + } + } + + &.muted { + .status__content { + p { color: lighten($primary-text-color, 20%) } + } + } + + .status { + &__info { + .status__display-name { + color: $primary-lighter1-text-color; + + strong { color: $primary-text-color } + } + + .status__relative-time { color: $primary-lighter1-text-color } + } + } +} + +.detailed-status { + .detailed-status { + &__display-name { + color: $secondary-text-color; + + strong { color: $primary-text-color } + } + + &__meta { + .detailed-status__datetime { color: $primary-lighter1-text-color } + + .detailed-status__link { + .fa.fa-star { vertical-align: middle } + } + } + } + + &__wrapper { + @include status-shadow; + + .detailed-status { @extend .detailed-status; } + .detailed-status__action-bar { + background: $status-actionbar-color; + border-color: $base-separation-color; + } + } +} + +.status, +.detailed-status { + background: $status-color; + + .status__content { + color: $primary-text-color; + + a { color: $secondary-text-color } + + .status__content__spoiler-link { + color: $primary-text-color; + background: $base-color; + } + } +} + +a.status-card, +a.status-card.compact { + &:hover { background: initial } +} + +.name-tag, +a.name-tag { + color: $secondary-text-color; +} \ No newline at end of file diff --git a/app/javascript/styles/gplus-theme-for-mastodon/tables.scss b/app/javascript/styles/gplus-theme-for-mastodon/tables.scss new file mode 100644 index 000000000..e71ce7a38 --- /dev/null +++ b/app/javascript/styles/gplus-theme-for-mastodon/tables.scss @@ -0,0 +1,29 @@ +@charset "UTF-8"; + +@import 'variables'; + + + +.table { + thead th { border-bottom-color: $base-separation-color } + + th, + td { + color: $primary-text-color; + background-color: $base-color; + border-top: 0; + } + + & > tbody > tr:nth-child(odd) { + & > td, & > th { background: darken($base-color, 4%) } + } + + a { color: $secondary-text-color } +} + +a.table-action-link, +button.table-action-link { + color: $secondary-text-color; + + &:hover { color: darken($secondary-text-color, 8%) } +} \ No newline at end of file diff --git a/config/initializers/content_security_policy.rb b/config/initializers/content_security_policy.rb index 59cfbba17..20a609a77 100644 --- a/config/initializers/content_security_policy.rb +++ b/config/initializers/content_security_policy.rb @@ -5,12 +5,14 @@ base_host = Rails.configuration.x.web_domain assets_host = Rails.configuration.action_controller.asset_host assets_host ||= "http#{Rails.configuration.x.use_https ? 's' : ''}://#{base_host}" +google_font_host = "https://fonts.gstatic.com" +gplus_theme_host = "https://raw.githubusercontent.com" Rails.application.config.content_security_policy do |p| p.base_uri :none p.default_src :none p.frame_ancestors :none - p.font_src :self, assets_host + p.font_src :self, assets_host, google_font_host p.img_src :self, :https, :data, :blob, assets_host p.style_src :self, :unsafe_inline, assets_host p.media_src :self, :https, :data, assets_host diff --git a/config/locales/en.yml b/config/locales/en.yml index 786906e2d..7b704f667 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -1056,6 +1056,10 @@ en: contrast: Mastodon (High contrast) default: Mastodon (Dark) mastodon-light: Mastodon (Light) + google-plus: Google+ + google-plus-dev: Google+ Dev + dark-google-plus-dev: Dark Google+ Dev + time: formats: default: "%b %d, %Y, %H:%M" diff --git a/config/locales/ja.yml b/config/locales/ja.yml index 1ff5a2b63..65f66fa92 100644 --- a/config/locales/ja.yml +++ b/config/locales/ja.yml @@ -987,6 +987,9 @@ ja: contrast: Mastodon (ハイコントラスト) default: Mastodon (ダーク) mastodon-light: Mastodon (ライト) + google-plus: Google+ + google-plus-dev: Google+ Dev + dark-google-plus-dev: Dark Google+ Dev time: formats: default: "%Y年%m月%d日 %H:%M" diff --git a/config/themes.yml b/config/themes.yml index 9c21c9459..ff2639be1 100644 --- a/config/themes.yml +++ b/config/themes.yml @@ -1,3 +1,6 @@ default: styles/application.scss contrast: styles/contrast.scss mastodon-light: styles/mastodon-light.scss +google-plus: styles/gplus-theme-for-mastodon.scss +google-plus-dev: styles/gplus-theme-for-mastodon-dev.scss +dark-google-plus-dev: styles/dark-gplus-theme-for-mastodon-dev.scss