Skip to content

Commit

Permalink
Merge pull request #84628 from microsoft/misolori/activity-bar-cleanup
Browse files Browse the repository at this point in the history
Activity bar active indicator cleanup
  • Loading branch information
Miguel Solorio committed Nov 15, 2019
2 parents 2b96305 + 138807e commit abb01b1
Show file tree
Hide file tree
Showing 3 changed files with 38 additions and 22 deletions.
16 changes: 15 additions & 1 deletion src/vs/workbench/browser/parts/activitybar/activitybarActions.ts
Expand Up @@ -22,7 +22,7 @@ import { ActivityAction, ActivityActionViewItem, ICompositeBar, ICompositeBarCol
import { ViewletDescriptor } from 'vs/workbench/browser/viewlet';
import { Extensions as ActionExtensions, IWorkbenchActionRegistry } from 'vs/workbench/common/actions';
import { IActivity } from 'vs/workbench/common/activity';
import { ACTIVITY_BAR_FOREGROUND, ACTIVITY_BAR_ACTIVE_BORDER, ACTIVITY_BAR_ACTIVE_BACKGROUND } from 'vs/workbench/common/theme';
import { ACTIVITY_BAR_FOREGROUND, ACTIVITY_BAR_ACTIVE_BORDER, ACTIVITY_BAR_ACTIVE_FOCUS_BORDER, ACTIVITY_BAR_ACTIVE_BACKGROUND } from 'vs/workbench/common/theme';
import { IActivityBarService } from 'vs/workbench/services/activityBar/browser/activityBarService';
import { IWorkbenchLayoutService, Parts } from 'vs/workbench/services/layout/browser/layoutService';
import { IViewletService } from 'vs/workbench/services/viewlet/browser/viewlet';
Expand Down Expand Up @@ -297,6 +297,20 @@ registerThemingParticipant((theme: ITheme, collector: ICssStyleCollector) => {
`);
}

const activeFocusBorderColor = theme.getColor(ACTIVITY_BAR_ACTIVE_FOCUS_BORDER);
if (activeFocusBorderColor) {
collector.addRule(`
.monaco-workbench .activitybar > .content :not(.monaco-menu) > .monaco-action-bar .action-item.checked:focus::before {
visibility: hidden;
}
.monaco-workbench .activitybar > .content :not(.monaco-menu) > .monaco-action-bar .action-item.checked:focus .active-item-indicator:before {
visibility: visible;
border-left-color: ${activeFocusBorderColor};
}
`);
}

const activeBackgroundColor = theme.getColor(ACTIVITY_BAR_ACTIVE_BACKGROUND);
if (activeBackgroundColor) {
collector.addRule(`
Expand Down
38 changes: 17 additions & 21 deletions src/vs/workbench/browser/parts/activitybar/media/activityaction.css
Expand Up @@ -6,14 +6,15 @@
.monaco-workbench .activitybar > .content :not(.monaco-menu) > .monaco-action-bar .action-item {
display: block;
position: relative;
padding: 5px 0;
margin-bottom: 4px;
}

.monaco-workbench .activitybar > .content :not(.monaco-menu) > .monaco-action-bar .action-label {
position: relative;
z-index: 1;
display: flex;
overflow: hidden;
height: 40px;
height: 48px;
margin-right: 0;
box-sizing: border-box;

Expand All @@ -35,11 +36,10 @@
.monaco-workbench .activitybar > .content :not(.monaco-menu) > .monaco-action-bar .action-item:focus:before {
content: "";
position: absolute;
top: 9px;
height: 32px;
top: 0;
z-index: 1;
top: 5px;
height: 40px;
top: 0;
height: 100%;
width: 0;
border-left: 2px solid;
}
Expand All @@ -50,7 +50,7 @@
}

.monaco-workbench .activitybar > .content :not(.monaco-menu) > .monaco-action-bar .action-item.checked:focus .active-item-indicator:before {
border-left: none; /* don't show active border + focus at the same time, focus takes priority */
visibility: hidden; /* don't show active border + focus at the same time, focus takes priority */
}

/* Hides active elements in high contrast mode */
Expand All @@ -62,20 +62,14 @@
border-left: none !important; /* no focus feedback when using mouse */
}

.monaco-workbench .activitybar.left > .content :not(.monaco-menu) > .monaco-action-bar .action-item:focus:before,
.monaco-workbench .activitybar.left > .content :not(.monaco-menu) > .monaco-action-bar .action-item.checked .active-item-indicator:before{
left: 0;
}

.monaco-workbench .activitybar.left > .content :not(.monaco-menu) > .monaco-action-bar .action-item:focus:before {
left: 1px;
}

.monaco-workbench .activitybar.right > .content :not(.monaco-menu) > .monaco-action-bar .action-item.checked .active-item-indicator:before,
.monaco-workbench .activitybar.right > .content :not(.monaco-menu) > .monaco-action-bar .action-item:focus:before {
right: 1px;
}

.monaco-workbench .activitybar.right > .content :not(.monaco-menu) > .monaco-action-bar .action-item.checked .active-item-indicator:before {
right: 2px;
right: 0;
}

/* Hides outline on HC as focus is handled by border */
Expand All @@ -88,16 +82,18 @@
.monaco-workbench .activitybar > .content :not(.monaco-menu) > .monaco-action-bar .badge {
position: absolute;
z-index: 1;
top: 5px;
top: 0;
bottom: 0;
margin: auto;
left: 0;
overflow: hidden;
width: 50px;
height: 40px;
width: 100%;
height: 100%;
}

.monaco-workbench .activitybar > .content :not(.monaco-menu) > .monaco-action-bar .badge .badge-content {
position: absolute;
top: 20px;
top: 24px;
right: 8px;
font-size: 9px;
font-weight: 600;
Expand All @@ -113,7 +109,7 @@

.monaco-workbench .activitybar.right > .content :not(.monaco-menu) > .monaco-action-bar .action-label:not(.codicon) {
margin-left: 0;
padding: 0 50px 0 0;
padding: 0 48px 0 0;
background-position: calc(100% - 9px) center;
}

Expand Down
6 changes: 6 additions & 0 deletions src/vs/workbench/common/theme.ts
Expand Up @@ -352,6 +352,12 @@ export const ACTIVITY_BAR_ACTIVE_BORDER = registerColor('activityBar.activeBorde
hc: null
}, nls.localize('activityBarActiveBorder', "Activity bar border color for the active item. The activity bar is showing on the far left or right and allows to switch between views of the side bar."));

export const ACTIVITY_BAR_ACTIVE_FOCUS_BORDER = registerColor('activityBar.activeFocusBorder', {
dark: null,
light: null,
hc: null
}, nls.localize('activityBarActiveFocusBorder', "Activity bar focus border color for the active item. The activity bar is showing on the far left or right and allows to switch between views of the side bar."));

export const ACTIVITY_BAR_ACTIVE_BACKGROUND = registerColor('activityBar.activeBackground', {
dark: null,
light: null,
Expand Down

0 comments on commit abb01b1

Please sign in to comment.