mirror of
https://github.com/element-hq/element-web
synced 2024-11-26 19:26:04 +03:00
Responsive information bar on Space landing page (#8060)
This commit is contained in:
parent
86691550df
commit
3bb0dc08e8
2 changed files with 120 additions and 115 deletions
|
@ -154,7 +154,7 @@ $SpaceRoomViewInnerWidth: 428px;
|
||||||
}
|
}
|
||||||
|
|
||||||
// XXX remove this when spaces leaves Beta
|
// XXX remove this when spaces leaves Beta
|
||||||
.mx_SpaceRoomView_preview_spaceBetaPrompt {
|
&_spaceBetaPrompt {
|
||||||
font-weight: $font-semi-bold;
|
font-weight: $font-semi-bold;
|
||||||
font-size: $font-14px;
|
font-size: $font-14px;
|
||||||
line-height: $font-24px;
|
line-height: $font-24px;
|
||||||
|
@ -184,7 +184,7 @@ $SpaceRoomViewInnerWidth: 428px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.mx_SpaceRoomView_preview_inviter {
|
&_inviter {
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
margin-bottom: 20px;
|
margin-bottom: 20px;
|
||||||
|
@ -214,7 +214,7 @@ $SpaceRoomViewInnerWidth: 428px;
|
||||||
margin: 20px 0 !important; // override default margin from above
|
margin: 20px 0 !important; // override default margin from above
|
||||||
}
|
}
|
||||||
|
|
||||||
.mx_SpaceRoomView_preview_topic {
|
&_topic {
|
||||||
font-size: $font-14px;
|
font-size: $font-14px;
|
||||||
line-height: $font-22px;
|
line-height: $font-22px;
|
||||||
color: $secondary-content;
|
color: $secondary-content;
|
||||||
|
@ -223,7 +223,7 @@ $SpaceRoomViewInnerWidth: 428px;
|
||||||
overflow-y: auto;
|
overflow-y: auto;
|
||||||
}
|
}
|
||||||
|
|
||||||
.mx_SpaceRoomView_preview_joinButtons {
|
&_joinButtons {
|
||||||
margin-top: 20px;
|
margin-top: 20px;
|
||||||
|
|
||||||
.mx_AccessibleButton {
|
.mx_AccessibleButton {
|
||||||
|
@ -243,14 +243,14 @@ $SpaceRoomViewInnerWidth: 428px;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
min-width: 0;
|
min-width: 0;
|
||||||
|
|
||||||
.mx_SpaceRoomView_landing_header {
|
&_header {
|
||||||
display: flex;
|
display: flex;
|
||||||
justify-content: space-between;
|
justify-content: space-between;
|
||||||
|
|
||||||
.mx_BaseAvatar {
|
.mx_BaseAvatar {
|
||||||
width: 80px;
|
width: 80px;
|
||||||
|
|
||||||
.mx_BaseAvatar_image {
|
&_image {
|
||||||
border-radius: 12px;
|
border-radius: 12px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -266,19 +266,17 @@ $SpaceRoomViewInnerWidth: 428px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.mx_SpaceRoomView_landing_name {
|
&_name {
|
||||||
margin: 24px 0 16px;
|
margin: 24px 0 16px;
|
||||||
font-size: $font-15px;
|
font-size: $font-15px;
|
||||||
color: $secondary-content;
|
color: $secondary-content;
|
||||||
|
|
||||||
> span {
|
> span {
|
||||||
display: inline-block;
|
display: flex;
|
||||||
}
|
flex-flow: column;
|
||||||
|
gap: 12px 0;
|
||||||
|
|
||||||
.mx_SpaceRoomView_landing_nameRow {
|
h1 {
|
||||||
margin-top: 12px;
|
|
||||||
|
|
||||||
> h1 {
|
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -291,67 +289,122 @@ $SpaceRoomViewInnerWidth: 428px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.mx_SpaceRoomView_landing_info {
|
&_infoBar {
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
|
justify-content: space-between;
|
||||||
|
gap: 12px;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
line-height: $font-24px;
|
||||||
|
|
||||||
.mx_SpaceRoomView_info {
|
.mx_SpaceRoomView_info {
|
||||||
|
color: $secondary-content;
|
||||||
|
font-size: $font-15px;
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
margin: 0 auto 0 0;
|
|
||||||
|
&_public,
|
||||||
|
&_private {
|
||||||
|
padding-left: 20px;
|
||||||
|
position: relative;
|
||||||
|
|
||||||
|
&::before {
|
||||||
|
position: absolute;
|
||||||
|
content: "";
|
||||||
|
width: 20px;
|
||||||
|
height: 20px;
|
||||||
|
top: 0;
|
||||||
|
left: -2px;
|
||||||
|
mask-position: center;
|
||||||
|
mask-repeat: no-repeat;
|
||||||
|
background-color: $tertiary-content;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
&_public::before {
|
||||||
|
mask-size: 12px;
|
||||||
|
mask-image: url("$(res)/img/globe.svg");
|
||||||
|
}
|
||||||
|
|
||||||
|
&_private::before {
|
||||||
|
mask-size: 14px;
|
||||||
|
mask-image: url("$(res)/img/element-icons/lock.svg");
|
||||||
|
}
|
||||||
|
|
||||||
|
&_memberCount {
|
||||||
|
color: inherit;
|
||||||
|
position: relative;
|
||||||
|
padding: 0 0 0 16px;
|
||||||
|
font-size: $font-15px;
|
||||||
|
display: inline; // cancel inline-flex
|
||||||
|
|
||||||
|
&::before {
|
||||||
|
content: "·"; // visual separator
|
||||||
|
position: absolute;
|
||||||
|
left: 6px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.mx_SpaceRoomView_landing_infoBar_interactive {
|
||||||
|
display: flex;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
align-items: center;
|
||||||
|
gap: 12px 12px;
|
||||||
|
|
||||||
.mx_FacePile {
|
.mx_FacePile {
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
margin-right: 12px;
|
|
||||||
|
|
||||||
.mx_FacePile_faces {
|
.mx_FacePile_faces {
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.mx_SpaceRoomView_landing_inviteButton {
|
.mx_SpaceRoomView_landing {
|
||||||
|
&_inviteButton,
|
||||||
|
&_settingsButton {
|
||||||
position: relative;
|
position: relative;
|
||||||
padding: 4px 18px 4px 40px;
|
|
||||||
line-height: $font-24px;
|
|
||||||
height: min-content;
|
|
||||||
|
|
||||||
&::before {
|
&::before {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
content: "";
|
content: "";
|
||||||
|
mask-position: center;
|
||||||
|
mask-repeat: no-repeat;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
&_inviteButton {
|
||||||
|
padding: 4px 18px 4px 40px;
|
||||||
|
height: min-content;
|
||||||
|
|
||||||
|
&::before {
|
||||||
left: 8px;
|
left: 8px;
|
||||||
height: 16px;
|
height: 16px;
|
||||||
width: 16px;
|
width: 16px;
|
||||||
background: #ffffff; // white icon fill
|
background: #fff; // white icon fill
|
||||||
mask-position: center;
|
|
||||||
mask-size: 16px;
|
mask-size: 16px;
|
||||||
mask-repeat: no-repeat;
|
|
||||||
mask-image: url('$(res)/img/element-icons/room/invite.svg');
|
mask-image: url('$(res)/img/element-icons/room/invite.svg');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.mx_SpaceRoomView_landing_settingsButton {
|
&_settingsButton {
|
||||||
position: relative;
|
|
||||||
margin-left: 16px;
|
|
||||||
width: 24px;
|
width: 24px;
|
||||||
height: 24px;
|
height: 24px;
|
||||||
|
|
||||||
&::before {
|
&::before {
|
||||||
position: absolute;
|
|
||||||
content: "";
|
|
||||||
left: 0;
|
left: 0;
|
||||||
top: 0;
|
top: 0;
|
||||||
height: 24px;
|
height: 24px;
|
||||||
width: 24px;
|
width: 24px;
|
||||||
background: $tertiary-content;
|
background: $tertiary-content;
|
||||||
mask-position: center;
|
|
||||||
mask-size: contain;
|
mask-size: contain;
|
||||||
mask-repeat: no-repeat;
|
|
||||||
mask-image: url('$(res)/img/element-icons/settings.svg');
|
mask-image: url('$(res)/img/element-icons/settings.svg');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
.mx_SpaceRoomView_landing_topic {
|
&_topic {
|
||||||
font-size: $font-15px;
|
font-size: $font-15px;
|
||||||
margin-top: 12px;
|
margin-top: 12px;
|
||||||
margin-bottom: 16px;
|
margin-bottom: 16px;
|
||||||
|
@ -370,18 +423,18 @@ $SpaceRoomViewInnerWidth: 428px;
|
||||||
@mixin SpacePillButton;
|
@mixin SpacePillButton;
|
||||||
}
|
}
|
||||||
|
|
||||||
.mx_SpaceRoomView_privateScope_justMeButton::before {
|
&_justMeButton::before {
|
||||||
mask-image: url('$(res)/img/element-icons/room/members.svg');
|
mask-image: url('$(res)/img/element-icons/room/members.svg');
|
||||||
}
|
}
|
||||||
|
|
||||||
.mx_SpaceRoomView_privateScope_meAndMyTeammatesButton::before {
|
&_meAndMyTeammatesButton::before {
|
||||||
mask-image: url('$(res)/img/element-icons/community-members.svg');
|
mask-image: url('$(res)/img/element-icons/community-members.svg');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.mx_SpaceRoomView_inviteTeammates {
|
.mx_SpaceRoomView_inviteTeammates {
|
||||||
// XXX remove this when spaces leaves Beta
|
// XXX remove this when spaces leaves Beta
|
||||||
.mx_SpaceRoomView_inviteTeammates_betaDisclaimer {
|
&_betaDisclaimer {
|
||||||
padding: 16px;
|
padding: 16px;
|
||||||
position: relative;
|
position: relative;
|
||||||
border-radius: 8px;
|
border-radius: 8px;
|
||||||
|
@ -397,7 +450,7 @@ $SpaceRoomViewInnerWidth: 428px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.mx_SpaceRoomView_inviteTeammates_buttons {
|
&_buttons {
|
||||||
color: $secondary-content;
|
color: $secondary-content;
|
||||||
margin-top: 28px;
|
margin-top: 28px;
|
||||||
|
|
||||||
|
@ -436,51 +489,3 @@ $SpaceRoomViewInnerWidth: 428px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.mx_SpaceRoomView_info {
|
|
||||||
color: $secondary-content;
|
|
||||||
font-size: $font-15px;
|
|
||||||
line-height: $font-24px;
|
|
||||||
margin: 20px 0;
|
|
||||||
|
|
||||||
.mx_SpaceRoomView_info_public,
|
|
||||||
.mx_SpaceRoomView_info_private {
|
|
||||||
padding-left: 20px;
|
|
||||||
position: relative;
|
|
||||||
|
|
||||||
&::before {
|
|
||||||
position: absolute;
|
|
||||||
content: "";
|
|
||||||
width: 20px;
|
|
||||||
height: 20px;
|
|
||||||
top: 0;
|
|
||||||
left: -2px;
|
|
||||||
mask-position: center;
|
|
||||||
mask-repeat: no-repeat;
|
|
||||||
background-color: $tertiary-content;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.mx_SpaceRoomView_info_public::before {
|
|
||||||
mask-size: 12px;
|
|
||||||
mask-image: url("$(res)/img/globe.svg");
|
|
||||||
}
|
|
||||||
|
|
||||||
.mx_SpaceRoomView_info_private::before {
|
|
||||||
mask-size: 14px;
|
|
||||||
mask-image: url("$(res)/img/element-icons/lock.svg");
|
|
||||||
}
|
|
||||||
|
|
||||||
.mx_SpaceRoomView_info_memberCount {
|
|
||||||
color: inherit;
|
|
||||||
position: relative;
|
|
||||||
padding: 0 0 0 16px;
|
|
||||||
font-size: $font-15px;
|
|
||||||
|
|
||||||
&::before {
|
|
||||||
content: "·"; // visual separator
|
|
||||||
position: absolute;
|
|
||||||
left: 6px;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
|
@ -429,19 +429,19 @@ const SpaceLanding = ({ space }: { space: Room }) => {
|
||||||
<div className="mx_SpaceRoomView_landing_name">
|
<div className="mx_SpaceRoomView_landing_name">
|
||||||
<RoomName room={space}>
|
<RoomName room={space}>
|
||||||
{ (name) => {
|
{ (name) => {
|
||||||
const tags = { name: () => <div className="mx_SpaceRoomView_landing_nameRow">
|
const tags = { name: () => <h1>{ name }</h1> };
|
||||||
<h1>{ name }</h1>
|
|
||||||
</div> };
|
|
||||||
return _t("Welcome to <name/>", {}, tags) as JSX.Element;
|
return _t("Welcome to <name/>", {}, tags) as JSX.Element;
|
||||||
} }
|
} }
|
||||||
</RoomName>
|
</RoomName>
|
||||||
</div>
|
</div>
|
||||||
<div className="mx_SpaceRoomView_landing_info">
|
<div className="mx_SpaceRoomView_landing_infoBar">
|
||||||
<SpaceInfo space={space} />
|
<SpaceInfo space={space} />
|
||||||
|
<div className="mx_SpaceRoomView_landing_infoBar_interactive">
|
||||||
<RoomFacePile room={space} onlyKnownUsers={false} numShown={7} onClick={onMembersClick} />
|
<RoomFacePile room={space} onlyKnownUsers={false} numShown={7} onClick={onMembersClick} />
|
||||||
{ inviteButton }
|
{ inviteButton }
|
||||||
{ settingsButton }
|
{ settingsButton }
|
||||||
</div>
|
</div>
|
||||||
|
</div>
|
||||||
<RoomTopic room={space}>
|
<RoomTopic room={space}>
|
||||||
{ (topic, ref) => (
|
{ (topic, ref) => (
|
||||||
<div className="mx_SpaceRoomView_landing_topic" ref={ref}>
|
<div className="mx_SpaceRoomView_landing_topic" ref={ref}>
|
||||||
|
|
Loading…
Reference in a new issue