Files
element-web/res/css/structures/_LeftPanel.pcss
T

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

243 lines
7.3 KiB
Plaintext
Raw Normal View History

2020-06-04 16:34:04 -06:00
/*
2024-09-09 14:57:16 +01:00
Copyright 2024 New Vector Ltd.
2020-06-04 16:34:04 -06:00
Copyright 2020 The Matrix.org Foundation C.I.C.
SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
2024-09-09 14:57:16 +01:00
Please see LICENSE files in the repository root for full details.
2020-06-04 16:34:04 -06:00
*/
2023-07-20 09:13:22 +01:00
.mx_MatrixChat--with-avatar {
.mx_LeftPanel,
.mx_LeftPanel .mx_LeftPanel_roomListContainer {
background-color: transparent;
}
}
2022-03-17 09:25:57 +01:00
.mx_LeftPanel_outerWrapper {
2021-08-19 16:10:09 +02:00
display: flex;
2022-03-17 09:25:57 +01:00
flex-direction: column;
2021-08-19 16:10:09 +02:00
max-width: 50%;
2021-08-24 19:23:12 +02:00
position: relative;
/* Contain the amount of layers rendered by constraining what actually needs re-layering via css */
2021-08-19 19:00:31 +02:00
contain: layout paint;
2022-03-17 09:25:57 +01:00
}
.mx_LeftPanel_wrapper,
.mx_LeftPanel {
--collapsedWidth: 68px;
}
2022-03-17 09:25:57 +01:00
.mx_LeftPanel_wrapper {
display: flex;
flex-direction: row;
flex: 1;
height: 100%; /* ensure space panel is still scrollable with an outer wrapper */
2021-08-23 16:20:21 +02:00
.mx_LeftPanel_wrapper--user {
2021-08-23 19:26:57 +02:00
background-color: $roomlist-bg-color;
2021-08-23 16:20:21 +02:00
display: flex;
overflow: hidden;
position: relative;
2021-08-24 14:38:39 +02:00
&[data-collapsed] {
max-width: var(--collapsedWidth);
2021-08-24 14:38:39 +02:00
}
2021-08-23 16:20:21 +02:00
}
2021-08-19 16:10:09 +02:00
}
2020-07-17 15:22:18 -06:00
.mx_LeftPanel {
background-color: $roomlist-bg-color;
2020-06-04 16:34:04 -06:00
/* Create a row-based flexbox for the space panel and the room list */
2020-06-04 16:34:04 -06:00
display: flex;
contain: content;
position: relative;
2021-08-24 13:05:46 +02:00
flex-grow: 1;
2021-08-24 16:06:20 +02:00
overflow: hidden;
2020-06-04 16:34:04 -06:00
/* Note: The 'room list' in this context is actually everything that isn't the tag */
/* panel, such as the menu options, breadcrumbs, filtering, etc */
2020-07-17 15:22:18 -06:00
.mx_LeftPanel_roomListContainer {
background-color: $roomlist-bg-color;
2021-02-26 10:23:09 +00:00
flex: 1 0 0;
min-width: 0;
/* Create another flexbox (this time a column) for the room list components */
2020-06-04 16:34:04 -06:00
display: flex;
flex-direction: column;
2020-07-17 15:22:18 -06:00
.mx_LeftPanel_userHeader {
2020-07-10 02:54:11 +01:00
/* 12px top, 12px sides, 20px bottom (using 13px bottom to account
* for internal whitespace in the breadcrumbs)
*/
2020-07-10 19:06:48 +02:00
padding: 12px;
flex-shrink: 0; /* to convince safari's layout engine the flexbox is fine */
2020-06-04 16:34:04 -06:00
/* Create another flexbox column for the rows to stack within */
2020-06-04 16:34:04 -06:00
display: flex;
flex-direction: column;
2020-07-13 14:52:50 +02:00
}
2020-06-04 16:34:04 -06:00
2020-07-17 15:22:18 -06:00
.mx_LeftPanel_breadcrumbsContainer {
2020-07-13 14:52:50 +02:00
overflow-y: hidden;
overflow-x: scroll;
margin: 12px 12px 0 12px;
2020-07-13 14:52:50 +02:00
flex: 0 0 auto;
/* Create yet another flexbox, this time within the row, to ensure items stay */
/* aligned correctly. This is also a row-based flexbox. */
2020-07-13 14:52:50 +02:00
display: flex;
align-items: center;
contain: content;
2020-07-09 19:24:02 +01:00
2020-07-13 14:52:50 +02:00
&.mx_IndicatorScrollbar_leftOverflow {
mask-image: linear-gradient(90deg, transparent, black 5%);
2020-07-13 14:52:50 +02:00
}
2020-07-09 19:24:02 +01:00
2020-07-13 14:52:50 +02:00
&.mx_IndicatorScrollbar_rightOverflow {
mask-image: linear-gradient(90deg, black, black 95%, transparent);
2020-07-13 14:52:50 +02:00
}
2020-07-09 19:24:02 +01:00
2020-07-13 14:52:50 +02:00
&.mx_IndicatorScrollbar_rightOverflow.mx_IndicatorScrollbar_leftOverflow {
mask-image: linear-gradient(90deg, transparent, black 5%, black 95%, transparent);
2020-06-04 16:34:04 -06:00
}
}
2020-07-17 15:22:18 -06:00
.mx_LeftPanel_filterContainer {
margin: 0 12px;
padding: 12px 0 8px;
border-bottom: 1px solid $quinary-content;
flex-shrink: 0; /* to convince safari's layout engine the flexbox is fine */
2020-07-10 02:15:46 +01:00
/* Create a flexbox to organize the inputs */
display: flex;
align-items: center;
& + .mx_RoomListHeader {
margin-top: 12px;
}
.mx_LeftPanel_dialPadButton {
width: 32px;
height: 32px;
border-radius: 8px;
2021-11-29 13:52:09 +01:00
background-color: $panel-actions;
position: relative;
margin-left: 8px;
&::before {
content: "";
position: absolute;
top: 8px;
left: 8px;
width: 16px;
height: 16px;
mask-image: url("$(res)/img/element-icons/call/dialpad.svg");
mask-position: center;
mask-size: contain;
mask-repeat: no-repeat;
background-color: $secondary-content;
}
}
.mx_LeftPanel_exploreButton,
.mx_LeftPanel_recentsButton {
2020-08-14 18:53:56 +01:00
width: 32px;
height: 32px;
border-radius: 8px;
2021-11-29 13:52:09 +01:00
background-color: $panel-actions;
position: relative;
margin-left: 8px;
&::before {
content: "";
position: absolute;
2020-08-14 18:53:56 +01:00
top: 8px;
left: 8px;
width: 16px;
height: 16px;
mask-position: center;
mask-size: contain;
mask-repeat: no-repeat;
background-color: $secondary-content;
}
2021-03-24 19:43:33 +00:00
&:hover {
background-color: $tertiary-content;
&::before {
background-color: $background;
}
2021-03-24 19:43:33 +00:00
}
}
.mx_LeftPanel_exploreButton::before {
mask-image: url("$(res)/img/element-icons/roomlist/explore.svg");
}
.mx_LeftPanel_recentsButton::before {
mask-image: url("@vector-im/compound-design-tokens/icons/time.svg");
}
2020-06-04 16:34:04 -06:00
}
.mx_RoomListHeader:first-child {
margin-top: 12px;
}
2020-07-17 15:22:18 -06:00
.mx_LeftPanel_roomListWrapper {
/* Make the y-scrollbar more responsive */
2021-08-24 13:05:46 +02:00
padding-right: 2px;
overflow: hidden;
margin-top: 10px; /* so we're not up against the search/filter */
flex: 1 0 0; /* needed in Safari to properly set flex-basis */
2020-07-17 15:22:18 -06:00
&.mx_LeftPanel_roomListWrapper_stickyBottom {
2020-07-08 14:49:38 +02:00
padding-bottom: 32px;
}
2020-07-17 15:22:18 -06:00
&.mx_LeftPanel_roomListWrapper_stickyTop {
2020-07-08 14:49:38 +02:00
padding-top: 32px;
}
}
2020-07-17 15:22:18 -06:00
.mx_LeftPanel_actualRoomListContainer {
position: relative; /* for sticky headers */
height: 100%; /* ensure scrolling still works */
2020-06-04 16:34:04 -06:00
}
}
2020-06-11 14:39:28 -06:00
/* These styles override the defaults for the minimized (66px) layout */
2020-07-17 15:22:18 -06:00
&.mx_LeftPanel_minimized {
2021-08-24 13:05:46 +02:00
flex-grow: 0;
2020-06-11 14:39:28 -06:00
min-width: unset;
2021-02-26 10:23:09 +00:00
width: unset !important;
2020-06-11 14:39:28 -06:00
2020-07-17 15:22:18 -06:00
.mx_LeftPanel_roomListContainer {
width: var(--collapsedWidth);
2020-06-11 14:39:28 -06:00
2020-12-15 14:45:10 +01:00
.mx_LeftPanel_userHeader {
flex-direction: row;
justify-content: center;
}
2020-07-17 15:22:18 -06:00
.mx_LeftPanel_filterContainer {
/* Organize the flexbox into a centered column layout */
2020-06-11 14:39:28 -06:00
flex-direction: column;
justify-content: center;
.mx_LeftPanel_dialPadButton {
margin-left: 0;
margin-top: 8px;
background-color: transparent;
}
.mx_LeftPanel_exploreButton,
.mx_LeftPanel_recentsButton {
2020-06-11 14:39:28 -06:00
margin-left: 0;
margin-top: 8px;
}
}
}
}
2020-06-04 16:34:04 -06:00
}