Fix visual bugs on AccessSecretStorageDialog (#8160)
* Remove duplicate mx_Dialog_buttons Signed-off-by: Suguru Hirahara <luixxiul@users.noreply.github.com> * Group buttons on mx_Dialog with span - Cancel default styling for elements inside .mx_AccessSecretStorageDialog_primaryContainer Signed-off-by: Suguru Hirahara <luixxiul@users.noreply.github.com> * Move common rules of mx_Dialog_buttons_row to _common.scss - Set 16px gap between buttons per https://github.com/vector-im/element-web/issues/19426#issuecomment-949778515 Signed-off-by: Suguru Hirahara <luixxiul@users.noreply.github.com> * Spacing variables Signed-off-by: Suguru Hirahara <luixxiul@users.noreply.github.com> * Nesting - .mx_AccessSecretStorageDialog_reset - Fix the reset link color - Set $spacingStart variable Signed-off-by: Suguru Hirahara <luixxiul@users.noreply.github.com> * Remove unnecessary rule Signed-off-by: Suguru Hirahara <luixxiul@users.noreply.github.com>
This commit is contained in:
parent
e2a612b070
commit
464eb93a44
5 changed files with 255 additions and 179 deletions
|
@ -20,6 +20,7 @@ limitations under the License.
|
||||||
@import "./_font-sizes.scss";
|
@import "./_font-sizes.scss";
|
||||||
@import "./_font-weights.scss";
|
@import "./_font-weights.scss";
|
||||||
@import "./_animations.scss";
|
@import "./_animations.scss";
|
||||||
|
@import "./_spacing.scss";
|
||||||
@import url("maplibre-gl/dist/maplibre-gl.css");
|
@import url("maplibre-gl/dist/maplibre-gl.css");
|
||||||
|
|
||||||
$hover-transition: 0.08s cubic-bezier(.46, .03, .52, .96); // quadratic
|
$hover-transition: 0.08s cubic-bezier(.46, .03, .52, .96); // quadratic
|
||||||
|
@ -414,7 +415,8 @@ legend {
|
||||||
}
|
}
|
||||||
|
|
||||||
.mx_Dialog_buttons {
|
.mx_Dialog_buttons {
|
||||||
margin-top: 20px;
|
margin-top: $spacing-20;
|
||||||
|
margin-inline-start: auto;
|
||||||
text-align: right;
|
text-align: right;
|
||||||
|
|
||||||
.mx_Dialog_buttons_additive {
|
.mx_Dialog_buttons_additive {
|
||||||
|
@ -423,6 +425,22 @@ legend {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.mx_Dialog_buttons_row {
|
||||||
|
display: flex;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
justify-content: flex-end;
|
||||||
|
text-align: initial;
|
||||||
|
margin-inline-start: auto;
|
||||||
|
|
||||||
|
// default gap among elements
|
||||||
|
column-gap: $spacing-8; // See margin-right below inside the button style
|
||||||
|
row-gap: 5px; // See margin-bottom below inside the button style
|
||||||
|
|
||||||
|
button {
|
||||||
|
margin: 0 !important; // override the margin settings
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/* XXX: Our button style are a mess: buttons that happen to appear in dialogs get special styles applied
|
/* XXX: Our button style are a mess: buttons that happen to appear in dialogs get special styles applied
|
||||||
* to them that no button anywhere else in the app gets by default. In practice, buttons in other places
|
* to them that no button anywhere else in the app gets by default. In practice, buttons in other places
|
||||||
* in the app look the same by being AccessibleButtons, or possibly by having explict button classes.
|
* in the app look the same by being AccessibleButtons, or possibly by having explict button classes.
|
||||||
|
|
|
@ -14,38 +14,14 @@ See the License for the specific language governing permissions and
|
||||||
limitations under the License.
|
limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
.mx_AccessSecretStorageDialog_reset {
|
|
||||||
position: relative;
|
|
||||||
padding-left: 24px; // 16px icon + 8px padding
|
|
||||||
margin-top: 7px; // vertical alignment to buttons
|
|
||||||
margin-bottom: 7px; // space between the buttons and the text when float is activated
|
|
||||||
text-align: left;
|
|
||||||
|
|
||||||
&::before {
|
|
||||||
content: "";
|
|
||||||
display: inline-block;
|
|
||||||
position: absolute;
|
|
||||||
height: 16px;
|
|
||||||
width: 16px;
|
|
||||||
left: 0;
|
|
||||||
top: 2px; // alignment
|
|
||||||
background-image: url("$(res)/img/element-icons/warning-badge.svg");
|
|
||||||
background-size: contain;
|
|
||||||
}
|
|
||||||
|
|
||||||
.mx_AccessSecretStorageDialog_reset_link {
|
|
||||||
color: $alert;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.mx_AccessSecretStorageDialog_titleWithIcon::before {
|
.mx_AccessSecretStorageDialog_titleWithIcon::before {
|
||||||
content: '';
|
content: '';
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
width: 24px;
|
width: 24px;
|
||||||
height: 24px;
|
height: 24px;
|
||||||
margin-right: 8px;
|
margin-inline-end: $spacing-8;
|
||||||
position: relative;
|
position: relative;
|
||||||
top: 5px;
|
top: 5px; // TODO: spacing variable
|
||||||
background-color: $primary-content;
|
background-color: $primary-content;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -84,7 +60,7 @@ limitations under the License.
|
||||||
}
|
}
|
||||||
|
|
||||||
.mx_AccessSecretStorageDialog_recoveryKeyEntry_entryControlSeparatorText {
|
.mx_AccessSecretStorageDialog_recoveryKeyEntry_entryControlSeparatorText {
|
||||||
margin: 16px;
|
margin: $spacing-16;
|
||||||
}
|
}
|
||||||
|
|
||||||
.mx_AccessSecretStorageDialog_recoveryKeyFeedback {
|
.mx_AccessSecretStorageDialog_recoveryKeyFeedback {
|
||||||
|
@ -97,7 +73,7 @@ limitations under the License.
|
||||||
mask-repeat: no-repeat;
|
mask-repeat: no-repeat;
|
||||||
mask-position: center;
|
mask-position: center;
|
||||||
mask-size: 20px;
|
mask-size: 20px;
|
||||||
margin-right: 5px;
|
margin-inline-end: 5px; // TODO: spacing variable
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -120,3 +96,44 @@ limitations under the License.
|
||||||
.mx_AccessSecretStorageDialog_recoveryKeyEntry_fileInput {
|
.mx_AccessSecretStorageDialog_recoveryKeyEntry_fileInput {
|
||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.mx_AccessSecretStorageDialog_primaryContainer {
|
||||||
|
.mx_Dialog_buttons {
|
||||||
|
$spacingStart: $spacing-24; // 16px icon + 8px padding
|
||||||
|
|
||||||
|
text-align: initial;
|
||||||
|
display: flex;
|
||||||
|
flex-flow: column;
|
||||||
|
gap: 14px; // TODO: spacing variable
|
||||||
|
|
||||||
|
.mx_Dialog_buttons_additive {
|
||||||
|
float: none;
|
||||||
|
|
||||||
|
.mx_AccessSecretStorageDialog_reset {
|
||||||
|
position: relative;
|
||||||
|
padding-inline-start: $spacingStart;
|
||||||
|
|
||||||
|
&::before {
|
||||||
|
content: "";
|
||||||
|
display: inline-block;
|
||||||
|
position: absolute;
|
||||||
|
height: 16px;
|
||||||
|
width: 16px;
|
||||||
|
left: 0;
|
||||||
|
top: 2px; // alignment
|
||||||
|
background-image: url("$(res)/img/element-icons/warning-badge.svg");
|
||||||
|
background-size: contain;
|
||||||
|
}
|
||||||
|
|
||||||
|
.mx_AccessSecretStorageDialog_reset_link {
|
||||||
|
color: $alert;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.mx_Dialog_buttons_row {
|
||||||
|
gap: $spacing-16; // TODO: needs normalization
|
||||||
|
padding-inline-start: $spacingStart;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -455,13 +455,12 @@ export default class CreateKeyBackupDialog extends React.PureComponent<IProps, I
|
||||||
if (this.state.error) {
|
if (this.state.error) {
|
||||||
content = <div>
|
content = <div>
|
||||||
<p>{ _t("Unable to create key backup") }</p>
|
<p>{ _t("Unable to create key backup") }</p>
|
||||||
<div className="mx_Dialog_buttons">
|
<DialogButtons
|
||||||
<DialogButtons primaryButton={_t('Retry')}
|
primaryButton={_t('Retry')}
|
||||||
onPrimaryButtonClick={this.createBackup}
|
onPrimaryButtonClick={this.createBackup}
|
||||||
hasCancel={true}
|
hasCancel={true}
|
||||||
onCancel={this.onCancel}
|
onCancel={this.onCancel}
|
||||||
/>
|
/>
|
||||||
</div>
|
|
||||||
</div>;
|
</div>;
|
||||||
} else {
|
} else {
|
||||||
switch (this.state.phase) {
|
switch (this.state.phase) {
|
||||||
|
|
|
@ -100,6 +100,7 @@ export default class DialogButtons extends React.Component<IProps> {
|
||||||
return (
|
return (
|
||||||
<div className="mx_Dialog_buttons">
|
<div className="mx_Dialog_buttons">
|
||||||
{ additive }
|
{ additive }
|
||||||
|
<span className="mx_Dialog_buttons_row">
|
||||||
{ cancelButton }
|
{ cancelButton }
|
||||||
{ this.props.children }
|
{ this.props.children }
|
||||||
<button type={this.props.primaryIsSubmit ? 'submit' : 'button'}
|
<button type={this.props.primaryIsSubmit ? 'submit' : 'button'}
|
||||||
|
@ -111,6 +112,7 @@ export default class DialogButtons extends React.Component<IProps> {
|
||||||
>
|
>
|
||||||
{ this.props.primaryButton }
|
{ this.props.primaryButton }
|
||||||
</button>
|
</button>
|
||||||
|
</span>
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
|
@ -244,6 +244,9 @@ Array [
|
||||||
</div>
|
</div>
|
||||||
<div
|
<div
|
||||||
class="mx_Dialog_buttons"
|
class="mx_Dialog_buttons"
|
||||||
|
>
|
||||||
|
<span
|
||||||
|
class="mx_Dialog_buttons_row"
|
||||||
>
|
>
|
||||||
<button
|
<button
|
||||||
data-test-id="dialog-cancel-button"
|
data-test-id="dialog-cancel-button"
|
||||||
|
@ -258,6 +261,7 @@ Array [
|
||||||
>
|
>
|
||||||
Export
|
Export
|
||||||
</button>
|
</button>
|
||||||
|
</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
}
|
}
|
||||||
|
@ -465,6 +469,9 @@ Array [
|
||||||
</div>
|
</div>
|
||||||
<div
|
<div
|
||||||
class="mx_Dialog_buttons"
|
class="mx_Dialog_buttons"
|
||||||
|
>
|
||||||
|
<span
|
||||||
|
class="mx_Dialog_buttons_row"
|
||||||
>
|
>
|
||||||
<button
|
<button
|
||||||
data-test-id="dialog-cancel-button"
|
data-test-id="dialog-cancel-button"
|
||||||
|
@ -479,6 +486,7 @@ Array [
|
||||||
>
|
>
|
||||||
Export
|
Export
|
||||||
</button>
|
</button>
|
||||||
|
</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
}
|
}
|
||||||
|
@ -814,6 +822,9 @@ Array [
|
||||||
>
|
>
|
||||||
<div
|
<div
|
||||||
className="mx_Dialog_buttons"
|
className="mx_Dialog_buttons"
|
||||||
|
>
|
||||||
|
<span
|
||||||
|
className="mx_Dialog_buttons_row"
|
||||||
>
|
>
|
||||||
<button
|
<button
|
||||||
data-test-id="dialog-cancel-button"
|
data-test-id="dialog-cancel-button"
|
||||||
|
@ -831,6 +842,7 @@ Array [
|
||||||
>
|
>
|
||||||
Export
|
Export
|
||||||
</button>
|
</button>
|
||||||
|
</span>
|
||||||
</div>
|
</div>
|
||||||
</DialogButtons>
|
</DialogButtons>
|
||||||
</div>
|
</div>
|
||||||
|
@ -1085,6 +1097,9 @@ Array [
|
||||||
</div>
|
</div>
|
||||||
<div
|
<div
|
||||||
class="mx_Dialog_buttons"
|
class="mx_Dialog_buttons"
|
||||||
|
>
|
||||||
|
<span
|
||||||
|
class="mx_Dialog_buttons_row"
|
||||||
>
|
>
|
||||||
<button
|
<button
|
||||||
data-test-id="dialog-cancel-button"
|
data-test-id="dialog-cancel-button"
|
||||||
|
@ -1099,6 +1114,7 @@ Array [
|
||||||
>
|
>
|
||||||
Export
|
Export
|
||||||
</button>
|
</button>
|
||||||
|
</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
}
|
}
|
||||||
|
@ -1306,6 +1322,9 @@ Array [
|
||||||
</div>
|
</div>
|
||||||
<div
|
<div
|
||||||
class="mx_Dialog_buttons"
|
class="mx_Dialog_buttons"
|
||||||
|
>
|
||||||
|
<span
|
||||||
|
class="mx_Dialog_buttons_row"
|
||||||
>
|
>
|
||||||
<button
|
<button
|
||||||
data-test-id="dialog-cancel-button"
|
data-test-id="dialog-cancel-button"
|
||||||
|
@ -1320,6 +1339,7 @@ Array [
|
||||||
>
|
>
|
||||||
Export
|
Export
|
||||||
</button>
|
</button>
|
||||||
|
</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
}
|
}
|
||||||
|
@ -1655,6 +1675,9 @@ Array [
|
||||||
>
|
>
|
||||||
<div
|
<div
|
||||||
className="mx_Dialog_buttons"
|
className="mx_Dialog_buttons"
|
||||||
|
>
|
||||||
|
<span
|
||||||
|
className="mx_Dialog_buttons_row"
|
||||||
>
|
>
|
||||||
<button
|
<button
|
||||||
data-test-id="dialog-cancel-button"
|
data-test-id="dialog-cancel-button"
|
||||||
|
@ -1672,6 +1695,7 @@ Array [
|
||||||
>
|
>
|
||||||
Export
|
Export
|
||||||
</button>
|
</button>
|
||||||
|
</span>
|
||||||
</div>
|
</div>
|
||||||
</DialogButtons>
|
</DialogButtons>
|
||||||
</div>
|
</div>
|
||||||
|
@ -1913,6 +1937,9 @@ Array [
|
||||||
</div>
|
</div>
|
||||||
<div
|
<div
|
||||||
class="mx_Dialog_buttons"
|
class="mx_Dialog_buttons"
|
||||||
|
>
|
||||||
|
<span
|
||||||
|
class="mx_Dialog_buttons_row"
|
||||||
>
|
>
|
||||||
<button
|
<button
|
||||||
data-test-id="dialog-cancel-button"
|
data-test-id="dialog-cancel-button"
|
||||||
|
@ -1927,6 +1954,7 @@ Array [
|
||||||
>
|
>
|
||||||
Export
|
Export
|
||||||
</button>
|
</button>
|
||||||
|
</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
}
|
}
|
||||||
|
@ -2134,6 +2162,9 @@ Array [
|
||||||
</div>
|
</div>
|
||||||
<div
|
<div
|
||||||
class="mx_Dialog_buttons"
|
class="mx_Dialog_buttons"
|
||||||
|
>
|
||||||
|
<span
|
||||||
|
class="mx_Dialog_buttons_row"
|
||||||
>
|
>
|
||||||
<button
|
<button
|
||||||
data-test-id="dialog-cancel-button"
|
data-test-id="dialog-cancel-button"
|
||||||
|
@ -2148,6 +2179,7 @@ Array [
|
||||||
>
|
>
|
||||||
Export
|
Export
|
||||||
</button>
|
</button>
|
||||||
|
</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
}
|
}
|
||||||
|
@ -2483,6 +2515,9 @@ Array [
|
||||||
>
|
>
|
||||||
<div
|
<div
|
||||||
className="mx_Dialog_buttons"
|
className="mx_Dialog_buttons"
|
||||||
|
>
|
||||||
|
<span
|
||||||
|
className="mx_Dialog_buttons_row"
|
||||||
>
|
>
|
||||||
<button
|
<button
|
||||||
data-test-id="dialog-cancel-button"
|
data-test-id="dialog-cancel-button"
|
||||||
|
@ -2500,6 +2535,7 @@ Array [
|
||||||
>
|
>
|
||||||
Export
|
Export
|
||||||
</button>
|
</button>
|
||||||
|
</span>
|
||||||
</div>
|
</div>
|
||||||
</DialogButtons>
|
</DialogButtons>
|
||||||
</div>
|
</div>
|
||||||
|
@ -2832,6 +2868,9 @@ Array [
|
||||||
>
|
>
|
||||||
<div
|
<div
|
||||||
className="mx_Dialog_buttons"
|
className="mx_Dialog_buttons"
|
||||||
|
>
|
||||||
|
<span
|
||||||
|
className="mx_Dialog_buttons_row"
|
||||||
>
|
>
|
||||||
<button
|
<button
|
||||||
data-test-id="dialog-cancel-button"
|
data-test-id="dialog-cancel-button"
|
||||||
|
@ -2849,6 +2888,7 @@ Array [
|
||||||
>
|
>
|
||||||
Export
|
Export
|
||||||
</button>
|
</button>
|
||||||
|
</span>
|
||||||
</div>
|
</div>
|
||||||
</DialogButtons>
|
</DialogButtons>
|
||||||
</div>,
|
</div>,
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue