Skip to content
This repository has been archived by the owner on Sep 11, 2024. It is now read-only.

Commit

Permalink
Add modal look to authentication flows
Browse files Browse the repository at this point in the history
This changes the auth screens to use the modal-like style of the redesign.

This does not attempt to style the actual body content of each screen.  Instead,
it covers the header area with logo, footer links, and overall modal container
only.
  • Loading branch information
jryans committed Jan 23, 2019
1 parent 9d2bfdc commit 575cd1e
Show file tree
Hide file tree
Showing 13 changed files with 113 additions and 42 deletions.
1 change: 1 addition & 0 deletions res/css/_components.scss
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@
@import "./structures/_UserSettings.scss";
@import "./structures/_ViewSource.scss";
@import "./structures/auth/_Login.scss";
@import "./views/auth/_AuthBody.scss";
@import "./views/auth/_AuthButtons.scss";
@import "./views/auth/_AuthFooter.scss";
@import "./views/auth/_AuthHeader.scss";
Expand Down
23 changes: 23 additions & 0 deletions res/css/views/auth/_AuthBody.scss
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
/*
Copyright 2019 New Vector Ltd
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_AuthBody {
width: 500px;
background-color: $authpage-body-bg-color;
border-radius: 0 4px 4px 0;
padding: 25px 60px;
box-sizing: border-box;
}
12 changes: 6 additions & 6 deletions res/css/views/auth/_AuthFooter.scss
Original file line number Diff line number Diff line change
Expand Up @@ -15,14 +15,14 @@ limitations under the License.
*/

.mx_AuthFooter {
display: block;
text-align: center;
margin-top: 15px;
width: 100%;
font-size: 13px;
opacity: 0.8;
font-size: 14px;
opacity: 0.72;
margin: 20px 0;
}

.mx_AuthFooter a:link {
color: $primary-fg-color;
.mx_AuthFooter a:link, a:hover, a:visited {
color: $accent-fg-color;
margin: 0 22px;
}
12 changes: 8 additions & 4 deletions res/css/views/auth/_AuthHeader.scss
Original file line number Diff line number Diff line change
Expand Up @@ -14,12 +14,16 @@ See the License for the specific language governing permissions and
limitations under the License.
*/

.mx_AuthHeader {
width: 206px;
padding: 25px 50px;
box-sizing: border-box;
}

.mx_AuthHeader_logo {
text-align: center;
height: 150px;
margin-bottom: 45px;
margin-top: 15px;
}

.mx_AuthHeader_logo img {
max-height: 100%
width: 100%;
}
18 changes: 9 additions & 9 deletions res/css/views/auth/_AuthPage.scss
Original file line number Diff line number Diff line change
Expand Up @@ -17,12 +17,10 @@ limitations under the License.
.mx_AuthPage {
width: 100%;
height: 100%;

display: flex;
align-items: center;
justify-content: center;

flex-direction: column;
overflow: auto;
background-color: $authpage-bg-color;
}

.mx_AuthPage h2 {
Expand All @@ -32,9 +30,11 @@ limitations under the License.
}

.mx_AuthPage_modal {
width: 300px;
min-height: 450px;
padding-top: 50px;
padding-bottom: 50px;
margin: auto;
display: flex;
margin: 100px auto auto;
border-radius: 4px;
// Not currently supported in Firefox: https://bugzilla.mozilla.org/show_bug.cgi?id=1178765
backdrop-filter: blur(10px);
box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.33);
background-color: $authpage-modal-bg-color;
}
4 changes: 4 additions & 0 deletions res/themes/dharma/css/_dharma.scss
Original file line number Diff line number Diff line change
Expand Up @@ -193,6 +193,10 @@ $room-warning-bg-color: #fff8e3;

$memberstatus-placeholder-color: $roomtile-name-color;

$authpage-bg-color: #2e3649;
$authpage-modal-bg-color: rgba(255, 255, 255, 0.59);
$authpage-body-bg-color: #ffffff;

/*** form elements ***/

// .mx_textinput is a container for a text input
Expand Down
4 changes: 4 additions & 0 deletions res/themes/light/css/_base.scss
Original file line number Diff line number Diff line change
Expand Up @@ -188,6 +188,10 @@ $room-warning-bg-color: #fff8e3;

$memberstatus-placeholder-color: $roomtile-name-color;

$authpage-bg-color: #2e3649;
$authpage-modal-bg-color: rgba(255, 255, 255, 0.59);
$authpage-body-bg-color: #ffffff;

// ***** Mixins! *****

@define-mixin mx_DialogButton {
Expand Down
7 changes: 4 additions & 3 deletions src/components/structures/auth/ForgotPassword.js
Original file line number Diff line number Diff line change
Expand Up @@ -185,7 +185,7 @@ module.exports = React.createClass({
render: function() {
const AuthPage = sdk.getComponent("auth.AuthPage");
const AuthHeader = sdk.getComponent("auth.AuthHeader");
const AuthFooter = sdk.getComponent("auth.AuthFooter");
const AuthBody = sdk.getComponent("auth.AuthBody");
const ServerConfig = sdk.getComponent("auth.ServerConfig");
const Spinner = sdk.getComponent("elements.Spinner");

Expand Down Expand Up @@ -272,7 +272,6 @@ module.exports = React.createClass({
{ _t('Create an account') }
</a>
<LanguageSelector />
<AuthFooter />
</div>
</div>
);
Expand All @@ -282,7 +281,9 @@ module.exports = React.createClass({
return (
<AuthPage>
<AuthHeader />
{ resetPasswordJsx }
<AuthBody>
{resetPasswordJsx}
</AuthBody>
</AuthPage>
);
},
Expand Down
7 changes: 3 additions & 4 deletions src/components/structures/auth/Login.js
Original file line number Diff line number Diff line change
Expand Up @@ -517,7 +517,7 @@ module.exports = React.createClass({
const Loader = sdk.getComponent("elements.Spinner");
const AuthPage = sdk.getComponent("auth.AuthPage");
const AuthHeader = sdk.getComponent("auth.AuthHeader");
const AuthFooter = sdk.getComponent("auth.AuthFooter");
const AuthBody = sdk.getComponent("auth.AuthBody");
const ServerConfig = sdk.getComponent("auth.ServerConfig");
const loader = this.state.busy ? <div className="mx_Login_loader"><Loader /></div> : null;

Expand Down Expand Up @@ -560,7 +560,7 @@ module.exports = React.createClass({
return (
<AuthPage>
<AuthHeader />
<div>
<AuthBody>
{ header }
{ errorTextSection }
{ this.componentForStep(this.state.currentFlow) }
Expand All @@ -570,8 +570,7 @@ module.exports = React.createClass({
</a>
{ loginAsGuestJsx }
<LanguageSelector />
<AuthFooter />
</div>
</AuthBody>
</AuthPage>
);
},
Expand Down
21 changes: 12 additions & 9 deletions src/components/structures/auth/PostRegistration.js
Original file line number Diff line number Diff line change
Expand Up @@ -62,18 +62,21 @@ module.exports = React.createClass({
const ChangeAvatar = sdk.getComponent('settings.ChangeAvatar');
const AuthPage = sdk.getComponent('auth.AuthPage');
const AuthHeader = sdk.getComponent('auth.AuthHeader');
const AuthBody = sdk.getComponent("auth.AuthBody");
return (
<AuthPage>
<AuthHeader />
<div className="mx_Login_profile">
{ _t('Set a display name:') }
<ChangeDisplayName />
{ _t('Upload an avatar:') }
<ChangeAvatar
initialAvatarUrl={this.state.avatarUrl} />
<button onClick={this.props.onComplete}>{ _t('Continue') }</button>
{ this.state.errorString }
</div>
<AuthBody>
<div className="mx_Login_profile">
{ _t('Set a display name:') }
<ChangeDisplayName />
{ _t('Upload an avatar:') }
<ChangeAvatar
initialAvatarUrl={this.state.avatarUrl} />
<button onClick={this.props.onComplete}>{ _t('Continue') }</button>
{ this.state.errorString }
</div>
</AuthBody>
</AuthPage>
);
},
Expand Down
15 changes: 8 additions & 7 deletions src/components/structures/auth/Registration.js
Original file line number Diff line number Diff line change
Expand Up @@ -397,7 +397,7 @@ module.exports = React.createClass({

render: function() {
const AuthHeader = sdk.getComponent('auth.AuthHeader');
const AuthFooter = sdk.getComponent('auth.AuthFooter');
const AuthBody = sdk.getComponent("auth.AuthBody");
const AuthPage = sdk.getComponent('auth.AuthPage');
const InteractiveAuth = sdk.getComponent('structures.InteractiveAuth');
const Spinner = sdk.getComponent("elements.Spinner");
Expand Down Expand Up @@ -481,12 +481,13 @@ module.exports = React.createClass({
this.state.teamSelected.domain + "/icon.png" :
null}
/>
{ header }
{ registerBody }
{ signIn }
{ errorText }
<LanguageSelector />
<AuthFooter />
<AuthBody>
{ header }
{ registerBody }
{ signIn }
{ errorText }
<LanguageSelector />
</AuthBody>
</AuthPage>
);
},
Expand Down
27 changes: 27 additions & 0 deletions src/components/views/auth/AuthBody.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
/*
Copyright 2019 New Vector Ltd
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.
*/

'use strict';

import React from 'react';

export default class AuthBody extends React.PureComponent {
render() {
return <div className="mx_AuthBody">
{ this.props.children }
</div>;
}
}
4 changes: 4 additions & 0 deletions src/components/views/auth/AuthPage.js
Original file line number Diff line number Diff line change
Expand Up @@ -18,16 +18,20 @@ limitations under the License.
'use strict';

const React = require('react');
import sdk from '../../../index';

module.exports = React.createClass({
displayName: 'AuthPage',

render: function() {
const AuthFooter = sdk.getComponent('auth.AuthFooter');

return (
<div className="mx_AuthPage">
<div className="mx_AuthPage_modal">
{ this.props.children }
</div>
<AuthFooter />
</div>
);
},
Expand Down

0 comments on commit 575cd1e

Please sign in to comment.