Bläddra i källkod

Merge pull request #8819 from weseek/support/devide-core-package

support: Publish @growi/core-styles package
Yuki Takei 1 år sedan
förälder
incheckning
fd5ca355ef
100 ändrade filer med 135 tillägg och 818 borttagningar
  1. 5 5
      .github/workflows/release.yml
  2. 2 15
      apps/app/.stylelintrc.json
  3. 0 710
      apps/app/_obsolete/src/styles/theme/apply-colors.scss
  4. 4 2
      apps/app/package.json
  5. 1 1
      apps/app/src/components/Admin/Customize/ThemeColorBox.module.scss
  6. 1 1
      apps/app/src/components/Admin/UserManagement.module.scss
  7. 1 1
      apps/app/src/components/AuthorInfo/AuthorInfo.module.scss
  8. 1 1
      apps/app/src/components/Common/CopyDropdown/CopyDropdown.module.scss
  9. 1 1
      apps/app/src/components/Common/DrawerToggler/DrawerToggler.module.scss
  10. 1 1
      apps/app/src/components/Common/PagePathHierarchicalLink/CollapsedParentsDropdown.module.scss
  11. 1 1
      apps/app/src/components/Common/PagePathNav/PagePathNav.module.scss
  12. 1 1
      apps/app/src/components/Common/PageViewLayout.module.scss
  13. 1 1
      apps/app/src/components/CustomNavigation/CustomNav.module.scss
  14. 1 1
      apps/app/src/components/Icons/GrowiLogo.module.scss
  15. 1 1
      apps/app/src/components/Layout/Admin.module.scss
  16. 2 2
      apps/app/src/components/Layout/NoLoginLayout.module.scss
  17. 1 1
      apps/app/src/components/Layout/SearchResultLayout.module.scss
  18. 1 1
      apps/app/src/components/LoginForm/LoginForm.module.scss
  19. 1 1
      apps/app/src/components/Me/UISettings.module.scss
  20. 1 1
      apps/app/src/components/Navbar/GrowiContextualSubNavigation.module.scss
  21. 1 1
      apps/app/src/components/Navbar/PageEditorModeManager.module.scss
  22. 1 1
      apps/app/src/components/PageComment.module.scss
  23. 1 1
      apps/app/src/components/PageComment/Comment.module.scss
  24. 1 1
      apps/app/src/components/PageComment/CommentEditor.module.scss
  25. 1 1
      apps/app/src/components/PageComment/SwitchingButtonGroup.module.scss
  26. 1 1
      apps/app/src/components/PageComment/_comment-inheritance.scss
  27. 1 1
      apps/app/src/components/PageContentFooter.module.scss
  28. 1 1
      apps/app/src/components/PageControls/BookmarkButtons.module.scss
  29. 1 1
      apps/app/src/components/PageControls/LikeButtons.module.scss
  30. 1 1
      apps/app/src/components/PageControls/PageControls.module.scss
  31. 1 1
      apps/app/src/components/PageControls/SearchButton.module.scss
  32. 1 1
      apps/app/src/components/PageControls/SeenUserInfo.module.scss
  33. 1 1
      apps/app/src/components/PageControls/SubscribeButton.module.scss
  34. 1 1
      apps/app/src/components/PageControls/_button-styles.scss
  35. 1 1
      apps/app/src/components/PageEditor/EditorNavbar/EditorNavbar.module.scss
  36. 1 1
      apps/app/src/components/PageEditor/EditorNavbarBottom.module.scss
  37. 1 1
      apps/app/src/components/PageEditor/GridEditModal.module.scss
  38. 1 1
      apps/app/src/components/PageSideContents/PageAccessoriesControl.module.scss
  39. 1 1
      apps/app/src/components/PageStatusAlert.module.scss
  40. 1 1
      apps/app/src/components/PageTags/TagLabels.module.scss
  41. 1 1
      apps/app/src/components/PageTimeline.module.scss
  42. 1 1
      apps/app/src/components/ReactMarkdownComponents/CodeBlock.module.scss
  43. 1 1
      apps/app/src/components/RevisionComparer/RevisionComparer.module.scss
  44. 1 1
      apps/app/src/components/SearchForm.module.scss
  45. 1 1
      apps/app/src/components/SearchPage/SearchControl.module.scss
  46. 1 1
      apps/app/src/components/SearchTypeahead.module.scss
  47. 1 1
      apps/app/src/components/ShortcutsModal.module.scss
  48. 2 2
      apps/app/src/components/Sidebar/AppTitle/AppTitle.module.scss
  49. 1 1
      apps/app/src/components/Sidebar/PageTreeItem/PageTreeItem.module.scss
  50. 1 1
      apps/app/src/components/Sidebar/Sidebar.module.scss
  51. 1 1
      apps/app/src/components/Sidebar/SidebarContents.module.scss
  52. 1 1
      apps/app/src/components/Sidebar/SidebarHead/SidebarHead.module.scss
  53. 1 1
      apps/app/src/components/Sidebar/SidebarHead/ToggleCollapseButton.module.scss
  54. 1 1
      apps/app/src/components/Sidebar/SidebarNav/PersonalDropdown.module.scss
  55. 1 1
      apps/app/src/components/Sidebar/SidebarNav/PrimaryItems.module.scss
  56. 1 1
      apps/app/src/components/Sidebar/SidebarNav/SecondaryItems.module.scss
  57. 1 1
      apps/app/src/components/Sidebar/SidebarNav/SidebarNav.module.scss
  58. 1 1
      apps/app/src/components/Sidebar/SidebarNav/SkeletonItem.module.scss
  59. 1 1
      apps/app/src/components/SlackNotification.module.scss
  60. 1 1
      apps/app/src/components/TableOfContents.module.scss
  61. 1 1
      apps/app/src/components/TagList.module.scss
  62. 1 1
      apps/app/src/components/TemplateModal/TemplateModal.module.scss
  63. 1 1
      apps/app/src/components/User/UserInfo.module.scss
  64. 1 1
      apps/app/src/features/questionnaire/client/components/QuestionnaireModalManager.module.scss
  65. 1 1
      apps/app/src/features/search/client/components/SearchMenuItem.module.scss
  66. 1 1
      apps/app/src/pages/login/index.module.scss
  67. 8 10
      apps/app/src/styles/_editor.scss
  68. 1 1
      apps/app/src/styles/_layout.scss
  69. 1 1
      apps/app/src/styles/_override-handsontable.scss
  70. 1 1
      apps/app/src/styles/atoms/_code.scss
  71. 1 1
      apps/app/src/styles/atoms/_custom_control.scss
  72. 1 1
      apps/app/src/styles/atoms/_tag.scss
  73. 1 1
      apps/app/src/styles/atoms/placeholders/_buttons.scss
  74. 1 1
      apps/app/src/styles/molecules/_list-group-item.scss
  75. 1 1
      apps/app/src/styles/organisms/_wiki.scss
  76. 2 2
      apps/app/src/styles/style-app.scss
  77. 1 1
      apps/app/src/styles/vendor.scss
  78. 2 1
      apps/slackbot-proxy/package.json
  79. 26 0
      packages/core-styles/package.json
  80. 0 0
      packages/core-styles/scss/bootstrap/_init-stage-1.scss
  81. 0 0
      packages/core-styles/scss/bootstrap/_init-stage-2.scss
  82. 0 0
      packages/core-styles/scss/bootstrap/_variables-dark.scss
  83. 0 0
      packages/core-styles/scss/bootstrap/_variables.scss
  84. 0 0
      packages/core-styles/scss/bootstrap/apply.scss
  85. 0 0
      packages/core-styles/scss/bootstrap/init.scss
  86. 0 0
      packages/core-styles/scss/bootstrap/mixins/_button-outline-neutral-variant.scss
  87. 0 0
      packages/core-styles/scss/bootstrap/mixins/_button-outline-variant.scss
  88. 0 0
      packages/core-styles/scss/bootstrap/override/_badge.scss
  89. 0 0
      packages/core-styles/scss/bootstrap/override/_buttons.scss
  90. 0 0
      packages/core-styles/scss/bootstrap/override/_helpers.scss
  91. 0 0
      packages/core-styles/scss/bootstrap/override/helpers/_color-bg.scss
  92. 0 0
      packages/core-styles/scss/bootstrap/theming/_buttons-dark.scss
  93. 0 0
      packages/core-styles/scss/bootstrap/theming/_buttons-light.scss
  94. 0 0
      packages/core-styles/scss/bootstrap/theming/_list-group.scss
  95. 0 0
      packages/core-styles/scss/bootstrap/theming/_pagination.scss
  96. 0 0
      packages/core-styles/scss/bootstrap/theming/_progress.scss
  97. 7 0
      packages/core-styles/scss/bootstrap/theming/_root-dark.scss
  98. 6 0
      packages/core-styles/scss/bootstrap/theming/_root-light.scss
  99. 0 0
      packages/core-styles/scss/bootstrap/theming/_root.scss
  100. 0 0
      packages/core-styles/scss/bootstrap/theming/_tables.scss

+ 5 - 5
.github/workflows/release.yml

@@ -103,7 +103,7 @@ jobs:
           type=semver,value=${{ needs.create-github-release.outputs.RELEASED_VERSION }},pattern={{major}}.{{minor}}.{{patch}}
 
 
-  build-image:
+  build-app-image:
     needs: create-github-release
 
     uses: weseek/growi/.github/workflows/reusable-app-build-image.yml@master
@@ -115,8 +115,8 @@ jobs:
       AWS_ROLE_TO_ASSUME_FOR_OIDC: ${{ secrets.AWS_ROLE_TO_ASSUME_FOR_OIDC }}
 
 
-  publish-image:
-    needs: [determine-tags, build-image]
+  publish-app-image:
+    needs: [determine-tags, build-app-image]
 
     uses: weseek/growi/.github/workflows/reusable-app-create-manifests.yml@master
     with:
@@ -129,7 +129,7 @@ jobs:
 
 
   post-publish:
-    needs: [create-github-release, publish-image]
+    needs: [create-github-release, publish-app-image]
     runs-on: ubuntu-latest
 
     steps:
@@ -154,7 +154,7 @@ jobs:
 
 
   create-pr-for-next-rc:
-    needs: [create-github-release, publish-image]
+    needs: [create-github-release, publish-app-image]
     runs-on: ubuntu-latest
 
     steps:

+ 2 - 15
apps/app/.stylelintrc.json

@@ -1,20 +1,7 @@
 {
-  "extends": [
-    "stylelint-config-recess-order"
-  ],
-  "customSyntax": "postcss-scss",
+  "extends": "../../.stylelintrc.json",
   "ignoreFiles": [
     "src/styles/prebuilt/*.css",
     "src/linter-checker/test.scss"
-  ],
-  "rules": {
-    "indentation": 2,
-    "string-quotes": "single",
-    "rule-empty-line-before": [ "always-multi-line", {
-      "except": ["after-single-line-comment", "first-nested"],
-      "ignore": ["after-comment", "inside-block"]
-    } ],
-    "selector-combinator-space-before": "always",
-    "selector-combinator-space-after": "always"
-  }
+  ]
 }

+ 0 - 710
apps/app/_obsolete/src/styles/theme/apply-colors.scss

@@ -1,710 +0,0 @@
-@use '@growi/core/scss/bootstrap/init' as *;
-
-@use '../variables' as var;
-@use '../mixins';
-@use '../atoms/mixins/code';
-@use './mixins/hsl-button';
-@use './hsl-functions' as hsl;
-
-@import 'apply-colors-dark';
-@import 'apply-colors-light';
-
-//
-//== Apply to Bootstrap
-//
-
-// determine optional variables
-$bgcolor-search-top-dropdown: var(--bgcolor-search-top-dropdown,var(--secondary));
-$bgcolor-sidebar-nav-item-active: var(--bgcolor-sidebar-nav-item-active,#{hsl.darken(var(--primary),10%)});
-$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%)});
-$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});
-$border-nav-tabs-link-active: var(--border-nav-tabs-link-active, #{$gray-600});
-$bordercolor-nav-tabs-active: var(--bordercolor-nav-tabs-active,$bordercolor-nav-tabs $bordercolor-nav-tabs var(--bgcolor-global));
-$color-btn-reload-in-sidebar: var(--color-btn-reload-in-sidebar,#{$gray-500});
-$bgcolor-keyword-highlighted: var(--bgcolor-keyword-highlighted,#{var.$grw-marker-yellow});
-$color-page-list-group-item-meta: var(--color-page-list-group-item-meta,#{$gray-500});
-$color-search-page-list-title: var(--color-search-page-list-title,var(--color-global));
-
-// override bootstrap variables
-$body-bg: var(--bgcolor-global);
-$body-color: var(--color-global);
-$link-color: var(--color-link);
-$link-hover-color: var(--color-link-hover);
-$input-focus-color: var(--color-global);
-$nav-tabs-border-color: $bordercolor-nav-tabs;
-$nav-tabs-link-hover-border-color: $bordercolor-nav-tabs-hover;
-$nav-tabs-link-active-color: var(--color-nav-tabs-link-active);
-$nav-tabs-link-active-bg: var(--bgcolor-global);
-$nav-tabs-link-active-border-color: $bordercolor-nav-tabs-active;
-$theme-colors: map-merge($theme-colors, ( primary: $primary ));
-
-// TODO: activate (https://redmine.weseek.co.jp/issues/128307)
-// @import 'reboot-bootstrap-buttons';
-// @import 'reboot-bootstrap-colors';
-// @import 'reboot-bootstrap-theme-colors';
-// @import 'hsl-reboot-bootstrap-theme-colors';
-// @import 'reboot-bootstrap-nav';
-// @import 'reboot-toastr-colors';
-
-// determine variables with bootstrap function (These variables can be used after importing bootstrap above)
-$color-modal-header: var(--color-modal-header,#{hsl.contrast(var(--primary))});
-
-code:not([class^='language-']) {
-  @include code.code-inline-color($color-inline-code, $bgcolor-inline-code, $bordercolor-inline-code);
-}
-
-.code-highlighted {
-  border-color: $bordercolor-inline-code;
-}
-
-//
-//== Apply to Bootstrap Elements
-//
-
-// TODO: activate (https://redmine.weseek.co.jp/issues/128307)
-// theme-color-level() dropped in bootstrap v5
-// Alert link
-// @each $color, $value in $theme-colors {
-//   .alert.alert-#{$color} {
-//     a,
-//     a:hover {
-//       color: theme-color-level($color, $alert-color-level - 2);
-//     }
-//   }
-// }
-
-// Dropdown
-.grw-apperance-mode-dropdown {
-  .grw-sidebar-mode-icon svg {
-    fill: var(--secondary);
-  }
-  .grw-color-mode-icon svg {
-    fill: var(--color-global);
-  }
-  .grw-color-mode-icon-muted svg {
-    fill: var(--secondary);
-  }
-}
-
-// TODO: activate (https://redmine.weseek.co.jp/issues/128307)
-// form-control-focus() dropped in bootstrap v5
-// Form
-// .form-control {
-//   @include form-control-focus();
-// }
-
-// Tabs
-.nav.nav-tabs .nav-link.active {
-  color: var(--color-link);
-  background: transparent;
-
-  &:hover,
-  &:focus {
-    color: var(--color-link-hover);
-  }
-}
-
-// Pagination
-ul.pagination {
-  li.page-item.disabled {
-    button.page-link {
-      color: $gray-400;
-    }
-  }
-  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 {
-      color: var(--primary);
-      border-color: var(--secondary) !important;
-      &:hover,
-      &:active,
-      &:focus {
-        color: var(--primary);
-      }
-    }
-  }
-}
-
-//
-//== Apply to Handsontable
-//
-.handsontable {
-  color: initial;
-}
-
-//
-//== Apply to GROWI Elements
-//
-
-.grw-logo {
-  // set transition for fill
-  svg, svg * {
-    transition: fill 0.8s ease-out;
-  }
-
-  svg {
-    fill: var(--fillcolor-logo-mark);
-  }
-
-  &:hover {
-    svg {
-      .group1 {
-        fill: var.$growi-green;
-      }
-
-      .group2 {
-        fill: var.$growi-blue;
-      }
-    }
-  }
-}
-
-.grw-navbar {
-  background: var(--bgcolor-navbar);
-  .nav-item .nav-link {
-    color: var(--color-link-nabvar);
-  }
-
-  border-image: var(--border-image-navbar) !important;
-  border-image-slice: 1 !important;
-
-  .grw-app-title {
-    color: var(--fillcolor-logo-mark);
-  }
-}
-
-.grw-global-search {
-  .btn-secondary.dropdown-toggle {
-    @include hsl-button.button-variant(var(--bgcolor-search-top-dropdown), var(--bgcolor-search-top-dropdown));
-  }
-
-  // for https://youtrack.weseek.co.jp/issue/GW-2603
-  .search-typeahead {
-    background-color: hsl.alpha(var(--bgcolor-global),10%);
-  }
-  input.form-control {
-    border: none;
-  }
-}
-
-.grw-sidebar {
-  $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%)});
-  // .grw-navigation-resize-button {
-  //   .hexagon-container svg {
-  //     .background {
-  //       fill: var(--bgcolor-resize-button);
-  //     }
-  //     .icon {
-  //       fill: var(--color-resize-button);
-  //     }
-  //   }
-  //   &:hover .hexagon-container svg {
-  //     .background {
-  //       fill: var(--bgcolor-resize-button-hover);
-  //     }
-  //     .icon {
-  //       fill: var(--color-resize-button-hover);
-  //     }
-  //   }
-  // }
-  div.grw-contextual-navigation {
-    > div {
-      color: var(--color-sidebar-context);
-      background-color: var(--bgcolor-sidebar-context);
-    }
-  }
-
-  .grw-sidebar-nav {
-    .btn {
-      @include hsl-button.button-variant(
-        var(--bgcolor-sidebar),
-        var(--bgcolor-sidebar),
-      );
-    }
-  }
-  .grw-sidebar-nav-primary-container {
-    .btn.active {
-      i {
-        text-shadow: $text-shadow-sidebar-nav-item-active;
-      }
-      // fukidashi
-      &:after {
-        border-right-color: var(--bgcolor-sidebar-context) !important;
-      }
-    }
-  }
-
-  .grw-sidebar-content-header {
-    .grw-btn-reload {
-      color: $color-btn-reload-in-sidebar;
-    }
-
-    .grw-recent-changes-resize-button {
-      .form-check-label::before {
-        background-color: var(--primary);
-      }
-
-      .form-check-label::after {
-        background-color: var(--bgcolor-global);
-      }
-
-      .form-check-input:not(:checked) + .form-check-label::before {
-        color: var(--bgcolor-global);
-      }
-
-      .form-check-input:checked + .form-check-label::before {
-        color: var(--bgcolor-global);
-        background-color: var(--primary);
-        border-color: var(--primary);
-      }
-      .form-check-input:checked + .form-check-label::after {
-        color: var(--bgcolor-global);
-      }
-    }
-  }
-
-  .grw-pagetree, .grw-foldertree {
-    .list-group-item {
-      .grw-pagetree-title-anchor, .grw-foldertree-title-anchor {
-        color: inherit;
-      }
-    }
-  }
-
-  .grw-pagetree-footer {
-    .h5.grw-private-legacy-pages-anchor {
-      color: inherit;
-    }
-  }
-
-  .grw-recent-changes {
-    .list-group {
-      .list-group-item {
-        background-color: transparent !important;
-
-        .icon-lock {
-          color: var(--color-link);
-        }
-
-        .grw-recent-changes-item-lower {
-          color: $gray-500;
-
-          svg {
-            fill: $gray-500;
-          }
-        }
-      }
-    }
-  }
-
-}
-
-/*
- * Icon
- */
-.editor-container .navbar-editor svg {
-  fill: var(--color-editor-icons);
-}
-
-// page preview button in link form
-.btn-page-preview svg {
-  fill: white;
-}
-
-/*
- * Modal
- */
-.modal {
-  .modal-header {
-    border-bottom-color: var(--border-color-theme);
-    .modal-title {
-      color: $color-modal-header;
-    }
-    .btn-close {
-      color: $color-modal-header;
-      opacity: 0.5;
-
-      &:hover {
-        opacity: 0.9;
-      }
-    }
-  }
-
-  .modal-content {
-    background-color: var(--bgcolor-global);
-  }
-
-  .modal-footer {
-    border-top-color: var(--border-color-theme);
-  }
-}
-
-.grw-page-accessories-modal,.grw-descendants-page-list-modal {
-  .modal-header {
-    .btn-close {
-      color: #{hsl.contrast(var(--bgcolor-global))};
-    }
-  }
-}
-
-.grw-custom-nav-tab {
-  .nav-item {
-    &:hover,
-    &:focus {
-      background-color: hsl.alpha(var(--color-link),10%);
-    }
-    .nav-link {
-      -webkit-appearance: none;
-      color: var(--color-link);
-      svg {
-        fill: var(--color-link);
-      }
-
-      // Disabled state lightens text
-      &.disabled {
-        color: $nav-link-disabled-color;
-        svg {
-          fill: $nav-link-disabled-color;
-        }
-      }
-    }
-  }
-
-  .grw-nav-slide-hr {
-    border-color: var(--color-link) !important;
-  }
-}
-
-/*
- * cards
- */
-.card.custom-card {
-  color: var(--color-global);
-  background-color: var(--bgcolor-card);
-  border-color: var(--light);
-  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);
-}
-
-/*
- * Form Slider
- */
-.admin-page {
-  span.slider {
-    background-color: $gray-300;
-
-    &:before {
-      background-color: white;
-    }
-  }
-
-  input:checked + .slider {
-    background-color: #007bff;
-  }
-
-  input:focus + .slider {
-    box-shadow: 0 0 1px #007bff;
-  }
-}
-
-/*
- * GROWI wiki
- */
-.wiki {
-  h1,
-  h2,
-  h3,
-  h4,
-  h5,
-  h6,
-  h7 {
-    &.blink {
-      @include mixins.blink-bgcolor(var(--bgcolor-blinked-section));
-    }
-  }
-
-  .highlighted-keyword {
-    background: linear-gradient(transparent 60%, $bgcolor-keyword-highlighted 60%);
-  }
-
-  a {
-    color: var(--color-link-wiki);
-
-    &:hover {
-      color: var(--color-link-wiki-hover);
-    }
-  }
-
-  // table with handsontable modal button
-  .editable-with-handsontable {
-    button {
-      color: var(--color-link-wiki);
-    }
-
-    button:hover {
-      color: var(--color-link-wiki-hover);
-    }
-  }
-}
-
-/*
- * GROWI page-list
- */
-.page-list {
-  // List group
-  .list-group {
-    .list-group-item {
-      background-color: var(--bgcolor-global) !important;
-      a {
-        svg {
-          fill: var(--color-global);
-        }
-
-        &:hover {
-          svg {
-            fill: var(--color-global);
-          }
-        }
-      }
-
-      .page-list-meta {
-        color: $color-page-list-group-item-meta;
-        svg {
-          fill: $color-page-list-group-item-meta;
-        }
-      }
-
-      &.list-group-item-action {
-        background-color: var(--bgcolor-list);
-        &.active {
-          border-left-color: var(--primary);
-        }
-      }
-    }
-  }
-}
-
-/*
- * GROWI Editor
- */
-.layout-root.editing {
-  background-color: hsl.darken(var(--bgcolor-global),2%);
-
-  &.builtin-editor {
-    .page-editor-editor-container {
-      border-right-color: var(--border-color-theme);
-    }
-  }
-
-  .navbar-editor {
-    background-color: var(--bgcolor-global); // same color with active tab
-    border-bottom-color: var(--border-color-theme);
-  }
-
-  .page-editor-preview-container {
-    background-color: var(--bgcolor-global);
-  }
-}
-
-
-/*
- * Preview for editing /Sidebar
- */
-.page-editor-preview-body.preview-sidebar {
-  color: var(--color-sidebar-context);
-  background-color: var(--bgcolor-sidebar-context);
-}
-
-/*
- * GROWI Grid Edit Modal
- */
-.grw-grid-edit-preview {
-  .desktop-preview,
-  .tablet-preview,
-  .mobile-preview {
-    background: var(--bgcolor-global);
-  }
-  .grid-edit-border-for-each-cols {
-    border: 2px solid var(--bgcolor-global);
-  }
-}
-
-.grid-preview-col-0 {
-  background: var.$growi-blue;
-}
-
-.grid-preview-col-1 {
-  background: var(--info);
-}
-
-.grid-preview-col-2 {
-  background: var(--success);
-}
-
-.grid-preview-col-3 {
-  background: var.$growi-green;
-}
-
-/*
- * GROWI comment form
- */
-.page-comments-row {
-  background: var(--bgcolor-subnav);
-  .page-comment .page-comment-main,
-  .page-comment-form .comment-form-main {
-    background-color: var(--bgcolor-global);
-
-    .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%);
-      }
-    }
-  }
-}
-
-/*
- * GROWI search result
- */
-.search-result-base {
-  .grw-search-page-nav {
-    background-color: var(--bgcolor-subnav);
-  }
-  .search-control {
-    background-color: var(--bgcolor-global);
-  }
-  .page-list {
-    .highlighted-keyword {
-      background: linear-gradient(transparent 60%, $bgcolor-keyword-highlighted 60%);
-    }
-  }
-}
-
-/*
- * react bootstrap typeahead
- */
-mark.rbt-highlight-text {
-  // Temporarily the highlight color is black
-  color: black;
-}
-
-/*
- * GROWI page content footer
- */
-.page-content-footer {
-  background-color: hsl.darken(var(--bgcolor-global),2%);
-  border-top-color: var(--border-color-theme);
-}
-
-/*
- * GROWI admin page #layoutOptions #themeOptions
- */
-.admin-page {
-  #layoutOptions {
-    .customize-layout-card {
-      &.border-active {
-        border-color: var(--color-theme-color-box);
-      }
-    }
-  }
-
-  #themeOptions {
-    .theme-option-container.active {
-      .theme-option-name {
-        color: var(--color-global);
-      }
-      a {
-        background-color: var(--color-theme-color-box);
-        border-color: var(--color-theme-color-box);
-      }
-    }
-  }
-}
-
-/*
- * HackMd
- */
-.bg-box {
-  background-color: var(--bgcolor-global);
-}
-
-/*
-  Slack Integration
-*/
-.selecting-bot-type {
-  .bot-type-disc {
-    width: 20px;
-  }
-}
-
-/*
-  In App Notification
-*/
-.grw-unopend-notification {
-  width: 7px;
-  height: 7px;
-  background-color: var(--primary);
-}
-
-/*
-Emoji picker modal
-*/
-.emoji-picker-modal {
-  background-color: transparent !important;
-}
-
-/*
-Expand / compress button bookmark list on users page
-*/
-.grw-user-page-list-m {
-  .grw-expand-compress-btn {
-    color: $body-color;
-    background-color: $body-bg;
-    &.active {
-      background-color: hsl.darken($body-bg, 12%),
-    }
-  }
-}
-
-/*
- * Questionnaire modal
- */
-.grw-questionnaire-btn-group {
-  .btn-outline-primary {
-    @include hsl-button.button-outline-variant(
-      #{hsl.lighten(var(--primary), 30%)} !important,
-      #{hsl.contrast(var(--primary))} !important,
-      var(--primary) !important,
-      #{hsl.lighten(var(--primary), 30%)} !important,
-    );
-    &:not(:disabled):not(.disabled):active,
-    &:not(:disabled):not(.disabled).active {
-      color: #{hsl.contrast(var(--primary))} !important;
-      background-color: var(--primary) !important;
-    }
-  }
-}
-
-/*
- * revision-history-diff
- */
-.revision-history-diff {
-  background-color: white;
-}

+ 4 - 2
apps/app/package.json

@@ -71,7 +71,6 @@
     "@godaddy/terminus": "^4.9.0",
     "@google-cloud/storage": "^5.8.5",
     "@growi/core": "link:../../packages/core",
-    "@growi/custom-icons": "link:../../packages/custom-icons",
     "@growi/pluginkit": "link:../../packages/pluginkit",
     "@growi/preset-templates": "link:../../packages/preset-templates",
     "@growi/preset-themes": "link:../../packages/preset-themes",
@@ -220,11 +219,14 @@
     "handsontable": "v7.0.0 or above is no loger MIT lisence."
   },
   "devDependencies": {
+    "@growi/core-styles": "link:../../packages/core-styles",
+    "@growi/custom-icons": "link:../../packages/custom-icons",
     "@growi/editor": "link:../../packages/editor",
     "@growi/presentation": "link:../../packages/presentation",
     "@growi/ui": "link:../../packages/ui",
     "@handsontable/react": "=2.1.0",
     "@next/bundle-analyzer": "^14.1.3",
+    "@popperjs/core": "^2.11.8",
     "@swc-node/jest": "^1.6.2",
     "@swc/jest": "^0.2.24",
     "@testing-library/react": "^14.1.2",
@@ -241,7 +243,7 @@
     "@vitest/coverage-v8": "^0.34.6",
     "autoprefixer": "^9.0.0",
     "babel-loader": "^8.2.5",
-    "bootstrap": "^5.3.1",
+    "bootstrap": "^5.3.3",
     "connect-browser-sync": "^2.1.0",
     "cypress-real-events": "^1.12.0",
     "diff2html": "^3.4.47",

+ 1 - 1
apps/app/src/components/Admin/Customize/ThemeColorBox.module.scss

@@ -1,4 +1,4 @@
-@use '@growi/core/scss/bootstrap/init' as bs;
+@use '@growi/core-styles/scss/bootstrap/init' as bs;
 
 // layout
 .theme-option-container :global {

+ 1 - 1
apps/app/src/components/Admin/UserManagement.module.scss

@@ -1,4 +1,4 @@
-@use '@growi/core/scss/bootstrap/init' as bs;
+@use '@growi/core-styles/scss/bootstrap/init' as bs;
 
 // styles for admin user search
 .search-typeahead :global {

+ 1 - 1
apps/app/src/components/AuthorInfo/AuthorInfo.module.scss

@@ -1,4 +1,4 @@
-@use '@growi/core/scss/bootstrap/init' as bs;
+@use '@growi/core-styles/scss/bootstrap/init' as bs;
 
 $author-font-size: 12px;
 $date-font-size: 11px;

+ 1 - 1
apps/app/src/components/Common/CopyDropdown/CopyDropdown.module.scss

@@ -1,4 +1,4 @@
-@use '@growi/core/scss/bootstrap/init' as bs;
+@use '@growi/core-styles/scss/bootstrap/init' as bs;
 
 @use '@growi/ui/scss/atoms/btn-muted';
 

+ 1 - 1
apps/app/src/components/Common/DrawerToggler/DrawerToggler.module.scss

@@ -1,4 +1,4 @@
-@use '@growi/core/scss/bootstrap/init' as bs;
+@use '@growi/core-styles/scss/bootstrap/init' as bs;
 
 @use '~/styles/variables' as var;
 

+ 1 - 1
apps/app/src/components/Common/PagePathHierarchicalLink/CollapsedParentsDropdown.module.scss

@@ -1,5 +1,5 @@
 
-@use '@growi/core/scss/bootstrap/init' as bs;
+@use '@growi/core-styles/scss/bootstrap/init' as bs;
 
 .collapsed-parents-dropdown-menu {
   --bs-dropdown-zindex: #{bs.$zindex-fixed};

+ 1 - 1
apps/app/src/components/Common/PagePathNav/PagePathNav.module.scss

@@ -1,4 +1,4 @@
-@use '@growi/core/scss/bootstrap/init' as bs;
+@use '@growi/core-styles/scss/bootstrap/init' as bs;
 
 @use '@growi/ui/scss/atoms/btn-muted';
 

+ 1 - 1
apps/app/src/components/Common/PageViewLayout.module.scss

@@ -1,4 +1,4 @@
-@use '@growi/core/scss/bootstrap/init' as bs;
+@use '@growi/core-styles/scss/bootstrap/init' as bs;
 
 @use '~/styles/mixins';
 @use '~/styles/variables' as var;

+ 1 - 1
apps/app/src/components/CustomNavigation/CustomNav.module.scss

@@ -1,4 +1,4 @@
-@use '@growi/core/scss/bootstrap/init' as bs;
+@use '@growi/core-styles/scss/bootstrap/init' as bs;
 
 .grw-custom-nav-tab :global {
   .nav-title {

+ 1 - 1
apps/app/src/components/Icons/GrowiLogo.module.scss

@@ -1,4 +1,4 @@
-@use '@growi/core/scss/growi-official-colors';
+@use '@growi/core-styles/scss/variables/growi-official-colors';
 
 // == Colors
 .grw-logo :global {

+ 1 - 1
apps/app/src/components/Layout/Admin.module.scss

@@ -1,4 +1,4 @@
-@use '@growi/core/scss/bootstrap/init' as *;
+@use '@growi/core-styles/scss/bootstrap/init' as *;
 @use '~/styles/mixins';
 
 $slack-work-space-name-card-background: #fff5ff;

+ 2 - 2
apps/app/src/components/Layout/NoLoginLayout.module.scss

@@ -1,5 +1,5 @@
-@use '@growi/core/scss/bootstrap/init' as bs;
-@use '@growi/core/scss/growi-official-colors' as var;
+@use '@growi/core-styles/scss/bootstrap/init' as bs;
+@use '@growi/core-styles/scss/variables/growi-official-colors' as var;
 
 
 .nologin :global {

+ 1 - 1
apps/app/src/components/Layout/SearchResultLayout.module.scss

@@ -1,5 +1,5 @@
 @use '~/styles/variables' as var;
-@use '@growi/core/scss/bootstrap/init' as bs;
+@use '@growi/core-styles/scss/bootstrap/init' as bs;
 
 .on-search :global {
   .page-wrapper {

+ 1 - 1
apps/app/src/components/LoginForm/LoginForm.module.scss

@@ -1,4 +1,4 @@
-@use '@growi/core/scss/bootstrap/init' as bs;
+@use '@growi/core-styles/scss/bootstrap/init' as bs;
 
 @use '~/styles/atoms/placeholders/buttons';
 

+ 1 - 1
apps/app/src/components/Me/UISettings.module.scss

@@ -1,4 +1,4 @@
-@use '@growi/core/scss/bootstrap/init' as bs;
+@use '@growi/core-styles/scss/bootstrap/init' as bs;
 
 .grw-sidebar-mode-icon {
   display: flex;

+ 1 - 1
apps/app/src/components/Navbar/GrowiContextualSubNavigation.module.scss

@@ -1,5 +1,5 @@
 @use '~/styles/mixins';
-@use '@growi/core/scss/bootstrap/init' as bs;
+@use '@growi/core-styles/scss/bootstrap/init' as bs;
 
 .grw-contextual-sub-navigation {
   @include bs.media-breakpoint-down(md) {

+ 1 - 1
apps/app/src/components/Navbar/PageEditorModeManager.module.scss

@@ -1,5 +1,5 @@
 // @mixin page-editor-mode-manager($textColor, $borderColor, $bgColorHoverAndActive, $bgColor: white) {
-@use '@growi/core/scss/bootstrap/init' as bs;
+@use '@growi/core-styles/scss/bootstrap/init' as bs;
 @use '~/styles/mixins';
 
 .grw-page-editor-mode-manager :global {

+ 1 - 1
apps/app/src/components/PageComment.module.scss

@@ -1,4 +1,4 @@
-@use '@growi/core/scss/bootstrap/init' as bs;
+@use '@growi/core-styles/scss/bootstrap/init' as bs;
 
 .page-comment-styles :global {
   .page-comments {

+ 1 - 1
apps/app/src/components/PageComment/Comment.module.scss

@@ -1,4 +1,4 @@
-@use '@growi/core/scss/bootstrap/init' as bs;
+@use '@growi/core-styles/scss/bootstrap/init' as bs;
 
 @use '../../styles/variables' as var;
 @use './_comment-inheritance';

+ 1 - 1
apps/app/src/components/PageComment/CommentEditor.module.scss

@@ -1,4 +1,4 @@
-@use '@growi/core/scss/bootstrap/init' as bs;
+@use '@growi/core-styles/scss/bootstrap/init' as bs;
 @use './comment-inheritance';
 @use '../PageEditor/page-editor-inheritance';
 

+ 1 - 1
apps/app/src/components/PageComment/SwitchingButtonGroup.module.scss

@@ -1,4 +1,4 @@
-@use '@growi/core/scss/bootstrap/init' as bs;
+@use '@growi/core-styles/scss/bootstrap/init' as bs;
 
 
 .btn-group-switching :global {

+ 1 - 1
apps/app/src/components/PageComment/_comment-inheritance.scss

@@ -1,4 +1,4 @@
-@use '@growi/core/scss/bootstrap/init' as bs;
+@use '@growi/core-styles/scss/bootstrap/init' as bs;
 
 %comment-section {
   position: relative;

+ 1 - 1
apps/app/src/components/PageContentFooter.module.scss

@@ -1,4 +1,4 @@
-@use '@growi/core/scss/bootstrap/init' as bs;
+@use '@growi/core-styles/scss/bootstrap/init' as bs;
 
 .page-content-footer :global {
   border-top: solid 1px transparent;

+ 1 - 1
apps/app/src/components/PageControls/BookmarkButtons.module.scss

@@ -1,4 +1,4 @@
-@use '@growi/core/scss/bootstrap/init' as bs;
+@use '@growi/core-styles/scss/bootstrap/init' as bs;
 
 @use '@growi/ui/scss/atoms/btn-muted';
 

+ 1 - 1
apps/app/src/components/PageControls/LikeButtons.module.scss

@@ -1,4 +1,4 @@
-@use '@growi/core/scss/bootstrap/init' as bs;
+@use '@growi/core-styles/scss/bootstrap/init' as bs;
 
 @use '@growi/ui/scss/atoms/btn-muted';
 

+ 1 - 1
apps/app/src/components/PageControls/PageControls.module.scss

@@ -1,4 +1,4 @@
-@use '@growi/core/scss/bootstrap/init' as bs;
+@use '@growi/core-styles/scss/bootstrap/init' as bs;
 
 @use '@growi/ui/scss/atoms/btn-muted';
 

+ 1 - 1
apps/app/src/components/PageControls/SearchButton.module.scss

@@ -1,4 +1,4 @@
-@use '@growi/core/scss/bootstrap/init' as bs;
+@use '@growi/core-styles/scss/bootstrap/init' as bs;
 
 @use '@growi/ui/scss/atoms/btn-muted';
 

+ 1 - 1
apps/app/src/components/PageControls/SeenUserInfo.module.scss

@@ -1,4 +1,4 @@
-@use '@growi/core/scss/bootstrap/init' as bs;
+@use '@growi/core-styles/scss/bootstrap/init' as bs;
 
 @use '@growi/ui/scss/atoms/btn-muted';
 

+ 1 - 1
apps/app/src/components/PageControls/SubscribeButton.module.scss

@@ -1,4 +1,4 @@
-@use '@growi/core/scss/bootstrap/init' as bs;
+@use '@growi/core-styles/scss/bootstrap/init' as bs;
 
 @use '@growi/ui/scss/atoms/btn-muted';
 

+ 1 - 1
apps/app/src/components/PageControls/_button-styles.scss

@@ -1,4 +1,4 @@
-@use '@growi/core/scss/bootstrap/init' as bs;
+@use '@growi/core-styles/scss/bootstrap/init' as bs;
 
 %btn-basis {
   --bs-btn-padding-x: 6px;

+ 1 - 1
apps/app/src/components/PageEditor/EditorNavbar/EditorNavbar.module.scss

@@ -1,4 +1,4 @@
-@use '@growi/core/scss/bootstrap/init' as bs;
+@use '@growi/core-styles/scss/bootstrap/init' as bs;
 
 .editor-navbar :global {
   min-height: 72px;

+ 1 - 1
apps/app/src/components/PageEditor/EditorNavbarBottom.module.scss

@@ -1,4 +1,4 @@
-@use '@growi/core/scss/bootstrap/init' as bs;
+@use '@growi/core-styles/scss/bootstrap/init' as bs;
 @use '~/styles/variables' as var;
 @use '~/styles/mixins';
 

+ 1 - 1
apps/app/src/components/PageEditor/GridEditModal.module.scss

@@ -1,4 +1,4 @@
-@use '@growi/core/scss/bootstrap/init' as bs;
+@use '@growi/core-styles/scss/bootstrap/init' as bs;
 
 .grw-grid-edit-modal :global {
   .desktop-preview,

+ 1 - 1
apps/app/src/components/PageSideContents/PageAccessoriesControl.module.scss

@@ -1,4 +1,4 @@
-@use '@growi/core/scss/bootstrap/init' as bs;
+@use '@growi/core-styles/scss/bootstrap/init' as bs;
 
 .btn-page-accessories :global {
   display: flex;

+ 1 - 1
apps/app/src/components/PageStatusAlert.module.scss

@@ -1,5 +1,5 @@
 @use '~/styles/variables' as var;
-@use '@growi/core/scss/bootstrap/init' as bs;
+@use '@growi/core-styles/scss/bootstrap/init' as bs;
 
 .grw-page-status-alert :global {
   $margin-bottom: var.$grw-navbar-bottom-height + 10px;

+ 1 - 1
apps/app/src/components/PageTags/TagLabels.module.scss

@@ -1,4 +1,4 @@
-@use '@growi/core/scss/bootstrap/init' as bs;
+@use '@growi/core-styles/scss/bootstrap/init' as bs;
 
 $grw-tag-label-font-size: 12px;
 

+ 1 - 1
apps/app/src/components/PageTimeline.module.scss

@@ -1,4 +1,4 @@
-@use '@growi/core/scss/bootstrap/init' as bs;
+@use '@growi/core-styles/scss/bootstrap/init' as bs;
 
 .card-timeline :global {
   margin-bottom: 3rem;

+ 1 - 1
apps/app/src/components/ReactMarkdownComponents/CodeBlock.module.scss

@@ -1,5 +1,5 @@
 @use '~/styles/variables' as var;
-@use '@growi/core/scss/bootstrap/init' as bs;
+@use '@growi/core-styles/scss/bootstrap/init' as bs;
 
 .code-highlighted-title {
   position: absolute;

+ 1 - 1
apps/app/src/components/RevisionComparer/RevisionComparer.module.scss

@@ -1,4 +1,4 @@
-@use '@growi/core/scss/bootstrap/init' as bs;
+@use '@growi/core-styles/scss/bootstrap/init' as bs;
 
 @use '@growi/ui/scss/atoms/btn-muted';
 

+ 1 - 1
apps/app/src/components/SearchForm.module.scss

@@ -1,4 +1,4 @@
-@use '@growi/core/scss/bootstrap/init' as bs;
+@use '@growi/core-styles/scss/bootstrap/init' as bs;
 
 .grw-search-table {
   caption {

+ 1 - 1
apps/app/src/components/SearchPage/SearchControl.module.scss

@@ -1,5 +1,5 @@
 
-@use '@growi/core/scss/bootstrap/init' as bs;
+@use '@growi/core-styles/scss/bootstrap/init' as bs;
 
 @use '@growi/ui/scss/atoms/btn-muted';
 

+ 1 - 1
apps/app/src/components/SearchTypeahead.module.scss

@@ -1,4 +1,4 @@
-@use '@growi/core/scss/bootstrap/init' as bs;
+@use '@growi/core-styles/scss/bootstrap/init' as bs;
 
 .search-typeahead :global {
   position: relative;

+ 1 - 1
apps/app/src/components/ShortcutsModal.module.scss

@@ -1,4 +1,4 @@
-@use '@growi/core/scss/bootstrap/init' as bs;
+@use '@growi/core-styles/scss/bootstrap/init' as bs;
 
 .shortcuts-modal :global {
   h3 {

+ 2 - 2
apps/app/src/components/Sidebar/AppTitle/AppTitle.module.scss

@@ -1,6 +1,6 @@
-@use '@growi/core/scss/bootstrap/init' as bs;
+@use '@growi/core-styles/scss/bootstrap/init' as bs;
 
-@use '@growi/core/scss/growi-official-colors';
+@use '@growi/core-styles/scss/variables/growi-official-colors';
 
 @use '~/styles/variables' as var;
 

+ 1 - 1
apps/app/src/components/Sidebar/PageTreeItem/PageTreeItem.module.scss

@@ -1,4 +1,4 @@
-@use '@growi/core/scss/bootstrap/init' as bs;
+@use '@growi/core-styles/scss/bootstrap/init' as bs;
 
 
 // fix height

+ 1 - 1
apps/app/src/components/Sidebar/Sidebar.module.scss

@@ -1,4 +1,4 @@
-@use '@growi/core/scss/bootstrap/init' as bs;
+@use '@growi/core-styles/scss/bootstrap/init' as bs;
 
 @use '~/styles/variables' as var;
 @use '~/styles/mixins';

+ 1 - 1
apps/app/src/components/Sidebar/SidebarContents.module.scss

@@ -1,4 +1,4 @@
-@use '@growi/core/scss/bootstrap/init' as bs;
+@use '@growi/core-styles/scss/bootstrap/init' as bs;
 
 .grw-sidebar-contents :global {
 

+ 1 - 1
apps/app/src/components/Sidebar/SidebarHead/SidebarHead.module.scss

@@ -1,4 +1,4 @@
-@use '@growi/core/scss/bootstrap/init' as bs;
+@use '@growi/core-styles/scss/bootstrap/init' as bs;
 
 
 // == Colors

+ 1 - 1
apps/app/src/components/Sidebar/SidebarHead/ToggleCollapseButton.module.scss

@@ -1,4 +1,4 @@
-@use '@growi/core/scss/bootstrap/init' as bs;
+@use '@growi/core-styles/scss/bootstrap/init' as bs;
 
 @use '~/styles/variables' as var;
 @use '~/styles/mixins';

+ 1 - 1
apps/app/src/components/Sidebar/SidebarNav/PersonalDropdown.module.scss

@@ -1,4 +1,4 @@
-@use '@growi/core/scss/bootstrap/init' as bs;
+@use '@growi/core-styles/scss/bootstrap/init' as bs;
 
 .btn-personal-dropdown :global {
   img {

+ 1 - 1
apps/app/src/components/Sidebar/SidebarNav/PrimaryItems.module.scss

@@ -1,4 +1,4 @@
-@use '@growi/core/scss/bootstrap/init' as bs;
+@use '@growi/core-styles/scss/bootstrap/init' as bs;
 
 @use '../button-styles';
 

+ 1 - 1
apps/app/src/components/Sidebar/SidebarNav/SecondaryItems.module.scss

@@ -1,4 +1,4 @@
-@use '@growi/core/scss/bootstrap/init' as bs;
+@use '@growi/core-styles/scss/bootstrap/init' as bs;
 
 @use '../button-styles';
 

+ 1 - 1
apps/app/src/components/Sidebar/SidebarNav/SidebarNav.module.scss

@@ -1,4 +1,4 @@
-@use '@growi/core/scss/bootstrap/init' as bs;
+@use '@growi/core-styles/scss/bootstrap/init' as bs;
 
 @use '~/styles/variables' as var;
 

+ 1 - 1
apps/app/src/components/Sidebar/SidebarNav/SkeletonItem.module.scss

@@ -1,4 +1,4 @@
-@use '@growi/core/scss/bootstrap/init' as bs;
+@use '@growi/core-styles/scss/bootstrap/init' as bs;
 
 @use '../variables' as sidebarVar;
 

+ 1 - 1
apps/app/src/components/SlackNotification.module.scss

@@ -1,4 +1,4 @@
-@use '@growi/core/scss/bootstrap/init' as bs;
+@use '@growi/core-styles/scss/bootstrap/init' as bs;
 
 
 .grw-slack-switch :global {

+ 1 - 1
apps/app/src/components/TableOfContents.module.scss

@@ -1,4 +1,4 @@
-@use '@growi/core/scss/bootstrap/init' as bs;
+@use '@growi/core-styles/scss/bootstrap/init' as bs;
 
 .revision-toc :global {
   // to get on the Attachment row

+ 1 - 1
apps/app/src/components/TagList.module.scss

@@ -1,4 +1,4 @@
-@use '@growi/core/scss/bootstrap/init' as bs;
+@use '@growi/core-styles/scss/bootstrap/init' as bs;
 
 .grw-tag-list :global {
   .list-group {

+ 1 - 1
apps/app/src/components/TemplateModal/TemplateModal.module.scss

@@ -1,4 +1,4 @@
-@use '@growi/core/scss/bootstrap/init' as bs;
+@use '@growi/core-styles/scss/bootstrap/init' as bs;
 
 .dm-templates :global {
   .dropdown-item:not(:first-child) {

+ 1 - 1
apps/app/src/components/User/UserInfo.module.scss

@@ -1,4 +1,4 @@
-@use '@growi/core/scss/bootstrap/init' as bs;
+@use '@growi/core-styles/scss/bootstrap/init' as bs;
 
 .grw-users-info :global {
   .users-meta {

+ 1 - 1
apps/app/src/features/questionnaire/client/components/QuestionnaireModalManager.module.scss

@@ -1,4 +1,4 @@
-@use '@growi/core/scss/bootstrap/init' as bs;
+@use '@growi/core-styles/scss/bootstrap/init' as bs;
 
 .grw-questionnaire-toasts :global {
   position: fixed;

+ 1 - 1
apps/app/src/features/search/client/components/SearchMenuItem.module.scss

@@ -1,4 +1,4 @@
-@use '@growi/core/scss/bootstrap/init' as bs;
+@use '@growi/core-styles/scss/bootstrap/init' as bs;
 
 @use '~/styles/variables' as var;
 

+ 1 - 1
apps/app/src/pages/login/index.module.scss

@@ -1,4 +1,4 @@
-@use '@growi/core/scss/bootstrap/init' as bs;
+@use '@growi/core-styles/scss/bootstrap/init' as bs;
 
 // layout
 .login-page :global {

+ 8 - 10
apps/app/src/styles/_editor.scss

@@ -1,7 +1,5 @@
-@use '@growi/core/scss/bootstrap/init' as bs;
-
+@use '@growi/core-styles/scss/bootstrap/init' as bs;
 @use './variables' as var;
-
 @import './organisms/wiki-custom-sidebar';
 
 :root {
@@ -12,7 +10,7 @@
 .layout-root.editing {
   overflow: hidden !important;
 
-  .page-wrapper {
+  .page-wrapper{
     height: 100vh;
   }
 
@@ -46,7 +44,7 @@
       .markdown-table-activated,
       .markdown-link-activated {
         .CodeMirror-cursor {
-          &:after {
+          &::after {
             position: relative;
             top: -1.1em;
             left: 0.3em;
@@ -54,7 +52,6 @@
             width: 1em;
             height: 1em;
             content: ' ';
-
             background-repeat: no-repeat;
             background-size: 1em;
           }
@@ -62,14 +59,14 @@
       }
 
       .markdown-table-activated .CodeMirror-cursor {
-        &:after {
-          background-image: url(/images/icons/editor/table.svg);
+        &::after {
+          background-image: url('/images/icons/editor/table.svg');
         }
       }
 
       .markdown-link-activated .CodeMirror-cursor {
-        &:after {
-          background-image: url(/images/icons/editor/link.svg);
+        &::after {
+          background-image: url('/images/icons/editor/link.svg');
         }
       }
 
@@ -83,6 +80,7 @@
       padding: 18px 15px 0;
       overflow-y: scroll;
     }
+
     // editing /Sidebar
     .page-editor-preview-body.preview-sidebar {
       flex-grow: 0;

+ 1 - 1
apps/app/src/styles/_layout.scss

@@ -1,4 +1,4 @@
-@use '@growi/core/scss/bootstrap/init' as bs;
+@use '@growi/core-styles/scss/bootstrap/init' as bs;
 
 @use './variables' as var;
 

+ 1 - 1
apps/app/src/styles/_override-handsontable.scss

@@ -1,4 +1,4 @@
-@use '@growi/core/scss/bootstrap/init' as bs;
+@use '@growi/core-styles/scss/bootstrap/init' as bs;
 
 // Table
 @include bs.color-mode(dark) {

+ 1 - 1
apps/app/src/styles/atoms/_code.scss

@@ -1,5 +1,5 @@
 @use '~/styles/variables' as var;
-@use '@growi/core/scss/bootstrap/init' as bs;
+@use '@growi/core-styles/scss/bootstrap/init' as bs;
 
 /*
  * style of inline-code

+ 1 - 1
apps/app/src/styles/atoms/_custom_control.scss

@@ -1,4 +1,4 @@
-@use '@growi/core/scss/bootstrap/init' as *;
+@use '@growi/core-styles/scss/bootstrap/init' as *;
 
 $form-check-gutter: .5rem;
 $form-check-indicator-border-width: 1px;

+ 1 - 1
apps/app/src/styles/atoms/_tag.scss

@@ -1,4 +1,4 @@
-@use '@growi/core/scss/bootstrap/init' as bs;
+@use '@growi/core-styles/scss/bootstrap/init' as bs;
 
 // == Colors
 @include bs.color-mode(light) {

+ 1 - 1
apps/app/src/styles/atoms/placeholders/_buttons.scss

@@ -1,4 +1,4 @@
-@use '@growi/core/scss/bootstrap/init' as bs;
+@use '@growi/core-styles/scss/bootstrap/init' as bs;
 
 %btn-nologin {
   transition: 0.8s ease;

+ 1 - 1
apps/app/src/styles/molecules/_list-group-item.scss

@@ -1,4 +1,4 @@
-@use '@growi/core/scss/bootstrap/init' as bs;
+@use '@growi/core-styles/scss/bootstrap/init' as bs;
 
 .list-group-item.active {
   --bs-list-group-active-color: var(--bs-list-group-color);

+ 1 - 1
apps/app/src/styles/organisms/_wiki.scss

@@ -1,4 +1,4 @@
-@use '@growi/core/scss/bootstrap/utilities' as bs;
+@use '@growi/core-styles/scss/bootstrap/utilities' as bs;
 
 @use '../variables' as var;
 

+ 2 - 2
apps/app/src/styles/style-app.scss

@@ -1,5 +1,5 @@
-@import '@growi/core/scss/flex-expand';
-@import '@growi/core/scss/rotate';
+@import '@growi/core-styles/scss/helpers/flex-expand';
+@import '@growi/core-styles/scss/helpers/rotate';
 
 @import 'mixins';
 

+ 1 - 1
apps/app/src/styles/vendor.scss

@@ -1,4 +1,4 @@
-@import '@growi/core/scss/bootstrap/apply';
+@import '@growi/core-styles/scss/bootstrap/apply';
 
 @import '@growi/ui/dist/style';
 

+ 2 - 1
apps/slackbot-proxy/package.json

@@ -54,11 +54,12 @@
     "universal-bunyan": "^0.9.2"
   },
   "devDependencies": {
+    "@popperjs/core": "^2.11.8",
     "@tsed/core": "^6.43.0",
     "@tsed/exceptions": "^6.43.0",
     "@tsed/json-mapper": "^6.43.0",
     "@tsed/schema": "^6.43.0",
-    "bootstrap": "^5.3.1",
+    "bootstrap": "^5.3.3",
     "browser-bunyan": "^1.6.3",
     "eslint-plugin-regex": "^1.8.0",
     "morgan": "^1.10.0",

+ 26 - 0
packages/core-styles/package.json

@@ -0,0 +1,26 @@
+{
+  "name": "@growi/core-styles",
+  "version": "0.9.0",
+  "description": "GROWI Core Style Files",
+  "license": "MIT",
+  "keywords": [
+    "growi"
+  ],
+  "files": [
+    "scss"
+  ],
+  "exports": {
+    "./scss/*": "./scss/*.scss"
+  },
+  "scripts": {
+    "lint:styles": "stylelint ./scss/**/*",
+    "lint": "npm-run-all -p lint:*"
+  },
+  "dependencies": {},
+  "devDependencies": {
+    "bootstrap": "^5.3.3"
+  },
+  "peerDependencies": {
+    "@popperjs/core": "^2.11.8"
+  }
+}

+ 0 - 0
packages/core/scss/bootstrap/_init-stage-1.scss → packages/core-styles/scss/bootstrap/_init-stage-1.scss


+ 0 - 0
packages/core/scss/bootstrap/_init-stage-2.scss → packages/core-styles/scss/bootstrap/_init-stage-2.scss


+ 0 - 0
packages/core/scss/bootstrap/_variables-dark.scss → packages/core-styles/scss/bootstrap/_variables-dark.scss


+ 0 - 0
packages/core/scss/bootstrap/_variables.scss → packages/core-styles/scss/bootstrap/_variables.scss


+ 0 - 0
packages/core/scss/bootstrap/apply.scss → packages/core-styles/scss/bootstrap/apply.scss


+ 0 - 0
packages/core/scss/bootstrap/init.scss → packages/core-styles/scss/bootstrap/init.scss


+ 0 - 0
packages/core/scss/bootstrap/mixins/_button-outline-neutral-variant.scss → packages/core-styles/scss/bootstrap/mixins/_button-outline-neutral-variant.scss


+ 0 - 0
packages/core/scss/bootstrap/mixins/_button-outline-variant.scss → packages/core-styles/scss/bootstrap/mixins/_button-outline-variant.scss


+ 0 - 0
packages/core/scss/bootstrap/override/_badge.scss → packages/core-styles/scss/bootstrap/override/_badge.scss


+ 0 - 0
packages/core/scss/bootstrap/override/_buttons.scss → packages/core-styles/scss/bootstrap/override/_buttons.scss


+ 0 - 0
packages/core/scss/bootstrap/override/_helpers.scss → packages/core-styles/scss/bootstrap/override/_helpers.scss


+ 0 - 0
packages/core/scss/bootstrap/override/helpers/_color-bg.scss → packages/core-styles/scss/bootstrap/override/helpers/_color-bg.scss


+ 0 - 0
packages/core/scss/bootstrap/theming/_buttons-dark.scss → packages/core-styles/scss/bootstrap/theming/_buttons-dark.scss


+ 0 - 0
packages/core/scss/bootstrap/theming/_buttons-light.scss → packages/core-styles/scss/bootstrap/theming/_buttons-light.scss


+ 0 - 0
packages/core/scss/bootstrap/theming/_list-group.scss → packages/core-styles/scss/bootstrap/theming/_list-group.scss


+ 0 - 0
packages/core/scss/bootstrap/theming/_pagination.scss → packages/core-styles/scss/bootstrap/theming/_pagination.scss


+ 0 - 0
packages/core/scss/bootstrap/theming/_progress.scss → packages/core-styles/scss/bootstrap/theming/_progress.scss


+ 7 - 0
packages/core/scss/bootstrap/theming/_root-dark.scss → packages/core-styles/scss/bootstrap/theming/_root-dark.scss

@@ -35,7 +35,14 @@
   --#{$prefix}link-hover-color-rgb: #{to-rgb($link-hover-color-dark)};
 
   --#{$prefix}code-color: #{$code-color-dark};
+  --#{$prefix}highlight-color: #{$mark-color-dark};
+  --#{$prefix}highlight-bg: #{$mark-bg-dark};
 
   --#{$prefix}border-color: #{$border-color-dark};
   --#{$prefix}border-color-translucent: #{$border-color-translucent-dark};
+
+  --#{$prefix}form-valid-color: #{$form-valid-color-dark};
+  --#{$prefix}form-valid-border-color: #{$form-valid-border-color-dark};
+  --#{$prefix}form-invalid-color: #{$form-invalid-color-dark};
+  --#{$prefix}form-invalid-border-color: #{$form-invalid-border-color-dark};
 }

+ 6 - 0
packages/core/scss/bootstrap/theming/_root-light.scss → packages/core-styles/scss/bootstrap/theming/_root-light.scss

@@ -25,8 +25,14 @@
   --#{$prefix}link-hover-color-rgb: #{to-rgb($link-hover-color)};
 
   --#{$prefix}code-color: #{$code-color};
+  --#{$prefix}highlight-color: #{$mark-color};
   --#{$prefix}highlight-bg: #{$mark-bg};
 
   --#{$prefix}border-color: #{$border-color};
   --#{$prefix}border-color-translucent: #{$border-color-translucent};
+
+  --#{$prefix}form-valid-color: #{$form-valid-color};
+  --#{$prefix}form-valid-border-color: #{$form-valid-border-color};
+  --#{$prefix}form-invalid-color: #{$form-invalid-color};
+  --#{$prefix}form-invalid-border-color: #{$form-invalid-border-color};
 }

+ 0 - 0
packages/core/scss/bootstrap/theming/_root.scss → packages/core-styles/scss/bootstrap/theming/_root.scss


+ 0 - 0
packages/core/scss/bootstrap/theming/_tables.scss → packages/core-styles/scss/bootstrap/theming/_tables.scss


Vissa filer visades inte eftersom för många filer har ändrats