{t('create_a_new_project')}
+ + {showDropdown ? ( +{title}
+ + + ) +} diff --git a/services/web/frontend/js/features/project-list/components/welcome-message.tsx b/services/web/frontend/js/features/project-list/components/welcome-message.tsx index b59ceb782f..cea0d0bf49 100644 --- a/services/web/frontend/js/features/project-list/components/welcome-message.tsx +++ b/services/web/frontend/js/features/project-list/components/welcome-message.tsx @@ -9,13 +9,13 @@ export default function WelcomeMessage() { const handleTemplatesClick = useCallback(() => { sendMB('welcome-page-templates-click', { - 'project-dashboard-react': 'enabled', + 'welcome-page-redesign': 'default', }) }, []) const handleLatexHelpClick = useCallback(() => { sendMB('welcome-page-latex-help-click', { - 'project-dashboard-react': 'enabled', + 'welcome-page-redesign': 'default', }) }, []) diff --git a/services/web/frontend/stylesheets/app/project-list-react.less b/services/web/frontend/stylesheets/app/project-list-react.less index ac959bb56f..461490e61c 100644 --- a/services/web/frontend/stylesheets/app/project-list-react.less +++ b/services/web/frontend/stylesheets/app/project-list-react.less @@ -75,6 +75,110 @@ .project-list-welcome-wrapper { width: 100%; + + .welcome-new-wrapper { + max-width: 1080px; + + .welcome-title { + font-size: 32px; + } + + .welcome-message-cards-wrapper { + display: flex; + flex-direction: column; + justify-content: space-between; + align-items: center; + margin-top: 50px; + + @media (min-width: @screen-md-min) { + flex-direction: row; + justify-content: center; + } + } + + .welcome-message-card { + border: 1px solid @neutral-20; + border-radius: 16px; + display: flex; + flex-direction: column; + align-items: center; + justify-content: space-between; + padding: 24px 16px; + margin: @margin-sm 0; + width: 280px; + height: 200px; + position: relative; + cursor: pointer; + + @media (min-width: @screen-md-min) { + margin: 0 15px; + height: 240px; + } + + &:hover { + background-color: @ol-blue-gray-0; + } + + .welcome-message-card-img { + @media (min-width: @screen-md-min) { + margin-bottom: 20px; + } + } + + .create-new-project-dropdown { + border: 1px solid @neutral-20; + position: absolute; + top: 100%; + left: 0; + width: 100%; + padding: 0; + border-radius: 3px; + z-index: 1; + text-align: left; + + button, + a, + .dropdown-header { + padding: 5px 10px; + } + + > button { + background-color: white; + border: none; + box-shadow: none; + display: flex; + align-items: center; + width: 100%; + &:hover { + background-color: @ol-blue-gray-0; + } + } + + > a { + color: @ol-blue-gray-3; + display: block; + + &:hover { + text-decoration: none; + background-color: @ol-blue-gray-0; + } + } + + hr { + margin-top: 6px; + margin-bottom: 6px; + } + } + } + + .welcome-message-card-link { + &, + &:hover { + text-decoration: none; + color: @ol-blue-gray-3; + } + } + } } .project-list-main-react { diff --git a/services/web/locales/en.json b/services/web/locales/en.json index 53c008664b..136e3d739f 100644 --- a/services/web/locales/en.json +++ b/services/web/locales/en.json @@ -292,6 +292,7 @@ "coupons_not_included": "This does not include your current discounts, which will be applied automatically before your next payment", "create": "Create", "create_a_new_password_for_your_account": "Create a new password for your account", + "create_a_new_project": "Create a new project", "create_first_admin_account": "Create the first Admin account", "create_first_project": "Create First Project", "create_new_account": "Create new account", @@ -772,6 +773,7 @@ "institution_acct_successfully_linked_2": "Your <0>__appName__0> account was successfully linked to your <0>__institutionName__0> institutional account.", "institution_and_role": "Institution and role", "institution_email_new_to_app": "Your __institutionName__ email (__email__) is new to __appName__.", + "institution_templates": "Institution Templates", "institutional": "Institutional", "institutional_leavers_survey_notification": "Provide some quick feedback to receive a 25% discount on an annual subscription!", "institutional_login_not_supported": "Your institution doesn’t support institutional login yet, but you can still register with your institutional email.", diff --git a/services/web/public/img/welcome-page/browse-templates.svg b/services/web/public/img/welcome-page/browse-templates.svg new file mode 100644 index 0000000000..2da927f7ba --- /dev/null +++ b/services/web/public/img/welcome-page/browse-templates.svg @@ -0,0 +1,105 @@ + diff --git a/services/web/public/img/welcome-page/create-a-new-project.svg b/services/web/public/img/welcome-page/create-a-new-project.svg new file mode 100644 index 0000000000..2460c1fd54 --- /dev/null +++ b/services/web/public/img/welcome-page/create-a-new-project.svg @@ -0,0 +1,31 @@ + diff --git a/services/web/public/img/welcome-page/learn-latex.svg b/services/web/public/img/welcome-page/learn-latex.svg new file mode 100644 index 0000000000..5aec4b5975 --- /dev/null +++ b/services/web/public/img/welcome-page/learn-latex.svg @@ -0,0 +1,114 @@ + diff --git a/services/web/test/frontend/features/project-list/components/welcome-message-new.test.tsx b/services/web/test/frontend/features/project-list/components/welcome-message-new.test.tsx new file mode 100644 index 0000000000..d1e0a2ca2b --- /dev/null +++ b/services/web/test/frontend/features/project-list/components/welcome-message-new.test.tsx @@ -0,0 +1,104 @@ +import { fireEvent, render, screen } from '@testing-library/react' +import WelcomeMessageNew from '../../../../../frontend/js/features/project-list/components/welcome-message-new' +import { expect } from 'chai' + +describe('