Skip to content

Commit

Permalink
Implement basic page layout for new landing page (#179327)
Browse files Browse the repository at this point in the history
Resolves #178943

## 📓 Summary

The observability onboarding page renders the new onboarding page:


![download](https://github.com/elastic/kibana/assets/190132/41f96946-8266-4ce9-9b38-6d2628a4fce0)

## ✔️ Acceptance criteria
- Basic layout is rendered (header, questions, footer)
- User can choose between "Collect and analyze my logs", "Monitor my
applications performance", "Monitor my infrastructure"
- On hover, additional description is shown.

---------

Co-authored-by: Kibana Machine <[email protected]>
  • Loading branch information
thomheymann and kibanamachine authored Mar 25, 2024
1 parent a3c9ed6 commit 3760983
Show file tree
Hide file tree
Showing 10 changed files with 4,052 additions and 10 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -181,10 +181,9 @@ export function ObservabilityOnboardingAppRoot({
<ObservabilityOnboardingHeaderActionMenu />
</HeaderMenuPortal>
)}
{experimentalOnboardingFlowEnabled && (
{experimentalOnboardingFlowEnabled ? (
<ExperimentalOnboardingFlow />
)}
{!experimentalOnboardingFlowEnabled && (
) : (
<ObservabilityOnboardingApp />
)}
</EuiErrorBoundary>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,17 +4,41 @@
* 2.0; you may not use this file except in compliance with the Elastic License
* 2.0.
*/
import { i18n } from '@kbn/i18n';

import React from 'react';
import { EuiPageTemplate, EuiSpacer } from '@elastic/eui';
import { css } from '@emotion/react';
import backgroundImageUrl from './header/background.svg';
import { Footer } from './footer/footer';
import { OnboardingFlowForm } from './onboarding_flow_form/onboarding_flow_form';
import { Header } from './header/header';

export function ExperimentalOnboardingFlow() {
return (
<div>
{i18n.translate(
'xpack.observability_onboarding.experimentalOnboardingFlow.experimentalOnboardingFlowLabel',
{ defaultMessage: 'Experimental onboarding flow' }
)}
</div>
<>
<EuiPageTemplate.Section
paddingSize="xl"
css={css`
& > div {
background-image: url(${backgroundImageUrl});
background-position: right center;
background-repeat: no-repeat;
}
`}
grow={false}
restrictWidth
>
<EuiSpacer size="xl" />
<Header />
</EuiPageTemplate.Section>
<EuiPageTemplate.Section paddingSize="xl" color="subdued" restrictWidth>
<OnboardingFlowForm />
<EuiSpacer size="xl" />
</EuiPageTemplate.Section>
<EuiPageTemplate.Section paddingSize="xl" grow={false} restrictWidth>
<Footer />
<EuiSpacer size="xl" />
</EuiPageTemplate.Section>
</>
);
}
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Original file line number Diff line number Diff line change
@@ -0,0 +1,101 @@
/*
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
* or more contributor license agreements. Licensed under the Elastic License
* 2.0; you may not use this file except in compliance with the Elastic License
* 2.0.
*/
import { i18n } from '@kbn/i18n';

import React from 'react';
import type { FunctionComponent } from 'react';
import {
EuiSpacer,
EuiFlexGroup,
EuiFlexItem,
EuiAvatar,
EuiText,
EuiLink,
} from '@elastic/eui';
import integrationsIconUrl from './integrations_icon.svg';
import demoIconUrl from './demo_icon.svg';
import docsIconUrl from './docs_icon.svg';
import forumIconUrl from './forum_icon.svg';

export const Footer: FunctionComponent = () => {
const sections = [
{
iconUrl: integrationsIconUrl,
title: i18n.translate(
'xpack.observability_onboarding.experimentalOnboardingFlow.dataSourcesFlexItemLabel',
{ defaultMessage: 'Data sources' }
),
description:
'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod',
},
{
iconUrl: demoIconUrl,
title: i18n.translate(
'xpack.observability_onboarding.experimentalOnboardingFlow.demoEnvironmentFlexItemLabel',
{ defaultMessage: 'Demo environment' }
),
description:
'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod',
},
{
iconUrl: docsIconUrl,
title: i18n.translate(
'xpack.observability_onboarding.experimentalOnboardingFlow.exploreForumFlexItemLabel',
{ defaultMessage: 'Explore forum' }
),
description:
'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod',
},
{
iconUrl: forumIconUrl,
title: i18n.translate(
'xpack.observability_onboarding.experimentalOnboardingFlow.browseDocumentationFlexItemLabel',
{ defaultMessage: 'Browse documentation' }
),
description:
'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod',
},
];

return (
<EuiFlexGroup>
{sections.map((section, index) => (
<EuiFlexItem key={index}>
<EuiAvatar
size="l"
name=""
imageUrl={section.iconUrl}
color="subdued"
/>
<EuiSpacer size="m" />
<EuiText size="s">
<strong>{section.title}</strong>
</EuiText>
<EuiSpacer size="s" />
<EuiText size="xs">
<p>{section.description}</p>
</EuiText>
<EuiSpacer size="s" />
<EuiText size="xs">
<p>
<EuiLink
data-test-subj="observabilityOnboardingFooterLearnMoreLink"
href="#/navigation/link"
external
>
{i18n.translate(
'xpack.observability_onboarding.footer.learnMoreLinkLabel',
{ defaultMessage: 'Learn more' }
)}
</EuiLink>
</p>
</EuiText>
</EuiFlexItem>
))}
</EuiFlexGroup>
);
};
Loading

0 comments on commit 3760983

Please sign in to comment.