Przeglądaj źródła

Merge pull request #7189 from weseek/imprv/apply-colors-dark-growitoc

imprv:apply colors dark growitoc
ayaka0417 3 lat temu
rodzic
commit
bc292b5bc6

+ 2 - 1
packages/app/src/pages/_app.page.tsx

@@ -19,8 +19,9 @@ import { CommonProps } from './utils/commons';
 import { registerTransformerForObjectId } from './utils/objectid-transformer';
 
 import '~/styles/style-app.scss';
-import '~/styles/theme/_apply-colors.scss';
 import '~/styles/theme/_apply-colors-light.scss';
+import '~/styles/theme/_apply-colors-dark.scss';
+import '~/styles/theme/_apply-colors.scss';
 
 const isDev = process.env.NODE_ENV === 'development';
 

+ 471 - 451
packages/app/src/styles/theme/_apply-colors-dark.scss

@@ -2,560 +2,580 @@
 @use '../bootstrap/init' as *;
 @use '../atoms/mixins/buttons' as mixins-buttons;
 @use './mixins/count-badge';
+@use './mixins/hsl-button';
+@use './hsl-functions' as hsl;
 
 // determine optional variables
-$color-list: var(--color-list,var(--color-global));
-$bgcolor-list: var(--bgcolor-list,var(--bgcolor-global));
-$color-list-hover: var(--color-list-hover,var(--color-global));
-$color-list-active: $color-reversal !default;
-$bgcolor-list-active: var(--bgcolor-list-active,var(--primary));
-$bgcolor-subnav: var(--bgcolor-subnav);
-$color-table: var(--color-table,white);
-$bgcolor-table: #343a40 !default;
-$border-color-table: lighten($bgcolor-table, 7.5%) !default;
-$color-table-hover: rgba(white, 0.075) !default;
-$bgcolor-table-hover: lighten($bgcolor-table, 7.5%) !default;
-$bgcolor-sidebar-list-group: var(--bgcolor-sidebar-list-group,var(--bgcolor-list));
-$color-tags: #949494 !default;
-$bgcolor-tags: $dark !default;
-$border-color-global: $gray-500 !default;
-$border-color-toc: $border-color-global !default;
-$color-dropdown: var(--color-dropdown,var(--color-global));
-$bgcolor-dropdown: var(--bgcolor-dropdown,var(--bgcolor-global));
-$color-dropdown-link: var(--color-dropdown-link,var(--color-global));
-$color-dropdown-link-hover: $light !default;
-$bgcolor-dropdown-link-hover: var(--bgcolor-dropdown-link-hover);
-$color-dropdown-link-active: $light !default;
-$bgcolor-dropdown-link-active: var(--bgcolor-dropdown-link-active,var(--primary));
-
-// override bootstrap variables
-$text-muted: $gray-550;
-$table-dark-color: var(--color-table);
-$table-dark-bg: $bgcolor-table;
-$table-dark-border-color: $border-color-table;
-$table-dark-hover-color: var(--color-table-hover);
-$table-dark-hover-bg: $bgcolor-table-hover;
-$border-color: $border-color-global;
-$dropdown-color: var(--color-dropdown);
-$dropdown-bg: var(--bgcolor-dropdown);
-$dropdown-link-color: var(--color-dropdown-link);
-$dropdown-link-hover-color: var(--color-dropdown-link-hover);
-$dropdown-link-hover-bg: var(--bgcolor-dropdown-link-hover);
-$dropdown-link-active-color: var(--color-dropdown-link-active);
-$dropdown-link-active-bg: bar(--bgcolor-dropdown-link-active);
-
-@import './mixins/list-group';
-@import './reboot-bootstrap-text';
-@import './reboot-bootstrap-border-colors';
-@import './reboot-bootstrap-tables';
-@import './reboot-bootstrap-dropdown';
-
-// List Group
-@include override-list-group-item(
-  var(--color-list),
-  var(--bgcolor-sidebar-list-group),
-  var(--color-list-hover),
-  var(--bgcolor-list-hover),
-  var(--color-list-active),
-  var(--bgcolor-list-active)
-);
-/*
-  * Form
-  */
-input.form-control,
-select.form-control,
-select.custom-select,
-textarea.form-control {
-  --bgcolor-global-darken5: hsl(from var(--bgcolor-global) h s calc(l - 5%));
-  color: var(--color-global);
-  background-color: var(--bgcolor-global-darken5);
-  border-color: $border-color-global;
-  &:focus {
-    background-color: var(--bgcolor-global);
+:root[data-theme='dark'] {
+  $color-list: var(--color-list,var(--color-global));
+  $bgcolor-list: var(--bgcolor-list,var(--bgcolor-global));
+  $color-list-hover: var(--color-list-hover,var(--color-global));
+  $color-list-active: var(--color-list-active,var(--color-reversal));
+  $bgcolor-list-hover: var(--bgcolor-list-hover,var(--bgcolor-global));
+  $bgcolor-list-active: var(--bgcolor-list-active,var(--primary));
+  $bgcolor-subnav: var(--bgcolor-subnav);
+  $color-table: var(--color-table,white);
+  $bgcolor-table: var(--bgcolor-table,#343a40);
+  $border-color-table: var(--border-color-table,hsl.lighten(var(--bgcolor-table),7.5%),lighten(#343a40, 7.5%));
+  $color-table-hover: var(--color-table-hover,rgba(white, 0.075));
+  $bgcolor-table-hover: var(--bgcolor-table-hover,hsl.lighten(var(--bgcolor-table),7.5%),lighten(#343a40, 7.5%));
+  $bgcolor-sidebar-list-group: var(--bgcolor-sidebar-list-group,var(--bgcolor-list));
+  $color-tags: var(--color-tags,#949494);
+  $bgcolor-tags: var(--bgcolor-tags,var(--dark));
+  $border-color-global: var(--border-color-global,#{$gray-500});
+  $border-color-toc: var(--border-color-toc,#{$border-color-global});
+  $color-dropdown: var(--color-dropdown,var(--color-global));
+  $bgcolor-dropdown: var(--bgcolor-dropdown,var(--bgcolor-global));
+  $color-dropdown-link: var(--color-dropdown-link,var(--color-global));
+  $color-dropdown-link-hover: var(--color-dropdown-link-hover,var(--light));
+  $bgcolor-dropdown-link-hover: var(--bgcolor-dropdown-link-hover,var(--primary));
+  $color-dropdown-link-active: var(--color-dropdown-link-active,var(--light));
+  $bgcolor-dropdown-link-active: var(--bgcolor-dropdown-link-active,var(--primary));
+
+  // override bootstrap variables
+  $text-muted: $gray-550;
+  $table-dark-color: $color-table;
+  $table-dark-bg: $bgcolor-table;
+  $table-dark-border-color: $border-color-table;
+  $table-dark-hover-color: $color-table-hover;
+  $table-dark-hover-bg: $bgcolor-table-hover;
+  $border-color: $border-color-global;
+  $dropdown-color: $color-dropdown;
+  $dropdown-bg: $bgcolor-dropdown;
+  $dropdown-link-color: $color-dropdown-link;
+  $dropdown-link-hover-color: $color-dropdown-link-hover;
+  $dropdown-link-hover-bg: $bgcolor-dropdown-link-hover;
+  $dropdown-link-active-color: $color-dropdown-link-active;
+  $dropdown-link-active-bg: $bgcolor-dropdown-link-active;
+
+  @import './mixins/list-group';
+  @import './reboot-bootstrap-text';
+  @import './reboot-bootstrap-border-colors';
+  @import './reboot-bootstrap-tables';
+  @import './reboot-bootstrap-dropdown';
+
+  // List Group
+  @include override-list-group-item(
+    $color-list,
+    $bgcolor-sidebar-list-group,
+    $color-list-hover,
+    $bgcolor-list-hover,
+    $color-list-active,
+    $bgcolor-list-active
+  );
+  /*
+    * Form
+    */
+  input.form-control,
+  select.form-control,
+  select.custom-select,
+  textarea.form-control {
+    color: var(--color-global);
+    background-color: hsl.darken(var(--bgcolor-global), 5%);
+    border-color: $border-color-global;
+    &:focus {
+      background-color: var(--bgcolor-global);
+    }
+    // FIXME: accent color
+    // border: 1px solid darken($border, 30%);
   }
-  // FIXME: accent color
-  // border: 1px solid darken($border, 30%);
-}
 
-.form-control[disabled],
-.form-control[readonly] {
-  --color-global-light-10:hsl(from var(--color-global) h s calc(l + 10%));
-  --color-global-light-5:hsl(from var(--color-global) h s calc(l + 5%));
-  color: var(--color-global-light-10);
-  background-color: var(--color-global-light-5);
-}
-
-.input-group > .input-group-prepend > .input-group-text {
-  color: theme-color('light');
-  background-color: theme-color('secondary');
-  border: 1px solid theme-color('secondary');
-  border-right: none;
-  &.text-muted {
-    color: theme-color('light') !important;
+  .form-control[disabled],
+  .form-control[readonly] {
+    color: hsl.lighten(var(--color-global),10%);
+    background-color: hsl.lighten(var(--color-global),5%);
   }
-}
-
-.input-group input {
-  border-color: $border-color-global;
-}
 
-label.custom-control-label::before {
-  --bgcolor-global-darken5: hsl(from var(--bgcolor-global) h s calc(l - 5%));
-  background-color: var(--bgcolor-global-darken5);
-}
+  .input-group > .input-group-prepend > .input-group-text {
+    color: theme-color('light');
+    background-color: theme-color('secondary');
+    border: 1px solid theme-color('secondary');
+    border-right: none;
+    &.text-muted {
+      color: theme-color('light') !important;
+    }
+  }
 
-/*
- * Table
- */
-.table {
-  @extend .table-dark;
-}
+  .input-group input {
+    border-color: $border-color-global;
+  }
 
-/*
- * Card
- */
-.card:not([class*='bg-']):not(.well):not(.card-disabled) {
-  @extend .bg-dark;
-}
+  label.custom-control-label::before {
+    background-color: hsl.darken(var(--bgcolor-global),5%);
+  }
 
-// [TODO] GW-3219 modify common color of well in dark theme, then remove below css.
-.card.well {
-  border-color: $secondary;
-}
+  /*
+  * Table
+  */
+  .table {
+    @extend .table-dark;
+  }
 
-.card.card-disabled {
-  background-color: lighten($dark, 10%);
-  border-color: $secondary;
-}
+  /*
+  * Card
+  */
+  // .card:not([class*='bg-']):not(.well):not(.card-disabled) {
+  //   @extend .bg-dark;
+  // }
 
-/*
- * Pagination
- */
-ul.pagination {
-  li.page-item {
-    button.page-link {
-      @extend .btn-dark;
-    }
+  // [TODO] GW-3219 modify common color of well in dark theme, then remove below css.
+  .card.well {
+    border-color: var(--secondary);
   }
-}
-
-/*
- * GROWI Login form
- */
-.nologin {
-  // background color
-  $color-gradient: #3c465c;
-  background: linear-gradient(45deg, darken($color-gradient, 30%) 0%, hsla(340, 100%, 55%, 0) 70%),
-    linear-gradient(135deg, darken(var.$growi-green, 30%) 10%, hsla(225, 95%, 50%, 0) 70%),
-    linear-gradient(225deg, darken(var.$growi-blue, 20%) 10%, hsla(140, 90%, 50%, 0) 80%),
-    linear-gradient(315deg, darken($color-gradient, 25%) 100%, hsla(35, 95%, 55%, 0) 70%);
 
-  .noLogin-header {
-    background-color: rgba(black, 0.5);
+  .card.card-disabled {
+    background-color: lighten($dark, 10%);
+    border-color: var(--secondary);
+  }
 
-    .logo {
-      background-color: rgba(white, 0);
-      fill: rgba(white, 0.5);
+  /*
+  * Pagination
+  */
+  ul.pagination {
+    li.page-item.disabled {
+      button.page-link {
+        color: $gray-400;
+      }
     }
-
-    h1 {
-      color: rgba(white, 0.5);
+    li.page-item.active {
+      button.page-link {
+        color: hsl.contrast(var(--primary));
+        background-color: var(--primary);
+        &:hover,
+        &:focus {
+          color: hsl.contrast(var(--primary));
+          background-color: var(--primary);
+        }
+      }
+    }
+    li.page-item {
+      button.page-link {
+        @include button-variant($dark, $dark);
+        @include mixins-buttons.button-svg-icon-variant($dark, $dark);
+        color: var(--primary);
+        border-color: var(--secondary);
+        box-shadow: none !important;
+      }
     }
   }
 
-  .noLogin-dialog {
-    background-color: rgba(black, 0.5);
-  }
+  /*
+  * GROWI Login form
+  */
+  .nologin {
+    // background color
+    $color-gradient: #3c465c;
+    background: linear-gradient(45deg, darken($color-gradient, 30%) 0%, hsla(340, 100%, 55%, 0) 70%),
+      linear-gradient(135deg, darken(var.$growi-green, 30%) 10%, hsla(225, 95%, 50%, 0) 70%),
+      linear-gradient(225deg, darken(var.$growi-blue, 20%) 10%, hsla(140, 90%, 50%, 0) 80%),
+      linear-gradient(315deg, darken($color-gradient, 25%) 100%, hsla(35, 95%, 55%, 0) 70%);
+
+    .noLogin-header {
+      background-color: rgba(black, 0.5);
+
+      .logo {
+        background-color: rgba(white, 0);
+        fill: rgba(white, 0.5);
+      }
 
-  .input-group {
-    .input-group-text {
-      color: darken(white, 30%);
-      background-color: rgba($gray-700, 0.7);
+      h1 {
+        color: rgba(white, 0.5);
+      }
     }
 
-    .form-control {
-      color: white;
-      background-color: rgba(#505050, 0.7);
-      box-shadow: unset;
+    .noLogin-dialog {
+      background-color: rgba(black, 0.5);
+    }
 
-      &::placeholder {
+    .input-group {
+      .input-group-text {
         color: darken(white, 30%);
+        background-color: rgba($gray-700, 0.7);
       }
-    }
-  }
 
-  .btn-fill {
-    .btn-label {
-      color: $gray-300;
+      .form-control {
+        color: white;
+        background-color: rgba(#505050, 0.7);
+        box-shadow: unset;
+
+        &::placeholder {
+          color: darken(white, 30%);
+        }
+      }
     }
-    .btn-label-text {
-      color: $gray-400;
+
+    .btn-fill {
+      .btn-label {
+        color: $gray-300;
+      }
+      .btn-label-text {
+        color: $gray-400;
+      }
     }
-  }
 
-  .grw-external-auth-form {
-    border-color: gray !important;
-  }
+    .grw-external-auth-form {
+      border-color: gray !important;
+    }
 
-  .btn-external-auth-tab {
-    @extend .btn-dark;
-  }
+    .btn-external-auth-tab {
+      @include button-variant($dark, $dark);
+      @include mixins-buttons.button-svg-icon-variant($dark, $dark);
+      box-shadow: none !important;
+    }
 
-  // footer link text
-  .link-growi-org {
-    color: rgba(white, 0.4);
+    // footer link text
+    .link-growi-org {
+      color: rgba(white, 0.4);
 
-    &:hover,
-    &.focus {
-      color: rgba(white, 0.7);
+      &:hover,
+      &.focus {
+        color: rgba(white, 0.7);
 
-      .growi {
-        color: darken(var.$growi-green, 5%);
-      }
+        .growi {
+          color: darken(var.$growi-green, 5%);
+        }
 
-      .org {
-        color: darken(var.$growi-blue, 5%);
+        .org {
+          color: darken(var.$growi-blue, 5%);
+        }
       }
     }
   }
-}
 
-/*
- * GROWI subnavigation
- */
-.grw-drawer-toggler {
-  @extend .btn-dark;
-  color: $gray-400;
-}
+  /*
+  * GROWI subnavigation
+  */
+  .grw-drawer-toggler {
+    @include button-variant($dark, $dark);
+    @include mixins-buttons.button-svg-icon-variant($dark, $dark);
+    color: $gray-400;
+    box-shadow: none !important;
 
-/*
- * GROWI page list
- */
-.page-list {
-  --color-global-darken10: hsl(from var(--color-global) h s calc(l - 10%));
-  --color-global-darken9: hsl(from var(--color-global) h s calc(l - 9%));
-  .page-list-ul {
-    > li {
-      > span.page-list-meta {
-        color: var(--color-global-darken10);
-      }
-    }
   }
 
-  // List group
-  .list-group-item {
-    &.active {
-      background-color: var(--color-global-darken9);
-    }
-    .list-group-item-action:hover {
-      background-color: var(--bgcolor-list-hover);
+  /*
+  * GROWI page list
+  */
+  .page-list {
+    .page-list-ul {
+      > li {
+        > span.page-list-meta {
+          color: hsl.darken(var(--color-global),10%);
+        }
+      }
     }
-    .page-list-snippet {
-      color: var(--color-global-darken10);
+
+    // List group
+    .list-group-item {
+      &.active {
+        background-color: hsl.lighten(var(--bgcolor-global),10%) !important;
+      }
+      &.list-group-item-action:hover {
+        background-color: hsl.lighten(var(--bgcolor-global),10%) !important;
+      }
+      .page-list-snippet {
+        color: hsl.darken(var(--color-global),10%);
+      }
     }
   }
-}
 
-/*
- * GROWI ToC
- */
-.revision-toc-content {
-  --color-global-lighten30: hsl(from var(--color-global) h s calc(l + 30%));
-  ::marker {
-    color: var(--color-global-lighten30);
+  /*
+  * GROWI ToC
+  */
+  .revision-toc-content {
+    ::marker {
+      color: hsl.lighten(var(--color-global),30%);
+    }
   }
-}
 
-/*
- * GROWI subnavigation
- */
-.grw-subnav {
-  background-color: var(--bgcolor-subnav);
-}
+  /*
+  * GROWI subnavigation
+  */
+  .grw-subnav {
+    background-color: var(--bgcolor-subnav);
+  }
 
-.grw-subnav-fixed-container .grw-subnav {
-  background-color: var(--bgcolor-subnav); opacity:0.85;
-}
+  .grw-subnav-fixed-container .grw-subnav {
+    background-color: hsl.alpha(var(--bgcolor-subnav),15%);
+  }
 
-.grw-page-editor-mode-manager {
-  .btn-outline-primary {
-    &:hover {
-      color: var(--primary);
-      background-color: $gray-700;
+  .grw-page-editor-mode-manager {
+    .btn-outline-primary {
+      &:hover {
+        color: var(--primary);
+        background-color: $gray-700;
+      }
     }
   }
-}
 
-// Search drop down
-#search-typeahead-asynctypeahead {
-  background-color: var(--bgcolor-global);
-  .table {
-    background-color: transparent;
+  // Search drop down
+  #search-typeahead-asynctypeahead {
+    background-color: var(--bgcolor-global);
+    .table {
+      background-color: transparent;
+    }
   }
-}
 
-/*
- * GROWI Sidebar
- */
-.grw-sidebar {
-  // List
-  @include override-list-group-item(
-    var(--color-list),
-    var(--bgcolor-sidebar-list-group),
-    var(--color-list-hover),
-    var(--bgcolor-list-hover),
-    var(--color-list-active),
-    var(--bgcolor-list-active)
-  );
-  // Pagetree
-  .grw-pagetree {
-    --bgcolor-sidebar-context-lighten8: hsl(from var(--bgcolor-sidebar-context) h s calc(l + 8%));
-    --bgcolor-sidebar-context-lighten15: hsl(from var(--bgcolor-sidebar-context) h s calc(l + 15%));
-    --color-sidebar-context-darken15: hsl(from var(--bgcolor-sidebar-context) h s calc(l - 15%));
-    --color-sidebar-context-darken10: hsl(from var(--bgcolor-sidebar-context) h s calc(l - 10%));
-    --bgcolor-sidebar-context-lighten18: hsl(from var(--bgcolor-sidebar-context) h s calc(l + 18%));
-    --bgcolor-sidebar-context-lighten24: hsl(from var(--bgcolor-sidebar-context) h s calc(l + 24%));
-    @include override-list-group-item-for-pagetree(
-      var(--color-sidebar-context),
-      var(--bgcolor-sidebar-context-lighten8),
-      var(--bgcolor-sidebar-context-lighten15),
-      var(--color-sidebar-context-darken15),
-      var(--color-sidebar-context-darken10),
-      var(--bgcolor-sidebar-context-lighten18),
-      var(--bgcolor-sidebar-context-lighten24)
+  /*
+  * GROWI Sidebar
+  */
+  .grw-sidebar {
+    --gray-500: hsl(var(--gray-500-hs),var(--gray-500-l));
+    --gray-500-hs: 210,13%;
+    --gray-500-l: 61%;
+    // List
+    @include override-list-group-item(
+      $color-list,
+      $bgcolor-sidebar-list-group,
+      $color-list-hover,
+      $bgcolor-list-hover,
+      $color-list-active,
+      $bgcolor-list-active
     );
-    .grw-pagetree-triangle-btn {
-      @include mixins-buttons.button-outline-svg-icon-variant($secondary, $gray-200);
-    }
-    .btn-page-item-control {
-      @include button-outline-variant($gray-500, $gray-500, $secondary, transparent);
-      @include hover() {
-        background-color: var(--bgcolor-sidebar-context-lighten20);
+    // Pagetree
+    .grw-pagetree {
+      @include override-list-group-item-for-pagetree(
+        var(--color-sidebar-context),
+        hsl.lighten(var(--bgcolor-sidebar-context),8%),
+        hsl.lighten(var(--bgcolor-sidebar-context),15%),
+        hsl.darken(var(--color-sidebar-context),15%),
+        hsl.darken(var(--color-sidebar-context),10%),
+        hsl.lighten(var(--bgcolor-sidebar-context),18%),
+        hsl.lighten(var(--bgcolor-sidebar-context),24%)
+      );
+      .grw-pagetree-triangle-btn {
+        @include mixins-buttons.button-outline-svg-icon-variant(var(--secondary), $gray-200);
       }
-      &:not(:disabled):not(.disabled):active,
-      &:not(:disabled):not(.disabled).active {
-        background-color: var(--bgcolor-sidebar-context-lighten34);
+      .btn-page-item-control {
+        @include hsl-button.button-outline-variant(var(--gray-500), var(--gray-500), var(--secondary), transparent);
+        @include hover() {
+          background-color: hsl.lighten(var(--bgcolor-sidebar-context),20%);
+        }
+        &:not(:disabled):not(.disabled):active,
+        &:not(:disabled):not(.disabled).active {
+          background-color: hsl.lighten(var(--bgcolor-sidebar-context),34%);
+        }
+        box-shadow: none !important;
       }
-      box-shadow: none !important;
     }
-  }
-  .private-legacy-pages-link {
-    &:hover {
-      background: var(--bgcolor-list-hover);
+    .private-legacy-pages-link {
+      &:hover {
+        background: var(--bgcolor-list-hover);
+      }
     }
   }
-}
 
-.btn.btn-page-item-control {
-  @include button-outline-variant($gray-500, $gray-500, $secondary, transparent);
-  @include hover() {
-    background-color: $gray-700;
-  }
-  &:not(:disabled):not(.disabled):active,
-  &:not(:disabled):not(.disabled).active {
-    color: $gray-200;
-    background-color: $gray-600;
-  }
-  box-shadow: none !important;
-}
-
-/*
- * Popover
- */
-.popover {
-  background-color: var(--bgcolor-global);
-  border-color: $secondary;
-  .popover-header {
-    color: $white;
-    background-color: $secondary;
-    border-color: $secondary;
-  }
-  .popover-body {
-    color: inherit;
+  .btn.btn-page-item-control {
+    @include hsl-button.button-outline-variant(var(--gray-500), var(--gray-500), var(--secondary), transparent);
+    @include hover() {
+      background-color: $gray-700;
+    }
+    &:not(:disabled):not(.disabled):active,
+    &:not(:disabled):not(.disabled).active {
+      color: $gray-200;
+      background-color: $gray-600;
+    }
+    box-shadow: none !important;
   }
 
-  &.bs-popover-top .arrow {
-    &::before {
-      border-top-color: $secondary;
+  /*
+  * Popover
+  */
+  .popover {
+    background-color: var(--bgcolor-global);
+    border-color: var(--secondary);
+    .popover-header {
+      color: white;
+      background-color: var(--secondary);
+      border-color: var(--secondary);
     }
-
-    &::after {
-      border-top-color: var(--bgcolor-global);
+    .popover-body {
+      color: inherit;
     }
-  }
-  &.bs-popover-bottom .arrow {
-    &::before {
-      border-bottom-color: $secondary;
+
+    &.bs-popover-top .arrow {
+      &::before {
+        border-top-color: var(--secondary);
+      }
+
+      &::after {
+        border-top-color: var(--bgcolor-global);
+      }
     }
+    &.bs-popover-bottom .arrow {
+      &::before {
+        border-bottom-color: var(--secondary);
+      }
 
-    &::after {
-      border-bottom-color: var(--bgcolor-global);
+      &::after {
+        border-bottom-color: var(--bgcolor-global);
+      }
     }
-  }
-  &.bs-popover-right .arrow {
-    &::before {
-      border-right-color: $secondary;
+    &.bs-popover-right .arrow {
+      &::before {
+        border-right-color: var(--secondary);
+      }
+
+      &::after {
+        border-right-color: var(--bgcolor-global);
+      }
     }
+    &.bs-popover-left .arrow {
+      &::before {
+        border-left-color: var(--secondary);
+      }
 
-    &::after {
-      border-right-color: var(--bgcolor-global);
+      &::after {
+        border-left-color: var(--bgcolor-global);
+      }
     }
   }
-  &.bs-popover-left .arrow {
-    &::before {
-      border-left-color: $secondary;
-    }
 
-    &::after {
-      border-left-color: var(--bgcolor-global);
-    }
+  /*
+  * GROWI Grid Edit Modal
+  */
+  .grw-grid-edit-preview {
+    background: $gray-900;
   }
-}
 
-/*
- * GROWI Grid Edit Modal
- */
-.grw-grid-edit-preview {
-  background: $gray-900;
-}
+  /*
+  * Slack
+  */
+  .grw-slack-notification {
+    background-color: transparent;
+    $color-slack: #4b144c;
 
-/*
- * Slack
- */
-.grw-slack-notification {
-  background-color: transparent;
-  $color-slack: #4b144c;
+    .form-control {
+      background: var(--bgcolor-global);
+    }
 
-  .form-control {
-    background: var(--bgcolor-global);
-  }
+    .custom-control-label {
+      &::before {
+        background-color: var(--secondary);
+        border-color: transparent;
+      }
+      &::after {
+        background-color: darken($color-slack, 5%);
+        background-image: url(/images/icons/slack/slack-logo-dark-off.svg);
+      }
+    }
 
-  .custom-control-label {
-    &::before {
-      background-color: $secondary;
-      border-color: transparent;
+    .custom-control-input:checked ~ .custom-control-label {
+      &::before {
+        background-color: lighten($color-slack, 10%);
+      }
+      &::after {
+        background-color: darken($color-slack, 5%);
+        background-image: url(/images/icons/slack/slack-logo-dark-on.svg);
+      }
     }
-    &::after {
-      background-color: darken($color-slack, 5%);
-      // background-image: url(/images/icons/slack/slack-logo-dark-off.svg); -- should be specified in app -- 2022.12.09 Yuki Takei
+    .grw-slack-logo svg {
+      fill: #dd80de;
     }
-  }
 
-  .custom-control-input:checked ~ .custom-control-label {
-    &::before {
-      background-color: lighten($color-slack, 10%);
+    .grw-btn-slack {
+      background-color: black;
+      &:focus,
+      &:hover {
+        background-color: black;
+      }
     }
-    &::after {
-      background-color: darken($color-slack, 5%);
-      // background-image: url(/images/icons/slack/slack-logo-dark-on.svg); -- should be specified in app -- 2022.12.09 Yuki Takei
+
+    .grw-btn-slack-triangle {
+      color: var(--secondary);
     }
   }
-  .grw-slack-logo svg {
-    fill: #dd80de;
+
+  /*
+  * GROWI HandsontableModal
+  */
+  .grw-hot-modal-navbar {
+    background-color: var(--dark);
   }
 
-  .grw-btn-slack {
-    background-color: black;
-    &:focus,
-    &:hover {
-      background-color: black;
+  .wiki {
+    h1 {
+      border-color: hsl.lighten(var(--border-color-theme),10%);
+    }
+    h2 {
+      border-color: var(--border-color-theme);
     }
   }
 
-  .grw-btn-slack-triangle {
-    color: $secondary;
+  /*
+  * GROWI comment form
+  */
+  .comment-form {
+    #slack-mark-black {
+      display: none;
+    }
   }
-}
 
-/*
- * GROWI HandsontableModal
- */
-.grw-hot-modal-navbar {
-  background-color: $dark;
-}
-
-.wiki {
-  h1 {
-    border-color: lighten($border-color-theme, 10%);
-  }
-  h2 {
-    border-color: $border-color-theme;
+  .page-comments-row {
+    background: var(--bgcolor-subnav);
   }
-}
 
-/*
- * GROWI comment form
- */
-.comment-form {
-  #slack-mark-black {
-    display: none;
+  /*
+  * GROWI tags
+  */
+  .grw-tag-labels {
+    .grw-tag-label {
+      color: $color-tags;
+      background-color: $bgcolor-tags;
+    }
   }
-}
 
-.page-comments-row {
-  background: var(--bgcolor-subnav);
-}
-
-/*
- * GROWI tags
- */
-.grw-tag-labels {
-  .grw-tag-label {
-    color: $color-tags;
-    background-color: $bgcolor-tags;
+  /*
+  * GROWI popular tags
+  */
+  .grw-popular-tag-labels {
+    .grw-tag-label {
+      color: $color-tags;
+      background-color: $bgcolor-tags;
+    }
   }
-}
 
-/*
- * GROWI popular tags
- */
-.grw-popular-tag-labels {
-  .grw-tag-label {
-    color: $color-tags;
-    background-color: $bgcolor-tags;
+  /*
+  * admin settings
+  */
+  .admin-setting-header {
+    border-color: $border-color-global;
   }
-}
 
-/*
- * admin settings
- */
-.admin-setting-header {
-  border-color: $border-color-global;
-}
+  /*
+  * grw-side-contents
+  */
+  .grw-side-contents-sticky-container {
+    .grw-count-badge {
+      @include count-badge.count-badge($gray-400, $gray-700);
+    }
 
-/*
-* grw-side-contents
-*/
-.grw-side-contents-sticky-container {
-  .grw-count-badge {
-    @include count-badge.count-badge($gray-400, $gray-700);
-  }
+    .grw-border-vr {
+      border-color: $border-color-toc;
+    }
 
-  .grw-border-vr {
-    border-color: $border-color-toc;
+    .revision-toc {
+      border-color: $border-color-toc;
+    }
   }
 
-  .revision-toc {
-    border-color: $border-color-toc;
+  /*
+  * drawio
+  */
+  .drawio-viewer {
+    border-color: $border-color-global;
   }
-}
-
-/*
- * drawio
- */
-.drawio-viewer {
-  border-color: $border-color-global;
-}
 
-/*
- * modal
- */
-.grw-modal-head {
-  border-color: $border-color-global;
-}
+  /*
+  * modal
+  */
+  .grw-modal-head {
+    border-color: $border-color-global;
+  }
 
-/*
- * skeleton
- */
-.grw-skeleton {
+  /*
+  * skeleton
+  */
+  .grw-skeleton {
+  }
 }

+ 372 - 368
packages/app/src/styles/theme/_apply-colors-light.scss

@@ -6,453 +6,457 @@
 @use './hsl-functions' as hsl;
 
 // determine optional variables
-$color-list: var(--color-list,var(--color-global));
-$bgcolor-list: var(--bgcolor-list,var(--bgcolor-global));
-$color-list-hover: var(--color-list-hover,var(--color-global));
-$bgcolor-list-hover: var(--bgcolor-list-hover,var(--bgcolor-global));
-$bgcolor-list-active: var(--bgcolor-list-active,var(--primary-65));
-$color-list-active: var(--color-list-active,#{hsl.contrast(var(--primary-65))});
-$color-table: var(--color-table,var(--color-global));
-$bgcolor-table: var(--bgcolor-table,null);
-$border-color-theme: var(--border-color-theme,#{$gray-400});
-$border-color-table: var(--border-color-table,#{$gray-200});
-$color-table-hover: var(--color-table-hover,var(--color-table));
-$bgcolor-table-hover: var(--bgcolor-table-hover,rgba(black, 0.075));
-$bgcolor-sidebar-list-group: var(--bgcolor-sidebar-list-group,var(--bgcolor-list));
-$color-tags: var(--color-tags,var(--secondary));
-$bgcolor-tags: var(--bgcolor-tags,#{$gray-200});
-$border-color-global: var(--border-color-global,#{$gray-300});
-$border-color-toc: var(--border-color-toc,#{$gray-300});
-$color-dropdown: var(--color-dropdown,var(--color-global));
-$bgcolor-dropdown: var(--color-dropdown,var(--bgcolor-global));
-$color-dropdown-link: var(--color-dropdown-link,var(--color-global));
-$color-dropdown-link-hover: var(--color-dropdown-link-hover,var(--color-global));
-$color-dropdown-link-active: var(--color-dropdown-link-active,var(--color-reversal));
-$bgcolor-dropdown-link-hover: var(--bgcolor-dropdown-link-hover,hsl.lighten(var(--bgcolor-global),15%));
-$bgcolor-dropdown-link-active: var(--bgcolor-dropdown-link-active,var(--primary));
-
-
-// override bootstrap variables
-$text-muted: #{$gray-500};
-$table-color: $color-table;
-$table-bg: $bgcolor-table;
-$table-border-color: $border-color-table;
-$table-hover-color: $color-table-hover;
-$table-hover-bg: $bgcolor-table-hover;
-$border-color: $border-color-global;
-$dropdown-color: $color-dropdown;
-$dropdown-link-color: $color-dropdown-link;
-$dropdown-link-hover-color: $color-dropdown-link-hover;
-$dropdown-link-active-color: $color-dropdown-link-active;
-$dropdown-link-active-bg: $bgcolor-dropdown-link-active;
-
-@import './mixins/list-group';
-@import './reboot-bootstrap-text';
-@import './reboot-bootstrap-border-colors';
-@import './reboot-bootstrap-tables';
-@import './reboot-bootstrap-dropdown';
-
-// List Group
-@include override-list-group-item(
-  $color-list,
-  $bgcolor-sidebar-list-group,
-  $color-list-hover,
-  $bgcolor-list-hover,
-  $color-list-active,
-  $bgcolor-list-active
-);
-/*
- * Form
- */
-.form-control {
-  background-color: var(--bgcolor-global);
-}
+:root[data-theme='light'] {
+  $color-list: var(--color-list,var(--color-global));
+  $bgcolor-list: var(--bgcolor-list,var(--bgcolor-global));
+  $color-list-hover: var(--color-list-hover,var(--color-global));
+  $bgcolor-list-hover: var(--bgcolor-list-hover,var(--bgcolor-global));
+  $bgcolor-list-active: var(--bgcolor-list-active,hsl.lighten(var(--primary),65%));
+  $color-list-active: var(--color-list-active,hsl(var(--primary-hs), clamp(10%, (100% - var(--primary-l)  + 65% - 51%) * 1000, 95%)));
+  $color-table: var(--color-table,var(--color-global));
+  $bgcolor-table: var(--bgcolor-table,null);
+  $border-color-table: var(--border-color-table,#{$gray-200});
+  $color-table-hover: var(--color-table-hover,var(--color-table));
+  $bgcolor-table-hover: var(--bgcolor-table-hover,rgba(black, 0.075));
+  $bgcolor-sidebar-list-group: var(--bgcolor-sidebar-list-group,var(--bgcolor-list));
+  $color-tags: var(--color-tags,var(--secondary));
+  $bgcolor-tags: var(--bgcolor-tags,#{$gray-200});
+  $border-color-global: var(--border-color-global,#{$gray-300});
+  $border-color-toc: var(--border-color-toc,#{$gray-300});
+  $color-dropdown: var(--color-dropdown,var(--color-global));
+  $bgcolor-dropdown: var(--color-dropdown,var(--bgcolor-global));
+  $color-dropdown-link: var(--color-dropdown-link,var(--color-global));
+  $color-dropdown-link-hover: var(--color-dropdown-link-hover,var(--color-global));
+  $color-dropdown-link-active: var(--color-dropdown-link-active,var(--color-reversal));
+  $bgcolor-dropdown-link-hover: var(--bgcolor-dropdown-link-hover,hsl.lighten(var(--bgcolor-global),15%));
+  $bgcolor-dropdown-link-active: var(--bgcolor-dropdown-link-active,var(--primary));
+
+
+  // override bootstrap variables
+  $text-muted: $gray-500;
+  $table-color: $color-table;
+  $table-bg: $bgcolor-table;
+  $table-border-color: $border-color-table;
+  $table-hover-color: $color-table-hover;
+  $table-hover-bg: $bgcolor-table-hover;
+  $border-color: $border-color-global;
+  $dropdown-color: $color-dropdown;
+  $dropdown-link-color: $color-dropdown-link;
+  $dropdown-link-hover-color: $color-dropdown-link-hover;
+  $dropdown-link-active-color: $color-dropdown-link-active;
+  $dropdown-link-active-bg: $bgcolor-dropdown-link-active;
+
+  @import './mixins/list-group';
+  @import './reboot-bootstrap-text';
+  @import './reboot-bootstrap-border-colors';
+  @import './reboot-bootstrap-tables';
+  @import './reboot-bootstrap-dropdown';
+
+  // List Group
+  @include override-list-group-item(
+    $color-list,
+    $bgcolor-sidebar-list-group,
+    $color-list-hover,
+    $bgcolor-list-hover,
+    $color-list-active,
+    $bgcolor-list-active
+  );
+  /*
+  * Form
+  */
+  .form-control {
+    background-color: var(--bgcolor-global);
+  }
 
-.form-control::placeholder {
-  color: #{hsl.darken(var(--bgcolor-global), 20%)};
-}
+  .form-control::placeholder {
+    color: hsl.darken(var(--bgcolor-global), 20%);
+  }
 
-.form-control[disabled],
-.form-control[readonly] {
-  color: #{hsl.lighten(var(--color-global),10%)};
-  background-color: #{hsl.darken(var(--color-global),5%)};
-}
+  .form-control[disabled],
+  .form-control[readonly] {
+    color: hsl.lighten(var(--color-global),10%);
+    background-color: hsl.darken(var(--color-global),5%);
+  }
 
-/*
- * card
- */
-.card.card-disabled {
-  background-color: var(--background-color);
-  border-color: #{$gray-200};
-}
+  /*
+  * card
+  */
+  .card.card-disabled {
+    background-color: var(--background-color);
+    border-color: $gray-200;
+  }
 
-/*
- * GROWI Login form
- */
-.nologin {
-  // background color
-  --color-gradient: #3e4d6c;
-  background: linear-gradient(45deg, #{hsl.darken(var(--color-gradient), 30%)} 0%, hsla(340, 100%, 55%, 0) 70%),
-    linear-gradient(135deg, #{var.$growi-green} 10%, hsla(225, 95%, 50%, 0) 70%), linear-gradient(225deg, #{var.$growi-blue} 10%, hsla(140, 90%, 50%, 0) 80%),
-    linear-gradient(315deg, #{hsl.darken(var(--color-gradient), 25%)} 100%, hsla(35, 95%, 55%, 0) 70%);
+  /*
+  * GROWI Login form
+  */
+  .nologin {
+    // background color
+    --color-gradient: #3e4d6c;
+    background: linear-gradient(45deg, hsl.darken(var(--color-gradient), 30%) 0%, hsla(340, 100%, 55%, 0) 70%),
+      linear-gradient(135deg, var.$growi-green 10%, hsla(225, 95%, 50%, 0) 70%), linear-gradient(225deg, var.$growi-blue 10%, hsla(140, 90%, 50%, 0) 80%),
+      linear-gradient(315deg, hsl.darken(var(--color-gradient), 25%) 100%, hsla(35, 95%, 55%, 0) 70%);
 
-  .noLogin-header {
-    background-color: rgba(white, 0.5);
+    .noLogin-header {
+      background-color: rgba(white, 0.5);
 
-    .logo {
-      background-color: rgba(black, 0);
-      fill: rgba(black, 0.5);
-    }
+      .logo {
+        background-color: rgba(black, 0);
+        fill: rgba(black, 0.5);
+      }
 
-    h1 {
-      color: rgba(black, 0.5);
+      h1 {
+        color: rgba(black, 0.5);
+      }
     }
-  }
 
-  .noLogin-dialog {
-    background-color: rgba(white, 0.5);
-  }
+    .noLogin-dialog {
+      background-color: rgba(white, 0.5);
+    }
 
-  .dropdown-with-icon {
-    .dropdown-toggle {
-      color: white;
-      background-color: rgba($gray-600, 0.7);
-      box-shadow: unset;
-      &:focus {
+    .dropdown-with-icon {
+      .dropdown-toggle {
         color: white;
         background-color: rgba($gray-600, 0.7);
+        box-shadow: unset;
+        &:focus {
+          color: white;
+          background-color: rgba($gray-600, 0.7);
+        }
+      }
+      i {
+        color: darken(white, 30%);
+        background-color: rgba($gray-700, 0.7);
       }
     }
-    i {
-      color: darken(white, 30%);
-      background-color: rgba($gray-700, 0.7);
-    }
-  }
 
-  .input-group {
-    .input-group-text {
-      color: darken(white, 30%);
-      background-color: rgba($gray-700, 0.7);
-    }
+    .input-group {
+      .input-group-text {
+        color: darken(white, 30%);
+        background-color: rgba($gray-700, 0.7);
+      }
 
-    .form-control {
-      color: white;
-      background-color: rgba($gray-600, 0.7);
-      box-shadow: unset;
+      .form-control {
+        color: white;
+        background-color: rgba($gray-600, 0.7);
+        box-shadow: unset;
 
-      &::placeholder {
-        color: darken(white, 30%);
+        &::placeholder {
+          color: darken(white, 30%);
+        }
       }
     }
-  }
 
-  // footer link text
-  .link-growi-org {
-    color: rgba(black, 0.4);
+    // footer link text
+    .link-growi-org {
+      color: rgba(black, 0.4);
 
-    &:hover,
-    &.focus {
-      color: black;
+      &:hover,
+      &.focus {
+        color: black;
 
-      .growi {
-        color: darken(var.$growi-green, 20%);
-      }
+        .growi {
+          color: darken(var.$growi-green, 20%);
+        }
 
-      .org {
-        color: darken(var.$growi-blue, 15%);
+        .org {
+          color: darken(var.$growi-blue, 15%);
+        }
       }
     }
   }
-}
 
-/*
- * GROWI subnavigation
- */
-.grw-subnav {
-  background-color: var(--bgcolor-subnav);
-}
+  /*
+  * GROWI subnavigation
+  */
+  .grw-subnav {
+    background-color: var(--bgcolor-subnav);
+  }
 
-.grw-subnav-fixed-container .grw-subnav {
-  background-color: #{hsl.alpha(var(--bgcolor-subnav),15%)};
-}
+  .grw-subnav-fixed-container .grw-subnav {
+    background-color: hsl.alpha(var(--bgcolor-subnav),15%);
+  }
 
-.grw-page-editor-mode-manager {
-  .btn-outline-primary {
-    &:hover {
-      color: var(--primary);
-      background-color: #{$gray-200};
+  .grw-page-editor-mode-manager {
+    .btn-outline-primary {
+      &:hover {
+        color: var(--primary);
+        background-color: $gray-200;
+      }
     }
   }
-}
-
-.grw-drawer-toggler {
-  @include button-variant($light, $light);
-  @include mixins-buttons.button-svg-icon-variant($light, $light);
-  color: #{$gray-500};
-  box-shadow: none !important;
-}
 
-/*
- * GROWI Sidebar
- */
-.grw-sidebar {
-  // List
-  @include override-list-group-item(
-    $color-list,
-    $bgcolor-sidebar-list-group,
-    $color-list-hover,
-    $bgcolor-list-hover,
-    $color-list-active,
-    $bgcolor-list-active
-  );
-  // sidebar-centent-bg
-  .grw-navigation-wrap {
-    // Drop a shadow on the light theme. The dark theme makes '$ bgcolor-sidebar-context' brighter than the body.
-    box-shadow: 0px 0px 3px rgba(black, 0.24);
-  }
-  // Pagetree
-  .grw-pagetree {
-    @include override-list-group-item-for-pagetree(
-      var(--color-sidebar-context),
-      #{hsl.darken(var(--bgcolor-sidebar-context),5%)},
-      #{hsl.darken(var(--bgcolor-sidebar-context),12%)},
-      #{hsl.lighten(var(--color-sidebar-context),10%)},
-      #{hsl.lighten(var(--color-sidebar-context),8%)},
-      #{hsl.darken(var(--bgcolor-sidebar-context),15%)},
-      #{hsl.darken(var(--bgcolor-sidebar-context),24%)}
+  .grw-drawer-toggler {
+    @include button-variant($light, $light);
+    @include mixins-buttons.button-svg-icon-variant($light, $light);
+    color: $gray-500;
+    box-shadow: none !important;
+  }
+
+  /*
+  * GROWI Sidebar
+  */
+  .grw-sidebar {
+    // List
+    @include override-list-group-item(
+      $color-list,
+      $bgcolor-sidebar-list-group,
+      $color-list-hover,
+      $bgcolor-list-hover,
+      $color-list-active,
+      $bgcolor-list-active
     );
-
-    .grw-pagetree-triangle-btn {
-      @include mixins-buttons.button-outline-svg-icon-variant(#{gray-400}, var(--primary));
+    // sidebar-centent-bg
+    .grw-navigation-wrap {
+      // Drop a shadow on the light theme. The dark theme makes '$ bgcolor-sidebar-context' brighter than the body.
+      box-shadow: 0px 0px 3px rgba(black, 0.24);
     }
-  }
-  .private-legacy-pages-link {
-    &:hover {
-      background: $bgcolor-list-hover;
+    // Pagetree
+    .grw-pagetree {
+      @include override-list-group-item-for-pagetree(
+        var(--color-sidebar-context),
+        hsl.darken(var(--bgcolor-sidebar-context),5%),
+        hsl.darken(var(--bgcolor-sidebar-context),12%),
+        hsl.lighten(var(--color-sidebar-context),10%),
+        hsl.lighten(var(--color-sidebar-context),8%),
+        hsl.darken(var(--bgcolor-sidebar-context),15%),
+        hsl.darken(var(--bgcolor-sidebar-context),24%)
+      );
+
+      .grw-pagetree-triangle-btn {
+        @include mixins-buttons.button-outline-svg-icon-variant($gray-400, var(--primary));
+      }
+    }
+    .private-legacy-pages-link {
+      &:hover {
+        background: $bgcolor-list-hover;
+      }
     }
   }
-}
-
-.btn.btn-page-item-control {
-  --gray-500: hsl(var(--gray-500-hs),var(--gray-500-l));
-  --gray-500-hs: 210,13%;
-  --gray-500-l: 61%;
-  @include hsl-button.button-outline-variant(var(--gray-500), var(--primary), #{hsl.lighten(var(--primary), 52%)}, transparent);
-  @include hover() {
-    background-color: #{hsl.lighten(var(--primary), 58%)};
-  }
-  &:not(:disabled):not(.disabled):active,
-  &:not(:disabled):not(.disabled).active {
-    color: var(--primary);
-  }
-  box-shadow: none !important;
-}
 
-/*
- * GROWI page list
- */
-.page-list {
-  .page-list-ul {
-    > li {
-      > span.page-list-meta {
-        color: #{hsl.lighten(var(--color-global),10%)};
+  .btn.btn-page-item-control {
+    --gray-500: hsl(var(--gray-500-hs),var(--gray-500-l));
+    --gray-500-hs: 210,13%;
+    --gray-500-l: 61%;
+    @include hsl-button.button-outline-variant(var(--gray-500), var(--primary), #{hsl.lighten(var(--primary), 52%)}, transparent);
+    @include hover() {
+      background-color: hsl.lighten(var(--primary), 58%);
+    }
+    &:not(:disabled):not(.disabled):active,
+    &:not(:disabled):not(.disabled).active {
+      color: var(--primary);
+    }
+    box-shadow: none !important;
+  }
+
+  /*
+  * GROWI page list
+  */
+  .page-list {
+    .page-list-ul {
+      > li {
+        > span.page-list-meta {
+          color: hsl.lighten(var(--color-global),10%);
+        }
       }
     }
-  }
-  // List group
-  .list-group-item {
-    .page-list-snippet {
-      color: #{hsl.lighten(var(--color-global),10%)};
+    // List group
+    .list-group-item {
+      &.active {
+        background-color: hsl.lighten(var(--primary),77%) !important;
+      }
+      &.list-group-item-action:hover {
+        background-color: hsl.lighten(var(--primary),72%) !important;
+      }
+      .page-list-snippet {
+        color: hsl.lighten(var(--color-global),10%);
+      }
     }
   }
-}
 
-/*
- * GROWI ToC
- */
-.revision-toc-content {
-  ::marker {
-    color: #{hsl.darken(var(--bgcolor-global),20%)};
+  /*
+  * GROWI ToC
+  */
+  .revision-toc-content {
+    ::marker {
+      color: hsl.darken(var(--bgcolor-global),20%);
+    }
   }
-}
 
-/*
- * GROWI Editor
- */
-.grw-editor-navbar-bottom {
-  background-color: #{$gray-50};
+  /*
+  * GROWI Editor
+  */
+  .grw-editor-navbar-bottom {
+    background-color: $gray-50;
 
-  #slack-mark-white {
-    display: none;
-  }
+    #slack-mark-white {
+      display: none;
+    }
 
-  .input-group-text {
-    margin-right: 1px;
-    color: var(--secondary);
-    border-color: var(--light);
-  }
+    .input-group-text {
+      margin-right: 1px;
+      color: var(--secondary);
+      border-color: var(--light);
+    }
 
-  .btn.btn-outline-secondary {
-    border-color: $border-color;
+    .btn.btn-outline-secondary {
+      border-color: $border-color;
+    }
   }
-}
 
-/*
- * GROWI Link Edit Modal
- */
-.link-edit-modal {
-  span i {
-    color: #{$gray-400};
+  /*
+  * GROWI Link Edit Modal
+  */
+  .link-edit-modal {
+    span i {
+      color: $gray-400;
+    }
   }
-}
 
-/*
- * GROWI Grid Edit Modal
- */
+  /*
+  * GROWI Grid Edit Modal
+  */
 
-.grw-grid-edit-preview {
-  background: #{$gray-100};
-}
+  .grw-grid-edit-preview {
+    background: $gray-100;
+  }
 
-/*
- * Slack
- */
-.grw-slack-notification {
-  background-color: white;
-  --color-slack: hsl(var(--color-slack-hs),var(--color-slack-l));
-  --color-slack-hs: 299,58%;
-  --color-slack-l: 19%;
+  /*
+  * Slack
+  */
+  .grw-slack-notification {
+    background-color: white;
+    $color-slack: #4b144c;
 
-  .form-control {
-    background: white;
-  }
+    .form-control {
+      background: white;
+    }
 
-  .custom-control-label {
-    &::before {
-      background-color: #{$gray-200};
-      border-color: transparent;
+    .custom-control-label {
+      &::before {
+        background-color: $gray-200;
+        border-color: transparent;
+      }
+      &::after {
+        background-color: white;
+        background-image: url(/images/icons/slack/slack-logo-off.svg);
+      }
     }
-    &::after {
-      background-color: white;
-      background-image: url(/images/icons/slack/slack-logo-off.svg);
+    .custom-control-input:checked ~ .custom-control-label {
+      &::before {
+        background-color: lighten($color-slack, 60%);
+      }
+      &::after {
+        background-image: url(/images/icons/slack/slack-logo-on.svg);
+      }
     }
-  }
-  .custom-control-input:checked ~ .custom-control-label {
-    &::before {
-      background-color: #{hsl.lighten(var(--color-slack), 60%)};
+    .grw-slack-logo svg {
+      fill: #af30b0;
+    }
+
+    .grw-btn-slack {
+      background-color: white;
+
+      &:hover,
+      &:focus {
+        background-color: white;
+      }
     }
-    &::after {
-      background-image: url(/images/icons/slack/slack-logo-on.svg);
+
+    .grw-btn-slack-triangle {
+      color: var(--secondary);
     }
   }
-  .grw-slack-logo svg {
-    fill: #af30b0;
-  }
 
-  .grw-btn-slack {
-    background-color: white;
+  /*
+  * GROWI HandsontableModal
+  */
+  .grw-hot-modal-navbar {
+    background-color: var(--light);
+  }
 
-    &:hover,
-    &:focus {
-      background-color: white;
+  .wiki {
+    h1 {
+      border-color: var(--border-color-theme);
+    }
+    h2 {
+      border-color: var(--border-color-theme);
     }
   }
 
-  .grw-btn-slack-triangle {
-    color: var(--secondary);
+  /*
+  * GROWI comment form
+  */
+  .comment-form {
+    #slack-mark-white {
+      display: none;
+    }
   }
-}
 
-/*
- * GROWI HandsontableModal
- */
-.grw-hot-modal-navbar {
-  background-color: var(--light);
-}
-
-.wiki {
-  h1 {
-    border-color: $border-color-theme;
+  .page-comments-row {
+    background: var(--bgcolor-subnav);
   }
-  h2 {
-    border-color: $border-color-theme;
+
+  /*
+  * GROWI tags
+  */
+  .grw-tag-labels {
+    .grw-tag-label {
+      color: $color-tags;
+      background-color: $bgcolor-tags;
+    }
   }
-}
 
-/*
- * GROWI comment form
- */
-.comment-form {
-  #slack-mark-white {
-    display: none;
+  /*
+  * GROWI popular tags
+  */
+  .grw-popular-tag-labels {
+    .grw-tag-label {
+      color: $color-tags;
+      background-color: $bgcolor-tags;
+    }
   }
-}
 
-.page-comments-row {
-  background: var(--bgcolor-subnav);
-}
+  /*
+  * grw-side-contents
+  */
+  .grw-side-contents-sticky-container {
+    .grw-count-badge {
+      @include count-badge.count-badge($gray-600, $gray-200);
+    }
 
-/*
- * GROWI tags
- */
-.grw-tag-labels {
-  .grw-tag-label {
-    color: $color-tags;
-    background-color: $bgcolor-tags;
+    .grw-border-vr {
+      border-color: $border-color-toc;
+    }
+    .revision-toc {
+      border-color: $border-color-toc;
+    }
   }
-}
 
-/*
- * GROWI popular tags
- */
-.grw-popular-tag-labels {
-  .grw-tag-label {
-    color: $color-tags;
-    background-color: $bgcolor-tags;
+  /*
+  * drawio
+  */
+  .drawio-viewer {
+    border-color: $border-color-global;
   }
-}
 
-/*
-* grw-side-contents
-*/
-.grw-side-contents-sticky-container {
-  .grw-count-badge {
-    @include count-badge.count-badge(#{$gray-600}, #{$gray-200});
+  /*
+  * admin settings
+  */
+  .admin-setting-header {
+    border-color: $border-color;
   }
 
-  .grw-border-vr {
-    border-color: $border-color-toc;
+  /*
+  * modal
+  */
+  .grw-modal-head {
+    border-color: $border-color-global;
   }
-  .revision-toc {
-    border-color: $border-color-toc;
-  }
-}
 
-/*
- * drawio
- */
-.drawio-viewer {
-  border-color: $border-color-global;
-}
-
-/*
- * admin settings
- */
-.admin-setting-header {
-  border-color: $border-color;
-}
-
-/*
- * modal
- */
-.grw-modal-head {
-  border-color: $border-color-global;
-}
-
-/*
- * skeleton
- */
-.grw-skeleton {
-  background-color: #{hsl.lighten(var(--bgcolor-navbar),10%)};
+  /*
+  * skeleton
+  */
+  .grw-skeleton {
+    background-color: hsl.lighten(var(--bgcolor-navbar),10%);
+  }
 }
-

+ 31 - 30
packages/app/src/styles/theme/_apply-colors.scss

@@ -17,7 +17,6 @@ $bgcolor-sidebar-nav-item-active: var(--bgcolor-sidebar-nav-item-active,#{hsl.da
 $text-shadow-sidebar-nav-item-active: var(--text-shadow-sidebar-nav-item-active,1px 1px 2px var(--primary));
 $bgcolor-inline-code: var(--bgcolor-inline-code, #{$gray-100});
 $color-inline-code: var(--color-inline-code, #{darken($red, 15%)});
-$border-color-theme: var(--border-color-theme,#{$gray-400});
 $bordercolor-inline-code: var(--bordercolor-inline-code, #{$gray-400});
 $bordercolor-nav-tabs: var(--bordercolor-nav-tabs, #{$gray-300});
 $bordercolor-nav-tabs-hover: var(--bordercolor-nav-tabs-hover,#{$gray-200} #{$gray-200} #{$bordercolor-nav-tabs});
@@ -88,6 +87,7 @@ code:not([class^='language-']) {
 // Form
 .form-control {
   @include form-control-focus();
+  border: none;
 }
 
 // Tabs
@@ -105,16 +105,16 @@ code:not([class^='language-']) {
 ul.pagination {
   li.page-item.disabled {
     button.page-link {
-      color: #{$gray-400};
+      color: $gray-400;
     }
   }
   li.page-item.active {
     button.page-link {
-      color: #{hsl.contrast(var(--primary))};
+      color: hsl.contrast(var(--primary));
       background-color: var(--primary);
       &:hover,
       &:focus {
-        color: #{hsl.contrast(var(--primary))};
+        color: hsl.contrast(var(--primary));
         background-color: var(--primary);
       }
     }
@@ -156,11 +156,11 @@ ul.pagination {
   &:hover {
     svg {
       .group1 {
-        fill: #{var.$growi-green};
+        fill: var.$growi-green;
       }
 
       .group2 {
-        fill: #{var.$growi-blue};
+        fill: var.$growi-blue;
       }
     }
   }
@@ -187,12 +187,12 @@ ul.pagination {
 
   // for https://youtrack.weseek.co.jp/issue/GW-2603
   .search-typeahead {
-    background-color: #{hsl.alpha(var(--bgcolor-global),10%)};
+    background-color: hsl.alpha(var(--bgcolor-global),10%);
   }
 }
 
 .grw-sidebar {
-  $color-resize-button: var(--color-resize-button--,var(--color-global));
+  $color-resize-button: var(--color-resize-button,var(--color-global));
   $bgcolor-resize-button: var(--bgcolor-resize-button,white);
   $color-resize-button-hover: var(--color-resize-button-hover,var(--color-reversal));
   $bgcolor-resize-button-hover: var(--bgcolor-resize-button-hover,#{hsl.lighten(var(--bgcolor-resize-button), 5%)});
@@ -241,7 +241,7 @@ ul.pagination {
       }
       // fukidashi
       &:after {
-        border-right-color: var(--bgcolor-sidebar-context);
+        border-right-color: var(--bgcolor-sidebar-context) !important;
       }
     }
   }
@@ -291,17 +291,17 @@ ul.pagination {
   .grw-recent-changes {
     .list-group {
       .list-group-item {
-        background-color: transparent;
+        background-color: transparent !important;
 
         .icon-lock {
           color: var(--color-link);
         }
 
         .grw-recent-changes-item-lower {
-          color: #{$gray-500};
+          color: $gray-500;
 
           svg {
-            fill: #{$gray-500};
+            fill: $gray-500;
           }
         }
       }
@@ -326,12 +326,12 @@ ul.pagination {
  */
 .modal {
   .modal-header {
-    border-bottom-color: $border-color-theme;
+    border-bottom-color: var(--border-color-theme);
     .modal-title {
       color: $color-modal-header;
     }
     .close {
-      color: #{hsl.alpha(var(--primary),50%)};
+      color: hsl.alpha(var(--primary),50%);
 
       &:hover {
         opacity: 0.9;
@@ -344,7 +344,7 @@ ul.pagination {
   }
 
   .modal-footer {
-    border-top-color: $border-color-theme;
+    border-top-color: var(--border-color-theme);
   }
 }
 
@@ -352,7 +352,7 @@ ul.pagination {
   .nav-item {
     &:hover,
     &:focus {
-      background-color: #{hsl.alpha(var(--color-link),10%)};
+      background-color: hsl.alpha(var(--color-link),10%);
     }
     .nav-link {
       -webkit-appearance: none;
@@ -396,7 +396,7 @@ ul.pagination {
 
 .admin-bot-card {
   .grw-botcard-title-active {
-    color: #{$gray-200};
+    color: $gray-200;
   }
 }
 
@@ -405,7 +405,7 @@ ul.pagination {
  */
 .admin-page {
   span.slider {
-    background-color: #{$gray-300};
+    background-color: $gray-300;
 
     &:before {
       background-color: white;
@@ -468,6 +468,7 @@ ul.pagination {
   // List group
   .list-group {
     .list-group-item {
+      background-color: var(--bgcolor-global) !important;
       a {
         svg {
           fill: var(--color-global);
@@ -488,8 +489,8 @@ ul.pagination {
       }
 
       &.list-group-item-action {
+        background-color: var(--bgcolor-list);
         &.active {
-          background-color: #{hsl.lighten(var(--bgcolor-global),76%)};
           border-left-color: var(--primary);
         }
       }
@@ -502,14 +503,14 @@ ul.pagination {
  */
 .layout-root.editing {
   .main {
-    background-color: #{hsl.darken(var(--bgcolor-global),2%)};
+    background-color: hsl.darken(var(--bgcolor-global),2%);
 
     .page-editor-editor-container {
-      border-right-color: $border-color-theme;
+      border-right-color: var(--border-color-theme);
 
       .navbar-editor {
         background-color: var(--bgcolor-global); // same color with active tab
-        border-bottom-color: $border-color-theme;
+        border-bottom-color: var(--border-color-theme);
       }
     }
 
@@ -544,7 +545,7 @@ body.editing-sidebar {
 }
 
 .grid-preview-col-0 {
-  background: #{var.$growi-blue};
+  background: var.$growi-blue;
 }
 
 .grid-preview-col-1 {
@@ -556,7 +557,7 @@ body.editing-sidebar {
 }
 
 .grid-preview-col-3 {
-  background: #{var.$growi-green};
+  background: var.$growi-green;
 }
 
 /*
@@ -585,8 +586,8 @@ body.editing-sidebar {
     .nav.nav-tabs {
       > li > a.active {
         background: transparent;
-        border-bottom: solid 1px #{hsl.darken(var(--bgcolor-global),4%)};
-        border-bottom-color: #{hsl.darken(var(--bgcolor-global),4%)};
+        border-bottom: solid 1px hsl.darken(var(--bgcolor-global),4%);
+        border-bottom-color: hsl.darken(var(--bgcolor-global),4%);
       }
     }
   }
@@ -621,8 +622,8 @@ mark.rbt-highlight-text {
  * GROWI page content footer
  */
 .page-content-footer {
-  background-color: #{hsl.darken(var(--bgcolor-global),2%)};
-  border-top-color: $border-color-theme;
+  background-color: hsl.darken(var(--bgcolor-global),2%);
+  border-top-color: var(--border-color-theme);
 }
 
 /*
@@ -659,11 +660,11 @@ mark.rbt-highlight-text {
 
 .grw-fab {
   .btn-create-page {
-    fill: #{hsl.contrast(var(--primary))};
+    fill: hsl.contrast(var(--primary)) !important;
   }
 
   .btn-scroll-to-top {
-    fill: #{$gray-900};
+    fill: $gray-900;
   }
 }
 

+ 24 - 14
packages/preset-themes/src/styles/default.scss

@@ -21,7 +21,6 @@
   --primary: hsl(var(--primary-hs),var(--primary-l));
   --primary-hs: 216.7,65%;
   --primary-l: 20.2%;
-  --primary-65: hsl(216.7,65%,85.2%);
   --accent: hsl(var(--accent-hs),var(--accent-l));
   --accent-hs: 198.6,74.2%;
   --accent-l: 48.6%;
@@ -56,10 +55,10 @@
   // List Group colors
   --color-list: var(--color-global); // optional
   --bgcolor-list: var(--bgcolor-global); // optional
-  // --color-list-hover: va(--color-global); // optional
+  // --color-list-hover: var(--color-global); // optional
   --bgcolor-list-hover: #{hsl.lighten(var(--bgcolor-global),3%)};// optional
   // --color-list-active: white ; // optional
-  // --bgcolor-list-active: var(--primary); // optional
+  --bgcolor-list-active: #{hsl.lighten(var(--bgcolor-global),3%)}; // optional
   // --color-page-list-group-item-meta: #{$gray-500}; // optional
 
   // Table colors
@@ -89,6 +88,7 @@
   --bgcolor-sidebar-l: var(--primary-l);
   --bgcolor-sidebar-nav-item-active: rgba(black, 0.37); // optional
   --text-shadow-sidebar-nav-item-active: 0px 0px 10px #0099ff; // optional
+
   // Sidebar resize button
   --color-resize-button: var(--color-reversal);
   --bgcolor-resize-button: var(--accent);
@@ -96,6 +96,7 @@
   --bgcolor-resize-button-l: var(--accent-l);
   --color-resize-button-hover: var(--color-reversal);
   --bgcolor-resize-button-hover: #{hsl.lighten(var(--bgcolor-resize-button), 5%)};
+
   // Sidebar contents
   --color-sidebar-context: var(--color-global);
   --color-sidebar-context-hs: var(--color-global-hs);
@@ -103,6 +104,7 @@
   --bgcolor-sidebar-context: #{hsl.lighten(var(--primary),77%)};
   --bgcolor-sidebar-context-hs: var(--primary-hs);
   --bgcolor-sidebar-context-l: calc(var(--primary-l) + 77%);
+
   // Sidebar list group
   --bgcolor-sidebar-list-group: #{$gray-50}; // optional
 
@@ -125,6 +127,7 @@
   --color-editor-icons: var(--color-global);
 
   // Border colors
+  --border-color-theme: #{$gray-400};
   --bordercolor-inline-code: #{$gray-400}; // optional
 
   // Dropdown colors
@@ -149,7 +152,7 @@
 :root[data-theme='dark'] {
   --primary: hsl(var(--primary-hs),var(--primary-l));
   --primary-hs: 216.8,85.1%;
-  --prymary-l: 44.7;
+  --primary-l: 44.7%;
   --accent: hsl(var(--accent-hs),var(--accent-l));
   --accent-hs: 307,100%;
   --accent-l: 43%;
@@ -164,7 +167,7 @@
   --bgcolor-keyword-highlighted: #{darken($grw-marker-red, 30%)};
 
   // Font colors
-  --color-global: #{$gray-400};
+  --color-global: hsl(var(--color-global-hs),var(--color-global-l));
   --color-global-hs: 0,0%;
   --color-global-l: 74%;
   --color-reversal: #{$gray-900};
@@ -182,7 +185,7 @@
 
   // List Group colors
   --color-list: var(--color-global); // optional
-  // --bgcolor-list: var(--bgcolor-global); // optional
+  --bgcolor-list: var(--bgcolor-global); // optional
   // --color-list-hover: var(--color-global); // optional
   --bgcolor-list-hover: #{hsl.lighten(var(--bgcolor-global),3%)}; // optional
   // --color-list-active: white ; // optional
@@ -207,12 +210,14 @@
   --fillcolor-logo-mark: #{$gray-700};
 
   // Sidebar
-  --bgcolor-sidebar: hsl(var(--bgcolor-sidebar-hs),var(---gcolor-sidebar-l));
-  $bgcolor-sidebar: #122c55;
+  --bgcolor-sidebar: hsl(var(--bgcolor-sidebar-hs),var(--bgcolor-sidebar-l));
   --bgcolor-sidebar-hs: 216.7,65%;
-  --bgcolor-sidebar-l: 33.3%;
+  --bgcolor-sidebar-l: 20.2%;
   --bgcolor-sidebar-nav-item-active: rgba(#969494, 0.3); // optional
   --text-shadow-sidebar-nav-item-active: 0px 0px 10px #0099ff; // optional
+  --bgcolor-sidebar-context: hsl(var(--bgcolor-sidebar-context-hs),var(--bgcolor-sidebar-context-l));
+  --bgcolor-sidebar-context-hs: 228,12%;
+  --bgcolor-sidebar-context-l: 16%;
   // Sidebar resize button
   --color-resize-button: white;
   --bgcolor-resize-button: var(--accent);
@@ -226,29 +231,34 @@
   --bgcolor-sidebar-list-group: #1c2a3e; // optional
 
   // Subnavigation
-  --bgcolor-subnav: --bgcolor-list-hover: #{hsl.lighten(var(--bgcolor-global),3%)};  // optional
+  --bgcolor-subnav: hsl(var(--bgcolor-subnav-hs),var(--bgcolor-subnav-l));
+  --bgcolor-subnav-hs: var(--bgcolor-global-hs);
+  --bgcolor-subnav-l: calc(var(--bgcolor-global-l) + 4%);
 
   // Tabs
   --bordercolor-nav-tabs: #{$gray-700}; // optional
-  // $color-nav-tabs-link-active: #; //optional
+  // --color-nav-tabs-link-active: #; //optional
   --bordercolor-nav-tabs-hover: #666 #666 var(--bordercolor-nav-tabs); // optional
   --bordercolor-nav-tabs-active: var(--bordercolor-nav-tabs) var(--bordercolor-nav-tabs) var(--bgcolor-global); // optional
 
   // Tags
-  // $color-tags: #; //optional
-  // $bgcolor-tags: #; //optional
+  // --color-tags: #; //optional
+  // --bgcolor-tags: #; //optional
 
   // Icon colors
   --color-editor-icons: var(--color-global);
 
   // Border colors
+  --border-color-theme: hsl(var(--border-color-theme-hs),var(--border-color-theme-l));
+  --border-color-theme-hs: 210,13%;
+  --border-color-theme-l: 71%;
   --bordercolor-inline-code: var(--secondary); // optional
 
   // admin theme box
   --color-theme-color-box: var(--primary);
 
   @import './theme/apply-colors';
-  // @import './theme/apply-colors-dark';
+  @import './theme/apply-colors-dark';
 
   //Button
   .btn-group.grw-page-editor-mode-manager {

+ 558 - 551
packages/preset-themes/src/styles/theme/_apply-colors-dark.scss

@@ -1,551 +1,558 @@
-@use '../variables' as var;
-@use '../bootstrap/init' as *;
-@use '../atoms/mixins/buttons' as mixins-buttons;
-@use './mixins/count-badge';
-
-// determine optional variables
-$color-list: var(--color-list,var(--color-global));
-$bgcolor-list: var(--bgcolor-list,var(--bgcolor-global));
-$color-list-hover: var(--color-list-hover,var(--color-global));
-$color-list-active: $color-reversal !default;
-$bgcolor-list-active: var(--bgcolor-list-active,var(--primary));
-$bgcolor-subnav: var(--bgcolor-subnav);
-$color-table: var(--color-table,white);
-$bgcolor-table: #343a40 !default;
-$border-color-table: lighten($bgcolor-table, 7.5%) !default;
-$color-table-hover: rgba(white, 0.075) !default;
-$bgcolor-table-hover: lighten($bgcolor-table, 7.5%) !default;
-$bgcolor-sidebar-list-group: var(--bgcolor-sidebar-list-group,var(--bgcolor-list));
-$color-tags: #949494 !default;
-$bgcolor-tags: $dark !default;
-$border-color-global: $gray-500 !default;
-$border-color-toc: $border-color-global !default;
-$color-dropdown: var(--color-dropdown,var(--color-global));
-$bgcolor-dropdown: var(--bgcolor-dropdown,var(--bgcolor-global));
-$color-dropdown-link: var(--color-dropdown-link,var(--color-global));
-$color-dropdown-link-hover: $light !default;
-$bgcolor-dropdown-link-hover: var(--bgcolor-dropdown-link-hover);
-$color-dropdown-link-active: $light !default;
-$bgcolor-dropdown-link-active: var(--bgcolor-dropdown-link-active,var(--primary));
-
-// override bootstrap variables
-$text-muted: $gray-550;
-$table-dark-color: var(--color-table);
-$table-dark-bg: $bgcolor-table;
-$table-dark-border-color: $border-color-table;
-$table-dark-hover-color: var(--color-table-hover);
-$table-dark-hover-bg: $bgcolor-table-hover;
-$border-color: $border-color-global;
-$dropdown-color: var(--color-dropdown);
-$dropdown-bg: var(--bgcolor-dropdown);
-$dropdown-link-color: var(--color-dropdown-link);
-$dropdown-link-hover-color: var(--color-dropdown-link-hover);
-$dropdown-link-hover-bg: var(--bgcolor-dropdown-link-hover);
-$dropdown-link-active-color: var(--color-dropdown-link-active);
-$dropdown-link-active-bg: bar(--bgcolor-dropdown-link-active);
-
-@import './mixins/list-group';
-@import './reboot-bootstrap-text';
-@import './reboot-bootstrap-border-colors';
-@import './reboot-bootstrap-tables';
-@import './reboot-bootstrap-dropdown';
-
-// List Group
-@include override-list-group-item(
-  var(--color-list),
-  var(--bgcolor-sidebar-list-group),
-  var(--color-list-hover),
-  var(--bgcolor-list-hover),
-  var(--color-list-active),
-  var(--bgcolor-list-active)
-);
-/*
-  * Form
-  */
-input.form-control,
-select.form-control,
-select.custom-select,
-textarea.form-control {
-  color: var(--color-global);
-  background-color: hsl(var(--bgcolor-global-hs),calc(var(--bgcolor-global-l) - 5%));
-  border-color: $border-color-global;
-  &:focus {
-    background-color: var(--bgcolor-global);
-  }
-  // FIXME: accent color
-  // border: 1px solid darken($border, 30%);
-}
-
-.form-control[disabled],
-.form-control[readonly] {
-  color: hsl(var(--color-global-hs),calc(var(--color-global-l) + 10%));
-  background-color: hsl(var(--color-global-hs),calc(var(--color-global-l) + 5%));
-}
-
-.input-group > .input-group-prepend > .input-group-text {
-  color: theme-color('light');
-  background-color: theme-color('secondary');
-  border: 1px solid theme-color('secondary');
-  border-right: none;
-  &.text-muted {
-    color: theme-color('light') !important;
-  }
-}
-
-.input-group input {
-  border-color: $border-color-global;
-}
-
-label.custom-control-label::before {
-  background-color: hsl(var(--bgcolor-global-hs),calc(var(--bgcolor-global-l) - 5%));
-}
-
-/*
- * Table
- */
-.table {
-  @extend .table-dark;
-}
-
-/*
- * Card
- */
-.card:not([class*='bg-']):not(.well):not(.card-disabled) {
-  @extend .bg-dark;
-}
-
-// [TODO] GW-3219 modify common color of well in dark theme, then remove below css.
-.card.well {
-  border-color: $secondary;
-}
-
-.card.card-disabled {
-  background-color: lighten($dark, 10%);
-  border-color: $secondary;
-}
-
-/*
- * Pagination
- */
-ul.pagination {
-  li.page-item {
-    button.page-link {
-      @extend .btn-dark;
-    }
-  }
-}
-
-/*
- * GROWI Login form
- */
-.nologin {
-  // background color
-  $color-gradient: #3c465c;
-  background: linear-gradient(45deg, darken($color-gradient, 30%) 0%, hsla(340, 100%, 55%, 0) 70%),
-    linear-gradient(135deg, darken(var.$growi-green, 30%) 10%, hsla(225, 95%, 50%, 0) 70%),
-    linear-gradient(225deg, darken(var.$growi-blue, 20%) 10%, hsla(140, 90%, 50%, 0) 80%),
-    linear-gradient(315deg, darken($color-gradient, 25%) 100%, hsla(35, 95%, 55%, 0) 70%);
-
-  .noLogin-header {
-    background-color: rgba(black, 0.5);
-
-    .logo {
-      background-color: rgba(white, 0);
-      fill: rgba(white, 0.5);
-    }
-
-    h1 {
-      color: rgba(white, 0.5);
-    }
-  }
-
-  .noLogin-dialog {
-    background-color: rgba(black, 0.5);
-  }
-
-  .input-group {
-    .input-group-text {
-      color: darken(white, 30%);
-      background-color: rgba($gray-700, 0.7);
-    }
-
-    .form-control {
-      color: white;
-      background-color: rgba(#505050, 0.7);
-      box-shadow: unset;
-
-      &::placeholder {
-        color: darken(white, 30%);
-      }
-    }
-  }
-
-  .btn-fill {
-    .btn-label {
-      color: $gray-300;
-    }
-    .btn-label-text {
-      color: $gray-400;
-    }
-  }
-
-  .grw-external-auth-form {
-    border-color: gray !important;
-  }
-
-  .btn-external-auth-tab {
-    @extend .btn-dark;
-  }
-
-  // footer link text
-  .link-growi-org {
-    color: rgba(white, 0.4);
-
-    &:hover,
-    &.focus {
-      color: rgba(white, 0.7);
-
-      .growi {
-        color: darken(var.$growi-green, 5%);
-      }
-
-      .org {
-        color: darken(var.$growi-blue, 5%);
-      }
-    }
-  }
-}
-
-/*
- * GROWI subnavigation
- */
-.grw-drawer-toggler {
-  @extend .btn-dark;
-  color: $gray-400;
-}
-
-/*
- * GROWI page list
- */
-.page-list {
-  .page-list-ul {
-    > li {
-      > span.page-list-meta {
-        color: hsl(var(--color-global-hs),calc(var(--color-global-l) - 10%));
-      }
-    }
-  }
-
-  // List group
-  .list-group-item {
-    &.active {
-      background-color: hsl(var(--color-global-hs),calc(var(--color-global-l) - 10%));
-    }
-    .list-group-item-action:hover {
-      background-color: var(--bgcolor-list-hover);
-    }
-    .page-list-snippet {
-      color: hsl(var(--color-global-hs),calc(var(--color-global-l) - 10%));
-    }
-  }
-}
-
-/*
- * GROWI ToC
- */
-.revision-toc-content {
-  ::marker {
-    color: hsl(var(--color-global-hs),calc(var(--color-global-l) + 30%));
-  }
-}
-
-/*
- * GROWI subnavigation
- */
-.grw-subnav {
-  background-color: var(--bgcolor-subnav);
-}
-
-.grw-subnav-fixed-container .grw-subnav {
-  background-color: var(--bgcolor-subnav); opacity:0.85;
-}
-
-.grw-page-editor-mode-manager {
-  .btn-outline-primary {
-    &:hover {
-      color: var(--primary);
-      background-color: $gray-700;
-    }
-  }
-}
-
-// Search drop down
-#search-typeahead-asynctypeahead {
-  background-color: var(--bgcolor-global);
-  .table {
-    background-color: transparent;
-  }
-}
-
-/*
- * GROWI Sidebar
- */
-.grw-sidebar {
-  // List
-  @include override-list-group-item(
-    var(--color-list),
-    var(--bgcolor-sidebar-list-group),
-    var(--color-list-hover),
-    var(--bgcolor-list-hover),
-    var(--color-list-active),
-    var(--bgcolor-list-active)
-  );
-  // Pagetree
-  .grw-pagetree {
-    --bgcolor-sidebar-context: hsl(var(--primary-hs),calc(var(--primary-l) + 77%));
-    --bgcolor-sidebar-context-hs: var(--primary-hs);
-    --bgcolor-sidebar-context-l: calc(var(--primary-l) + 77%);
-    @include override-list-group-item-for-pagetree(
-      var(--color-sidebar-context),
-      hsl(var(--bgcolor-sidebar-context-hs),calc(var(--bgcolor-sidebar-context-l) + 8%)),
-      hsl(var(--bgcolor-sidebar-context-hs),calc(var(--bgcolor-sidebar-context-l) + 15%)),
-      hsl(var(--color-sidebar-context-hs),calc(var(--color-sidebar-context-l) - 15%)),
-      hsl(var(--color-sidebar-context-hs),calc(var(--color-sidebar-context-l) - 10%)),
-      hsl(var(--bgcolor-sidebar-context-hs),calc(var(--bgcolor-sidebar-context-l) + 18%)),
-      hsl(var(--bgcolor-sidebar-context-hs),calc(var(--bgcolor-sidebar-context-l) + 24%))
-    );
-    .grw-pagetree-triangle-btn {
-      @include mixins-buttons.button-outline-svg-icon-variant($secondary, $gray-200);
-    }
-    .btn-page-item-control {
-      @include button-outline-variant($gray-500, $gray-500, $secondary, transparent);
-      @include hover() {
-        background-color: var(--bgcolor-sidebar-context-lighten20);
-      }
-      &:not(:disabled):not(.disabled):active,
-      &:not(:disabled):not(.disabled).active {
-        background-color: var(--bgcolor-sidebar-context-lighten34);
-      }
-      box-shadow: none !important;
-    }
-  }
-  .private-legacy-pages-link {
-    &:hover {
-      background: var(--bgcolor-list-hover);
-    }
-  }
-}
-
-.btn.btn-page-item-control {
-  @include button-outline-variant($gray-500, $gray-500, $secondary, transparent);
-  @include hover() {
-    background-color: $gray-700;
-  }
-  &:not(:disabled):not(.disabled):active,
-  &:not(:disabled):not(.disabled).active {
-    color: $gray-200;
-    background-color: $gray-600;
-  }
-  box-shadow: none !important;
-}
-
-/*
- * Popover
- */
-.popover {
-  background-color: var(--bgcolor-global);
-  border-color: $secondary;
-  .popover-header {
-    color: $white;
-    background-color: $secondary;
-    border-color: $secondary;
-  }
-  .popover-body {
-    color: inherit;
-  }
-
-  &.bs-popover-top .arrow {
-    &::before {
-      border-top-color: $secondary;
-    }
-
-    &::after {
-      border-top-color: var(--bgcolor-global);
-    }
-  }
-  &.bs-popover-bottom .arrow {
-    &::before {
-      border-bottom-color: $secondary;
-    }
-
-    &::after {
-      border-bottom-color: var(--bgcolor-global);
-    }
-  }
-  &.bs-popover-right .arrow {
-    &::before {
-      border-right-color: $secondary;
-    }
-
-    &::after {
-      border-right-color: var(--bgcolor-global);
-    }
-  }
-  &.bs-popover-left .arrow {
-    &::before {
-      border-left-color: $secondary;
-    }
-
-    &::after {
-      border-left-color: var(--bgcolor-global);
-    }
-  }
-}
-
-/*
- * GROWI Grid Edit Modal
- */
-.grw-grid-edit-preview {
-  background: $gray-900;
-}
-
-/*
- * Slack
- */
-.grw-slack-notification {
-  background-color: transparent;
-  $color-slack: #4b144c;
-
-  .form-control {
-    background: var(--bgcolor-global);
-  }
-
-  .custom-control-label {
-    &::before {
-      background-color: $secondary;
-      border-color: transparent;
-    }
-    &::after {
-      background-color: darken($color-slack, 5%);
-      // background-image: url(/images/icons/slack/slack-logo-dark-off.svg); -- should be specified in app -- 2022.12.09 Yuki Takei
-    }
-  }
-
-  .custom-control-input:checked ~ .custom-control-label {
-    &::before {
-      background-color: lighten($color-slack, 10%);
-    }
-    &::after {
-      background-color: darken($color-slack, 5%);
-      // background-image: url(/images/icons/slack/slack-logo-dark-on.svg); -- should be specified in app -- 2022.12.09 Yuki Takei
-    }
-  }
-  .grw-slack-logo svg {
-    fill: #dd80de;
-  }
-
-  .grw-btn-slack {
-    background-color: black;
-    &:focus,
-    &:hover {
-      background-color: black;
-    }
-  }
-
-  .grw-btn-slack-triangle {
-    color: $secondary;
-  }
-}
-
-/*
- * GROWI HandsontableModal
- */
-.grw-hot-modal-navbar {
-  background-color: $dark;
-}
-
-.wiki {
-  h1 {
-    border-color: lighten($border-color-theme, 10%);
-  }
-  h2 {
-    border-color: $border-color-theme;
-  }
-}
-
-/*
- * GROWI comment form
- */
-.comment-form {
-  #slack-mark-black {
-    display: none;
-  }
-}
-
-.page-comments-row {
-  background: var(--bgcolor-subnav);
-}
-
-/*
- * GROWI tags
- */
-.grw-tag-labels {
-  .grw-tag-label {
-    color: $color-tags;
-    background-color: $bgcolor-tags;
-  }
-}
-
-/*
- * GROWI popular tags
- */
-.grw-popular-tag-labels {
-  .grw-tag-label {
-    color: $color-tags;
-    background-color: $bgcolor-tags;
-  }
-}
-
-/*
- * admin settings
- */
-.admin-setting-header {
-  border-color: $border-color-global;
-}
-
-/*
-* grw-side-contents
-*/
-.grw-side-contents-sticky-container {
-  .grw-count-badge {
-    @include count-badge.count-badge($gray-400, $gray-700);
-  }
-
-  .grw-border-vr {
-    border-color: $border-color-toc;
-  }
-
-  .revision-toc {
-    border-color: $border-color-toc;
-  }
-}
-
-/*
- * drawio
- */
-.drawio-viewer {
-  border-color: $border-color-global;
-}
-
-/*
- * modal
- */
-.grw-modal-head {
-  border-color: $border-color-global;
-}
-
-/*
- * skeleton
- */
-.grw-skeleton {
-}
+// @use '../variables' as var;
+// @use '../bootstrap/init' as *;
+// @use '../atoms/mixins/buttons' as mixins-buttons;
+// @use './mixins/count-badge';
+// @use './mixins/hsl-button';
+// @use './hsl-functions' as hsl;
+
+// // determine optional variables
+// $color-list: var(--color-list,var(--color-global));
+// $bgcolor-list: var(--bgcolor-list,var(--bgcolor-global));
+// $color-list-hover: var(--color-list-hover,var(--color-global));
+// $color-list-active: var(--color-list-active,var(--color-reversal));
+// $bgcolor-list-hover: var(--bgcolor-list-hover,var(--bgcolor-global));
+// $bgcolor-list-active: var(--bgcolor-list-active,var(--primary));
+// $bgcolor-subnav: var(--bgcolor-subnav);
+// $color-table: var(--color-table,white);
+// $bgcolor-table: var(--bgcolor-table,#343a40);
+// $border-color-table: var(--border-color-table,hsl.lighten(var(--bgcolor-table),7.5%),lighten(#343a40, 7.5%));
+// $color-table-hover: var(--color-table-hover,rgba(white, 0.075));
+// $bgcolor-table-hover: var(--bgcolor-table-hover,hsl.lighten(var(--bgcolor-table),7.5%),lighten(#343a40, 7.5%));
+// $bgcolor-sidebar-list-group: var(--bgcolor-sidebar-list-group,var(--bgcolor-list));
+// $color-tags: var(--color-tags,#949494);
+// $bgcolor-tags: var(--bgcolor-tags,var(--dark));
+// $border-color-global: var(--border-color-global,#{$gray-500});
+// $border-color-toc: var(--border-color-toc,$border-color-global);
+// $color-dropdown: var(--color-dropdown,var(--color-global));
+// $bgcolor-dropdown: var(--bgcolor-dropdown,var(--bgcolor-global));
+// $color-dropdown-link: var(--color-dropdown-link,var(--color-global));
+// $color-dropdown-link-hover: var(--color-dropdown-link-hover,var(--light));
+// $bgcolor-dropdown-link-hover: var(--bgcolor-dropdown-link-hover,var(--primary));
+// $color-dropdown-link-active: var(--color-dropdown-link-active,var(--light));
+// $bgcolor-dropdown-link-active: var(--bgcolor-dropdown-link-active,var(--primary));
+
+// // override bootstrap variables
+// $text-muted: $gray-550;
+// $table-dark-color: $color-table;
+// $table-dark-bg: $bgcolor-table;
+// $table-dark-border-color: $border-color-table;
+// $table-dark-hover-color: $color-table-hover;
+// $table-dark-hover-bg: $bgcolor-table-hover;
+// $border-color: $border-color-global;
+// $dropdown-color: $color-dropdown;
+// $dropdown-bg: $bgcolor-dropdown;
+// $dropdown-link-color: $color-dropdown-link;
+// $dropdown-link-hover-color: $color-dropdown-link-hover;
+// $dropdown-link-hover-bg: $bgcolor-dropdown-link-hover;
+// $dropdown-link-active-color: $color-dropdown-link-active;
+// $dropdown-link-active-bg: $bgcolor-dropdown-link-active;
+
+// @import './mixins/list-group';
+// @import './reboot-bootstrap-text';
+// @import './reboot-bootstrap-border-colors';
+// @import './reboot-bootstrap-tables';
+// @import './reboot-bootstrap-dropdown';
+
+// // List Group
+// @include override-list-group-item(
+//   $color-list,
+//   $bgcolor-sidebar-list-group,
+//   $color-list-hover,
+//   $bgcolor-list-hover,
+//   $color-list-active,
+//   $bgcolor-list-active
+// );
+// /*
+//   * Form
+//   */
+// input.form-control,
+// select.form-control,
+// select.custom-select,
+// textarea.form-control {
+//   color: var(--color-global);
+//   background-color: hsl.darken(var(--bgcolor-global), 5%);
+//   border-color: $border-color-global;
+//   &:focus {
+//     background-color: var(--bgcolor-global);
+//   }
+//   // FIXME: accent color
+//   // border: 1px solid darken($border, 30%);
+// }
+
+// .form-control[disabled],
+// .form-control[readonly] {
+//   color: hsl.lighten(var(--color-global),10%);
+//   background-color: hsl.lighten(var(--color-global),5%);
+// }
+
+// .input-group > .input-group-prepend > .input-group-text {
+//   color: theme-color('light');
+//   background-color: theme-color('secondary');
+//   border: 1px solid theme-color('secondary');
+//   border-right: none;
+//   &.text-muted {
+//     color: theme-color('light') !important;
+//   }
+// }
+
+// .input-group input {
+//   border-color: $border-color-global;
+// }
+
+// label.custom-control-label::before {
+//   background-color: hsl.darken(var(--bgcolor-global),5%);
+// }
+
+// /*
+//  * Table
+//  */
+// .table {
+//   @extend .table-dark;
+// }
+
+// /*
+//  * Card
+//  */
+// .card:not([class*='bg-']):not(.well):not(.card-disabled) {
+//   @include bg-variant('.bg-dark', $dark);
+// }
+
+// // [TODO] GW-3219 modify common color of well in dark theme, then remove below css.
+// .card.well {
+//   border-color: var(--secondary);
+// }
+
+// .card.card-disabled {
+//   background-color: lighten($dark, 10%);
+//   border-color: var(--secondary);
+// }
+
+// /*
+//  * Pagination
+//  */
+// ul.pagination {
+//   li.page-item {
+//     button.page-link {
+//       @include button-variant($dark, $dark);
+//       @include mixins-buttons.button-svg-icon-variant($dark, $dark);
+//       box-shadow: none !important;
+//     }
+//   }
+// }
+
+// /*
+//  * GROWI Login form
+//  */
+// .nologin {
+//   // background color
+//   $color-gradient: #3c465c;
+//   background: linear-gradient(45deg, darken($color-gradient, 30%) 0%, hsla(340, 100%, 55%, 0) 70%),
+//     linear-gradient(135deg, darken(var.$growi-green, 30%) 10%, hsla(225, 95%, 50%, 0) 70%),
+//     linear-gradient(225deg, darken(var.$growi-blue, 20%) 10%, hsla(140, 90%, 50%, 0) 80%),
+//     linear-gradient(315deg, darken($color-gradient, 25%) 100%, hsla(35, 95%, 55%, 0) 70%);
+
+//   .noLogin-header {
+//     background-color: rgba(black, 0.5);
+
+//     .logo {
+//       background-color: rgba(white, 0);
+//       fill: rgba(white, 0.5);
+//     }
+
+//     h1 {
+//       color: rgba(white, 0.5);
+//     }
+//   }
+
+//   .noLogin-dialog {
+//     background-color: rgba(black, 0.5);
+//   }
+
+//   .input-group {
+//     .input-group-text {
+//       color: darken(white, 30%);
+//       background-color: rgba($gray-700, 0.7);
+//     }
+
+//     .form-control {
+//       color: white;
+//       background-color: rgba(#505050, 0.7);
+//       box-shadow: unset;
+
+//       &::placeholder {
+//         color: darken(white, 30%);
+//       }
+//     }
+//   }
+
+//   .btn-fill {
+//     .btn-label {
+//       color: $gray-300;
+//     }
+//     .btn-label-text {
+//       color: $gray-400;
+//     }
+//   }
+
+//   .grw-external-auth-form {
+//     border-color: gray !important;
+//   }
+
+//   .btn-external-auth-tab {
+//     @include button-variant($dark, $dark);
+//     @include mixins-buttons.button-svg-icon-variant($dark, $dark);
+//     box-shadow: none !important;
+//   }
+
+//   // footer link text
+//   .link-growi-org {
+//     color: rgba(white, 0.4);
+
+//     &:hover,
+//     &.focus {
+//       color: rgba(white, 0.7);
+
+//       .growi {
+//         color: darken(var.$growi-green, 5%);
+//       }
+
+//       .org {
+//         color: darken(var.$growi-blue, 5%);
+//       }
+//     }
+//   }
+// }
+
+// /*
+//  * GROWI subnavigation
+//  */
+// .grw-drawer-toggler {
+//   @include button-variant($dark, $dark);
+//   @include mixins-buttons.button-svg-icon-variant($dark, $dark);
+//   color: #{$gray-400};
+//   box-shadow: none !important;
+
+// }
+
+// /*
+//  * GROWI page list
+//  */
+// .page-list {
+//   .page-list-ul {
+//     > li {
+//       > span.page-list-meta {
+//         color: hsl.darken(var(--color-global),10%);
+//       }
+//     }
+//   }
+
+//   // List group
+//   .list-group-item {
+//     &.active {
+//       background-color: hsl.darken(var(--color-global),10%);
+//     }
+//     .list-group-item-action:hover {
+//       background-color: var(--bgcolor-list-hover);
+//     }
+//     .page-list-snippet {
+//       color: hsl.darken(var(--color-global),10%);
+//     }
+//   }
+// }
+
+// /*
+//  * GROWI ToC
+//  */
+// .revision-toc-content {
+//   ::marker {
+//     color: hsl.lighten(var(--color-global),30%);
+//   }
+// }
+
+// /*
+//  * GROWI subnavigation
+//  */
+// .grw-subnav {
+//   background-color: var(--bgcolor-subnav);
+// }
+
+// .grw-subnav-fixed-container .grw-subnav {
+//   background-color: hsl.alpha(var(--bgcolor-subnav),15%);
+// }
+
+// .grw-page-editor-mode-manager {
+//   .btn-outline-primary {
+//     &:hover {
+//       color: var(--primary);
+//       background-color: $gray-700;
+//     }
+//   }
+// }
+
+// // Search drop down
+// #search-typeahead-asynctypeahead {
+//   background-color: var(--bgcolor-global);
+//   .table {
+//     background-color: transparent;
+//   }
+// }
+
+// /*
+//  * GROWI Sidebar
+//  */
+// .grw-sidebar {
+//   // List
+//   @include override-list-group-item(
+//     $color-list,
+//     $bgcolor-sidebar-list-group,
+//     $color-list-hover,
+//     $bgcolor-list-hover,
+//     $color-list-active,
+//     $bgcolor-list-active
+//   );
+//   // Pagetree
+//   .grw-pagetree {
+//     @include override-list-group-item-for-pagetree(
+//       var(--color-sidebar-context),
+//       hsl.lighten(var(--bgcolor-sidebar-context),8%),
+//       hsl.lighten(var(--bgcolor-sidebar-context),15%),
+//       hsl.darken(var(--color-sidebar-context),15%),
+//       hsl.darken(var(--color-sidebar-context),10%),
+//       hsl.lighten(var(--bgcolor-sidebar-context),18%),
+//       hsl.lighten(var(--bgcolor-sidebar-context),24%)
+//     );
+//     .grw-pagetree-triangle-btn {
+//       @include mixins-buttons.button-outline-svg-icon-variant(var(--secondary), $gray-200);
+//     }
+//     .btn-page-item-control {
+//       @include hsl-button.button-outline-variant($gray-500, $gray-500, var(--secondary), transparent);
+//       @include hover() {
+//         background-color: hsl.lighten(var(--bgcolor-sidebar-context),20%);
+//       }
+//       &:not(:disabled):not(.disabled):active,
+//       &:not(:disabled):not(.disabled).active {
+//         background-color: hsl.lighten(var(--bgcolor-sidebar-context),34%);
+//       }
+//       box-shadow: none !important;
+//     }
+//   }
+//   .private-legacy-pages-link {
+//     &:hover {
+//       background: var(--bgcolor-list-hover);
+//     }
+//   }
+// }
+
+// .btn.btn-page-item-control {
+//   @include hsl-button.button-outline-variant($gray-500, $gray-500, var(--secondary), transparent);
+//   @include hover() {
+//     background-color: $gray-700;
+//   }
+//   &:not(:disabled):not(.disabled):active,
+//   &:not(:disabled):not(.disabled).active {
+//     color: $gray-200;
+//     background-color: $gray-600;
+//   }
+//   box-shadow: none !important;
+// }
+
+// /*
+//  * Popover
+//  */
+// .popover {
+//   background-color: var(--bgcolor-global);
+//   border-color: var(--secondary);
+//   .popover-header {
+//     color: white;
+//     background-color: var(--secondary);
+//     border-color: var(--secondary);
+//   }
+//   .popover-body {
+//     color: inherit;
+//   }
+
+//   &.bs-popover-top .arrow {
+//     &::before {
+//       border-top-color: var(--secondary);
+//     }
+
+//     &::after {
+//       border-top-color: var(--bgcolor-global);
+//     }
+//   }
+//   &.bs-popover-bottom .arrow {
+//     &::before {
+//       border-bottom-color: var(--secondary);
+//     }
+
+//     &::after {
+//       border-bottom-color: var(--bgcolor-global);
+//     }
+//   }
+//   &.bs-popover-right .arrow {
+//     &::before {
+//       border-right-color: var(--secondary);
+//     }
+
+//     &::after {
+//       border-right-color: var(--bgcolor-global);
+//     }
+//   }
+//   &.bs-popover-left .arrow {
+//     &::before {
+//       border-left-color: var(--secondary);
+//     }
+
+//     &::after {
+//       border-left-color: var(--bgcolor-global);
+//     }
+//   }
+// }
+
+// /*
+//  * GROWI Grid Edit Modal
+//  */
+// .grw-grid-edit-preview {
+//   background: $gray-900;
+// }
+
+// /*
+//  * Slack
+//  */
+// .grw-slack-notification {
+//   background-color: transparent;
+//   $color-slack: #4b144c;
+
+//   .form-control {
+//     background: var(--bgcolor-global);
+//   }
+
+//   .custom-control-label {
+//     &::before {
+//       background-color: var(--secondary);
+//       border-color: transparent;
+//     }
+//     &::after {
+//       background-color: darken($color-slack, 5%);
+//       // background-image: url(/images/icons/slack/slack-logo-dark-off.svg); -- should be specified in app -- 2022.12.09 Yuki Takei
+//     }
+//   }
+
+//   .custom-control-input:checked ~ .custom-control-label {
+//     &::before {
+//       background-color: lighten($color-slack, 10%);
+//     }
+//     &::after {
+//       background-color: darken($color-slack, 5%);
+//       // background-image: url(/images/icons/slack/slack-logo-dark-on.svg); -- should be specified in app -- 2022.12.09 Yuki Takei
+//     }
+//   }
+//   .grw-slack-logo svg {
+//     fill: #dd80de;
+//   }
+
+//   .grw-btn-slack {
+//     background-color: black;
+//     &:focus,
+//     &:hover {
+//       background-color: black;
+//     }
+//   }
+
+//   .grw-btn-slack-triangle {
+//     color: var(--secondary);
+//   }
+// }
+
+// /*
+//  * GROWI HandsontableModal
+//  */
+// .grw-hot-modal-navbar {
+//   background-color: var(--dark);
+// }
+
+// .wiki {
+//   h1 {
+//     border-color: hsl.lighten(var(--border-color-theme),10%);
+//   }
+//   h2 {
+//     border-color: var(--border-color-theme);
+//   }
+// }
+
+// /*
+//  * GROWI comment form
+//  */
+// .comment-form {
+//   #slack-mark-black {
+//     display: none;
+//   }
+// }
+
+// .page-comments-row {
+//   background: var(--bgcolor-subnav);
+// }
+
+// /*
+//  * GROWI tags
+//  */
+// .grw-tag-labels {
+//   .grw-tag-label {
+//     color: $color-tags;
+//     background-color: $bgcolor-tags;
+//   }
+// }
+
+// /*
+//  * GROWI popular tags
+//  */
+// .grw-popular-tag-labels {
+//   .grw-tag-label {
+//     color: $color-tags;
+//     background-color: $bgcolor-tags;
+//   }
+// }
+
+// /*
+//  * admin settings
+//  */
+// .admin-setting-header {
+//   border-color: $border-color-global;
+// }
+
+// /*
+// * grw-side-contents
+// */
+// .grw-side-contents-sticky-container {
+//   .grw-count-badge {
+//     @include count-badge.count-badge($gray-400, $gray-700);
+//   }
+
+//   .grw-border-vr {
+//     border-color: $border-color-toc;
+//   }
+
+//   .revision-toc {
+//     border-color: $border-color-toc;
+//   }
+// }
+
+// /*
+//  * drawio
+//  */
+// .drawio-viewer {
+//   border-color: $border-color-global;
+// }
+
+// /*
+//  * modal
+//  */
+// .grw-modal-head {
+//   border-color: $border-color-global;
+// }
+
+// /*
+//  * skeleton
+//  */
+// .grw-skeleton {
+// }