MM-56975 UI Incremental Refinements (#26407)
* updated styles to include rounded corners and updated backgrounds/containers * updated snapshots * removed background from app bar top * removed top padding from lhs * updated name of container to better match the grid name in css * fixed lint issue with css * update snapshot * adjusted padding/margin * use radius variables * remove margin and border radius from plabooks for now * fixed tasklist * minor tweaks to menus * add global border variables and use in key places * fixed grid issues with login page and backstage * use border variable * adjust padding in global header * fixed type issues * tweaks to spacing * fixed margin issue on backstage * fixed padding on global header * minor tweaks to header and apps bar * removed background from apps bar * updates to header and app bar and team icon * updated more borders and radii to use variables * fixed style lint issue * adjust letter spacing on category labels * fix lint issue * fixed position of popover * address UX feedback
Этот коммит содержится в:
коммит произвёл
GitHub
родитель
f00efe58fd
Коммит
8fa6757949
@@ -4,7 +4,7 @@
|
||||
@import 'utils/mixins';
|
||||
|
||||
$app-bar-icon-size: 24px;
|
||||
$app-bar-width: 48px;
|
||||
$app-bar-width: 44px;
|
||||
|
||||
.app-bar {
|
||||
// Do not show App Bar if on mobile
|
||||
@@ -12,11 +12,10 @@ $app-bar-width: 48px;
|
||||
display: none;
|
||||
}
|
||||
|
||||
position: relative;
|
||||
display: flex;
|
||||
min-height: 0;
|
||||
flex-flow: column;
|
||||
border-left: solid 1px rgba(var(--center-channel-color-rgb), 0.12);
|
||||
background-color: var(--center-channel-bg);
|
||||
|
||||
&__top {
|
||||
position: relative;
|
||||
@@ -25,7 +24,6 @@ $app-bar-width: 48px;
|
||||
flex: 1;
|
||||
flex-flow: column;
|
||||
padding-top: 15px;
|
||||
background-color: rgba(var(--center-channel-color-rgb), 0.04);
|
||||
-ms-overflow-style: none;
|
||||
overflow-x: hidden;
|
||||
overflow-y: scroll;
|
||||
@@ -49,7 +47,7 @@ $app-bar-width: 48px;
|
||||
left: 0;
|
||||
width: 3px;
|
||||
height: $app-bar-icon-size;
|
||||
border-radius: 0 2px 2px 0;
|
||||
border-radius: 0 var(--radius-xs) var(--radius-xs) 0;
|
||||
background-color: var(--sidebar-text-active-border);
|
||||
content: '';
|
||||
}
|
||||
@@ -71,18 +69,18 @@ $app-bar-width: 48px;
|
||||
overflow: hidden;
|
||||
width: $app-bar-icon-size;
|
||||
height: $app-bar-icon-size;
|
||||
border-radius: 50%;
|
||||
border-radius: var(--radius-full);
|
||||
margin: 0 auto;
|
||||
line-height: 1;
|
||||
|
||||
&:hover {
|
||||
box-shadow: 0 0 0 2px rgba(var(--center-channel-color-rgb), 0.16);
|
||||
box-shadow: 0 0 0 2px rgba(var(--sidebar-text-rgb), 0.16);
|
||||
}
|
||||
|
||||
img {
|
||||
width: $app-bar-icon-size;
|
||||
height: $app-bar-icon-size;
|
||||
border-radius: 50%;
|
||||
border-radius: var(--radius-full);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -105,11 +103,11 @@ $app-bar-width: 48px;
|
||||
}
|
||||
|
||||
.app-bar__old-icon {
|
||||
color: rgba(var(--center-channel-color-rgb), 0.64);
|
||||
color: rgba(var(--sidebar-text-rgb), 0.64);
|
||||
|
||||
&:hover,
|
||||
&--active {
|
||||
color: rgba(var(--center-channel-color-rgb), 0.8);
|
||||
color: rgba(var(--sidebar-text-rgb), 0.8);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -121,7 +119,7 @@ $app-bar-width: 48px;
|
||||
|
||||
.app-bar__divider {
|
||||
width: 28px;
|
||||
border-top: 1px solid rgba(var(--center-channel-color-rgb), 0.16);
|
||||
border-top: 1px solid rgba(var(--sidebar-text-rgb), 0.16);
|
||||
margin-top: 0;
|
||||
margin-bottom: 19px;
|
||||
}
|
||||
@@ -140,11 +138,17 @@ $app-bar-width: 48px;
|
||||
align-items: center;
|
||||
padding-top: 24px;
|
||||
padding-bottom: 36px;
|
||||
background-color: rgba(var(--center-channel-color-rgb), 0.04);
|
||||
|
||||
.app_bar__marketplace_button {
|
||||
@include icon-button;
|
||||
@include icon-button-small-compact;
|
||||
|
||||
color: rgba(var(--sidebar-text-rgb), 0.64);
|
||||
|
||||
&:hover {
|
||||
background-color: rgba(var(--sidebar-text-rgb), 0.08);
|
||||
color: rgba(var(--sidebar-text-rgb), 0.72);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -245,7 +245,7 @@ const BackstageGlobalStyle = createGlobalStyle`
|
||||
#root {
|
||||
> #global-header,
|
||||
> .team-sidebar,
|
||||
> .sidebar--right,
|
||||
> .main-wrapper .sidebar--right,
|
||||
> .app-bar {
|
||||
display: none;
|
||||
}
|
||||
|
||||
@@ -9,8 +9,8 @@
|
||||
overflow: hidden;
|
||||
max-height: calc(100vh - 240px);
|
||||
flex-direction: column;
|
||||
border: 1px solid rgba(var(--center-channel-color-rgb), 0.16);
|
||||
border-radius: 12px;
|
||||
border: var(--border-default);
|
||||
border-radius: var(--radius-l);
|
||||
box-shadow: var(--elevation-6);
|
||||
}
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
|
||||
.modal-header {
|
||||
border: none;
|
||||
border-bottom: 1px solid rgba(var(--center-channel-color-rgb), 0.08);
|
||||
border-bottom: var(--border-light);
|
||||
background: none;
|
||||
}
|
||||
|
||||
@@ -44,7 +44,7 @@
|
||||
align-items: center;
|
||||
justify-content: flex-end;
|
||||
padding: 24px 32px;
|
||||
border-top: 1px solid rgba(var(--center-channel-color-rgb), 0.08);
|
||||
border-top: var(--border-light);
|
||||
gap: 8px;
|
||||
}
|
||||
|
||||
@@ -73,7 +73,7 @@
|
||||
}
|
||||
|
||||
&__divider {
|
||||
border-bottom: 1px solid rgba(var(--center-channel-color-rgb), 0.08);
|
||||
border-bottom: var(--border-light);
|
||||
}
|
||||
|
||||
@media screen and (max-width: 768px) {
|
||||
|
||||
@@ -2,10 +2,8 @@
|
||||
// See LICENSE.txt for license information.
|
||||
|
||||
.Drafts {
|
||||
--border: 1px solid rgba(var(--center-channel-color-rgb), 0.16);
|
||||
|
||||
&__header {
|
||||
border-bottom: var(--border);
|
||||
border-bottom: var(--border-default);
|
||||
grid-area: header;
|
||||
}
|
||||
|
||||
@@ -44,7 +42,7 @@
|
||||
}
|
||||
|
||||
.Header {
|
||||
border-top: var(--border);
|
||||
border-top: var(--border-default);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -22,11 +22,9 @@ const GlobalHeaderContainer = styled.header`
|
||||
flex-shrink: 0;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
height: 40px;
|
||||
background: var(--global-header-background);
|
||||
border-bottom: solid 1px rgba(var(--center-channel-color-rgb), 0.08);
|
||||
color: rgba(var(--global-header-text-rgb), 0.64);
|
||||
padding: 0 12px;
|
||||
height: 44px;
|
||||
color: rgba(var(--sidebar-text-rgb), 0.64);
|
||||
padding: 0 4px 0 8px;
|
||||
z-index: 99;
|
||||
|
||||
> * + * {
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
min-height: 100%;
|
||||
flex-direction: column;
|
||||
margin: 0 auto;
|
||||
grid-area: center;
|
||||
grid-area: main;
|
||||
|
||||
.header-footer-route-container {
|
||||
display: flex;
|
||||
|
||||
@@ -22,7 +22,7 @@ export const MuiMenuStyled = styled(MuiMenu, {
|
||||
backgroundColor: 'var(--center-channel-bg)',
|
||||
boxShadow: `${
|
||||
asSubMenu ? 'var(--elevation-5)' : 'var(--elevation-4)'
|
||||
}, 0 0 0 1px rgba(var(--center-channel-color-rgb), 0.16) inset`,
|
||||
}, 0 0 0 1px rgba(var(--center-channel-color-rgb), 0.12) inset`,
|
||||
minWidth: '114px',
|
||||
maxWidth: '496px',
|
||||
maxHeight: '80vh',
|
||||
|
||||
@@ -43,7 +43,7 @@ import {TaskListPopover} from './onboarding_tasklist_popover';
|
||||
import {Task} from './onboarding_tasklist_task';
|
||||
|
||||
const TaskItems = styled.div`
|
||||
border-radius: 4px;
|
||||
border-radius: var(--radius-m);
|
||||
border: solid 1px rgba(var(--center-channel-color-rgb), 0.16);
|
||||
background-color: var(--center-channel-bg);
|
||||
width: 352px;
|
||||
@@ -91,9 +91,9 @@ const Button = styled.button<{open: boolean}>(({open}) => {
|
||||
width: 36px;
|
||||
height: 36px;
|
||||
padding: 7px;
|
||||
border-radius: 50%;
|
||||
left: 20px;
|
||||
bottom: 20px;
|
||||
border-radius: var(--radius-full);
|
||||
left: 15px;
|
||||
bottom: 15px;
|
||||
position: fixed;
|
||||
z-index: 101;
|
||||
display: flex;
|
||||
@@ -113,15 +113,15 @@ const Button = styled.button<{open: boolean}>(({open}) => {
|
||||
width: 20px;
|
||||
height: 16px;
|
||||
background: var(--button-bg);
|
||||
position: fixed;
|
||||
position: absolute;
|
||||
display: ${open ? 'none' : 'block'};
|
||||
border-radius: 12px;
|
||||
color: var(--button-color);
|
||||
font-weight: bold;
|
||||
font-size: 11px;
|
||||
line-height: 16px;
|
||||
bottom: 47px;
|
||||
left: 41px;
|
||||
bottom: 22px;
|
||||
left: 22px;
|
||||
}
|
||||
`;
|
||||
});
|
||||
@@ -130,7 +130,7 @@ const PlayButton = styled.button`
|
||||
padding: 10px 0;
|
||||
max-width: 175px;
|
||||
background: var(--button-bg);
|
||||
border-radius: 4px;
|
||||
border-radius: var(--radius-s);
|
||||
color: var(--button-color);
|
||||
border: none;
|
||||
font-weight: bold;
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
|
||||
import type {Placement} from 'popper.js';
|
||||
import React from 'react';
|
||||
import type {RefObject} from 'react';
|
||||
import type {RefObject, CSSProperties} from 'react';
|
||||
import {usePopper} from 'react-popper';
|
||||
import {CSSTransition} from 'react-transition-group';
|
||||
import styled from 'styled-components';
|
||||
@@ -83,8 +83,11 @@ export const TaskListPopover = ({
|
||||
],
|
||||
});
|
||||
const style = {
|
||||
...popper,
|
||||
zIndex: isVisible ? 100 : -1,
|
||||
container: {
|
||||
...popper,
|
||||
zIndex: isVisible ? 100 : -1,
|
||||
position: 'fixed',
|
||||
} as CSSProperties,
|
||||
};
|
||||
return (
|
||||
<>
|
||||
@@ -101,7 +104,7 @@ export const TaskListPopover = ({
|
||||
</CSSTransition>
|
||||
<div
|
||||
ref={setPopperElement}
|
||||
style={style}
|
||||
style={style.container}
|
||||
{...attributes.popper}
|
||||
>
|
||||
{children}
|
||||
|
||||
@@ -99,33 +99,37 @@ exports[`components/Root Routes Should mount public product routes 1`] = `
|
||||
<GlobalHeader />
|
||||
<CloudEffectsWrapper />
|
||||
<withRouter(Connect(TeamSidebar)) />
|
||||
<Switch>
|
||||
<Route
|
||||
key="productwithpublic-public"
|
||||
path="/productwithpublic/public"
|
||||
render={[Function]}
|
||||
<div
|
||||
className="main-wrapper"
|
||||
>
|
||||
<Switch>
|
||||
<Route
|
||||
key="productwithpublic-public"
|
||||
path="/productwithpublic/public"
|
||||
render={[Function]}
|
||||
/>
|
||||
<Route
|
||||
key="productwithpublic"
|
||||
path="/productwithpublic"
|
||||
render={[Function]}
|
||||
/>
|
||||
<Route
|
||||
key="productwithoutpublic"
|
||||
path="/productwithoutpublic"
|
||||
render={[Function]}
|
||||
/>
|
||||
<LoggedInRoute
|
||||
component={[Function]}
|
||||
path="/:team([a-z0-9\\\\-_]+)"
|
||||
theme={Object {}}
|
||||
/>
|
||||
<Connect(RootRedirect) />
|
||||
</Switch>
|
||||
<Connect(Pluggable)
|
||||
pluggableName="Global"
|
||||
/>
|
||||
<Route
|
||||
key="productwithpublic"
|
||||
path="/productwithpublic"
|
||||
render={[Function]}
|
||||
/>
|
||||
<Route
|
||||
key="productwithoutpublic"
|
||||
path="/productwithoutpublic"
|
||||
render={[Function]}
|
||||
/>
|
||||
<LoggedInRoute
|
||||
component={[Function]}
|
||||
path="/:team([a-z0-9\\\\-_]+)"
|
||||
theme={Object {}}
|
||||
/>
|
||||
<Connect(RootRedirect) />
|
||||
</Switch>
|
||||
<Connect(Pluggable)
|
||||
pluggableName="Global"
|
||||
/>
|
||||
<withRouter(Connect(SidebarRight)) />
|
||||
<withRouter(Connect(SidebarRight)) />
|
||||
</div>
|
||||
<AppBar />
|
||||
<Connect(Component) />
|
||||
</CompassThemeProvider>
|
||||
|
||||
@@ -549,75 +549,77 @@ export default class Root extends React.PureComponent<Props, State> {
|
||||
<GlobalHeader/>
|
||||
<CloudEffects/>
|
||||
<TeamSidebar/>
|
||||
<Switch>
|
||||
{this.props.products?.filter((product) => Boolean(product.publicComponent)).map((product) => (
|
||||
<Route
|
||||
key={`${product.id}-public`}
|
||||
path={`${product.baseURL}/public`}
|
||||
render={(props) => {
|
||||
return (
|
||||
<Pluggable
|
||||
pluggableName={'Product'}
|
||||
subComponentName={'publicComponent'}
|
||||
pluggableId={product.id}
|
||||
css={{gridArea: 'center'}}
|
||||
{...props}
|
||||
/>
|
||||
);
|
||||
}}
|
||||
/>
|
||||
))}
|
||||
{this.props.products?.map((product) => (
|
||||
<Route
|
||||
key={product.id}
|
||||
path={product.baseURL}
|
||||
render={(props) => {
|
||||
let pluggable = (
|
||||
<Pluggable
|
||||
pluggableName={'Product'}
|
||||
subComponentName={'mainComponent'}
|
||||
pluggableId={product.id}
|
||||
webSocketClient={webSocketClient}
|
||||
css={product.wrapped ? undefined : {gridArea: 'center'}}
|
||||
/>
|
||||
);
|
||||
if (product.wrapped) {
|
||||
pluggable = (
|
||||
<div className={classNames(['product-wrapper', {wide: !product.showTeamSidebar}])}>
|
||||
{pluggable}
|
||||
</div>
|
||||
<div className='main-wrapper'>
|
||||
<Switch>
|
||||
{this.props.products?.filter((product) => Boolean(product.publicComponent)).map((product) => (
|
||||
<Route
|
||||
key={`${product.id}-public`}
|
||||
path={`${product.baseURL}/public`}
|
||||
render={(props) => {
|
||||
return (
|
||||
<Pluggable
|
||||
pluggableName={'Product'}
|
||||
subComponentName={'publicComponent'}
|
||||
pluggableId={product.id}
|
||||
css={{gridArea: 'center'}}
|
||||
{...props}
|
||||
/>
|
||||
);
|
||||
}
|
||||
return (
|
||||
<LoggedIn {...props}>
|
||||
{pluggable}
|
||||
</LoggedIn>
|
||||
);
|
||||
}}
|
||||
}}
|
||||
/>
|
||||
))}
|
||||
{this.props.products?.map((product) => (
|
||||
<Route
|
||||
key={product.id}
|
||||
path={product.baseURL}
|
||||
render={(props) => {
|
||||
let pluggable = (
|
||||
<Pluggable
|
||||
pluggableName={'Product'}
|
||||
subComponentName={'mainComponent'}
|
||||
pluggableId={product.id}
|
||||
webSocketClient={webSocketClient}
|
||||
css={product.wrapped ? undefined : {gridArea: 'center'}}
|
||||
/>
|
||||
);
|
||||
if (product.wrapped) {
|
||||
pluggable = (
|
||||
<div className={classNames(['product-wrapper', {wide: !product.showTeamSidebar}])}>
|
||||
{pluggable}
|
||||
</div>
|
||||
);
|
||||
}
|
||||
return (
|
||||
<LoggedIn {...props}>
|
||||
{pluggable}
|
||||
</LoggedIn>
|
||||
);
|
||||
}}
|
||||
/>
|
||||
))}
|
||||
{this.props.plugins?.map((plugin) => (
|
||||
<Route
|
||||
key={plugin.id}
|
||||
path={'/plug/' + (plugin as any).route}
|
||||
render={() => (
|
||||
<Pluggable
|
||||
pluggableName={'CustomRouteComponent'}
|
||||
pluggableId={plugin.id}
|
||||
css={{gridArea: 'center'}}
|
||||
/>
|
||||
)}
|
||||
/>
|
||||
))}
|
||||
<LoggedInRoute
|
||||
theme={this.props.theme}
|
||||
path={`/:team(${TEAM_NAME_PATH_PATTERN})`}
|
||||
component={TeamController}
|
||||
/>
|
||||
))}
|
||||
{this.props.plugins?.map((plugin) => (
|
||||
<Route
|
||||
key={plugin.id}
|
||||
path={'/plug/' + (plugin as any).route}
|
||||
render={() => (
|
||||
<Pluggable
|
||||
pluggableName={'CustomRouteComponent'}
|
||||
pluggableId={plugin.id}
|
||||
css={{gridArea: 'center'}}
|
||||
/>
|
||||
)}
|
||||
/>
|
||||
))}
|
||||
<LoggedInRoute
|
||||
theme={this.props.theme}
|
||||
path={`/:team(${TEAM_NAME_PATH_PATTERN})`}
|
||||
component={TeamController}
|
||||
/>
|
||||
<RootRedirect/>
|
||||
</Switch>
|
||||
<Pluggable pluggableName='Global'/>
|
||||
<SidebarRight/>
|
||||
<RootRedirect/>
|
||||
</Switch>
|
||||
<Pluggable pluggableName='Global'/>
|
||||
<SidebarRight/>
|
||||
</div>
|
||||
<AppBar/>
|
||||
<SidebarRightMenu/>
|
||||
</CompassThemeProvider>
|
||||
|
||||
@@ -9,11 +9,20 @@
|
||||
}
|
||||
}
|
||||
|
||||
.GlobalThreads {
|
||||
--border: 1px solid rgba(var(--center-channel-color-rgb), 0.16);
|
||||
.rhs-open #channel_view.channel-view {
|
||||
&:has(.GlobalThreads) {
|
||||
padding-right: 0;
|
||||
|
||||
.ThreadPane,
|
||||
.no-results__holder {
|
||||
padding-right: 18px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.GlobalThreads {
|
||||
.GlobalThreads___header {
|
||||
border-bottom: var(--border);
|
||||
border-bottom: var(--border-default);
|
||||
grid-area: header;
|
||||
}
|
||||
|
||||
@@ -23,13 +32,14 @@
|
||||
}
|
||||
|
||||
.ThreadList {
|
||||
border-right: var(--border);
|
||||
grid-area: list;
|
||||
}
|
||||
|
||||
.ThreadPane,
|
||||
.ThreadList + .no-results__holder {
|
||||
box-shadow: var(--elevation-2);
|
||||
grid-area: pane;
|
||||
outline: var(--border-light);
|
||||
}
|
||||
|
||||
> .no-results__holder {
|
||||
@@ -59,19 +69,15 @@
|
||||
|
||||
display: grid;
|
||||
overflow: hidden;
|
||||
grid-template-areas:
|
||||
'header header'
|
||||
'list pane';
|
||||
grid-template-areas: 'list pane';
|
||||
|
||||
// 2-column
|
||||
grid-template-columns: var(--list) var(--pane);
|
||||
grid-template-rows: 56px 1fr;
|
||||
grid-template-rows: 1fr;
|
||||
|
||||
// single column
|
||||
@media screen and (max-width: 1020px) {
|
||||
grid-template-areas:
|
||||
'header header'
|
||||
'main main';
|
||||
grid-template-areas: 'main main';
|
||||
|
||||
&:not(.thread-selected) {
|
||||
.ThreadList {
|
||||
@@ -111,7 +117,7 @@
|
||||
}
|
||||
|
||||
.Header {
|
||||
border-top: var(--border);
|
||||
border-top: var(--border-default);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -29,7 +29,6 @@ import LocalStorageStore from 'stores/local_storage_store';
|
||||
|
||||
import LoadingScreen from 'components/loading_screen';
|
||||
import NoResultsIndicator from 'components/no_results_indicator';
|
||||
import Header from 'components/widgets/header';
|
||||
|
||||
import {Constants, PreviousViewedTypes} from 'utils/constants';
|
||||
|
||||
@@ -153,19 +152,6 @@ const GlobalThreads = () => {
|
||||
id='app-content'
|
||||
className={classNames('GlobalThreads app__content', {'thread-selected': Boolean(selectedThread)})}
|
||||
>
|
||||
<Header
|
||||
level={2}
|
||||
className={'GlobalThreads___header'}
|
||||
heading={formatMessage({
|
||||
id: 'globalThreads.heading',
|
||||
defaultMessage: 'Followed threads',
|
||||
})}
|
||||
subtitle={formatMessage({
|
||||
id: 'globalThreads.subtitle',
|
||||
defaultMessage: 'Threads you’re participating in will automatically show here',
|
||||
})}
|
||||
/>
|
||||
|
||||
{isLoading || isEmptyList ? (
|
||||
<div className='no-results__holder'>
|
||||
{isLoading ? (
|
||||
|
||||
@@ -4,8 +4,6 @@
|
||||
@import "sass/utils/_mixins";
|
||||
|
||||
.ThreadItem {
|
||||
--border: 1px solid rgba(var(--center-channel-color-rgb), 0.08);
|
||||
|
||||
position: relative;
|
||||
padding: 18px 18px 18px 28px;
|
||||
cursor: pointer;
|
||||
|
||||
@@ -18,8 +18,8 @@ exports[`components/threading/global_threads/thread_list should match snapshot 1
|
||||
onClick={[Function]}
|
||||
>
|
||||
<Memo(MemoizedFormattedMessage)
|
||||
defaultMessage="All your threads"
|
||||
id="threading.filters.allThreads"
|
||||
defaultMessage="Followed threads"
|
||||
id="globalThreads.heading"
|
||||
/>
|
||||
</Memo(Button)>
|
||||
</div>
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
.Header {
|
||||
padding-right: 12px;
|
||||
padding-left: 12px;
|
||||
border-bottom: var(--border);
|
||||
border-bottom: var(--border-default);
|
||||
color: rgba(var(--center-channel-color-rgb), 0.75);
|
||||
grid-area: header;
|
||||
|
||||
@@ -69,7 +69,7 @@
|
||||
}
|
||||
|
||||
.ThreadItem {
|
||||
border-bottom: var(--border);
|
||||
border-bottom: var(--border-default);
|
||||
}
|
||||
|
||||
.virtualized-thread-list {
|
||||
|
||||
@@ -205,8 +205,8 @@ const ThreadList = ({
|
||||
onClick={handleRead}
|
||||
>
|
||||
<FormattedMessage
|
||||
id='threading.filters.allThreads'
|
||||
defaultMessage='All your threads'
|
||||
id='globalThreads.heading'
|
||||
defaultMessage='Followed threads'
|
||||
/>
|
||||
</Button>
|
||||
</div>
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
|
||||
.ThreadPane {
|
||||
display: grid;
|
||||
overflow: hidden;
|
||||
grid-template-areas:
|
||||
'header'
|
||||
'pane';
|
||||
@@ -13,7 +12,7 @@
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
padding: 12px 16px;
|
||||
border-bottom: var(--border);
|
||||
border-bottom: var(--border-default);
|
||||
grid-area: header;
|
||||
|
||||
--button-separator-height: 24px;
|
||||
|
||||
@@ -26,7 +26,7 @@
|
||||
line-height: 16px;
|
||||
}
|
||||
|
||||
.content-container {
|
||||
.main-wrapper {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
margin-right: 24px;
|
||||
|
||||
@@ -7,7 +7,10 @@
|
||||
max-width: 270px;
|
||||
max-height: 80vh;
|
||||
padding: 8px 0;
|
||||
border-radius: 4px;
|
||||
border: solid 1px rgba(var(--center-channel-color-rgb), 0.12);
|
||||
border-radius: var(--radius-s);
|
||||
background-color: var(--center-channel-bg);
|
||||
box-shadow: var(--elevation-4);
|
||||
|
||||
ul {
|
||||
padding: 8px 0;
|
||||
|
||||
@@ -95,7 +95,7 @@
|
||||
padding: 0 3px;
|
||||
margin-right: 4px;
|
||||
margin-bottom: 2px;
|
||||
color: rgba(var(--center-channel-color-rgb), 0.72);
|
||||
color: rgba(var(--center-channel-color-rgb), 0.64);
|
||||
vertical-align: middle;
|
||||
|
||||
&::before {
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
display: flex;
|
||||
align-items: center;
|
||||
padding: 20px 20px 20px 32px;
|
||||
border-bottom: 1px solid rgba(var(--center-channel-color-rgb), 0.08);
|
||||
border-bottom: var(--border-light);
|
||||
background: none;
|
||||
gap: 8px;
|
||||
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
align-items: center;
|
||||
padding: 8px 12px;
|
||||
border: none;
|
||||
border-radius: 4px;
|
||||
border-radius: var(--radius-s);
|
||||
background: none;
|
||||
color: rgba(var(--center-channel-color-rgb), 0.56);
|
||||
gap: 8px;
|
||||
|
||||
@@ -17,6 +17,8 @@
|
||||
}
|
||||
|
||||
.TeamIcon__initials {
|
||||
font-family: Metropolis, sans-serif;
|
||||
letter-spacing: 0.02em;
|
||||
user-select: none;
|
||||
|
||||
&.TeamIcon__initials__lg {
|
||||
|
||||
@@ -3757,7 +3757,6 @@
|
||||
"globalThreads.searchGuidance.subtitle": "If you’re looking for older conversations, try searching with {searchShortcut}",
|
||||
"globalThreads.searchGuidance.title": "That’s the end of the list",
|
||||
"globalThreads.sidebarLink": "Threads",
|
||||
"globalThreads.subtitle": "Threads you’re participating in will automatically show here",
|
||||
"globalThreads.threadList.noUnreadThreads": "No unread threads",
|
||||
"globalThreads.threadPane.unreadMessageLink": "You have {numUnread, plural, =0 {no unread threads} =1 {<link>{numUnread} thread</link>} other {<link>{numUnread} threads</link>}} {numUnread, plural, =0 {} other {with unread messages}}",
|
||||
"globalThreads.threadPane.unselectedTitle": "{numUnread, plural, =0 {Looks like you’re all caught up} other {Catch up on your threads}}",
|
||||
@@ -5117,7 +5116,6 @@
|
||||
"textbox.quote": ">quote",
|
||||
"textbox.strike": "strike",
|
||||
"threadFromArchivedChannelMessage": "You are viewing a thread from an **archived channel**. New messages cannot be posted.",
|
||||
"threading.filters.allThreads": "All your threads",
|
||||
"threading.filters.unreads": "Unreads",
|
||||
"threading.following": "Following",
|
||||
"threading.footer.lastReplyAt": "Last reply {formatted}",
|
||||
|
||||
@@ -78,7 +78,7 @@
|
||||
--elevation-5: 0 12px 32px 0 rgba(0, 0, 0, 0.12);
|
||||
--elevation-6: 0 20px 32px 0 rgba(0, 0, 0, 0.12);
|
||||
|
||||
//Corner Radius variables
|
||||
// Corner Radius variables
|
||||
--radius-xs: 2px;
|
||||
--radius-s: 4px;
|
||||
--radius-m: 8px;
|
||||
@@ -86,6 +86,11 @@
|
||||
--radius-xl: 16px;
|
||||
--radius-full: 50%;
|
||||
|
||||
// Border variables
|
||||
--border-default: solid 1px rgba(var(--center-channel-color-rgb), 0.12);
|
||||
--border-light: solid 1px rgba(var(--center-channel-color-rgb), 0.08);
|
||||
--border-dark: solid 1px rgba(var(--center-channel-color-rgb), 0.16);
|
||||
|
||||
// Global Header variables
|
||||
--global-header-background: var(--sidebar-teambar-bg);
|
||||
--global-header-text: var(--sidebar-header-text-color);
|
||||
|
||||
@@ -92,17 +92,46 @@ body.app__body #root {
|
||||
display: grid;
|
||||
overflow: hidden;
|
||||
|
||||
--columns: min-content min-content minmax(385px, 1fr) minmax(0, auto) min-content;
|
||||
grid-template:
|
||||
'announcement announcement announcement announcement announcement' min-content
|
||||
'header header header header header' min-content
|
||||
'team-sidebar lhs center rhs app-sidebar'
|
||||
'footer footer footer footer footer' min-content
|
||||
/ var(--columns);
|
||||
'header' min-content
|
||||
'main'
|
||||
'footer' min-content
|
||||
;
|
||||
|
||||
&.channel-view {
|
||||
background-color: var(--sidebar-header-bg);
|
||||
--columns: min-content minmax(385px, 1fr) min-content;
|
||||
grid-template:
|
||||
'announcement announcement announcement' min-content
|
||||
'header header header' min-content
|
||||
'team-sidebar main app-sidebar'
|
||||
'footer footer footer' min-content
|
||||
/ var(--columns);
|
||||
;
|
||||
&:has(.backstage-body){
|
||||
background-color: $bg--gray;
|
||||
}
|
||||
}
|
||||
|
||||
&.console__root {
|
||||
background-color: inherit;
|
||||
padding-bottom: 0;
|
||||
padding-right: 0;
|
||||
grid-template:
|
||||
'announcement announcement' min-content
|
||||
'header header' min-content
|
||||
'lhs center'
|
||||
'footer footer' min-content
|
||||
;
|
||||
grid-template-columns: min-content auto;
|
||||
}
|
||||
|
||||
&.container-fluid {
|
||||
background: none;
|
||||
display: block;
|
||||
}
|
||||
|
||||
> :only-child {
|
||||
grid-area: center;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
@@ -114,52 +143,123 @@ body.app__body #root {
|
||||
#global-header {
|
||||
grid-area: header;
|
||||
}
|
||||
|
||||
.team-sidebar {
|
||||
grid-area: team-sidebar;
|
||||
}
|
||||
|
||||
.main-wrapper {
|
||||
position: relative;
|
||||
display: grid;
|
||||
overflow:hidden;
|
||||
background-color: var(--sidebar-bg);
|
||||
border: var(--border-light);
|
||||
margin: 0 4px 4px 4px;
|
||||
border-radius: var(--radius-l);
|
||||
grid-area: main;
|
||||
grid-template:
|
||||
'lhs center rhs'
|
||||
;
|
||||
grid-template-columns: min-content minmax(385px, 1fr) min-content;
|
||||
|
||||
&:has(.backstage-body){
|
||||
background: inherit;
|
||||
padding: 0;
|
||||
margin:0;
|
||||
border-radius: 0;
|
||||
grid-template:
|
||||
'header' min-content
|
||||
'main'
|
||||
;
|
||||
}
|
||||
|
||||
&:has(#playbooks-backstageRoot){
|
||||
margin:0;
|
||||
border-radius: 0;
|
||||
}
|
||||
}
|
||||
|
||||
&:has(.app-bar){
|
||||
.main-wrapper {
|
||||
margin-right:0;
|
||||
}
|
||||
}
|
||||
|
||||
&:has(.team-sidebar){
|
||||
.main-wrapper {
|
||||
margin-left: 0;
|
||||
}
|
||||
}
|
||||
|
||||
#SidebarContainer {
|
||||
grid-area: lhs;
|
||||
}
|
||||
|
||||
#channel_view,
|
||||
.product-wrapper {
|
||||
grid-area: center;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.sidebar--right--width-holder {
|
||||
grid-area: rhs;
|
||||
}
|
||||
|
||||
#sidebar-right {
|
||||
grid-area: rhs;
|
||||
top: 0;
|
||||
right: 0;
|
||||
|
||||
@media screen and (min-width: 768px) {
|
||||
position: absolute;
|
||||
right: 0;
|
||||
}
|
||||
}
|
||||
|
||||
.app-bar {
|
||||
grid-area: app-sidebar;
|
||||
}
|
||||
|
||||
&:not(.console__root) {
|
||||
@media screen and (max-width: 768px) {
|
||||
padding-bottom: 0;
|
||||
padding-right: 0;
|
||||
z-index: 17;
|
||||
grid-template:
|
||||
'announcement' min-content
|
||||
'header' min-content
|
||||
'center'
|
||||
'main' auto
|
||||
'footer' min-content
|
||||
/ auto
|
||||
;
|
||||
.team-sidebar,
|
||||
#SidebarContainer,
|
||||
#channel_view,
|
||||
.product-wrapper,
|
||||
#sidebar-right,
|
||||
.app-bar {
|
||||
grid-area: center;
|
||||
grid-area: main;
|
||||
}
|
||||
#SidebarContainer.move--right {
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.main-wrapper {
|
||||
margin: 0;
|
||||
grid-template:
|
||||
'main'
|
||||
;
|
||||
padding:0;
|
||||
border-radius: 0;
|
||||
|
||||
#channel_view,
|
||||
#SidebarContainer,
|
||||
.product-wrapper,
|
||||
#sidebar-right {
|
||||
grid-area: main;
|
||||
border-radius: 0;
|
||||
}
|
||||
|
||||
.channel-view {
|
||||
border-radius: 0;
|
||||
border: none;
|
||||
box-shadow: none;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -169,10 +269,12 @@ body.app__body #root {
|
||||
display: none;
|
||||
}
|
||||
#sidebar-right {
|
||||
position: relative;
|
||||
position: absolute;
|
||||
width: 100%;
|
||||
grid-area: center;
|
||||
transition: width .25s ease-in-out;
|
||||
}
|
||||
--columns: min-content min-content 0 1fr min-content;
|
||||
--columns: min-content auto min-content;
|
||||
}
|
||||
#sidebar-right {
|
||||
transition: none;
|
||||
@@ -183,7 +285,19 @@ body.app__body #root {
|
||||
/* stylelint-enable -- grid-template indentation */
|
||||
|
||||
#channel_view.channel-view {
|
||||
overflow: hidden;
|
||||
border-radius: var(--radius-l);
|
||||
border-left: var(--border-light);
|
||||
background: var(--center-channel-bg);
|
||||
box-shadow: var(--elevation-1);
|
||||
}
|
||||
|
||||
.rhs-open #channel_view.channel-view,
|
||||
.rhs-open-expanded #channel_view.channel.view {
|
||||
@media screen and (min-width: 1200px) {
|
||||
padding-right: 20px;
|
||||
margin-right: -20px;
|
||||
}
|
||||
}
|
||||
|
||||
img {
|
||||
|
||||
@@ -46,8 +46,8 @@
|
||||
color: rgb(var(--center-channel-color-rgb));
|
||||
|
||||
.modal-content {
|
||||
border: 1px solid rgba(var(--center-channel-color-rgb), 0.16);
|
||||
border-radius: 12px;
|
||||
border: var(--border-default);
|
||||
border-radius: var(--radius-l);
|
||||
background: var(--center-channel-bg);
|
||||
}
|
||||
}
|
||||
@@ -150,7 +150,7 @@
|
||||
grid-row-gap: 8px;
|
||||
|
||||
&.divider {
|
||||
border-top: 1px solid rgba(var(--center-channel-color-rgb), 0.08);
|
||||
border-top: var(--border-light);
|
||||
}
|
||||
|
||||
&.modal-footer--invisible {
|
||||
@@ -260,7 +260,7 @@
|
||||
background: transparent;
|
||||
|
||||
&.divider {
|
||||
border-bottom: 1px solid rgba(var(--center-channel-color-rgb), 0.12);
|
||||
border-bottom: var(--border-light);
|
||||
}
|
||||
|
||||
&::before,
|
||||
@@ -283,7 +283,7 @@
|
||||
right: 18px;
|
||||
width: 40px;
|
||||
height: 40px;
|
||||
border-radius: 4px;
|
||||
border-radius: var(--radius-s);
|
||||
color: rgba(var(--center-channel-color-rgb), 0.64);
|
||||
font-size: 30px;
|
||||
font-weight: 400;
|
||||
@@ -332,8 +332,8 @@
|
||||
}
|
||||
|
||||
.modal-content {
|
||||
border: 1px solid rgba(var(--sys-center-channel-color-rgb), 0.16);
|
||||
border-radius: 12px;
|
||||
border: var(--border-default);
|
||||
border-radius: var(--radius-l);
|
||||
background: var(--sys-center-channel-bg);
|
||||
}
|
||||
|
||||
@@ -996,7 +996,7 @@
|
||||
|
||||
.filter-controls {
|
||||
padding: 24px 32px;
|
||||
border-top: 1px solid rgba(var(--center-channel-color-rgb), 0.16);
|
||||
border-top: var(--border-default);
|
||||
|
||||
.filter-control__next {
|
||||
float: right;
|
||||
|
||||
@@ -111,7 +111,7 @@
|
||||
}
|
||||
|
||||
&.bottom {
|
||||
margin-top: -30px;
|
||||
margin-top: -25px;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -11,7 +11,6 @@
|
||||
|
||||
.post-right-comments-container {
|
||||
position: relative;
|
||||
margin-right: 5px;
|
||||
|
||||
.post {
|
||||
&:hover {
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
width: 100%;
|
||||
max-height: 56px;
|
||||
padding: 12px;
|
||||
border-bottom: 1px solid rgba(var(--center-channel-color-rgb), 0.12);
|
||||
border-bottom: var(--border-default);
|
||||
background: v(center-channel-bg);
|
||||
font-size: 14px;
|
||||
|
||||
|
||||
@@ -7,7 +7,7 @@ $sidebarOpacityAnimationDuration: 0.15s;
|
||||
#TeamSidebar {
|
||||
z-index: 13;
|
||||
display: flex;
|
||||
width: 65px;
|
||||
width: 64px;
|
||||
height: 100%;
|
||||
flex-direction: column;
|
||||
background-color: var(--sidebar-header-bg);
|
||||
@@ -28,17 +28,17 @@ $sidebarOpacityAnimationDuration: 0.15s;
|
||||
z-index: 16;
|
||||
left: 0;
|
||||
display: flex;
|
||||
width: var(--overrideLhsWidth, 240px);
|
||||
min-width: 240px;
|
||||
max-width: 240px;
|
||||
height: 100%;
|
||||
flex-direction: column;
|
||||
border-right: 1px solid rgba(var(--center-channel-color-rgb), 0.12);
|
||||
background-color: var(--sidebar-bg);
|
||||
|
||||
@media screen and (min-width: 769px) {
|
||||
width: var(--overrideLhsWidth, 264px);
|
||||
min-width: 200px;
|
||||
max-width: 264px;
|
||||
background: none;
|
||||
}
|
||||
|
||||
@media screen and (min-width: 1201px) {
|
||||
@@ -109,8 +109,6 @@ $sidebarOpacityAnimationDuration: 0.15s;
|
||||
}
|
||||
|
||||
.SidebarHeader {
|
||||
background-color: var(--sidebar-header-bg);
|
||||
|
||||
.header__info {
|
||||
color: var(--sidebar-header-text-color);
|
||||
|
||||
@@ -832,6 +830,7 @@ $sidebarOpacityAnimationDuration: 0.15s;
|
||||
font-family: 'Open Sans', sans-serif;
|
||||
font-size: 12px;
|
||||
font-weight: 600;
|
||||
letter-spacing: 0.05em;
|
||||
text-align: left;
|
||||
text-transform: uppercase;
|
||||
transition: box-shadow 0.25s ease-in-out;
|
||||
|
||||
@@ -43,25 +43,6 @@
|
||||
padding: 0;
|
||||
transform: translateX(100%);
|
||||
|
||||
&.is-open {
|
||||
body:not(.layout-changing) & {
|
||||
transition: width 0.25s 0s ease-in, z-index 0.25s 0s step-end;
|
||||
}
|
||||
}
|
||||
|
||||
&.expanded {
|
||||
z-index: 13;
|
||||
box-shadow: 0 8px 24px alpha-color($black, 0.24);
|
||||
|
||||
.sidebar-right__body {
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
body:not(.layout-changing) & {
|
||||
transition: width 0.25s 0s ease-in, z-index 0.15s 0.1s step-start;
|
||||
}
|
||||
}
|
||||
|
||||
.sidebar-right__table {
|
||||
display: table;
|
||||
|
||||
@@ -92,8 +73,7 @@
|
||||
height: 100%;
|
||||
flex: 1 1 auto;
|
||||
flex-direction: column;
|
||||
border-left: 1px solid rgba(var(--center-channel-color-rgb), 0.12);
|
||||
background: v(center-channel-bg);
|
||||
background: var(--center-channel-bg);
|
||||
|
||||
.info-card {
|
||||
padding: 5px 15px 60px 15px;
|
||||
@@ -152,7 +132,7 @@
|
||||
overflow: hidden;
|
||||
height: 2.4rem;
|
||||
padding: 0 8px;
|
||||
border-left: 1px solid rgba(var(--center-channel-color-rgb), 0.16);
|
||||
border-left: var(--border-light);
|
||||
margin: 0 0 0 8px;
|
||||
color: rgba(var(--center-channel-color-rgb), 0.75);
|
||||
cursor: pointer;
|
||||
@@ -180,7 +160,7 @@
|
||||
overflow: hidden;
|
||||
height: 2.4rem;
|
||||
padding: 0 8px;
|
||||
border-left: 1px solid rgba(var(--center-channel-color-rgb), 0.16);
|
||||
border-left: var(--border-default);
|
||||
margin: 0 0 0 8px;
|
||||
color: rgba(var(--center-channel-color-rgb), 0.75);
|
||||
font-family: "Open Sans", sans-serif;
|
||||
@@ -205,8 +185,7 @@
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
padding: 0 16px 0 0;
|
||||
border-bottom: 1px solid rgba(var(--center-channel-color-rgb), 0.08);
|
||||
background: rgba(var(--center-channel-color-rgb), 0.04);
|
||||
border-bottom: var(--border-default);
|
||||
color: inherit;
|
||||
white-space: nowrap;
|
||||
|
||||
@@ -296,6 +275,29 @@
|
||||
}
|
||||
}
|
||||
|
||||
#sidebar-right {
|
||||
overflow: hidden;
|
||||
height: 100%;
|
||||
border-left: var(--border-default);
|
||||
box-shadow: var(--elevation-2);
|
||||
|
||||
&.expanded {
|
||||
position: absolute;
|
||||
z-index: 20;
|
||||
box-shadow: var(--elevation-4);
|
||||
|
||||
.sidebar-right__body {
|
||||
overflow: hidden;
|
||||
}
|
||||
}
|
||||
|
||||
body:not(.layout-changing) & {
|
||||
transition-duration: 250ms;
|
||||
transition-property: width, z-index, box-shadow;
|
||||
transition-timing-function: ease-in-out;
|
||||
}
|
||||
}
|
||||
|
||||
// global header style adjustments
|
||||
@media screen and (min-width: 769px) {
|
||||
// adjust RHS position and height
|
||||
@@ -303,7 +305,7 @@
|
||||
// If this is changed, the interaction with the App Bar icons must be tested
|
||||
//(see .app-bar__icon in components/app_bar/app_bar.scss)
|
||||
z-index: 20;
|
||||
top: 0;
|
||||
box-shadow: var(--elevation-2);
|
||||
|
||||
.sidebar-right-container {
|
||||
height: 100%;
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
width: 65px;
|
||||
height: 100%;
|
||||
flex-direction: column;
|
||||
background: var(--sidebar-teambar-bg);
|
||||
background-color: var(--sidebar-header-bg);
|
||||
text-align: center;
|
||||
|
||||
.fa {
|
||||
@@ -21,7 +21,6 @@
|
||||
width: 100%;
|
||||
flex: 0 0 auto;
|
||||
padding: 16px 0 6px;
|
||||
background-color: var(--sidebar-teambar-bg);
|
||||
}
|
||||
|
||||
.team-wrapper {
|
||||
@@ -29,7 +28,6 @@
|
||||
overflow: hidden;
|
||||
height: 100%;
|
||||
flex: 1 1 auto;
|
||||
background-color: var(--sidebar-teambar-bg);
|
||||
-webkit-overflow-scrolling: touch;
|
||||
|
||||
.draggable-team-container {
|
||||
@@ -127,7 +125,7 @@
|
||||
}
|
||||
|
||||
.scrollbar--view {
|
||||
padding-top: 15px;
|
||||
padding-top: 4px;
|
||||
}
|
||||
|
||||
.team-container a:hover {
|
||||
@@ -139,12 +137,11 @@
|
||||
@media screen and (min-width: 769px) {
|
||||
// global header style adjustments
|
||||
.team-sidebar {
|
||||
background: none;
|
||||
// use sidebar header variables for team sidebar
|
||||
--sidebar-teambar-bg: var(--sidebar-header-bg);
|
||||
--sidebar-header-text-color: var(--sidebar-text);
|
||||
--sidebar-teambar-bg-rgb: var(--sidebar-header-bg-rgb);
|
||||
--sidebar-header-text-color-rgb: var(--sidebar-text-rgb);
|
||||
|
||||
border-right: solid 1px rgba(var(--center-channel-color-rgb), 0.08);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1797,7 +1797,7 @@
|
||||
left: 0;
|
||||
|
||||
&.move--right {
|
||||
left: 65px;
|
||||
left: 64px;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -28,7 +28,7 @@
|
||||
overflow: auto;
|
||||
width: 100%;
|
||||
background-color: $bg--gray;
|
||||
grid-area: center;
|
||||
grid-area: main;
|
||||
}
|
||||
|
||||
.backstage-content {
|
||||
|
||||
@@ -23,13 +23,13 @@
|
||||
padding: 0;
|
||||
|
||||
&.divider {
|
||||
border-top: 1px solid rgba(var(--center-channel-color-rgb), 0.08);
|
||||
border-top: var(--border-light);
|
||||
}
|
||||
|
||||
.form-control {
|
||||
height: 40px;
|
||||
box-sizing: border-box;
|
||||
border: 1px solid rgba(var(--center-channel-color-rgb), 0.16);
|
||||
border: var(--border-default);
|
||||
border-radius: 4px;
|
||||
|
||||
&:focus {
|
||||
@@ -96,7 +96,7 @@
|
||||
border: 1px solid rgba(var(--dnd-indicator-rgb), 0.16);
|
||||
margin-bottom: 24px;
|
||||
background: rgba(var(--dnd-indicator-rgb), 0.08);
|
||||
border-radius: 4px;
|
||||
border-radius: var(--radius-s);
|
||||
|
||||
span {
|
||||
color: var(--center-channel-color);
|
||||
|
||||
Ссылка в новой задаче
Block a user