Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[feat] Revamp Figures explorer controls section for better onboarding and usability #2150

Merged
Merged
Show file tree
Hide file tree
Changes from 53 commits
Commits
Show all changes
54 commits
Select commit Hold shift + click to select a range
7543d77
add show/hide system metric icons
arsengit Jan 25, 2022
a1576c7
Add circle question icon to icomoon set.
Hamik25 Jan 25, 2022
0ce5b22
Added run overview icons
arsengit Feb 17, 2022
ac28dc9
Merge branch 'main' into add-new-icon
arsengit Feb 17, 2022
3738cf2
resolved conflicts with main branch
arsengit Feb 17, 2022
fc515c2
Merge branch 'main' into add-new-icon
arsengit Mar 6, 2022
ce726b4
added avatar and branch icons
arsengit Mar 6, 2022
1478ad3
Merge branch 'main' into add-new-icon
arsengit Mar 6, 2022
807fbe4
Merge branch 'main' into add-new-icon
arsengit Mar 9, 2022
10b6380
Merge branch 'main' of https://github.com/aimhubio/aim into feature/a…
VkoHov Mar 17, 2022
5c7497a
Added color scale icons
VkoHov Mar 17, 2022
c9cbf61
Merge branch 'main' of https://github.com/aimhubio/aim into feature/a…
VkoHov Mar 17, 2022
05cd163
Merge branch 'main' of https://github.com/aimhubio/aim into feature/a…
rubenaprikyan Mar 23, 2022
c3231ae
Add text icon
rubenaprikyan Mar 23, 2022
cbb3232
Merge branch 'main' of https://github.com/aimhubio/aim into feature/a…
VkoHov Mar 29, 2022
eda5e3c
Add minus icon
VkoHov Mar 29, 2022
8c68335
Add minus name to icon types
VkoHov Mar 29, 2022
a09277d
added update time icon
arsengit Apr 26, 2022
c380fc7
Merge branch 'main' into add-new-icon
arsengit May 2, 2022
276fb37
Merge branch 'main' into feature/add-new-icon
arsengit Jun 28, 2022
ba646f2
[feat] Add info circle outline icon
arsengit Jun 29, 2022
c045766
Merge branch 'main' into feature/add-new-icon
KaroMourad Jul 13, 2022
fd08eb4
[feat] Add axes-props icon
KaroMourad Jul 13, 2022
7ea5cd4
Merge branch 'main' into feature/add-new-icon
arsengit Jul 26, 2022
4b59b7b
[feat] Add compare icon
arsengit Jul 26, 2022
b1c3ed0
Merge branch 'main' into add-new-icon
arsengit Aug 3, 2022
c982d8d
[feat] Add box-settings, full-screen and new-tab icons
arsengit Aug 3, 2022
9ea8a7d
Merge branch 'main' into feature/add-icon
arsengit Aug 12, 2022
bb64103
[feat] Add figures-explorer icon
arsengit Aug 12, 2022
0d8dfa8
[feat] Add group-column icon
arsengit Aug 17, 2022
e9e7360
Merge branch 'main' into feature/add-icon
arsengit Aug 17, 2022
404cf47
[feat] move the grouping section to the bottom of thequery form
VkoHov Sep 2, 2022
00b363b
Merge branch 'main' of https://github.com/aimhubio/aim into feature/a…
VkoHov Sep 2, 2022
a886262
[feat] Added contained arrows set
VkoHov Sep 2, 2022
f5dd41b
Merge branch 'feature/add-icon' of https://github.com/aimhubio/aim in…
VkoHov Sep 2, 2022
bf09017
[feat] Added active state of the grouping item
VkoHov Sep 4, 2022
365f94e
Merge branch 'main' of https://github.com/aimhubio/aim into feature/c…
VkoHov Sep 4, 2022
c91a33b
Merge branch 'main' of https://github.com/aimhubio/aim into feature/c…
VkoHov Sep 6, 2022
a1a3f5b
[feat] Added Base prefix to Grouping component root class name
VkoHov Sep 6, 2022
38e1408
[doc] Update changelog
VkoHov Sep 6, 2022
e19115f
[feat] Added outlined and hovered states to grouping items
VkoHov Sep 6, 2022
a48e8cf
[feat] Adjust the controls section layout of the figures explorer
KaroMourad Sep 6, 2022
dddf21e
Merge branch 'feature/change-grouping-section-layout-in-figures-explo…
KaroMourad Sep 6, 2022
1c13152
[doc] Update changelog
VkoHov Sep 6, 2022
376694a
[doc] Update changelog
VkoHov Sep 6, 2022
c98e5d8
[docs] update CHANGELOG
KaroMourad Sep 6, 2022
14ad36c
[doc] Update changelog
VkoHov Sep 6, 2022
4f2fa1e
Merge branch 'feature/change-grouping-section-layout-in-figures-explo…
KaroMourad Sep 7, 2022
a20892f
[feat] Animate the group item arrow icon on opening the group popover
KaroMourad Sep 7, 2022
afa3558
Merge branch 'main' into feature/change-controls-section-layout-in-fi…
KaroMourad Sep 7, 2022
15579d6
[fix] Fix linting issue
KaroMourad Sep 7, 2022
41113cf
[fix] Fix controls section overlapping with grouping
KaroMourad Sep 9, 2022
44a9c7b
[fix] Fix controls popover title
KaroMourad Sep 9, 2022
e528acb
[docs] update CHANGELOG
KaroMourad Sep 9, 2022
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
- Support dictionary as an argument of `Run.track` (alberttorosyan)
- Display the tags of the run in the tables of the explorers (VkoHov)
- Adjust the grouping section layout of the Figures explorer (VkoHov)
- Adjust the controls section layout of the Figures explorer (KaroMourad)

### Fixes:

Expand Down
2 changes: 1 addition & 1 deletion aim/web/ui/src/components/GroupingItem/GroupingItem.scss
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@
display: flex;
align-items: center;
justify-content: center;
transition: all 0.18s ease-out;
transition: all $popover-opening-duration ease-out;

&:last-child {
margin-right: 0;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,10 @@
import React from 'react';
import classNames from 'classnames';

import { Tooltip } from '@material-ui/core';
import { IBaseComponentProps } from 'modules/BaseExplorer/types';

import ControlPopover from 'components/ControlPopover/ControlPopover';
import { Icon } from 'components/kit';
import { Button, Icon, Text } from 'components/kit';

import BoxPropertiesPopover from './Popover';

Expand All @@ -25,24 +24,30 @@ function BoxProperties(props: IBoxPropertiesProps) {
const boxProperties: IBoxConfigState = useStore(boxSelector);
return (
<ControlPopover
title='Box properties'
title='Configure box size'
anchorOrigin={{ vertical: 'bottom', horizontal: 'right' }}
anchor={({ onAnchorClick, opened }) => (
<Tooltip title='Box properties'>
<div
onClick={onAnchorClick}
className={classNames('Controls__anchor', {
<Button
size='xSmall'
onClick={onAnchorClick}
className={classNames('Control__anchor', {
active: opened || !boxProperties.isInitial,
outlined: !opened && !boxProperties.isInitial,
})}
>
<Icon
name='box-settings'
className={classNames('Control__anchor__icon', {
active: opened || !boxProperties.isInitial,
outlined: !opened && !boxProperties.isInitial,
})}
>
<Icon
className={classNames('Controls__icon', {
active: opened || !boxProperties.isInitial,
})}
name='box-settings'
/>
</div>
</Tooltip>
/>
<Text className='Control__anchor__label'>Box size</Text>
<Icon
name='arrow-down-contained'
className={classNames('Control__anchor__arrow', { opened })}
fontSize={6}
/>
</Button>
)}
component={
<BoxPropertiesPopover
Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,10 @@
import React from 'react';
import classNames from 'classnames';

import { Tooltip } from '@material-ui/core';
import { IBaseComponentProps } from 'modules/BaseExplorer/types';

import ControlPopover from 'components/ControlPopover/ControlPopover';
import { Icon } from 'components/kit';
import { Button, Icon, Text } from 'components/kit';
import ErrorBoundary from 'components/ErrorBoundary/ErrorBoundary';

import CaptionPropertiesPopover from './CaptionPropertiesPopover';
Expand All @@ -27,23 +26,29 @@ function CaptionProperties(props: ICaptionPropertiesProps) {
<ErrorBoundary>
<ControlPopover
title='Configure box caption'
anchorOrigin={{ vertical: 'bottom', horizontal: 'right' }}
anchor={({ onAnchorClick, opened }) => (
<Tooltip title='Configure box caption'>
<div
onClick={onAnchorClick}
className={classNames('Controls__anchor', {
<Button
size='xSmall'
onClick={onAnchorClick}
className={classNames('Control__anchor', {
active: opened || !captionProperties.isInitial,
outlined: !opened && !captionProperties.isInitial,
})}
>
<Icon
name='info-circle-outline'
className={classNames('Control__anchor__icon', {
active: opened || !captionProperties.isInitial,
outlined: !captionProperties.isInitial,
})}
>
<Icon
className={classNames('Controls__icon', {
active: opened || !captionProperties.isInitial,
})}
name='info-circle-outline'
/>
</div>
</Tooltip>
/>
<Text className='Control__anchor__label'>Box caption</Text>
<Icon
name='arrow-down-contained'
className={classNames('Control__anchor__arrow', { opened })}
fontSize={6}
/>
</Button>
)}
component={
<CaptionPropertiesPopover
Expand Down
139 changes: 62 additions & 77 deletions aim/web/ui/src/modules/BaseExplorer/components/Controls/Controls.scss
Original file line number Diff line number Diff line change
@@ -1,86 +1,71 @@
@use 'src/styles/abstracts' as *;

.Controls {
border-left: $border-separator;
width: 3.75rem;
max-height: 100%;
overflow-y: auto;
.BaseControls {
display: flex;
align-items: center;
justify-content: flex-end;
margin-left: $space-sm;
overflow: hidden;
&__container {
padding: 0.75rem 0;
display: flex;
flex-direction: column;
align-items: center;
overflow: auto;
& > .Control {
margin-bottom: 0.375rem;
overflow-x: auto;
.Control {
margin-right: $space-xxs;
&:last-child {
margin-bottom: 0;
margin-right: 0;
}
&__anchor {
white-space: nowrap;
padding: $space-xxxxs $space-xxs;
height: 1.5rem;
display: flex;
cursor: pointer;
position: relative;
align-items: center;
justify-content: center;
transition: background-color $popover-opening-duration ease-out;
border: 0.0625rem solid transparent;
border-radius: 3px;
&.active {
background-color: $primary-color-10;
&.outlined {
border: $border-main-active;
}
}
&.disabled {
cursor: initial;
i {
color: $pico-50;
}
&:hover {
background-color: transparent;
}
}
&:hover {
background-color: $pico-5;
}
&__arrow {
margin-left: $space-xxs;
transition: transform $popover-opening-duration ease-out;
color: $pico-80;
&.opened {
transform: rotateX(180deg);
color: $primary-color;
}
}
&__label {
user-select: none;
white-space: nowrap;
}
&__icon {
color: $pico-70;
font-size: 1rem;
margin-right: $space-xxxs;
&.active {
color: $primary-color;
}
}
}
}
}
}

.Controls__icon {
color: $pico-70;
font-size: 1.125rem;
&.active {
color: $primary-color;
}
}

.Controls__anchor {
height: 2.25rem;
width: 2.25rem;
display: flex;
cursor: pointer;
position: relative;
align-items: center;
justify-content: center;
transition: background-color 0.18s ease-out;
border: 0.0625rem solid transparent;
border-radius: $border-radius-main;
&.active {
background-color: $primary-color-10;
&.outlined {
border: $border-main-active;
}
}
&.disabled {
cursor: initial;
i {
color: $pico-50;
}
&:hover {
background-color: transparent;
}
}
&:hover {
background-color: $pico-5;
.icon-arrow-left {
opacity: 1;
}
}
}

.Controls__anchor__arrow {
width: 0.6875rem;
height: 100%;
position: absolute;
left: -0.8125rem;
display: flex;
align-items: center;
justify-content: center;
&.opened {
.icon-arrow-left {
opacity: 1;
transform: rotate(180deg);
color: $primary-color;
}
}
.icon-arrow-left {
opacity: 0;
font-size: 0.45rem;
transition: all 0.18s ease-out;
color: $pico-30;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -26,8 +26,8 @@ function Controls(props: IControlsProps) {

return (
<ErrorBoundary>
<div className='Controls'>
<div className='Controls__container ScrollBar__hidden'>
<div className='BaseControls'>
<div className='BaseControls__container ScrollBar__hidden'>
{Components}
</div>
</div>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,6 @@
.BaseGrouping {
display: flex;
align-items: center;
border-left: $border-main;
height: 2.5rem;
padding: $space-xxxs $space-lg;
border-bottom: $border-main;
&__title {
margin-right: $space-xxxs;
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,17 +1,15 @@
@use 'src/styles/abstracts' as *;

.BaseGroupingItem {
margin-right: $space-xxxxs;
margin-right: $space-xxxs;
border: $border-transparent;

&__label {
margin-right: $space-xxxxs;
margin-top: toRem(1px);
}
&:last-child {
margin-right: 0;
}

&.active {
background-color: $primary-color-10;
}
Expand All @@ -22,7 +20,13 @@
&:hover {
background-color: $pico-5;
}
.Icon__container {
&__arrowIcon {
margin-left: $space-xxs;
transition: transform $popover-opening-duration ease-out;
color: $pico-80;
&.opened {
transform: rotateX(180deg);
color: $primary-color;
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ function GroupingItem({
anchor={({ onAnchorClick, opened }) => (
<Tooltip title={`Group by ${groupName}`}>
<Button
size='small'
size='xSmall'
disabled={isDisabled}
onClick={onAnchorClick}
className={classNames('BaseGroupingItem', {
Expand All @@ -49,11 +49,14 @@ function GroupingItem({
!_.isEmpty(currentValues[groupName].fields),
})}
>
<Text size={12} weight={500} className='BaseGroupingItem__label'>
<Text size={12} weight={600} className='BaseGroupingItem__label'>
{groupName}
</Text>
<Icon
name={opened ? 'arrow-up-contained' : 'arrow-down-contained'}
name='arrow-down-contained'
className={classNames('BaseGroupingItem__arrowIcon', {
opened,
})}
fontSize={6}
/>
</Button>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,8 @@
.Visualizations {
display: flex;
flex: 1;
max-height: calc(100% - 10.75rem);
flex-direction: column;
overflow: hidden;
position: relative;
.ProgressBar__container {
padding-bottom: 6 * $space-unit;
Expand Down
Loading