Skip to content

Commit 53182ac

Browse files
Redesign Welcome UI (#6904)
* added flashy background image to signup * prevent wrong colors in dark mode * changelog * use more less variables * use smaller SVG file and revert change password view * welcome header restyling (WIP) * more styling changes * added custom icons to welcome screen * finalized icon styling for welcome screen * updated changelog * Update CHANGELOG.unreleased.md Co-authored-by: Philipp Otto <[email protected]> * fix formatting --------- Co-authored-by: Philipp Otto <[email protected]>
1 parent 78466ee commit 53182ac

File tree

8 files changed

+309
-86
lines changed

8 files changed

+309
-86
lines changed

CHANGELOG.unreleased.md

+1
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ For upgrade instructions, please check the [migration guide](MIGRATIONS.released
1616
### Changed
1717
- Upgraded antd UI library to v4.24.8 [#6865](https://github.com/scalableminds/webknossos/pull/6865)
1818
- The view mode dropdown was slimmed down by using icons to make the toolbar more space efficient. [#6900](https://github.com/scalableminds/webknossos/pull/6900)
19+
- Updated the styling of the "welcome" screen for new users to be in line with the new branding. [#6904](https://github.com/scalableminds/webknossos/pull/6904)
1920

2021
### Fixed
2122
- Fixed a bug where N5 datasets reading with end-chunks that have a chunk size differing from the metadata-supplied chunk size would fail for some areas. [#6890](https://github.com/scalableminds/webknossos/pull/6890)

frontend/javascripts/admin/welcome_ui.tsx

+39-56
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,4 @@
1-
import {
2-
CloseOutlined,
3-
CloudUploadOutlined,
4-
MailOutlined,
5-
PlayCircleOutlined,
6-
PlusCircleOutlined,
7-
RightOutlined,
8-
} from "@ant-design/icons";
1+
import { CloseOutlined } from "@ant-design/icons";
92
import { Button, Tooltip } from "antd";
103
import * as React from "react";
114
import { Link } from "react-router-dom";
@@ -31,7 +24,6 @@ const WhatsNextAction = ({ title, description, icon, onClick, href, to }: WhatsN
3124
<h2>{title}</h2>
3225
<p>{description}</p>
3326
</div>
34-
<RightOutlined className="chevron" />
3527
</React.Fragment>
3628
);
3729

@@ -81,58 +73,49 @@ export const WhatsNextHeader = ({ activeUser, onDismiss }: WhatsNextHeaderProps)
8173
</div>
8274
<div className="welcome-header-content">
8375
<div className="text-and-button-container">
84-
<h1>Welcome to WEBKNOSSOS!</h1>
85-
<div className="subtitle">
86-
<p
87-
style={{
88-
fontSize: 20,
89-
lineHeight: 1.5,
90-
marginTop: 0,
91-
marginBottom: 8,
92-
}}
93-
>
94-
Congratulations on your new WEBKNOSSOS account! To hit the ground running, we
95-
recommend the following steps to you:
96-
</p>
97-
<div className="whats-next-actions-grid">
76+
<h1>Welcome to WEBKNOSSOS</h1>
77+
<p className="subtitle">
78+
Congratulations on your new WEBKNOSSOS account! To hit the ground running, we recommend
79+
the following steps to you:
80+
</p>
81+
<div className="whats-next-actions-grid">
82+
<WhatsNextAction
83+
title="Open a Demo Dataset"
84+
description="Have a look at a public dataset to experience WEBKNOSSOS in action."
85+
href={getDemoDatasetUrl()}
86+
icon={<i className="icon-open-demo" />}
87+
/>
88+
89+
{isUserAdminOrDatasetManager(activeUser) ? (
9890
<WhatsNextAction
99-
title="Open a Demo Dataset"
100-
description="Have a look at a public dataset to experience WEBKNOSSOS in action."
101-
href={getDemoDatasetUrl()}
102-
icon={<PlayCircleOutlined className="action-icon" />}
91+
title="Import Your Own Data"
92+
description="Directly upload your data as a zip file."
93+
to="/datasets/upload"
94+
icon={<i className="icon-import-own-data" />}
10395
/>
96+
) : null}
10497

105-
{isUserAdminOrDatasetManager(activeUser) ? (
106-
<WhatsNextAction
107-
title="Import Your Own Data"
108-
description="Directly upload your data as a zip file."
109-
to="/datasets/upload"
110-
icon={<CloudUploadOutlined className="action-icon" />}
111-
/>
112-
) : null}
113-
98+
<WhatsNextAction
99+
title="Learn How To Create Annotations"
100+
description="Watch a short video to see how data can be annotated with WEBKNOSSOS."
101+
icon={<i className="icon-annotate" />}
102+
href="https://www.youtube.com/watch?v=jsz0tc3tuKI&t=30s"
103+
/>
104+
{isUserAdminOrTeamManager(activeUser) ? (
114105
<WhatsNextAction
115-
title="Learn How To Create Annotations"
116-
description="Watch a short video to see how data can be annotated with WEBKNOSSOS."
117-
icon={<PlusCircleOutlined className="action-icon" />}
118-
href="https://www.youtube.com/watch?v=jsz0tc3tuKI&t=30s"
106+
title="Invite Your Colleagues"
107+
description="Send email invites to your colleagues and ask them to join your organization."
108+
icon={<i className="icon-invite-colleagues" />}
109+
onClick={() => {
110+
renderIndependently((destroy) => (
111+
<InviteUsersModal
112+
organizationName={activeUser.organization}
113+
destroy={destroy}
114+
/>
115+
));
116+
}}
119117
/>
120-
{isUserAdminOrTeamManager(activeUser) ? (
121-
<WhatsNextAction
122-
title="Invite Your Colleagues"
123-
description="Send email invites to your colleagues and ask them to join your organization."
124-
icon={<MailOutlined className="action-icon" />}
125-
onClick={() => {
126-
renderIndependently((destroy) => (
127-
<InviteUsersModal
128-
organizationName={activeUser.organization}
129-
destroy={destroy}
130-
/>
131-
));
132-
}}
133-
/>
134-
) : null}
135-
</div>
118+
) : null}
136119
</div>
137120
</div>
138121
</div>

frontend/stylesheets/_dashboard.less

+47-26
Original file line numberDiff line numberDiff line change
@@ -28,41 +28,47 @@
2828
}
2929

3030
.welcome-header-wrapper {
31-
background-color: @component-background;
32-
background-image: linear-gradient(0deg, @body-background 0%, @blue-1 70%);
31+
background: @background-blue-neurons;
32+
33+
button {
34+
color: white
35+
}
3336
}
3437
.welcome-header-content {
35-
padding: 20px 0px 20px;
36-
38+
padding: 40px 0px 40px;
39+
3740
.text-and-button-container {
3841
max-width: 1000px;
3942
margin: auto;
4043

4144
h1 {
42-
color: @text-color;
43-
margin-left: 56px;
45+
color: white;
4446
font-weight: 200;
4547
font-size: 64px;
4648
line-height: 150%;
4749
margin-bottom: 0;
50+
text-align: center;
4851
}
49-
52+
5053
.subtitle {
51-
margin: 0 20px 0px 60px;
54+
color: white;
5255
font-weight: 300;
53-
font-size: 20px;
56+
font-size: 18px;
5457
line-height: 150%;
55-
color: @text-color-secondary;
58+
max-width: 70%;
59+
text-align: center;
60+
margin-left: auto;
61+
margin-right: auto;
5662
}
5763

5864
.whats-next-actions-grid {
5965
display: flex;
6066
flex-wrap: wrap;
61-
justify-content: left;
67+
justify-content: center;
6268
padding-inline-start: 0;
6369

6470
a {
65-
color: rgb(107, 114, 128);
71+
color: @black;
6672
flex: 0 1 400px; /* No stretching: */
6773
margin: 20px;
6874
margin-left: 0;
@@ -84,34 +90,27 @@
8490
h2 {
8591
font-size: 16px;
8692
line-height: 18px;
87-
color: @text-color;
88-
margin-bottom: 4px;
93+
color: @black;
94+
margin-bottom: 8px;
8995
}
9096

9197
p {
9298
font-size: 14px;
9399
line-height: 18px;
94-
color: @text-color-secondary;
100+
color: @black;
95101
margin: 0;
96102
}
97103

98-
.chevron,
99-
.action-icon {
100-
font-size: 32px;
101-
margin: 8px;
102-
}
103-
104-
background: @component-background;
105-
box-shadow: @box-shadow-base;
104+
background: white;
106105
border-radius: 3px;
106+
border: white 2px solid;
107107
}
108108

109109
a:hover {
110110
background: @primary-color;
111111

112-
.chevron,
113-
.action-icon {
114-
color: @text-color-dark;
112+
i {
113+
filter: brightness(100);
115114
}
116115

117116
h2 {
@@ -122,6 +121,28 @@
122121
color: @text-color-secondary-dark;
123122
}
124123
}
124+
125+
.icon-open-demo {
126+
background-image: url(/assets/images/icon-open-demo.svg);
127+
};
128+
.icon-import-own-data {
129+
background-image: url(/assets/images/icon-import-own-data.svg);
130+
background-size: 94px;
131+
};
132+
.icon-annotate {
133+
background-image: url(/assets/images/icon-annotate.svg);
134+
};
135+
.icon-invite-colleagues {
136+
background-image: url(/assets/images/icon-invite-colleagues.svg);
137+
};
138+
139+
i {
140+
background-repeat: no-repeat;
141+
background-size: 100px;
142+
background-position: center;
143+
height: 100%;
144+
width: 64px;
145+
}
125146
}
126147
}
127148
}

frontend/stylesheets/dark.less

-4
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,6 @@ body {
55
background-color: #000;
66
}
77

8-
.welcome-header-wrapper {
9-
background-image: linear-gradient(0deg, @body-background 0%, @blue-2 70%);
10-
}
11-
128
.info-tab-block .info-tab-icon {
139
filter: invert(1);
1410
svg {

public/images/icon-annotate.svg

+51
Loading

0 commit comments

Comments
 (0)