App Shell

The AppShell component is the main outer frame of an application. It provides the basic architecture to build an application inside of our admin.

import React from "react";
import { Box, Button, Icon, Text } from "@nimbus-ds/components";
import { ChevronLeftIcon, GiftBoxIcon, UserIcon } from "@nimbus-ds/icons";
import { AppShell } from "@nimbus-ds/patterns";

const Example: React.FC = () => {
  const backButton = (
    <Button appearance="transparent">
      <Icon source={<ChevronLeftIcon />} />
      Volver
    </Button>
  );

  const buttonStack = (
    <>
      <Button appearance="transparent">
        <Icon source={<GiftBoxIcon />} />
        Novedades
      </Button>
      <Button appearance="transparent">
        <Icon source={<UserIcon />} />
        Mi cuenta
      </Button>
    </>
  );

  const sampleMenu = (
    <Box
      backgroundColor="primary-surface"
      borderColor="primary-interactive"
      borderStyle="dashed"
      borderWidth="1"
      borderRadius="2"
      width="15rem"
      height="100vh"
      display="flex"
      alignItems="center"
      justifyContent="center"
    >
      <Text fontSize="base" color="primary-interactive">
        Menu content
      </Text>
    </Box>
  );

  return (
    <AppShell menu={sampleMenu}>
      <AppShell.Header leftSlot={backButton} rightSlot={buttonStack} />
      <Box
        backgroundColor="primary-surface"
        borderColor="primary-interactive"
        borderStyle="dashed"
        borderWidth="1"
        borderRadius="2"
        width="100%"
        height="calc(100vh - 66px)"
        display="flex"
        alignItems="center"
        justifyContent="center"
      >
        <Text fontSize="base" color="primary-interactive">
          Children content
        </Text>
      </Box>
    </AppShell>
  );
};

export default Example;

Instale o componente via terminal.

npm install @nimbus-ds/app-shell

Additional props are passed to the <AppShell> element. See div docs for a list of props accepted by the <AppShell> element.