((_props, ref) => {
classNames={asideTransitionClassNames}
>
((_props, ref) => {
onMoreClick={onMenuMoreClick}
onToggleGroupCollapsed={onToggleGroupCollapsed}
multipleTooltip={multipleTooltip}
+ isCompactMode={isCompactMode}
/>
) : (
@@ -99,6 +101,7 @@ export const FirstPanel = React.forwardRef
((_props, ref) => {
size,
isExpanded,
asideRef,
+ isCompactMode,
})}
diff --git a/src/components/AsideHeader/components/FooterItem/FooterItem.module.scss b/src/components/AsideHeader/components/FooterItem/FooterItem.module.scss
index 2d6b3038..a56c49d1 100644
--- a/src/components/AsideHeader/components/FooterItem/FooterItem.module.scss
+++ b/src/components/AsideHeader/components/FooterItem/FooterItem.module.scss
@@ -7,7 +7,7 @@ $block: '.#{variables.$ns}footer-item';
$class: &;
width: 100%;
- height: 36px;
+ height: var(--_--item-height);
border-radius: var(--gn-aside-header-item-expanded-radius);
margin-bottom: 2px;
diff --git a/src/components/AsideHeader/components/FooterItem/__snapshots__/FooterItem.visual.test.tsx-snapshots/FooterItem-render-story-Default-dark-chromium-linux.png b/src/components/AsideHeader/components/FooterItem/__snapshots__/FooterItem.visual.test.tsx-snapshots/FooterItem-render-story-Default-dark-chromium-linux.png
index c6595094..6bf759f2 100644
Binary files a/src/components/AsideHeader/components/FooterItem/__snapshots__/FooterItem.visual.test.tsx-snapshots/FooterItem-render-story-Default-dark-chromium-linux.png and b/src/components/AsideHeader/components/FooterItem/__snapshots__/FooterItem.visual.test.tsx-snapshots/FooterItem-render-story-Default-dark-chromium-linux.png differ
diff --git a/src/components/AsideHeader/components/FooterItem/__snapshots__/FooterItem.visual.test.tsx-snapshots/FooterItem-render-story-Default-dark-webkit-linux.png b/src/components/AsideHeader/components/FooterItem/__snapshots__/FooterItem.visual.test.tsx-snapshots/FooterItem-render-story-Default-dark-webkit-linux.png
index acce308b..6b298f80 100644
Binary files a/src/components/AsideHeader/components/FooterItem/__snapshots__/FooterItem.visual.test.tsx-snapshots/FooterItem-render-story-Default-dark-webkit-linux.png and b/src/components/AsideHeader/components/FooterItem/__snapshots__/FooterItem.visual.test.tsx-snapshots/FooterItem-render-story-Default-dark-webkit-linux.png differ
diff --git a/src/components/AsideHeader/components/FooterItem/__snapshots__/FooterItem.visual.test.tsx-snapshots/FooterItem-render-story-Default-light-chromium-linux.png b/src/components/AsideHeader/components/FooterItem/__snapshots__/FooterItem.visual.test.tsx-snapshots/FooterItem-render-story-Default-light-chromium-linux.png
index 6ac3768e..d36a190b 100644
Binary files a/src/components/AsideHeader/components/FooterItem/__snapshots__/FooterItem.visual.test.tsx-snapshots/FooterItem-render-story-Default-light-chromium-linux.png and b/src/components/AsideHeader/components/FooterItem/__snapshots__/FooterItem.visual.test.tsx-snapshots/FooterItem-render-story-Default-light-chromium-linux.png differ
diff --git a/src/components/AsideHeader/components/FooterItem/__snapshots__/FooterItem.visual.test.tsx-snapshots/FooterItem-render-story-Default-light-webkit-linux.png b/src/components/AsideHeader/components/FooterItem/__snapshots__/FooterItem.visual.test.tsx-snapshots/FooterItem-render-story-Default-light-webkit-linux.png
index ab191806..ad39e716 100644
Binary files a/src/components/AsideHeader/components/FooterItem/__snapshots__/FooterItem.visual.test.tsx-snapshots/FooterItem-render-story-Default-light-webkit-linux.png and b/src/components/AsideHeader/components/FooterItem/__snapshots__/FooterItem.visual.test.tsx-snapshots/FooterItem-render-story-Default-light-webkit-linux.png differ
diff --git a/src/components/AsideHeader/components/FooterItem/__stories__/FooterItem.stories.tsx b/src/components/AsideHeader/components/FooterItem/__stories__/FooterItem.stories.tsx
index 848de42c..20c8058b 100644
--- a/src/components/AsideHeader/components/FooterItem/__stories__/FooterItem.stories.tsx
+++ b/src/components/AsideHeader/components/FooterItem/__stories__/FooterItem.stories.tsx
@@ -3,7 +3,7 @@ import React from 'react';
import {Gear} from '@gravity-ui/icons';
import type {Meta, StoryFn} from '@storybook/react';
-import {ASIDE_HEADER_COMPACT_WIDTH, ASIDE_HEADER_EXPANDED_WIDTH} from '../../../../constants';
+import {ASIDE_HEADER_COLLAPSED_WIDTH, ASIDE_HEADER_EXPANDED_WIDTH} from '../../../../constants';
import {AsideHeaderContextProvider} from '../../../AsideHeaderContext';
import {EMPTY_CONTEXT_VALUE} from '../../../__stories__/moc';
import {FooterItem, FooterItemProps} from '../FooterItem';
@@ -18,7 +18,7 @@ export default {
const {
args: {isExpanded},
} = context;
- const width = isExpanded ? ASIDE_HEADER_EXPANDED_WIDTH : ASIDE_HEADER_COMPACT_WIDTH;
+ const width = isExpanded ? ASIDE_HEADER_EXPANDED_WIDTH : ASIDE_HEADER_COLLAPSED_WIDTH;
return (
diff --git a/src/components/AsideHeader/components/Header.tsx b/src/components/AsideHeader/components/Header.tsx
index ec03a99b..bf634353 100644
--- a/src/components/AsideHeader/components/Header.tsx
+++ b/src/components/AsideHeader/components/Header.tsx
@@ -3,7 +3,8 @@ import React, {useCallback} from 'react';
import {Icon} from '@gravity-ui/uikit';
import {Logo} from '../../Logo';
-import {ASIDE_HEADER_COMPACT_WIDTH, HEADER_DIVIDER_HEIGHT} from '../../constants';
+import {HEADER_DIVIDER_HEIGHT, HEADER_DIVIDER_HEIGHT_COMPACT} from '../../constants';
+import {getCollapsedWidth} from '../../utils/getCollapsedWidth';
import {useAsideHeaderInnerContext} from '../AsideHeaderContext';
import {AsideHeaderItem} from '../types';
import {b} from '../utils';
@@ -12,6 +13,7 @@ import {useGroupedMenuItems} from './AllPagesPanel/useGroupedMenuItems';
import {CollapseButton} from './CollapseButton/CollapseButton';
import {CompositeBar} from './CompositeBar';
+import headerDividerCollapsedCompactIcon from '../../../../assets/icons/divider-collapsed-compact.svg';
import headerDividerCollapsedIcon from '../../../../assets/icons/divider-collapsed.svg';
const DEFAULT_SUBHEADER_ITEMS: AsideHeaderItem[] = [];
@@ -26,6 +28,7 @@ export const Header = () => {
headerDecoration,
subheaderItems,
hideCollapseButton,
+ isCompactMode,
} = useAsideHeaderInnerContext();
const items = useGroupedMenuItems(subheaderItems || DEFAULT_SUBHEADER_ITEMS);
@@ -44,6 +47,7 @@ export const Header = () => {
{logo && (
{
)}
{!hideCollapseButton && (
-
+
)}
@@ -63,14 +70,19 @@ export const Header = () => {
isExpanded={isExpanded}
items={items}
onItemClick={onItemClick}
+ isCompactMode={isCompactMode}
/>
{headerDecoration && (
)}
diff --git a/src/components/AsideHeader/components/PageLayout/AsideFallback.tsx b/src/components/AsideHeader/components/PageLayout/AsideFallback.tsx
index 9b39fa84..12530401 100644
--- a/src/components/AsideHeader/components/PageLayout/AsideFallback.tsx
+++ b/src/components/AsideHeader/components/PageLayout/AsideFallback.tsx
@@ -2,7 +2,7 @@ import React from 'react';
import {Icon, QAProps} from '@gravity-ui/uikit';
-import {ASIDE_HEADER_COMPACT_WIDTH, HEADER_DIVIDER_HEIGHT, ITEM_HEIGHT} from '../../../constants';
+import {ASIDE_HEADER_COLLAPSED_WIDTH, HEADER_DIVIDER_HEIGHT, ITEM_HEIGHT} from '../../../constants';
import {useAsideHeaderContext} from '../../AsideHeaderContext';
import {b} from '../../utils';
@@ -29,7 +29,7 @@ export const AsideFallback: React.FC = ({headerDecoration, subheaderItems
) : null}
diff --git a/src/components/AsideHeader/components/PageLayout/PageLayout.tsx b/src/components/AsideHeader/components/PageLayout/PageLayout.tsx
index 6938b3a3..b126ee23 100644
--- a/src/components/AsideHeader/components/PageLayout/PageLayout.tsx
+++ b/src/components/AsideHeader/components/PageLayout/PageLayout.tsx
@@ -1,8 +1,9 @@
import React, {PropsWithChildren, Suspense, useMemo} from 'react';
import {Content, ContentProps} from '../../../Content';
-import {ASIDE_HEADER_COMPACT_WIDTH, ASIDE_HEADER_EXPANDED_WIDTH} from '../../../constants';
+import {ASIDE_HEADER_EXPANDED_WIDTH} from '../../../constants';
import {TopAlertProps} from '../../../types';
+import {getCollapsedWidth} from '../../../utils/getCollapsedWidth';
import {AsideHeaderContextProvider, useAsideHeaderContext} from '../../AsideHeaderContext';
import {useIsExpanded} from '../../hooks/useIsExpanded';
import {LayoutProps} from '../../types';
@@ -31,12 +32,21 @@ function calcEstimatedTopAlertHeight(topAlert?: TopAlertProps) {
export interface PageLayoutProps extends PropsWithChildren {
onChangePinned?: (pinned: boolean) => void;
+ /** When `true`, menu items use compact height. */
+ isCompactMode?: boolean;
}
-const Layout = ({pinned, className, children, topAlert, onChangePinned}: PageLayoutProps) => {
+const Layout = ({
+ pinned,
+ className,
+ children,
+ topAlert,
+ onChangePinned,
+ isCompactMode,
+}: PageLayoutProps) => {
const {isExpanded, onExpand, onFold} = useIsExpanded(pinned);
- const size = isExpanded ? ASIDE_HEADER_EXPANDED_WIDTH : ASIDE_HEADER_COMPACT_WIDTH;
+ const size = isExpanded ? ASIDE_HEADER_EXPANDED_WIDTH : getCollapsedWidth(isCompactMode);
const asideHeaderContextValue = useMemo(
() => ({
diff --git a/src/components/AsideHeader/types.tsx b/src/components/AsideHeader/types.tsx
index afb35380..9aa3def3 100644
--- a/src/components/AsideHeader/types.tsx
+++ b/src/components/AsideHeader/types.tsx
@@ -37,11 +37,14 @@ interface AsideHeaderGeneralProps extends QAProps {
customBackground?: React.ReactNode;
customBackgroundClassName?: string;
hideCollapseButton?: boolean;
+ /** When `true`, menu items use compact height. */
+ isCompactMode?: boolean;
renderContent?: RenderContentType;
renderFooter?: (data: {
size: number;
isExpanded: boolean;
asideRef: React.RefObject;
+ isCompactMode?: boolean;
}) => React.ReactNode;
collapseButtonWrapper?: (
defaultButton: React.ReactNode,
diff --git a/src/components/AsideHeader/utils/getGroupHeight.ts b/src/components/AsideHeader/utils/getGroupHeight.ts
index d158631e..a02be010 100644
--- a/src/components/AsideHeader/utils/getGroupHeight.ts
+++ b/src/components/AsideHeader/utils/getGroupHeight.ts
@@ -1,15 +1,15 @@
-import {ITEM_HEIGHT} from '../../constants';
+import {ITEM_GAP, ITEM_HEIGHT, ITEM_HEIGHT_COMPACT} from '../../constants';
import {MenuItemsWithGroups} from '../types';
-const GAP = 2;
+export function getGroupBlockHeight(items: MenuItemsWithGroups[], isCompactMode?: boolean) {
+ const itemHeight = isCompactMode ? ITEM_HEIGHT_COMPACT : ITEM_HEIGHT;
-export function getGroupBlockHeight(items: MenuItemsWithGroups[]) {
if (items.length === 0) {
- return ITEM_HEIGHT;
+ return itemHeight;
}
- const gaps = items.length * GAP;
+ const gaps = items.length * ITEM_GAP;
// +1 accounts for the group header item in addition to the menu items
- return (items.length + 1) * ITEM_HEIGHT + gaps;
+ return (items.length + 1) * itemHeight + gaps;
}
diff --git a/src/components/Footer/mobile/__snapshots__/MobileFooter.visual.test.tsx-snapshots/MobileFooter-render-story-ManyItems-dark-chromium-linux.png b/src/components/Footer/mobile/__snapshots__/MobileFooter.visual.test.tsx-snapshots/MobileFooter-render-story-ManyItems-dark-chromium-linux.png
index d1fa5dce..706effa6 100644
Binary files a/src/components/Footer/mobile/__snapshots__/MobileFooter.visual.test.tsx-snapshots/MobileFooter-render-story-ManyItems-dark-chromium-linux.png and b/src/components/Footer/mobile/__snapshots__/MobileFooter.visual.test.tsx-snapshots/MobileFooter-render-story-ManyItems-dark-chromium-linux.png differ
diff --git a/src/components/Footer/mobile/__snapshots__/MobileFooter.visual.test.tsx-snapshots/MobileFooter-render-story-ManyItems-dark-webkit-linux.png b/src/components/Footer/mobile/__snapshots__/MobileFooter.visual.test.tsx-snapshots/MobileFooter-render-story-ManyItems-dark-webkit-linux.png
index e037004f..797907a8 100644
Binary files a/src/components/Footer/mobile/__snapshots__/MobileFooter.visual.test.tsx-snapshots/MobileFooter-render-story-ManyItems-dark-webkit-linux.png and b/src/components/Footer/mobile/__snapshots__/MobileFooter.visual.test.tsx-snapshots/MobileFooter-render-story-ManyItems-dark-webkit-linux.png differ
diff --git a/src/components/Footer/mobile/__snapshots__/MobileFooter.visual.test.tsx-snapshots/MobileFooter-render-story-ManyItems-light-chromium-linux.png b/src/components/Footer/mobile/__snapshots__/MobileFooter.visual.test.tsx-snapshots/MobileFooter-render-story-ManyItems-light-chromium-linux.png
index 8d3bee9a..dfdee60f 100644
Binary files a/src/components/Footer/mobile/__snapshots__/MobileFooter.visual.test.tsx-snapshots/MobileFooter-render-story-ManyItems-light-chromium-linux.png and b/src/components/Footer/mobile/__snapshots__/MobileFooter.visual.test.tsx-snapshots/MobileFooter-render-story-ManyItems-light-chromium-linux.png differ
diff --git a/src/components/Footer/mobile/__snapshots__/MobileFooter.visual.test.tsx-snapshots/MobileFooter-render-story-ManyItems-light-webkit-linux.png b/src/components/Footer/mobile/__snapshots__/MobileFooter.visual.test.tsx-snapshots/MobileFooter-render-story-ManyItems-light-webkit-linux.png
index 589ef845..b46b2f23 100644
Binary files a/src/components/Footer/mobile/__snapshots__/MobileFooter.visual.test.tsx-snapshots/MobileFooter-render-story-ManyItems-light-webkit-linux.png and b/src/components/Footer/mobile/__snapshots__/MobileFooter.visual.test.tsx-snapshots/MobileFooter-render-story-ManyItems-light-webkit-linux.png differ
diff --git a/src/components/Footer/mobile/__snapshots__/MobileFooter.visual.test.tsx-snapshots/MobileFooter-render-story-Showcase-dark-chromium-linux.png b/src/components/Footer/mobile/__snapshots__/MobileFooter.visual.test.tsx-snapshots/MobileFooter-render-story-Showcase-dark-chromium-linux.png
index 006e1ba2..022debe4 100644
Binary files a/src/components/Footer/mobile/__snapshots__/MobileFooter.visual.test.tsx-snapshots/MobileFooter-render-story-Showcase-dark-chromium-linux.png and b/src/components/Footer/mobile/__snapshots__/MobileFooter.visual.test.tsx-snapshots/MobileFooter-render-story-Showcase-dark-chromium-linux.png differ
diff --git a/src/components/Footer/mobile/__snapshots__/MobileFooter.visual.test.tsx-snapshots/MobileFooter-render-story-Showcase-dark-webkit-linux.png b/src/components/Footer/mobile/__snapshots__/MobileFooter.visual.test.tsx-snapshots/MobileFooter-render-story-Showcase-dark-webkit-linux.png
index 3bc8dd5f..be6013fd 100644
Binary files a/src/components/Footer/mobile/__snapshots__/MobileFooter.visual.test.tsx-snapshots/MobileFooter-render-story-Showcase-dark-webkit-linux.png and b/src/components/Footer/mobile/__snapshots__/MobileFooter.visual.test.tsx-snapshots/MobileFooter-render-story-Showcase-dark-webkit-linux.png differ
diff --git a/src/components/Footer/mobile/__snapshots__/MobileFooter.visual.test.tsx-snapshots/MobileFooter-render-story-Showcase-light-chromium-linux.png b/src/components/Footer/mobile/__snapshots__/MobileFooter.visual.test.tsx-snapshots/MobileFooter-render-story-Showcase-light-chromium-linux.png
index 9ed706cd..b14c3737 100644
Binary files a/src/components/Footer/mobile/__snapshots__/MobileFooter.visual.test.tsx-snapshots/MobileFooter-render-story-Showcase-light-chromium-linux.png and b/src/components/Footer/mobile/__snapshots__/MobileFooter.visual.test.tsx-snapshots/MobileFooter-render-story-Showcase-light-chromium-linux.png differ
diff --git a/src/components/Footer/mobile/__snapshots__/MobileFooter.visual.test.tsx-snapshots/MobileFooter-render-story-Showcase-light-webkit-linux.png b/src/components/Footer/mobile/__snapshots__/MobileFooter.visual.test.tsx-snapshots/MobileFooter-render-story-Showcase-light-webkit-linux.png
index 71c417cc..40b12918 100644
Binary files a/src/components/Footer/mobile/__snapshots__/MobileFooter.visual.test.tsx-snapshots/MobileFooter-render-story-Showcase-light-webkit-linux.png and b/src/components/Footer/mobile/__snapshots__/MobileFooter.visual.test.tsx-snapshots/MobileFooter-render-story-Showcase-light-webkit-linux.png differ
diff --git a/src/components/Logo/Logo.module.scss b/src/components/Logo/Logo.module.scss
index d9adb00c..babc0b9c 100644
--- a/src/components/Logo/Logo.module.scss
+++ b/src/components/Logo/Logo.module.scss
@@ -6,7 +6,7 @@ $block: '.#{variables.$ns}logo';
#{$block} {
display: flex;
align-items: center;
- height: 36px;
+ height: var(--_--item-height);
&__btn-logo {
display: flex;
@@ -44,7 +44,7 @@ $block: '.#{variables.$ns}logo';
}
&__logo-icon-place {
- width: 36px;
+ width: var(--_--item-height, 36px);
display: flex;
align-items: center;
diff --git a/src/components/Logo/Logo.tsx b/src/components/Logo/Logo.tsx
index 59bdd0ed..c5abbd36 100644
--- a/src/components/Logo/Logo.tsx
+++ b/src/components/Logo/Logo.tsx
@@ -20,15 +20,19 @@ const logoTransitionClasses = {
exitDone: b('logo-exit-done'),
};
-export const Logo: React.FC<
- LogoProps & {isExpanded?: boolean; buttonClassName?: string; iconPlaceClassName?: string}
-> = ({
+interface Props extends LogoProps {
+ isCompactMode?: boolean;
+ isExpanded?: boolean;
+ buttonClassName?: string;
+ iconPlaceClassName?: string;
+}
+
+export const Logo: React.FC = ({
text,
icon,
iconSrc,
iconClassName,
iconPlaceClassName,
- iconSize = 24,
textSize = 15,
href,
target = '_self',
@@ -37,10 +41,14 @@ export const Logo: React.FC<
isExpanded = true,
className,
buttonClassName,
+ isCompactMode,
'aria-label': ariaLabel,
'aria-labelledby': ariaLabelledby,
+ ...props
}) => {
const hasWrapper = typeof wrapper === 'function';
+ const defaultIconSize = isCompactMode ? 24 : 32;
+ const iconSize = props.iconSize || defaultIconSize;
let buttonIcon;
diff --git a/src/components/Logo/__snapshots__/Logo.visual.test.tsx-snapshots/Logo-render-story-NoAnchor-dark-chromium-linux.png b/src/components/Logo/__snapshots__/Logo.visual.test.tsx-snapshots/Logo-render-story-NoAnchor-dark-chromium-linux.png
index f01da467..b322fbab 100644
Binary files a/src/components/Logo/__snapshots__/Logo.visual.test.tsx-snapshots/Logo-render-story-NoAnchor-dark-chromium-linux.png and b/src/components/Logo/__snapshots__/Logo.visual.test.tsx-snapshots/Logo-render-story-NoAnchor-dark-chromium-linux.png differ
diff --git a/src/components/Logo/__snapshots__/Logo.visual.test.tsx-snapshots/Logo-render-story-NoAnchor-dark-webkit-linux.png b/src/components/Logo/__snapshots__/Logo.visual.test.tsx-snapshots/Logo-render-story-NoAnchor-dark-webkit-linux.png
index 83e44fae..9d191244 100644
Binary files a/src/components/Logo/__snapshots__/Logo.visual.test.tsx-snapshots/Logo-render-story-NoAnchor-dark-webkit-linux.png and b/src/components/Logo/__snapshots__/Logo.visual.test.tsx-snapshots/Logo-render-story-NoAnchor-dark-webkit-linux.png differ
diff --git a/src/components/Logo/__snapshots__/Logo.visual.test.tsx-snapshots/Logo-render-story-NoAnchor-light-chromium-linux.png b/src/components/Logo/__snapshots__/Logo.visual.test.tsx-snapshots/Logo-render-story-NoAnchor-light-chromium-linux.png
index ebe597ce..9d3d77d0 100644
Binary files a/src/components/Logo/__snapshots__/Logo.visual.test.tsx-snapshots/Logo-render-story-NoAnchor-light-chromium-linux.png and b/src/components/Logo/__snapshots__/Logo.visual.test.tsx-snapshots/Logo-render-story-NoAnchor-light-chromium-linux.png differ
diff --git a/src/components/Logo/__snapshots__/Logo.visual.test.tsx-snapshots/Logo-render-story-NoAnchor-light-webkit-linux.png b/src/components/Logo/__snapshots__/Logo.visual.test.tsx-snapshots/Logo-render-story-NoAnchor-light-webkit-linux.png
index faf6f7a2..835d39a3 100644
Binary files a/src/components/Logo/__snapshots__/Logo.visual.test.tsx-snapshots/Logo-render-story-NoAnchor-light-webkit-linux.png and b/src/components/Logo/__snapshots__/Logo.visual.test.tsx-snapshots/Logo-render-story-NoAnchor-light-webkit-linux.png differ
diff --git a/src/components/Logo/__snapshots__/Logo.visual.test.tsx-snapshots/Logo-render-story-Showcase-dark-chromium-linux.png b/src/components/Logo/__snapshots__/Logo.visual.test.tsx-snapshots/Logo-render-story-Showcase-dark-chromium-linux.png
index f01da467..b322fbab 100644
Binary files a/src/components/Logo/__snapshots__/Logo.visual.test.tsx-snapshots/Logo-render-story-Showcase-dark-chromium-linux.png and b/src/components/Logo/__snapshots__/Logo.visual.test.tsx-snapshots/Logo-render-story-Showcase-dark-chromium-linux.png differ
diff --git a/src/components/Logo/__snapshots__/Logo.visual.test.tsx-snapshots/Logo-render-story-Showcase-dark-webkit-linux.png b/src/components/Logo/__snapshots__/Logo.visual.test.tsx-snapshots/Logo-render-story-Showcase-dark-webkit-linux.png
index 83e44fae..9d191244 100644
Binary files a/src/components/Logo/__snapshots__/Logo.visual.test.tsx-snapshots/Logo-render-story-Showcase-dark-webkit-linux.png and b/src/components/Logo/__snapshots__/Logo.visual.test.tsx-snapshots/Logo-render-story-Showcase-dark-webkit-linux.png differ
diff --git a/src/components/Logo/__snapshots__/Logo.visual.test.tsx-snapshots/Logo-render-story-Showcase-light-chromium-linux.png b/src/components/Logo/__snapshots__/Logo.visual.test.tsx-snapshots/Logo-render-story-Showcase-light-chromium-linux.png
index ebe597ce..9d3d77d0 100644
Binary files a/src/components/Logo/__snapshots__/Logo.visual.test.tsx-snapshots/Logo-render-story-Showcase-light-chromium-linux.png and b/src/components/Logo/__snapshots__/Logo.visual.test.tsx-snapshots/Logo-render-story-Showcase-light-chromium-linux.png differ
diff --git a/src/components/Logo/__snapshots__/Logo.visual.test.tsx-snapshots/Logo-render-story-Showcase-light-webkit-linux.png b/src/components/Logo/__snapshots__/Logo.visual.test.tsx-snapshots/Logo-render-story-Showcase-light-webkit-linux.png
index faf6f7a2..835d39a3 100644
Binary files a/src/components/Logo/__snapshots__/Logo.visual.test.tsx-snapshots/Logo-render-story-Showcase-light-webkit-linux.png and b/src/components/Logo/__snapshots__/Logo.visual.test.tsx-snapshots/Logo-render-story-Showcase-light-webkit-linux.png differ
diff --git a/src/components/constants.ts b/src/components/constants.ts
index cf931e54..52945b13 100644
--- a/src/components/constants.ts
+++ b/src/components/constants.ts
@@ -1,7 +1,11 @@
export const ASIDE_HEADER_ICON_SIZE = 16;
-export const ASIDE_HEADER_COMPACT_WIDTH = 56;
+export const ASIDE_HEADER_COLLAPSED_WIDTH = 56;
+export const ASIDE_HEADER_COLLAPSED_WIDTH_COMPACT_MODE = 40;
export const ASIDE_HEADER_EXPANDED_WIDTH = 236;
export const ITEM_HEIGHT = 36;
+export const ITEM_HEIGHT_COMPACT = 28;
export const HEADER_DIVIDER_HEIGHT = 29;
+export const HEADER_DIVIDER_HEIGHT_COMPACT = 22;
export const ASIDE_HEADER_EXPAND_TRANSITION_DELAY = 150;
export const ASIDE_HEADER_EXPAND_DELAY = 250;
+export const ITEM_GAP = 2;
diff --git a/src/components/utils/getCollapsedWidth.ts b/src/components/utils/getCollapsedWidth.ts
new file mode 100644
index 00000000..250ad171
--- /dev/null
+++ b/src/components/utils/getCollapsedWidth.ts
@@ -0,0 +1,8 @@
+import {
+ ASIDE_HEADER_COLLAPSED_WIDTH,
+ ASIDE_HEADER_COLLAPSED_WIDTH_COMPACT_MODE,
+} from '../constants';
+
+export function getCollapsedWidth(isCompactMode?: boolean): number {
+ return isCompactMode ? ASIDE_HEADER_COLLAPSED_WIDTH_COMPACT_MODE : ASIDE_HEADER_COLLAPSED_WIDTH;
+}
diff --git a/src/components/variables.scss b/src/components/variables.scss
index f862f52f..665f43b3 100644
--- a/src/components/variables.scss
+++ b/src/components/variables.scss
@@ -1 +1,11 @@
$ns: 'gn-';
+$item-height: 36px;
+$item-height-compact: 28px;
+$item-expanded-radius: 6px;
+$item-expanded-radius-compact: 4px;
+$aside-header-min-width: 56px;
+$aside-header-min-width-compact: 40px;
+$item-margin-inline: 10px;
+$item-margin-inline-compact: 6px;
+$header-divider-height: 29px;
+$header-divider-height-compact: 22px;