mirror of
https://github.com/vector-im/element-web.git
synced 2024-11-25 18:08:14 +08:00
cf8b87fd14
* Create new method for header button behaviour With the introduction of tabs, the behaviour of the header buttons is changed as follows: - Close any right panel if open - Open the correct right panel if no panel was open before The old method (and behaviour) is retained as showOrHidePhase. * Implement tabs in the right panel There are three tabs: Info, People and Threads * Remove unwanted code from RoomSummaryCard - Remove the menu item for opening the memberlist since that is now taken of by the tabs. - Remove the close button * Remove code for focusing close button from tac item See https://github.com/matrix-org/matrix-react-sdk/pull/12410 There's no longer a close button to focus so we instead focus the thread tab. This is done in RightPaneltabs.tsx so we just need to remove this code. * Introduce a room info icon to the header This was previously present in the legacy room header but not in the new header. * BaseCard changes - Adds id, ariaLabelledBy and role props to implement tab accessibility. - Adds hideHeaderButtons prop to hide header buttons (think back and close buttons). - Change confusing header rendering code: header is not rendered ONLY when no header is passed AND hideHeaderButtons is true. * Refactor repeated code into function Created a new function createSpaceScopeHeader which returns the component if the room is a space room. Previously this code was duplicated in every component that uses SpaceScopeHeader component. * Pass BaseCard attributes and use helper function Actually using the code from the last two commits * Add, update and remove tests/screenshots/snapshots * Fix distance between search bar and tabs * Update compound * Update screenshots/snapshots
253 lines
7.0 KiB
Plaintext
253 lines
7.0 KiB
Plaintext
/*
|
|
Copyright 2020 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.
|
|
*/
|
|
|
|
.mx_RoomSummaryCard {
|
|
.mx_RoomSummaryCard_container {
|
|
text-align: center;
|
|
margin: $spacing-20 var(--cpd-space-4x) 0;
|
|
}
|
|
|
|
.mx_RoomSummaryCard_roomName,
|
|
.mx_RoomSummaryCard_alias {
|
|
display: -webkit-box;
|
|
-webkit-line-clamp: 2;
|
|
-webkit-box-orient: vertical;
|
|
white-space: pre-wrap;
|
|
overflow: hidden;
|
|
}
|
|
|
|
.mx_RoomSummaryCard_alias {
|
|
text-overflow: ellipsis;
|
|
}
|
|
|
|
.mx_RoomSummaryCard_aboutGroup {
|
|
.mx_RoomSummaryCard_Button {
|
|
padding-left: 44px;
|
|
|
|
&::before {
|
|
content: "";
|
|
position: absolute;
|
|
top: 8px;
|
|
left: 10px;
|
|
height: 24px;
|
|
width: 24px;
|
|
mask-repeat: no-repeat;
|
|
mask-position: center;
|
|
background-color: $icon-button-color;
|
|
}
|
|
}
|
|
}
|
|
|
|
.mx_RoomSummaryCard_topic {
|
|
padding: 0 12px;
|
|
|
|
.mx_Box {
|
|
width: 100%;
|
|
}
|
|
|
|
.mx_RoomSummaryCard_topic_container {
|
|
display: flex;
|
|
}
|
|
|
|
.mx_RoomSummaryCard_topic_edit {
|
|
width: max-content;
|
|
}
|
|
|
|
p {
|
|
white-space: pre-wrap;
|
|
width: 100%;
|
|
min-width: 0;
|
|
margin: 0;
|
|
}
|
|
|
|
a {
|
|
cursor: pointer;
|
|
}
|
|
|
|
.mx_RoomSummaryCard_topic_chevron {
|
|
transition: transform 0.3s;
|
|
}
|
|
|
|
&.mx_RoomSummaryCard_topic_collapsed {
|
|
p {
|
|
overflow: hidden;
|
|
text-overflow: ellipsis;
|
|
white-space: normal;
|
|
display: -webkit-box;
|
|
-webkit-box-orient: vertical;
|
|
-webkit-line-clamp: 2;
|
|
}
|
|
|
|
.mx_RoomSummaryCard_topic_chevron {
|
|
transform: rotate(-90deg);
|
|
}
|
|
}
|
|
}
|
|
|
|
.mx_RoomSummaryCard_appsGroup {
|
|
.mx_RoomSummaryCard_Button {
|
|
/* this button is special so we have to override some of the original styling */
|
|
/* as we will be applying it in its children */
|
|
padding: 0;
|
|
height: auto;
|
|
color: $tertiary-content;
|
|
|
|
.mx_RoomSummaryCard_icon_app {
|
|
padding: 10px 48px 10px 12px; /* based on typical mx_RoomSummaryCard_Button padding */
|
|
text-overflow: ellipsis;
|
|
overflow: hidden;
|
|
display: flex;
|
|
justify-content: center;
|
|
span {
|
|
/* Center aligned and Spacing matched with the About section above the Widgets section */
|
|
margin-right: 10px;
|
|
display: flex;
|
|
justify-content: center;
|
|
align-items: center;
|
|
color: $primary-content;
|
|
}
|
|
}
|
|
|
|
.mx_RoomSummaryCard_app_pinToggle,
|
|
.mx_RoomSummaryCard_app_maximiseToggle,
|
|
.mx_RoomSummaryCard_app_options {
|
|
position: absolute;
|
|
top: 0;
|
|
height: 100%; /* to give bigger interactive zone */
|
|
width: 24px;
|
|
padding: 12px 4px;
|
|
box-sizing: border-box;
|
|
min-width: 24px; /* prevent flexbox crushing */
|
|
|
|
&:hover {
|
|
&::after {
|
|
content: "";
|
|
position: absolute;
|
|
height: 24px;
|
|
width: 24px;
|
|
top: 8px; /* equal to padding-top of parent */
|
|
left: 0;
|
|
border-radius: 12px;
|
|
background-color: rgba(141, 151, 165, 0.1);
|
|
}
|
|
}
|
|
|
|
&::before {
|
|
content: "";
|
|
position: absolute;
|
|
height: 16px;
|
|
width: 16px;
|
|
mask-repeat: no-repeat;
|
|
mask-position: center;
|
|
mask-size: 16px;
|
|
background-color: $icon-button-color;
|
|
}
|
|
}
|
|
|
|
.mx_RoomSummaryCard_app_pinToggle {
|
|
right: 8px;
|
|
|
|
&::before {
|
|
mask-image: url("$(res)/img/element-icons/room/pin-upright.svg");
|
|
}
|
|
}
|
|
.mx_RoomSummaryCard_app_maximiseToggle {
|
|
right: 32px; /* 24 + 8 */
|
|
|
|
&::before {
|
|
mask-size: 14px;
|
|
mask-image: url("$(res)/img/element-icons/maximise-expand.svg");
|
|
}
|
|
}
|
|
|
|
.mx_RoomSummaryCard_app_options {
|
|
right: 56px; /* 2*24 + 8 */
|
|
display: none;
|
|
&::before {
|
|
mask-image: url("$(res)/img/element-icons/room/ellipsis.svg");
|
|
}
|
|
}
|
|
|
|
&.mx_RoomSummaryCard_Button_pinned {
|
|
&::after {
|
|
opacity: 0.2;
|
|
}
|
|
|
|
.mx_RoomSummaryCard_app_pinToggle::before {
|
|
background-color: $accent;
|
|
}
|
|
}
|
|
|
|
&.mx_RoomSummaryCard_Button_maximised {
|
|
&::after {
|
|
opacity: 0.2;
|
|
}
|
|
|
|
.mx_RoomSummaryCard_app_maximiseToggle::before {
|
|
background-color: $accent;
|
|
}
|
|
}
|
|
|
|
&:hover {
|
|
.mx_RoomSummaryCard_icon_app {
|
|
padding-right: 72px;
|
|
}
|
|
|
|
.mx_RoomSummaryCard_app_options {
|
|
display: unset;
|
|
}
|
|
}
|
|
|
|
&::before {
|
|
content: unset;
|
|
}
|
|
|
|
&::after {
|
|
top: 8px; /* re-align based on the height change */
|
|
pointer-events: none; /* pass through to the real button */
|
|
}
|
|
}
|
|
}
|
|
|
|
.mx_AccessibleButton_kind_link {
|
|
margin-top: 12px;
|
|
margin-bottom: 12px;
|
|
font-size: $font-13px;
|
|
font-weight: var(--cpd-font-weight-semibold);
|
|
}
|
|
}
|
|
|
|
.mx_RoomSummaryCard_badges {
|
|
margin: var(--cpd-space-4x) 0;
|
|
}
|
|
|
|
.mx_RoomSummaryCard_header {
|
|
padding: 24px 12px 15px;
|
|
}
|
|
|
|
.mx_RoomSummaryCard_search {
|
|
flex-grow: 1;
|
|
min-width: 0;
|
|
|
|
input[type="search"]::-webkit-search-cancel-button {
|
|
display: unset; /* override _common.pcss which inhibits this */
|
|
}
|
|
}
|
|
|
|
.mx_RoomSummaryCard_roomName {
|
|
margin: $spacing-12 0 $spacing-4;
|
|
}
|