Files
ThreadNet-Web/res/css/structures/_SpacePanel.pcss
T

440 lines
12 KiB
Plaintext
Raw Normal View History

2021-02-26 10:23:09 +00:00
/*
Copyright 2021 The Matrix.org Foundation C.I.C.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
$topLevelHeight: 32px;
$nestedHeight: 24px;
$gutterSize: 16px;
$activeBorderTransparentGap: 1px;
2021-03-01 17:02:02 +00:00
$activeBackgroundColor: $panel-actions;
$activeBorderColor: $primary-content;
2021-02-26 10:23:09 +00:00
.mx_SpacePanel {
background-color: $spacePanel-bg-color;
2021-02-26 10:23:09 +00:00
flex: 0 0 auto;
padding: 0;
margin: 0;
position: relative;
/* Fix for the blurred avatar-background */
2021-08-23 19:26:57 +02:00
z-index: 1;
2021-02-26 10:23:09 +00:00
/* Create another flexbox so the Panel fills the container */
2021-02-26 10:23:09 +00:00
display: flex;
flex-direction: column;
.mx_SpacePanel_toggleCollapse {
position: absolute;
width: 18px;
height: 18px;
border-radius: 50%;
background-color: $tertiary-content;
top: 19px; /* v-align with avatar */
right: -8px;
&::before {
content: "";
position: absolute;
width: inherit;
height: inherit;
mask-position: center;
mask-size: contain;
mask-repeat: no-repeat;
background-color: $background;
2021-12-07 09:32:00 +00:00
mask-image: url('$(res)/img/feather-customised/chevron-down.svg');
transform: rotate(270deg);
}
&:not(.expanded) {
opacity: 0;
&::before {
mask-position: center 1px;
2021-12-07 09:32:00 +00:00
}
}
2021-02-26 10:23:09 +00:00
&.expanded::before {
transform: rotate(90deg);
2021-02-26 10:23:09 +00:00
}
}
2021-12-07 09:32:00 +00:00
&:hover .mx_SpacePanel_toggleCollapse {
opacity: 1;
2021-12-07 09:32:00 +00:00
}
2021-02-26 10:23:09 +00:00
ul {
margin: 0;
list-style: none;
padding: 0;
> .mx_SpaceItem {
padding-left: 16px;
}
2021-02-26 10:23:09 +00:00
}
.mx_SpaceButton_toggleCollapse {
cursor: pointer;
}
.mx_SpaceItem_dragging {
.mx_SpaceButton_toggleCollapse {
visibility: hidden;
}
}
.mx_SpaceItem {
display: inline-flex;
flex-flow: wrap;
&.mx_SpaceItem_narrow {
align-self: baseline;
}
}
.mx_SpaceItem.collapsed {
2021-02-26 10:23:09 +00:00
& > .mx_SpaceButton > .mx_SpaceButton_toggleCollapse {
transform: rotate(-90deg);
}
& > .mx_SpaceTreeLevel {
display: none;
}
}
.mx_SpaceItem_new {
position: relative;
.mx_BetaDot {
position: absolute;
left: 33px;
top: -5px;
}
}
2021-02-26 10:23:09 +00:00
.mx_SpaceItem:not(.hasSubSpaces) > .mx_SpaceButton {
margin-left: $gutterSize;
min-width: 40px;
2021-02-26 10:23:09 +00:00
}
.mx_SpaceButton {
border-radius: 8px;
display: flex;
align-items: center;
padding: 4px 4px 4px 0;
width: 100%;
2021-09-09 11:40:43 +01:00
cursor: pointer;
2021-03-01 17:02:02 +00:00
&.mx_SpaceButton_active {
&:not(.mx_SpaceButton_narrow) .mx_SpaceButton_selectionWrapper {
background-color: $activeBackgroundColor;
}
&.mx_SpaceButton_narrow .mx_SpaceButton_selectionWrapper {
padding: $activeBorderTransparentGap;
border: 3px $activeBorderColor solid;
2021-03-01 17:02:02 +00:00
}
}
.mx_SpaceButton_selectionWrapper {
position: relative;
2021-03-01 17:02:02 +00:00
display: flex;
flex: 1;
align-items: center;
border-radius: 12px;
padding: 4px;
2021-11-09 10:25:57 +00:00
width: calc(100% - 32px);
min-width: 0;
2021-03-01 17:02:02 +00:00
}
2021-02-26 10:23:09 +00:00
.mx_SpaceButton_name {
flex: 1;
margin-left: 8px;
white-space: nowrap;
display: block;
text-overflow: ellipsis;
overflow: hidden;
font-size: $font-14px;
line-height: $font-18px;
}
.mx_SpaceButton_toggleCollapse {
width: $gutterSize;
2021-11-09 10:25:57 +00:00
min-width: $gutterSize;
2021-02-26 10:23:09 +00:00
height: 20px;
mask-position: center;
mask-size: 20px;
mask-repeat: no-repeat;
2021-10-16 18:31:18 +02:00
background-color: $tertiary-content;
2021-02-26 10:23:09 +00:00
mask-image: url('$(res)/img/feather-customised/chevron-down.svg');
}
2021-03-01 17:02:02 +00:00
.mx_SpaceButton_icon {
2021-02-26 10:23:09 +00:00
width: $topLevelHeight;
min-width: $topLevelHeight;
height: $topLevelHeight;
border-radius: 8px;
2021-03-01 17:02:02 +00:00
position: relative;
2021-02-26 10:23:09 +00:00
&::before {
position: absolute;
content: '';
width: $topLevelHeight;
height: $topLevelHeight;
top: 0;
left: 0;
mask-position: center;
mask-repeat: no-repeat;
mask-size: 18px;
}
}
2021-11-11 13:07:41 +00:00
&.mx_SpaceButton_home,
&.mx_SpaceButton_favourites,
&.mx_SpaceButton_people,
&.mx_SpaceButton_orphans {
.mx_SpaceButton_icon {
background-color: $panel-actions;
2021-02-26 10:23:09 +00:00
2021-11-11 13:07:41 +00:00
&::before {
background-color: $secondary-content;
2021-11-11 13:07:41 +00:00
}
2021-02-26 10:23:09 +00:00
}
}
2021-11-11 13:07:41 +00:00
&.mx_SpaceButton_home .mx_SpaceButton_icon::before {
mask-image: url('$(res)/img/element-icons/home.svg');
}
&.mx_SpaceButton_favourites .mx_SpaceButton_icon::before {
mask-image: url('$(res)/img/element-icons/roomlist/favorite.svg');
}
&.mx_SpaceButton_people .mx_SpaceButton_icon::before {
mask-image: url('$(res)/img/element-icons/room/members.svg');
}
&.mx_SpaceButton_orphans .mx_SpaceButton_icon::before {
mask-image: url('$(res)/img/element-icons/roomlist/hash-circle.svg');
}
&.mx_SpaceButton_new .mx_SpaceButton_icon {
&::before {
2021-09-08 15:30:19 +01:00
background-color: $primary-content;
mask-image: url('$(res)/img/element-icons/plus.svg');
transition: all .2s ease-in-out; /* TODO transition */
}
}
&.mx_SpaceButton_newCancel .mx_SpaceButton_icon::before {
transform: rotate(45deg);
}
2021-02-26 10:23:09 +00:00
.mx_BaseAvatar_image {
border-radius: 8px;
2021-02-26 10:23:09 +00:00
}
.mx_SpaceButton_menuButton {
width: 20px;
min-width: 20px; /* yay flex */
height: 20px;
margin-top: auto;
margin-bottom: auto;
2021-11-09 10:25:57 +00:00
display: none;
position: absolute;
right: 4px;
&::before {
top: 3px;
left: 2px;
content: '';
width: 16px;
height: 16px;
position: absolute;
mask-position: center;
mask-size: contain;
mask-repeat: no-repeat;
mask-image: url('$(res)/img/element-icons/context-menu.svg');
2021-08-12 11:27:12 +02:00
background: $primary-content;
}
}
2021-03-01 17:06:56 +00:00
}
2021-02-26 10:23:09 +00:00
.mx_SpaceTreeLevel {
display: flex;
flex-direction: column;
max-width: 250px;
min-width: 0;
flex-grow: 1;
.mx_BaseAvatar:not(.mx_UserMenu_userAvatar_BaseAvatar) .mx_BaseAvatar_initial {
color: $secondary-content;
border-radius: 8px;
background-color: $panel-actions;
font-size: $font-15px !important; /* override inline style */
font-weight: $font-semi-bold;
line-height: $font-18px;
& + .mx_BaseAvatar_image {
visibility: hidden;
}
}
}
.mx_SpaceButton_avatarWrapper {
position: relative;
}
2021-02-26 10:23:09 +00:00
.mx_SpacePanel_badgeContainer {
/* Create a flexbox to make aligning dot badges easier */
2021-02-26 10:23:09 +00:00
display: flex;
align-items: center;
position: absolute;
right: -3px;
top: -3px;
2021-02-26 10:23:09 +00:00
.mx_NotificationBadge {
margin: 0 2px; /* centering */
background-clip: padding-box;
2021-02-26 10:23:09 +00:00
}
.mx_NotificationBadge_dot {
/* make the smaller dot occupy the same width for centering */
margin: 0 -1px 0 0;
border: 3px solid $spacePanel-bg-color;
}
.mx_NotificationBadge_2char,
.mx_NotificationBadge_3char {
margin: -5px -5px 0 0;
border: 2px solid $spacePanel-bg-color;
2021-02-26 10:23:09 +00:00
}
}
.mx_SpaceButton:hover,
.mx_SpaceButton:focus-within,
.mx_SpaceButton_hasMenuOpen {
2021-11-09 10:25:57 +00:00
&:not(.mx_SpaceButton_narrow):not(.mx_SpaceButton_invite) .mx_SpaceButton_menuButton {
display: block;
2021-02-26 10:23:09 +00:00
}
}
.mx_SpaceItem:not(.mx_SpaceItem_new) {
.mx_SpaceButton:hover,
.mx_SpaceButton:focus-within,
.mx_SpaceButton_hasMenuOpen {
&:not(.mx_SpaceButton_narrow):not(.mx_SpaceButton_invite) .mx_SpaceButton_name {
max-width: calc(100% - 56px);
}
}
}
2021-02-26 10:23:09 +00:00
/* root space buttons are bigger and not indented */
& > .mx_AutoHideScrollbar {
flex: 1;
padding: 0 8px 16px 0;
2021-02-26 10:23:09 +00:00
& > .mx_SpaceButton {
height: $topLevelHeight;
&.mx_SpaceButton_active::before {
height: $topLevelHeight;
}
}
& > ul {
padding-left: 0;
}
&.mx_IndicatorScrollbar_topOverflow {
mask-image: linear-gradient(180deg, transparent, black 5%);
}
&.mx_IndicatorScrollbar_bottomOverflow {
mask-image: linear-gradient(180deg, black, black 95%, transparent);
}
&.mx_IndicatorScrollbar_topOverflow.mx_IndicatorScrollbar_bottomOverflow {
mask-image: linear-gradient(180deg, transparent, black 5%, black 95%, transparent);
}
2021-02-26 10:23:09 +00:00
}
.mx_UserMenu {
padding: 0 2px 8px;
border-bottom: 1px solid $quinary-content;
margin: 12px 14px 4px 18px;
}
2021-02-26 10:23:09 +00:00
}
.mx_SpacePanel_contextMenu {
.mx_SpacePanel_contextMenu_header {
margin: 12px 16px 12px;
font-weight: $font-semi-bold;
font-size: $font-15px;
line-height: $font-18px;
}
2022-01-18 15:29:01 +00:00
.mx_SpacePanel_iconHome::before {
mask-image: url('$(res)/img/element-icons/home.svg');
}
.mx_SpacePanel_iconInvite::before {
mask-image: url('$(res)/img/element-icons/room/invite.svg');
}
.mx_SpacePanel_iconSettings::before {
mask-image: url('$(res)/img/element-icons/settings.svg');
}
.mx_SpacePanel_iconLeave::before {
mask-image: url('$(res)/img/element-icons/leave.svg');
}
.mx_SpacePanel_iconMembers::before {
mask-image: url('$(res)/img/element-icons/room/members.svg');
}
.mx_SpacePanel_iconPlus::before {
mask-image: url('$(res)/img/element-icons/plus.svg');
}
.mx_SpacePanel_iconExplore::before {
2022-01-18 15:29:01 +00:00
mask-image: url('$(res)/img/element-icons/roomlist/hash-search.svg');
}
2021-07-28 19:33:07 +01:00
.mx_SpacePanel_iconPreferences::before {
mask-image: url('$(res)/img/element-icons/settings/preference.svg');
}
2021-07-28 19:33:07 +01:00
.mx_SpacePanel_noIcon {
display: none;
& + .mx_IconizedContextMenu_label {
padding-left: 5px !important; /* override default iconized label style to align with header */
2021-07-28 19:33:07 +01:00
}
}
.mx_SpacePanel_contextMenu_separatorLabel {
color: $tertiary-content;
font-size: $font-10px;
line-height: $font-12px;
font-weight: $font-semi-bold;
//margin-left: 8px;
}
}
.mx_SpacePanel_sharePublicSpace {
margin: 0;
}