Skip to content
Prev Previous commit
Next Next commit
Tweak controls panel styling to fix overflow issue and design consist…
…ent with other panels
  • Loading branch information
ghengeveld committed Dec 10, 2025
commit 77aee15e3d348718e5fd59f62df87f0e47b267dc
38 changes: 20 additions & 18 deletions code/core/src/controls/components/ControlsPanel.tsx
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
import React, { useEffect, useMemo, useState } from 'react';

import { ScrollArea } from 'storybook/internal/components';
import type { ArgTypes } from 'storybook/internal/types';

import { global } from '@storybook/global';
Expand Down Expand Up @@ -31,11 +30,16 @@ const clean = (obj: { [key: string]: any }) =>
{} as typeof obj
);

const AddonWrapper = styled.div<{ showSaveFromUI: boolean }>(({ showSaveFromUI }) => ({
display: 'grid',
gridTemplateRows: showSaveFromUI ? '1fr 41px' : '1fr',
const AddonWrapper = styled.div<{ showSaveFromUI: boolean }>(({ showSaveFromUI, theme }) => ({
height: '100%',
maxHeight: '100vh',
paddingBottom: showSaveFromUI ? 41 : 0,
backgroundColor: theme.background.content,

thead: {
backgroundColor: theme.background.app,
lineHeight: '19px',
},
}));

interface ControlsParameters {
Expand Down Expand Up @@ -101,20 +105,18 @@ export const ControlsPanel = ({ saveStory, createStory }: ControlsPanelProps) =>

return (
<AddonWrapper showSaveFromUI={showSaveFromUI}>
<ScrollArea vertical>
<ArgsTable
key={path} // resets state when switching stories
compact={!expanded && hasControls}
rows={withPresetColors}
args={args}
globals={globals}
updateArgs={updateArgs}
resetArgs={resetArgs}
inAddonPanel
sort={sort}
isLoading={isLoading}
/>
</ScrollArea>
<ArgsTable
key={path} // resets state when switching stories
compact={!expanded && hasControls}
rows={withPresetColors}
args={args}
globals={globals}
updateArgs={updateArgs}
resetArgs={resetArgs}
inAddonPanel
sort={sort}
isLoading={isLoading}
/>
{showSaveFromUI && <SaveStory {...{ resetArgs, saveStory, createStory }} />}
</AddonWrapper>
);
Expand Down
4 changes: 3 additions & 1 deletion code/core/src/controls/components/SaveStory.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,9 @@ const highlight = keyframes({

const Container = styled.div({
containerType: 'size',
position: 'sticky',
position: 'absolute',
bottom: 0,
width: '100%',
height: 41,
overflow: 'hidden',
zIndex: 1,
Expand All @@ -43,6 +44,7 @@ const Info = styled.div({
display: 'flex',
flex: '99 0 auto',
alignItems: 'center',
marginInlineStart: 7,
marginInlineEnd: 10,
gap: 6,
});
Expand Down
2 changes: 1 addition & 1 deletion code/core/src/controls/manager.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -122,7 +122,7 @@ export default addons.register(ADDON_ID, (api) => {
return null;
}
return (
<AddonPanel active={active} hasScrollbar={false}>
<AddonPanel active={active}>
<ControlsPanel saveStory={saveStory} createStory={createStory} />
</AddonPanel>
);
Expand Down