documentation-site/pages/index.jsx (217 lines of code) (raw):
/*
Copyright (c) Uber Technologies, Inc.
This source code is licensed under the MIT license found in the
LICENSE file in the root directory of this source tree.
*/
//
/* global process */
import * as React from "react";
import { Block } from "baseui/block";
import { Button } from "baseui/button";
import { Banner } from "baseui/banner";
import { FlexGrid, FlexGridItem } from "baseui/flex-grid";
import { StyledLink as Link } from "baseui/link";
import Markdown, { H1, H2 } from "../components/markdown-elements";
import { Card, StyledBody } from "baseui/card";
import { Tag } from "baseui/tag";
import { withStyle } from "baseui";
import BlogPosts from "../posts.jsx";
import Layout from "../components/layout";
const MinHeightBody = withStyle(StyledBody, {
minHeight: "150px",
});
const cardOverrides = {
Root: {
style: ({ $theme }) => ({
marginLeft: $theme.sizing.scale600,
marginRight: $theme.sizing.scale600,
marginTop: $theme.sizing.scale500,
width: "300px",
}),
},
};
const Adopters = (props) => (
<>
<H2>Who is using Base Web?</H2>
<FlexGrid
flexGridColumnCount={[2, 3]}
backgroundColor="mono100"
marginBottom="scale1000"
>
{props.logoSrcs.map((logoSrc, i) => (
<FlexGridItem
key={i}
display="flex"
alignItems="center"
justifyContent="center"
>
<Block margin="scale200" width="125px" as="img" src={logoSrc} />
</FlexGridItem>
))}
</FlexGrid>
<Button
$as="a"
href="https://github.com/uber/baseweb/issues/1889"
size="compact"
kind="secondary"
>
Please let us know if you are using Base Web!
</Button>
</>
);
const Index = (props) => (
<Layout
toggleDirection={props.toggleDirection}
toggleTheme={props.toggleTheme}
>
<Block
marginTop={["scale100", "scale400", "scale800"]}
display="block"
$as="a"
href={BlogPosts[0].path}
overrides={{
Block: {
style: ({ $theme }) => ({
textDecoration: "none",
":focus": {
outline: `3px solid ${$theme.colors.accent}`,
outlineOffset: "5px",
},
}),
},
}}
>
<Tag kind="positive" closeable={false}>
New
</Tag>
<Block color="contentPrimary" display="inline-block" font="font250">
{BlogPosts[0].title}
</Block>
</Block>
<H1>Base Web React UI framework</H1>
<Banner>
Uber is hiring in Amsterdam. Do you want to work on Base Web and other things? <a href="https://www.uber.com/global/en/careers/list/130852/">Please apply!</a>
</Banner>
<Markdown.p>
Base Web is a foundation for initiating, evolving, and unifying web
products.
</Markdown.p>
<Block
display="flex"
marginLeft="-16px"
marginRight="-16px"
overrides={{
Block: {
style: ({ $theme }) => ({
flexWrap: "wrap",
[$theme.mediaQuery.small]: {
flexWrap: "nowrap",
},
}),
},
}}
>
<Card title="Setup Base Web" overrides={cardOverrides}>
<MinHeightBody>
Base Web is distributed as an npm package. As Base Web is built on top
of a CSS-in-JS engine, all you need is the dependencies from npm.
</MinHeightBody>
<Button
$as="a"
href="/getting-started/setup"
overrides={{
BaseButton: {
style: ({ $theme }) => ({
boxSizing: "border-box",
width: "100%",
}),
},
}}
>
Setup Base Web
</Button>
</Card>
<Card title="Learning Base Web" overrides={cardOverrides}>
<MinHeightBody>
The best way to learn Base Web is to start building an application
using it. Click on the link below to find 2 apps built using Base Web
(one simple, one more complex).
</MinHeightBody>
<Button
$as="a"
href="/getting-started/learn"
overrides={{
BaseButton: {
style: ({ $theme }) => ({
boxSizing: "border-box",
width: "100%",
}),
},
}}
>
Learn more
</Button>
</Card>
</Block>
<H2>Components</H2>
<Markdown.p>
Base Web offers a robust suite of components out of the box. These include
complex, ready-to-use components such as{" "}
<Link href="/components/datepicker">Datepicker</Link> and low-level
composable primitives, such as <Link href="/components/layer">Layer</Link>
.
</Markdown.p>
<Markdown.p>
For an overview of everything that we offer, check out the{` `}
<Link href="https://baseweb.design/ladle">component gallery</Link>.
</Markdown.p>
<H2>Extensibility</H2>
<Markdown.p>
Through the{" "}
<Link href="/guides/understanding-overrides">Overrides API</Link> and{" "}
<Link href="/guides/theming">configurable Themes</Link>, Base Web offers
an extreme level of customization. Whether you want to modify a component
in one place only or you want to build your design system on top of Base
Web, we have options.
</Markdown.p>
<H2>Built-in accessibility</H2>
<Markdown.p>
Base Web does the heavy lifting for you—components are built with
accessibility being a first-class citizen.
</Markdown.p>
<H2>Performance</H2>
<Markdown.p>
Styletron is the CSS-in-JS engine powering Base Web. Based on{" "}
<Link href="https://ryantsao.com/blog/virtual-css-with-styletron">
our benchmarks
</Link>
, this is one of the fastest solutions.
</Markdown.p>
<H2>Figma Community</H2>
<Markdown.p>
You can find all the Base Web components on{" "}
<Link href="https://baseweb.design/blog/base-figma-community/">
Figma Community
</Link>
. This should help your design team adopt Base Web, while engineers can
use the React implementation.
</Markdown.p>
<Adopters
logoSrcs={[
"/images/uber-logo.png",
"/images/broadcom-logo.png",
"/images/metromile-logo.png",
"/images/extensis-logo.png",
"/images/uptime-logo.png",
"/images/streamlit-logo.png",
"/images/everbase-logo.png",
"/images/cadre-logo.png",
"/images/banzaicloud-logo.png",
"/images/sprinklr-logo.png",
"/images/radity-logo.png",
"/images/gcf-logo.png",
]}
/>
</Layout>
);
export default Index;