diff --git a/app/src/common/AppFooter.tsx b/app/src/common/AppFooter.tsx index d608ae6283..38454471f7 100644 --- a/app/src/common/AppFooter.tsx +++ b/app/src/common/AppFooter.tsx @@ -2,7 +2,7 @@ import * as React from 'react'; import css from './AppFooter.module.scss'; import { FlexRow, Text, Anchor, IconContainer, -} from '@epam/promo'; +} from '@epam/uui'; import { ReactComponent as EPAMIcon } from '../icons/EPAM.svg'; const EPAM_LINK = 'https://www.epam.com'; @@ -15,7 +15,7 @@ export class AppFooter extends React.Component { - + {`© ${new Date().getFullYear()} EPAM Systems. All Rights reserved`} diff --git a/app/src/common/AppHeader.module.scss b/app/src/common/AppHeader.module.scss index 7b9f781772..bc494cbfa3 100644 --- a/app/src/common/AppHeader.module.scss +++ b/app/src/common/AppHeader.module.scss @@ -8,7 +8,7 @@ .link-caption { padding-left: 6px; - color: #FFFFFF; + color: var(--uui-main_menu-text); white-space: nowrap; } } @@ -21,8 +21,8 @@ min-width: 320px; } - .git-icon { - fill: #FFFFFF; + .git-icon, .logo-icon { + fill: var(--uui-main_menu-text); } .theme-switcher-button:hover { diff --git a/app/src/common/AppHeader.tsx b/app/src/common/AppHeader.tsx index cd5674f55d..d361c323e2 100644 --- a/app/src/common/AppHeader.tsx +++ b/app/src/common/AppHeader.tsx @@ -1,13 +1,14 @@ import React from 'react'; import { BurgerButton, MainMenu, FlexSpacer, GlobalMenu, MainMenuButton, Text, IconContainer, Burger, DropdownMenuBody, Dropdown, DropdownMenuButton, Button } from '@epam/uui'; -import { Anchor, MainMenuLogo } from '@epam/uui-components'; -import { TSkin } from '@epam/uui-docs'; +import { Anchor, MainMenuCustomElement } from '@epam/uui-components'; import { svc } from '../services'; import { analyticsEvents } from '../analyticsEvents'; -import { ReactComponent as GitIcon } from '../icons/git-branch-18.svg'; import { useTheme } from '../helpers/useTheme'; -import css from './AppHeader.module.scss'; +import { TMode } from './docs'; +import { ReactComponent as GitIcon } from '../icons/git-branch-18.svg'; +import { ReactComponent as LogoIcon } from '../icons/logo.svg'; import { ReactComponent as DoneIcon } from '@epam/assets/icons/common/notification-done-18.svg'; +import css from './AppHeader.module.scss'; export type Theme = 'uui-theme-promo' | 'uui-theme-loveship' | 'uui-theme-loveship_dark' | 'uui-theme-electric' | 'uui-theme-vanilla_thunder'; const themeName: Record = { @@ -50,7 +51,7 @@ export function AppHeader() { link={ { pathname: '/documents', query: { - id: 'accordion', mode: 'doc', skin: TSkin.UUI, category: 'components', + category: 'components', id: 'accordion', mode: TMode.doc, }, } } isLinkActive={ pathName === '/documents' && category === 'components' } @@ -95,7 +96,13 @@ export function AppHeader() { { id: 'logo', priority: 100499, - render: () => sendEvent('Welcome') } logoUrl="/static/logo.svg" key="logo" />, + render: () => ( + + sendEvent('Welcome') } key="logo"> + + + + ), }, { id: 'documents', @@ -134,7 +141,7 @@ export function AppHeader() { link={ { pathname: '/documents', query: { - id: 'accordion', mode: 'doc', skin: TSkin.UUI, category: 'components', + category: 'components', id: 'accordion', mode: 'doc', }, } } isLinkActive={ pathName === '/documents' && category === 'components' } diff --git a/app/src/common/Page.module.scss b/app/src/common/Page.module.scss index 4beb89af36..0431a895d7 100644 --- a/app/src/common/Page.module.scss +++ b/app/src/common/Page.module.scss @@ -1,7 +1,8 @@ @use '~@epam/promo/assets/styles/colors.scss' as *; .root { - background: $gray10; + background: var(--uui-app-bg); + color: var(--uui-text-primary); min-height: 100%; display: flex; flex-direction: column; diff --git a/app/src/common/apiReference/TypeRefSection.module.scss b/app/src/common/apiReference/TypeRefSection.module.scss index cdf580c5e0..9532c6f508 100644 --- a/app/src/common/apiReference/TypeRefSection.module.scss +++ b/app/src/common/apiReference/TypeRefSection.module.scss @@ -1,7 +1,4 @@ -@use '~@epam/assets/theme/theme_promo' as *; - .root { - @include theme-promo(); max-width: 100%; width: 960px; diff --git a/app/src/common/apiReference/TypeRefTable.module.scss b/app/src/common/apiReference/TypeRefTable.module.scss index f27118ad6d..1a92c296f8 100644 --- a/app/src/common/apiReference/TypeRefTable.module.scss +++ b/app/src/common/apiReference/TypeRefTable.module.scss @@ -3,4 +3,8 @@ top: 0; isolation: isolate; z-index: 5; +} + +.code-bg { + --code-bg: var(--uui-surface-main); } \ No newline at end of file diff --git a/app/src/common/apiReference/TypeRefTable.tsx b/app/src/common/apiReference/TypeRefTable.tsx index 725ba0a99d..1d198e1fe6 100644 --- a/app/src/common/apiReference/TypeRefTable.tsx +++ b/app/src/common/apiReference/TypeRefTable.tsx @@ -136,7 +136,7 @@ function getColumns(summaries: TDocsGenTypeSummary): DataColumnProps + ); }, width: WIDTH.typeValue, diff --git a/app/src/common/apiReference/components/CodeExpandable.module.scss b/app/src/common/apiReference/components/CodeExpandable.module.scss index a370362d75..9da62d55b9 100644 --- a/app/src/common/apiReference/components/CodeExpandable.module.scss +++ b/app/src/common/apiReference/components/CodeExpandable.module.scss @@ -1,8 +1,7 @@ .root { - background-color: #FFFFFF; + background-color: var(--uui-surface-main); display: flex; flex-direction: column; - border-top: 1px solid var(--uui-divider); flex-grow: 1; flex-shrink: 0; flex-basis: 0; diff --git a/app/src/common/docs/BaseDocsBlock.module.scss b/app/src/common/docs/BaseDocsBlock.module.scss index c871c5371c..9833eb4288 100644 --- a/app/src/common/docs/BaseDocsBlock.module.scss +++ b/app/src/common/docs/BaseDocsBlock.module.scss @@ -1,28 +1,7 @@ -@use '~@epam/assets/theme/theme_promo' as *; -@use '~@epam/assets/theme/theme_loveship' as *; -@use '~@epam/promo/assets/styles/index.scss' as *; - -:global { - .uui-theme-loveship_important.uui-theme-loveship_important.uui-theme-loveship_important.uui-theme-loveship_important { - @include theme-loveship(); - } - - .uui-theme-promo_important.uui-theme-promo_important.uui-theme-promo_important.uui-theme-promo_important { - @include theme-promo(); - } -} - - .secondary-navigation { box-sizing: border-box; min-height: 60px; background-color: var(--uui-surface-main); - - &.uui-theme-promo { - :global { - @include theme-promo(); - } - } } .container { @@ -32,6 +11,9 @@ min-width: 0; height: calc(100vh - 60px); overflow: hidden; + background-color: var(--uui-surface-main); + border-top: 1px solid var(--uui-divider); + box-sizing: border-box; } .content-container { @@ -54,16 +36,7 @@ margin: auto; } -.api-block { - &.uui-theme-promo { - :global { - @include theme-promo(); - } - } -} - -.theme-promo { - :global { - @include theme-promo(); - } +.info-icon { + padding-left: 9px; + fill: var(--uui-icon); } diff --git a/app/src/common/docs/BaseDocsBlock.tsx b/app/src/common/docs/BaseDocsBlock.tsx index 08f32d40ea..ab4cf5106f 100644 --- a/app/src/common/docs/BaseDocsBlock.tsx +++ b/app/src/common/docs/BaseDocsBlock.tsx @@ -1,32 +1,35 @@ import * as React from 'react'; +import cx from 'classnames'; +import { TDocConfig, TSkin } from '@epam/uui-docs'; import { UuiContext, UuiContexts } from '@epam/uui-core'; -import { FlexRow, FlexSpacer, MultiSwitch, RichTextView, ScrollBars, TabButton } from '@epam/promo'; +import { Checkbox, FlexRow, FlexSpacer, RichTextView, ScrollBars, TabButton, Tooltip, IconContainer } from '@epam/uui'; import { svc } from '../../services'; import { getQuery } from '../../helpers'; import { analyticsEvents } from '../../analyticsEvents'; import { TypeRefSection } from '../apiReference/TypeRefSection'; import { ComponentEditorWrapper } from './componentEditor/ComponentEditor'; -import cx from 'classnames'; +import { ReactComponent as InfoIcon } from '@epam/assets/icons/common/notification-help-fill-18.svg'; import css from './BaseDocsBlock.module.scss'; -import { TDocConfig, TSkin } from '@epam/uui-docs'; -enum TMode { +export enum TMode { doc = 'doc', propsEditor = 'propsEditor' } -const DEFAULT_SKIN = TSkin.UUI; -const DEFAULT_MODE = TMode.doc; +export enum TTheme { + electric = 'electric', + loveship = 'loveship', + loveship_dark = 'loveship_dark', + promo = 'promo', + vanilla_thunder = 'vanilla_thunder' +} -const themeName: Record = { - [TSkin.UUI4_promo]: 'uui-theme-promo_important', - [TSkin.UUI3_loveship]: 'uui-theme-loveship_important', - [TSkin.UUI]: '', -}; +export type TUUITheme = `uui-theme-${TTheme}`; -const items: { id: TSkin; caption: string }[] = [ - { caption: 'UUI [Themeable]', id: TSkin.UUI }, { caption: 'UUI3 [Loveship]', id: TSkin.UUI3_loveship }, { caption: 'UUI4 [Promo]', id: TSkin.UUI4_promo }, -]; +const DEFAULT_MODE = TMode.doc; +const DEFAULT_THEME: TUUITheme = 'uui-theme-loveship'; + +const CONTROL_DESCRIPTION = 'If checked, a component from the skin-specific package will be used, according to the selected theme (for example, "@epam/loveship"). If unchecked, it will use a component from the "@epam/uui" package, only with semantic props.'; interface BaseDocsBlockState {} @@ -41,14 +44,22 @@ export abstract class BaseDocsBlock extends React.Component - size="36" - items={ items } - value={ this.getSkin() } - onValueChange={ (newValue: TSkin) => this.handleChangeSkin(newValue) } - /> + <> + + + + + + ); } @@ -104,7 +118,7 @@ export abstract class BaseDocsBlock extends React.Component this.handleChangeMode(TMode.propsEditor) } /> - - {this.getMode() === TMode.propsEditor && this.renderSkinSwitcher()} + {this.renderSkinSwitcher()} ); } @@ -130,20 +143,23 @@ export abstract class BaseDocsBlock extends React.Component this.handleChangeMode(TMode.doc) } config={ this.config } title={ this.title } - skin={ skin } + isSkin={ isSkin } + theme={ theme } /> ); } protected renderSectionTitle(title: string) { return ( - +

{title}

); @@ -151,7 +167,7 @@ export abstract class BaseDocsBlock extends React.Component +

{this.title}

); @@ -169,31 +185,21 @@ export abstract class BaseDocsBlock extends React.Component { + const isSkin = this.isSkin(); - if (prop === 'clear') { - rootPortal.className = ''; - } else { - rootPortal.className = themeName[prop]; - } - } - - private handleChangeSkin(skin: TSkin) { - this.handlePortalTheme(skin); - this.handleNav({ skin }); - } + localStorage.setItem('app-theme-context', JSON.stringify({ isSkin: !isSkin })); + this.handleNav({ isSkin: !isSkin }); + }; private handleChangeMode(mode: TMode) { - this.handlePortalTheme('clear'); - this.handleNav({ mode, skin: DEFAULT_SKIN }); + this.handleNav({ mode }); } - private handleNav = (params: { mode?: TMode, skin?: TSkin }) => { + private handleNav = (params: { mode?: TMode, isSkin?: boolean, theme?: TUUITheme }) => { const mode: TMode = params.mode ? params.mode : this.getMode(); - const skin: TSkin = params.skin ? params.skin : this.getSkin(); + const isSkin: boolean = params.isSkin ?? this.isSkin(); + const theme: TUUITheme = params.theme ? params.theme : this.getTheme(); svc.uuiRouter.redirect({ pathname: '/documents', @@ -201,7 +207,8 @@ export abstract class BaseDocsBlock extends React.Component; + const classNames = cx(css.code, props.isCompact && css.compact, props.cx); + + return
;
 }
diff --git a/app/src/common/docs/DocExample.module.scss b/app/src/common/docs/DocExample.module.scss
index d948d74b53..4d3799f696 100644
--- a/app/src/common/docs/DocExample.module.scss
+++ b/app/src/common/docs/DocExample.module.scss
@@ -1,4 +1,3 @@
-@use '~@epam/assets/theme/theme_promo' as *;
 @use '~@epam/promo/assets/styles/index' as *;
 @import '../../themes/themeVariables.module';
 
@@ -9,18 +8,12 @@
 
 .container-footer {
     justify-content: space-between;
-    background-color: $white;
-
-    &.uui-theme-promo {
-        :global {
-            @include theme-promo();
-        }
-    }
+    background-color: var(--uui-surface-sunken);
 }
 
 .preview-container {
-    background: var(--uui-docs-bg, var(--uui-surface-main));
-    border: 1px solid $gray40;
+    background: var(--uui-surface-sunken);
+    border: 1px solid var(--uui-divider);
     width: 960px;
     max-width: 100%;
 
diff --git a/app/src/common/docs/DocExample.tsx b/app/src/common/docs/DocExample.tsx
index 294da79457..38af27e22a 100644
--- a/app/src/common/docs/DocExample.tsx
+++ b/app/src/common/docs/DocExample.tsx
@@ -78,7 +78,7 @@ export class DocExample extends React.Component
                     {this.state.component && React.createElement(this.state.component)}
                 
-                
+                
                     
                     
                 
diff --git a/app/src/common/docs/EditableDocContent.module.scss b/app/src/common/docs/EditableDocContent.module.scss
index fb4944b703..c6da09ef78 100644
--- a/app/src/common/docs/EditableDocContent.module.scss
+++ b/app/src/common/docs/EditableDocContent.module.scss
@@ -5,9 +5,9 @@
     position: relative;
 
     .container {
-        @include theme-promo();
         margin: 0 -24px;
         width: 986px;
+        color: var(--uui-text-primary);
     }
 }
 
@@ -16,8 +16,9 @@
     margin-top: 24px;
 
     .title {
-        font-family: $font-museo-sans;
-        color: $gray80;
+        font-family: var(--uui-font);
+        font-weight: 600;
+        color: var(--uui-text-primary);
         font-size: 24px;
         margin-bottom: 6px;
     }
@@ -32,7 +33,7 @@
 
     &:hover {
         .anchor {
-            fill: $blue;
+            fill: var(--uui-link);
         }
     }
 }
diff --git a/app/src/common/docs/EditableDocContent.tsx b/app/src/common/docs/EditableDocContent.tsx
index 787c5e70ba..ec641cd354 100644
--- a/app/src/common/docs/EditableDocContent.tsx
+++ b/app/src/common/docs/EditableDocContent.tsx
@@ -86,7 +86,7 @@ export class EditableDocContent extends React.Component
                 {this.props.title && (
-                    
+                    
                         
{this.props.title}
diff --git a/app/src/common/docs/componentEditor/ComponentEditor.tsx b/app/src/common/docs/componentEditor/ComponentEditor.tsx index 4cc1083de5..58122d4eec 100644 --- a/app/src/common/docs/componentEditor/ComponentEditor.tsx +++ b/app/src/common/docs/componentEditor/ComponentEditor.tsx @@ -3,24 +3,28 @@ import { IHasCX } from '@epam/uui-core'; import { IComponentDocs, PropDoc, PropExample, TDocConfig, TSkin, TDocsGenExportedType } from '@epam/uui-docs'; import { ComponentEditorView } from './view/ComponentEditorView'; import { useDocBuilderGen } from '../docBuilderGen/hooks/useDocBuilderGen'; -import { getExamplesList, getInputValuesFromInputData, getTheme, isPropValueEmpty } from './utils'; +import { getExamplesList, getInputValuesFromInputData, getSkin, isPropValueEmpty } from './utils'; import { PropSamplesCreationContext } from './view/PropSamplesCreationContext'; +import { TUUITheme } from '../BaseDocsBlock'; export function ComponentEditorWrapper(props: { + theme: TUUITheme, title: string; - skin: TSkin; + isSkin: boolean; config: TDocConfig; onRedirectBackToDocs: () => void; }) { const { + theme, title, - skin, + isSkin, config, onRedirectBackToDocs, } = props; + const skin = getSkin(theme, isSkin); const { isLoaded, docs, generatedFromType } = useDocBuilderGen({ config, - skin, + skin: skin, }); React.useEffect(() => { @@ -262,9 +266,8 @@ export class ComponentEditor extends React.Component 0 ? contexts[0].name : undefined); const isDocUnsupportedForSkin = isLoaded && !docs; @@ -272,7 +275,6 @@ export class ComponentEditor extends React.Component['examples'], ctx: IP return []; } -export function getTheme(skin: TSkin) { - switch (skin) { - case TSkin.UUI: - return ''; - case TSkin.UUI4_promo: - return 'uui-theme-promo'; - case TSkin.UUI3_loveship: - return 'uui-theme-loveship'; +export function getSkin(theme: TUUITheme, isSkin: boolean): TSkin { + if (!isSkin) return TSkin.UUI; + + switch (theme) { + case `uui-theme-${TTheme.electric}`: + return TSkin.Electric; + case `uui-theme-${TTheme.loveship}`: + case `uui-theme-${TTheme.loveship_dark}`: + return TSkin.Loveship; + case `uui-theme-${TTheme.promo}`: + return TSkin.Promo; default: - return ''; + return TSkin.UUI; } } diff --git a/app/src/common/docs/componentEditor/view/ComponentEditorView.module.scss b/app/src/common/docs/componentEditor/view/ComponentEditorView.module.scss index 0ae445f0d4..ab49c1e387 100644 --- a/app/src/common/docs/componentEditor/view/ComponentEditorView.module.scss +++ b/app/src/common/docs/componentEditor/view/ComponentEditorView.module.scss @@ -1,30 +1,19 @@ -@use '~@epam/assets/theme/theme_promo' as *; -@use '~@epam/assets/theme/theme_loveship' as *; -@use '~@epam/promo/assets/styles/index' as *; - - .root { display: flex; flex: 1 1 auto; } .container { - background-color: #FFFFFF; + background-color: var(--uui-surface-main); display: flex; flex-direction: column; min-width: 480px; max-width: 726px; - border-right: 1px solid $gray40; + border-right: 1px solid var(--uui-divider); flex-grow: 1; flex-shrink: 0; flex-basis: 0; - &.uui-theme-promo { - :global { - @include theme-promo(); - } - } - .box-sizing { box-sizing: border-box; } @@ -36,7 +25,7 @@ .row-props { overflow: auto; - border-bottom: 1px solid $gray40; + border-bottom: 1px solid var(--uui-divider); flex-grow: 1; flex-shrink: 0; flex-basis: 0; @@ -64,12 +53,6 @@ justify-content: center; box-sizing: border-box; width: 100%; - - &.uui-theme-promo { - :global { - @include theme-promo(); - } - } } } @@ -80,18 +63,6 @@ flex-basis: 0; width: 100%; background-color: var(--uui-surface-main); - - &.uui-theme-promo { - :global { - @include theme-promo(); - } - } - - &.uui-theme-loveship { - :global { - @include theme-loveship(); - } - } } .not-support { @@ -108,9 +79,3 @@ } } } - -.theme-promo { - :global { - @include theme-promo(); - } -} diff --git a/app/src/common/docs/componentEditor/view/ComponentEditorView.tsx b/app/src/common/docs/componentEditor/view/ComponentEditorView.tsx index f01961c9bb..ec992d748f 100644 --- a/app/src/common/docs/componentEditor/view/ComponentEditorView.tsx +++ b/app/src/common/docs/componentEditor/view/ComponentEditorView.tsx @@ -1,24 +1,17 @@ import * as React from 'react'; import { - FlexCell, - FlexSpacer, - IconButton, - Spinner, - FlexRow, LinkButton, MultiSwitch, ScrollBars, Text, Tooltip, + FlexCell, FlexSpacer, IconButton, Spinner, FlexRow, LinkButton, MultiSwitch, ScrollBars, Text, Tooltip, } from '@epam/uui'; -import { cx } from '@epam/uui-core'; import { PropDoc, IPropSamplesCreationContext, DemoContext, TDocsGenExportedType } from '@epam/uui-docs'; import { PropEditorRow } from './PropEditorRow'; -// -import { ReactComponent as ResetIcon } from '../../../../icons/reset-icon.svg'; -import css from './ComponentEditorView.module.scss'; import { DemoCode } from './DemoCode'; import { DemoErrorBoundary } from './DemoErrorBoundary'; import { getInputValuesFromInputData } from '../utils'; +import { ReactComponent as ResetIcon } from '../../../../icons/reset-icon.svg'; +import css from './ComponentEditorView.module.scss'; interface IComponentEditorViewProps { contexts: DemoContext[], - currentTheme: string; componentKey?: string; DemoComponent: React.ComponentType; generatedFromType?: TDocsGenExportedType; @@ -89,7 +82,7 @@ export function ComponentEditorView(props: IComponentEditorViewProps) { return (
-
+
@@ -106,7 +99,7 @@ export function ComponentEditorView(props: IComponentEditorViewProps) {
-
+
@@ -127,9 +120,9 @@ const ContextSwitcher = React.memo( size="36" padding="12" spacing="6" - background="surface" + background="surface-main" borderBottom - cx={ cx(css.contextSettingRow, css.uuiThemePromo) } + cx={ css.contextSettingRow } > + NAME @@ -187,7 +180,7 @@ const Header = React.memo(function HeaderComponent() { function NotSupportedForSkin(props: { onRedirectBackToDocs: () => void }) { return ( -
+
This component does not support property explorer diff --git a/app/src/common/docs/componentEditor/view/DemoCode.module.scss b/app/src/common/docs/componentEditor/view/DemoCode.module.scss index 56e15d4b1e..aca6b56c2e 100644 --- a/app/src/common/docs/componentEditor/view/DemoCode.module.scss +++ b/app/src/common/docs/componentEditor/view/DemoCode.module.scss @@ -2,7 +2,7 @@ font-family: monospace; font-size: 14px; line-height: 24px; - color: var(--night700); + color: var(--uui-text-primary); padding: 12px 24px; white-space: pre-wrap; overflow: hidden; diff --git a/app/src/common/docs/componentEditor/view/PropSamplesCreationContext.tsx b/app/src/common/docs/componentEditor/view/PropSamplesCreationContext.tsx index 58276554a1..89db2fe6d1 100644 --- a/app/src/common/docs/componentEditor/view/PropSamplesCreationContext.tsx +++ b/app/src/common/docs/componentEditor/view/PropSamplesCreationContext.tsx @@ -18,7 +18,7 @@ export class PropSamplesCreationContext implements IPropSamplesCreationContext ( - +
                                     {name}
diff --git a/app/src/common/docs/docBuilderGen/propDetailsBuilders/shared/reusableDocs.tsx b/app/src/common/docs/docBuilderGen/propDetailsBuilders/shared/reusableDocs.tsx
index 6a3fb4e027..3ec17bb998 100644
--- a/app/src/common/docs/docBuilderGen/propDetailsBuilders/shared/reusableDocs.tsx
+++ b/app/src/common/docs/docBuilderGen/propDetailsBuilders/shared/reusableDocs.tsx
@@ -1,4 +1,5 @@
 import * as uuiDocs from '../../../../../docs/_props/uui/docs';
+import * as electricDocs from '../../../../../docs/_props/epam-electric/docs';
 import * as loveshipDocs from '../../../../../docs/_props/loveship/docs';
 import * as promoDocs from '../../../../../docs/_props/epam-promo/docs';
 import { TSkin } from '@epam/uui-docs';
@@ -6,8 +7,9 @@ import { TSkin } from '@epam/uui-docs';
 const DOCS_SKIN_SPECIFIC = {
     colorDoc: {
         [TSkin.UUI]: uuiDocs.colorDoc,
-        [TSkin.UUI3_loveship]: loveshipDocs.colorDoc,
-        [TSkin.UUI4_promo]: promoDocs.colorDoc,
+        [TSkin.Electric]: electricDocs.colorDoc,
+        [TSkin.Loveship]: loveshipDocs.colorDoc,
+        [TSkin.Promo]: promoDocs.colorDoc,
     },
 };
 const DOCS_SKIN_AGNOSTIC = {
diff --git a/app/src/common/sidebar/Sidebar.module.scss b/app/src/common/sidebar/Sidebar.module.scss
index ae98073685..63a49184ff 100644
--- a/app/src/common/sidebar/Sidebar.module.scss
+++ b/app/src/common/sidebar/Sidebar.module.scss
@@ -4,19 +4,13 @@
 
 .root {
     width: 240px;
-    background-color: #FFFFFF;
+    background-color: var(--uui-surface-sunken);
     display: flex;
     flex-direction: column;
 
-    &.uui-theme-promo {
-        :global {
-            @include theme-promo();
-        }
-    }
-
     .tree {
         overflow: auto;
-        border: 1px solid $gray40;
+        border: 1px solid var(--uui-divider);
         border-top: 0;
         border-bottom: 0;
         flex-grow: 1;
@@ -26,5 +20,6 @@
 }
 
 .search {
+    --uui-text_input-border-radius: 0;
     padding: 0 12px;
 }
diff --git a/app/src/common/sidebar/Sidebar.tsx b/app/src/common/sidebar/Sidebar.tsx
index b39909e5ae..369c8298c2 100644
--- a/app/src/common/sidebar/Sidebar.tsx
+++ b/app/src/common/sidebar/Sidebar.tsx
@@ -1,5 +1,4 @@
 import * as React from 'react';
-import cx from 'classnames';
 import css from './Sidebar.module.scss';
 import { ScrollBars, SearchInput } from '@epam/promo';
 import { Tree, TreeListItem } from '@epam/uui-components';
@@ -51,7 +50,7 @@ export function Sidebar(props: SidebarProps)
     }, [uuiAnalytics]);
 
     return (
-