mirror of
https://github.com/coder/coder.git
synced 2025-07-09 11:45:56 +00:00
64 lines
1.5 KiB
TypeScript
64 lines
1.5 KiB
TypeScript
import Button from "@mui/material/Button";
|
|
import LaunchOutlined from "@mui/icons-material/LaunchOutlined";
|
|
import type { FC } from "react";
|
|
import { useTheme } from "@emotion/react";
|
|
import { Stack } from "components/Stack/Stack";
|
|
|
|
export const Header: FC<{
|
|
title: string | JSX.Element;
|
|
description?: string | JSX.Element;
|
|
secondary?: boolean;
|
|
docsHref?: string;
|
|
}> = ({ title, description, docsHref, secondary }) => {
|
|
const theme = useTheme();
|
|
|
|
return (
|
|
<Stack alignItems="baseline" direction="row" justifyContent="space-between">
|
|
<div css={{ maxWidth: 420, marginBottom: 24 }}>
|
|
<h1
|
|
css={[
|
|
{
|
|
fontSize: 32,
|
|
fontWeight: 700,
|
|
display: "flex",
|
|
alignItems: "center",
|
|
lineHeight: "initial",
|
|
margin: 0,
|
|
marginBottom: 4,
|
|
gap: 8,
|
|
},
|
|
secondary && {
|
|
fontSize: 24,
|
|
fontWeight: 500,
|
|
},
|
|
]}
|
|
>
|
|
{title}
|
|
</h1>
|
|
{description && (
|
|
<span
|
|
css={{
|
|
fontSize: 14,
|
|
color: theme.palette.text.secondary,
|
|
lineHeight: "160%",
|
|
}}
|
|
>
|
|
{description}
|
|
</span>
|
|
)}
|
|
</div>
|
|
|
|
{docsHref && (
|
|
<Button
|
|
startIcon={<LaunchOutlined />}
|
|
component="a"
|
|
href={docsHref}
|
|
target="_blank"
|
|
>
|
|
Read the docs
|
|
</Button>
|
|
)}
|
|
</Stack>
|
|
);
|
|
};
|