Robust React UI is built with the following points in mind.

Robust components

  • Full typescript support to increase developer productivity.
  • Components are heavily tested, such that unexpected bugs are minimised.
  • Most components use the controlled component design pattern, meaning you can separate your component data into the parent component, making managing state easier.

Strong focus on accessibility

  • Most of the components functionality is ported over from aria 1.1 spec.
  • Designs are also tested using the a11y storybook addon.

Theme support & modern CSS

  • General theming support for component sizes and colours via props.
  • This project makes use of CSS variables, meaning overriding CSS is simple, and creating custom themes (such as a dark theme) is achievable in a short amount of time.

Installing node

Robust React UI is being developed using the latest LTS Node release (the current LTS is 14.17.1). It is recommended to use this version with the library, albeit other versions may work perfectly fine too.

Installing with npm

npm install robust-react-ui

Installing with yarn

yarn add robust-react-ui

Importing the styles

Robust React UI comes with both compressed (minified) and uncompressed css. You will need to import either of these CSS files into the root of your react application.

import 'robust-react-ui/build/styles/main.css'

or minified:

import 'robust-react-ui/build/styles/main.min.css'

Code splitting is enabled in this library. Meaning you can import components directly in some cases, reducing your bundle size and increasing the overall performance of your application.

Example 1: Importing components without code splitting

Using this method you get the benefit of IntelliSense. However it will import the full component, this may not be ideal especially in cases where the component is a compound component and has several children components.

import { Button, Link, Form } from 'robust-react-ui'

Example 2: Importing components using code splitting

This is the optimal way to import. However you may have to dig through build folder to find the component you're looking for. Note: this method must be used for the Icon component, as it has over 280 children fragments.

import Button from 'robust-react-ui/build/components/Button';
import Icon from 'robust-react-ui/build/components/Icon';
# import two icon fragments
import Map from 'robust-react-ui/build/components/Icon/Map';
import Phone from 'robust-react-ui/build/components/Icon/Phone';

Why it is important to use interfaces

Each component in Robust React UI has a set of Typescript interfaces. These can be used to add IntelliSense and increase productivity whilst using Robust React UI components in your project. All interfaces are exported from the root of the project and every single interface is prefixed with a capital 'I', for example IButtonProps.

import {
  IAccordionPanelProps,
  IAccordionProps,
  ICarouselProps,
  ICarouselSlideProps,
} from "robust-react-ui";
src/components/Alert/Alert.tsx
Prop nameTypeDefaultDescription
childrenReactNodeRequired
fullWidthboolean

Component will take up the full width available.

onCloseActionFunction(visibleState: boolean) => void

Function triggered when the close button is activated

variant"primary" | "success" | "danger"primary

Provides component with a colour theme.

visibleboolean

Controls the visibility of the Alert component

Features

  • Close button accessible by keyboard
  • Ability to pass in children
  • Supports multiple colour themes

Primary

Danger

Success

src/components/AlertDialogue/AlertDialogue.tsx
Prop nameTypeDefaultDescription
bodyTextstringRequired

The body text of the modal.

onCloseActionFunction() => voidRequired

Function triggered when close button is activated.

onConfirmActionFunction() => voidRequired

Function triggered when confirm button is activated.

openbooleanRequired

Used to control the visibility of the modal.

titleTextstringRequired

The title of the modal.

cancelButtonTextstringCancel

Text to be shown in the cancel action button.

confirmButtonTextstringConfrim

Text to be shown in the confirm action button.

Features

  • Uses controlled component pattern
  • Pressing escape will close popup
  • Tab & shift tab to switch focus to next button
  • Close button auto focus on open
  • Focus is 'trapped' once open

Default

Cillumm fugiat Lorem esse.

Proident ex nostrud ex qui culpa utLabore ex duis aliqua culpa et.

src/components/AutoComplete/AutoComplete.tsx
Prop nameTypeDefaultDescription
labelIdstringRequired

Provides the component with an id attribute. May be used for accessibility purposes.

labelTextstringRequired

An accessible label.

onChangeFunction(value: string) => voidRequired

Function triggered interally, used when onChange event is activated.

onClearOptionsFunction() => voidRequired

Function triggered internally, used to clear the state of options prop

onSelectOptionFunction(value: string) => voidRequired

Function triggered internally, when an option is selected. Used to change the value prop

optionsstring[]Required

Controlled state for a list of options.

valuestringRequired

Controlled state for the current selected option.

Features

  • Uses controlled component pattern
  • Display a list of results from the parent component
  • Pressing up or down key will focus and select
  • Mouse hover will focus and select
  • If down is pressed and last item is selected, the first item will be selected
  • If up is pressed and first item is selected, the last item will be selected
  • Pressing escape closes the popup
  • Clicking away from popup will close the popup (blur)

Default

    src/components/Breadcrumbs/Breadcrumbs.tsx
    Prop nameTypeDefaultDescription
    dataIBreadcrumbProps[]Required

    Data supporting an array of breadcrumbs

    ariaLabelstring

    An accessible label.

    size"small" | "medium" | "large"medium

    Size setting for component.

    Features

    • Uses the controlled component design pattern
    • Supports multiple links
    • Support multiple sizes

    Small

    Medium

    Large

    src/components/Button/Button.tsx
    Prop nameTypeDefaultDescription
    childrenReactNodeRequired
    ariaControlsstring
    ariaLabelstring

    An accessible label.

    idstring

    Provides the component with an id attribute. May be used for accessibility purposes.

    keyReactText
    onClickFunction(e: MouseEvent<HTMLButtonElement, MouseEvent>) => void

    A function to be triggered on mouse click event.

    onKeyDownFunction(event: KeyboardEvent<HTMLButtonElement>) => void

    A function to be triggered on keydown event.

    refRef<HTMLButtonElement>
    size"small" | "medium" | "large"medium

    Size setting for component.

    squarebooleanfalse

    Creates equal padding vertically and horizontally

    tabIndexnumber
    variant"primary" | "danger" | "success" | "secondary"primary

    Provides component with a colour theme.

    Features

    • Uses native html tags for accessibility
    • Supports multiple sizes
    • Supports multiple colour themes
    • Supports custom onClick function

    Themes

    Sizes

    Embedding icons

    Using onClickFunction

    src/components/Carousel/Carousel.tsx
    Prop nameTypeDefaultDescription
    ariaLabelstringRequired

    An accessible label.

    slidesICarouselSlideProps[]Required

    An array of slides.

    autoplaybooleanfalse

    Toggles autoplay.

    intervalSecondsnumber5

    Delay in between slide transitions (seconds).

    Features

    • Uses the controlled component pattern
    • Supports autoplay
    • Supports button actions for pause, play, next slide, previous slide
    • Pressing enter on focused image/text will visit link
    • Press tab or shift + tab will navigate between focusable elements

    Default

    Autoplay

    src/components/Icon/Base/Icon.tsx
    Prop nameTypeDefaultDescription
    childrenReactNodeRequired
    heightnumber24

    Changes the height attribute of the icon wrapper.

    variant"primary" | "danger" | "light" | "dark" | "success"primary

    Changes the colour theme of the icon.

    viewBoxstring0 0 24 24

    Changes the viewBox attribute of the icon wrapper.

    widthnumber24

    Changes the width attribute of the icon wrapper.

    Features

    • Supports multiple colour and size themes
    • Supports approximately 286 icon fragments
    • Icon has the ability to use a custom icon
    • All icons are sourced from the feather icon set (currently using v4.28.0).

    Default

    Using different icons

    Using custom paths

    Using variants (themes)

    The default is "primary"

    Custom sizes

    src/components/Image/Image.tsx
    Prop nameTypeDefaultDescription
    altstringRequired

    An accessible label for the component.

    srcstringRequired

    The source url of the image.

    blurredboolean

    Adds a blur filter effect to the image.

    borderedboolean

    Renders Image with a border.

    circleboolean

    Renders Image as a circle.

    heightnumber

    A fixed height for the component. Improves layout performance.

    scaling"unrestricted" | "restricted-width"

    Control how scaling behaviour of the Image.

    styleCSSProperties

    Style overrides.

    widthnumber

    A fixed width for the component. Improves layout performance.

    Features

    • Uses native html tags for accessibility
    • Supports different scaling options
    • Supports circular images
    • Supports bordered images
    • Supports blurred images

    Default

    Lego pieces on the floor

    Scaling - Unrestricted

    Lego pieces on the floor

    Scaling - Restricting width

    Lego pieces on the floor

    Bordered

    Lego pieces on the floor

    Blurred

    Lego pieces on the floor

    Circle

    Lego pieces on the floor
    src/components/Link/Link.tsx
    Prop nameTypeDefaultDescription
    childrenReactNodeRequired
    hrefstringRequired
    ariaDescribedBystring

    Indicate id of component used to describe this component.

    ariaLabelstring

    An accessible label.

    display"inline" | "block"inline

    Set display type, inline or block.

    size"small" | "medium" | "large"medium

    Size setting for component.

    Features

    • Supports multiple sizes

    Small

    Default

    Large

    src/components/NavigationBar/NavigationBar.tsx
    Prop nameTypeDefaultDescription
    ariaLabelstringRequired

    An accessible label.

    dataINavigationDataProps[]Required
    idstring

    Provides the component with an id attribute. May be used for accessibility purposes.

    onEnterLinkFunction(href: string) => void

    Features

    • Uses the controlled component design pattern
    • Supports nested dropdowns 2 levels deep
    • Hover to open menus
    • Full keyboard support
      • Left arrow key to close current menu
      • right arrow key to open sub menu
      • Down arrow key
      • Escape to close all menus

    Default

    src/components/Pagination/Pagination.tsx
    Prop nameTypeDefaultDescription
    dataIPaginationButtonProps[]Required

    Data supporting an array of pagination buttons

    ariaLabelstring

    An accessible label.

    roundedboolean

    Enables a rounded button theme.

    Features

    • Uses the controlled component pattern
    • Support for rounded button theme

    Default

    Rounded

    src/components/ProgressBar/ProgressBar.tsx
    Prop nameTypeDefaultDescription
    currentValuenumberRequired

    Controlled value for progress bar

    ariaLabelstringProgress bar

    An accessible label

    fullWidthboolean

    Component will take up the full width available.

    maximumValuenumber100

    Maximum value for the progress bar

    minimumValuenumber0

    Minimum value for the progress bar

    size"small" | "medium" | "large"medium

    Size setting for component.

    variant"primary" | "secondary" | "danger" | "success"primary

    Provides component with a colour theme.

    Primary

    Danger

    Success

    Full Width

    Custom minimum and maximum

    src/components/Review/Review.tsx
    Prop nameTypeDefaultDescription
    onCrossClickFunction() => voidRequired

    Function to clear the controlled state of Review

    onStarClickFunction(rating: number) => voidRequired

    Function to set controlled state of Review

    currentValuenumber0
    formIdstringstar_rating

    The wrapping form's id

    size"small" | "medium" | "large"medium

    Size of review stars

    Features

    • Uses the controlled component design pattern
    • Supports up to 5 star review
    • Supports clearing review state

    Default

    src/components/TabList/TabList.tsx
    Prop nameTypeDefaultDescription
    tabsITabListTabProps[]Required

    Data supporting an array of tabs.

    ariaLabelstring

    An accessible label.

    fullWidthbooleanfalse

    Component will take up the full width available.

    variant"primary" | "danger" | "success" | "secondary"primary

    Provides component with a colour theme.

    Features

    • Uses controlled component pattern
    • Pressing left will move to previous tab
    • Pressing right arrow will move to next tab
    • Pressing tab will move focus to content area
    • Pressing shift + tab will move focus back to tabs, from content area
    • Supports multiple colour themes

    Primary

    Ex deserunt irure in et nisi est fugiat et laborum. Amet esse elit excepteur Lorem aute magna aliqua fugiat fugiat eu. Est minim labore culpa id ut dolor aliquip occaecat in proident mollit labore nulla.

    Dolor pariatur id labore pariatur cillum amet officia in fugiat culpa. Voluptate aute magna eu voluptate mollit cupidatat aute enim anim tempor. Officia amet tempor irure fugiat commodo dolor id.

    Ea minim ex officia pariatur reprehenderit culpa officia in cillum voluptate labore id dolor. Exercitation irure ipsum aute qui deserunt nisi in in ad tempor do in cupidatat. Reprehenderit sint nulla duis enim dolor pariatur eiusmod.

    Mollit ex nulla incididunt consectetur aliquip aute duis magna do. Culpa reprehenderit cupidatat eiusmod dolor anim in qui anim. In do ex culpa ipsum Lorem fugiat enim.

    Success

    Ex deserunt irure in et nisi est fugiat et laborum. Amet esse elit excepteur Lorem aute magna aliqua fugiat fugiat eu. Est minim labore culpa id ut dolor aliquip occaecat in proident mollit labore nulla.

    Dolor pariatur id labore pariatur cillum amet officia in fugiat culpa. Voluptate aute magna eu voluptate mollit cupidatat aute enim anim tempor. Officia amet tempor irure fugiat commodo dolor id.

    Ea minim ex officia pariatur reprehenderit culpa officia in cillum voluptate labore id dolor. Exercitation irure ipsum aute qui deserunt nisi in in ad tempor do in cupidatat. Reprehenderit sint nulla duis enim dolor pariatur eiusmod.

    Mollit ex nulla incididunt consectetur aliquip aute duis magna do. Culpa reprehenderit cupidatat eiusmod dolor anim in qui anim. In do ex culpa ipsum Lorem fugiat enim.

    Danger

    Ex deserunt irure in et nisi est fugiat et laborum. Amet esse elit excepteur Lorem aute magna aliqua fugiat fugiat eu. Est minim labore culpa id ut dolor aliquip occaecat in proident mollit labore nulla.

    Dolor pariatur id labore pariatur cillum amet officia in fugiat culpa. Voluptate aute magna eu voluptate mollit cupidatat aute enim anim tempor. Officia amet tempor irure fugiat commodo dolor id.

    Ea minim ex officia pariatur reprehenderit culpa officia in cillum voluptate labore id dolor. Exercitation irure ipsum aute qui deserunt nisi in in ad tempor do in cupidatat. Reprehenderit sint nulla duis enim dolor pariatur eiusmod.

    Mollit ex nulla incididunt consectetur aliquip aute duis magna do. Culpa reprehenderit cupidatat eiusmod dolor anim in qui anim. In do ex culpa ipsum Lorem fugiat enim.

    Secondary

    Ex deserunt irure in et nisi est fugiat et laborum. Amet esse elit excepteur Lorem aute magna aliqua fugiat fugiat eu. Est minim labore culpa id ut dolor aliquip occaecat in proident mollit labore nulla.

    Dolor pariatur id labore pariatur cillum amet officia in fugiat culpa. Voluptate aute magna eu voluptate mollit cupidatat aute enim anim tempor. Officia amet tempor irure fugiat commodo dolor id.

    Ea minim ex officia pariatur reprehenderit culpa officia in cillum voluptate labore id dolor. Exercitation irure ipsum aute qui deserunt nisi in in ad tempor do in cupidatat. Reprehenderit sint nulla duis enim dolor pariatur eiusmod.

    Mollit ex nulla incididunt consectetur aliquip aute duis magna do. Culpa reprehenderit cupidatat eiusmod dolor anim in qui anim. In do ex culpa ipsum Lorem fugiat enim.

    src/components/Accordion/Base/Accordion.tsx
    Prop nameTypeDefaultDescription
    activePanelstringRequired
    childrenReactNodeRequired
    onSelectPanelFunction(panelId: string) => voidRequired
    fullWidthboolean

    Component will take up the full width available.

    Features

    • Uses the compound component design pattern
    • Uses controlled component pattern
    • Pressing down will move focus to next panel header
    • Pressing up will move focus to previous panel header
    • Pressing enter/space will open the current panel
    • Contents can be inserted into panels via children
    • Support for full width appearance

    Default

    Nisi sunt sint occaecat eu.

    is ex in dolor magna aliqua ex.um aliquipem adipisicing. Mollin dolor magna aliqua ex. Consectetur cupidatat ea nostrud consequat officia ut ipsum sit proident dolor ipsum aliquipem adipisicing. Mollit et occaecat dolor proident fugiat pariatur officia irure.

    Doggy

    Full Width

    is ex in dolor magna aliqua ex. Consectetur cupidatat ea nostrud consequat officia ut ipsum sit proident dolor ipsum aliquipem adipisicing. Mollin dolor magna aliqua ex. Consectetur cupidatat ea nostrud consequat officia ut ipsum sit proident dolor ipsum aliquipem adipisicing. Mollin dolor magna aliqua ex. Consectetur cupidatat ea nostrud consequat officia ut ipsum sit proident dolor ipsum aliquipem adipisicing. Mollin dolor magna aliqua ex. Consectetur cupidatat ea nostrud consequat officia ut ipsum sit proident dolor ipsum aliquipem adipisicing. Mollit et occaecat dolor proident fugiat pariatur officia irure.

    src/components/Accordion/Panel/Panel.tsx
    Prop nameTypeDefaultDescription
    childrenReactNodeRequired
    panelIdstringRequired

    Provides the component with an id attribute. May be used for accessibility purposes.

    panelTitlestringRequired
    activePanelstring
    handleFocusFirst() => void
    handleFocusLast() => void
    handleFocusNext(_index: number) => void
    handleFocusPrevious(_index: number) => void
    indexnumber
    keyReactText
    onSelectPanelFunction(panelId: string) => void
    refRef<HTMLButtonElement>
    src/components/Form/Base/Form.tsx
    Prop nameTypeDefaultDescription
    childrenReactNodeRequired
    onSubmitFunction() => voidRequired

    Function triggered interally, when form is submitted.

    ariaDescribedBystring

    Indicate id of component used to describe this component.

    Features

    • Uses the compound component design pattern

    Full Example

    Legend text

    src/components/Form/CheckboxGroup/CheckboxGroup.tsx
    Prop nameTypeDefaultDescription
    ariaLabelledBystringRequired

    An accessible label via id of another element.

    idstringRequired

    Provides the component with an id attribute. May be used for accessibility purposes.

    onSelectFunction(keyValue: string, checkedValue: boolean) => voidRequired
    valuesIFormCheckboxOptionProps[]Required

    Default

    src/components/Form/FieldSet/FieldSet.tsx
    Prop nameTypeDefaultDescription
    childrenReactNodeRequired

    Features

    • Uses native html tags for accessibility
    src/components/Form/Input/Input.tsx
    Prop nameTypeDefaultDescription
    idstringRequired

    Provides the component with an id attribute. May be used for accessibility purposes.

    namestringRequired

    Maps to the name attribute

    onChangeFunction(event: ChangeEvent<HTMLInputElement>) => voidRequired

    Function triggered interally, used when onChange event is activated.

    placeholderstringRequired

    Placeholder text

    valuestringRequired

    Controlled value for the Input

    disabledboolean

    Controls the disabled state.

    errorboolean
    errorMessagestring
    fullWidthboolean

    Component will take up the full width available.

    onBlurFunction(event: FocusEvent<HTMLInputElement>) => void

    A function triggered when component loses focus.

    type"color" | "text" | "password" | "date"text

    Features

    • Uses native html tags for accessibility
    • Uses the controlled component pattern
    • Supports multiple input types
    • Supports disabled and error states

    Text

    Full width

    Error state

    Something is wrong.

    Disabled state

    Password

    Color

    Date

    src/components/Form/Label/Label.tsx
    Prop nameTypeDefaultDescription
    childrenReactNodeRequired
    htmlForstring
    idstring

    Provides the component with an id attribute. May be used for accessibility purposes.

    requiredboolean

    Default

    Form Legend

    src/components/Form/Legend/Legend.tsx
    Prop nameTypeDefaultDescription
    childrenReactNodeRequired
    idstringRequired

    Provides the component with an id attribute. May be used for accessibility purposes.

    Features

    • Uses native html tags for accessibility

    Default

    Form Legend

    src/components/Form/Select/Select.tsx
    Prop nameTypeDefaultDescription
    idstringRequired

    Provides the component with an id attribute. May be used for accessibility purposes.

    onChangeFunction(event: FocusEvent<HTMLSelectElement>) => voidRequired

    Function triggered interally, used when onChange event is activated.

    selectedValuestring | string[]Required

    Controlled selected value

    valuesIFormSelectOptionProps[]Required

    An array of values, each with a display name and key value.

    disabledboolean

    Controls the disabled state.

    multipleboolean
    onBlurFunction(event: FocusEvent<HTMLSelectElement>) => void

    A function triggered when component loses focus.

    Default

    src/components/Form/Submit/Submit.tsx
    Prop nameTypeDefaultDescription
    valuestringRequired
    idstring

    Provides the component with an id attribute. May be used for accessibility purposes.

    size"small" | "medium" | "large"medium

    Size setting for component.

    variant"primary" | "danger" | "success"primary

    Provides component with a colour theme.

    Default

    src/components/Form/TextArea/TextArea.tsx
    Prop nameTypeDefaultDescription
    idstringRequired

    Provides the component with an id attribute. May be used for accessibility purposes.

    namestringRequired

    Maps to the name attribute

    onChangeFunction(event: ChangeEvent<HTMLTextAreaElement>) => voidRequired

    Function triggered interally, used when onChange event is activated.

    placeholderstringRequired

    Placeholder text

    valuestringRequired

    Controlled value for the TextArea

    disabledboolean

    Controls the disabled state.

    errorboolean
    errorMessagestring
    fullWidthboolean

    Component will take up the full width available.

    onBlurFunction(event: FocusEvent<HTMLTextAreaElement>) => void

    A function triggered when component loses focus.

    rowsnumber

    Default

    Features

    • Uses the controlled component pattern
    • Supports disabled and error states

    Full width

    Error state

    Something is wrong.

    Disabled state

    src/components/Layout/Base/Layout.tsx
    Prop nameTypeDefaultDescription
    childrenReactNodeRequired

    Features

    • Uses the compound component design pattern
    src/components/Layout/Column/Column.tsx
    Prop nameTypeDefaultDescription
    childrenReactNodeRequired
    ariaLabelstring

    An accessible label.

    ariaLabelledBystring

    An accessible label via id of another element.

    idstring

    Unique id for the component

    paddingX"xxs" | "xs" | "s" | "m" | "l"s

    The horizontal padding

    paddingY"xxs" | "xs" | "s" | "m" | "l"s

    The vertical padding

    size"third" | "half" | "quarter"quarter

    Size setting for component.

    tagName"div" | "aside" | "main" | "section"div

    The tag name, defaults to DIV tag

    Features

    • Flexbox based layout
    • Different sizes quarter, third, half
    • By default, columns are responsive and wrap on laptop, tablet and mobile breakpoints

    Quarter

    Cupidatat tempor deserunt in do nisi eiusmllit.

    Anim commodo laborum eu anim sint officia reprehenderit commodo anim ea officia esse occaecat. Laborum ipsum qui Lorem sint eiusmod Lorem. Ipsum commodo elit cillum.

    Cupidatat temollit.

    Anim commodo laborum eu anim sint officia reprehenderit commodo anim ea officia esse occaecat. Laborum ipsum qui Lorem sint eiusmod Lorem. Ipsum commodo elit cillum.

    Cupidatat tempor deserunt in do nisi eiusmod esse ad nullt.

    Anim commodo laborum eu anim sint officia reprehenderit commodo anim ea officia esse occaecat. Laborum ipsum qui Lorem sint eiusmod Lorem. Ipsum commodo elit cillum.

    Cupidatat tempor deserunt in do nisi eiusmooccaecat mollit.

    Anim commodo laborum eu anim sint officia reprehenderit commodo anim ea officia esse occaecat. Laborum ipsum qui Lorem sint eiusmod Lorem. Ipsum commodo elit cillum.

    Half

    Cupidatat tempor deserunt in do nisi eiusmllit.

    Anim commodo laborum eu anim sint officia reprehenderit commodo anim ea officia esse occaecat. Laborum ipsum qui Lorem sint eiusmod Lorem. Ipsum commodo elit cillum.

    Cupidatat temollit.

    Anim commodo laborum eu anim sint officia reprehenderit commodo anim ea officia esse occaecat. Laborum ipsum qui Lorem sint eiusmod Lorem. Ipsum commodo elit cillum.

    Third

    Cupidatat tempor deserunt in do nisi eiusmllit.

    Anim commodo laborum eu anim sint officia reprehenderit commodo anim ea officia esse occaecat. Laborum ipsum qui Lorem sint eiusmod Lorem. Ipsum commodo elit cillum.

    Cupidatat temollit.

    Anim commodo laborum eu anim sint officia reprehenderit commodo anim ea officia esse occaecat. Laborum ipsum qui Lorem sint eiusmod Lorem. Ipsum commodo elit cillum.

    Cupidatat temollit.

    Anim commodo laborum eu anim sint officia reprehenderit commodo anim ea officia esse occaecat. Laborum ipsum qui Lorem sint eiusmod Lorem. Ipsum commodo elit cillum.

    Quarter (no wrap)

    Cupidatat tempor deserunt in do nisi eiusmllit.

    Anim commodo laborum eu anim sint officia reprehenderit commodo anim ea officia esse occaecat. Laborum ipsum qui Lorem sint eiusmod Lorem. Ipsum commodo elit cillum.

    Cupidatat temollit.

    Anim commodo laborum eu anim sint officia reprehenderit commodo anim ea officia esse occaecat. Laborum ipsum qui Lorem sint eiusmod Lorem. Ipsum commodo elit cillum.

    Cupidatat tempor deserunt in do nisi eiusmod esse ad nullt.

    Anim commodo laborum eu anim sint officia reprehenderit commodo anim ea officia esse occaecat. Laborum ipsum qui Lorem sint eiusmod Lorem. Ipsum commodo elit cillum.

    Cupidatat tempor deserunt in do nisi eiusmooccaecat mollit.

    Anim commodo laborum eu anim sint officia reprehenderit commodo anim ea officia esse occaecat. Laborum ipsum qui Lorem sint eiusmod Lorem. Ipsum commodo elit cillum.

    Half (no wrap)

    Cupidatat tempor deserunt in do nisi eiusmllit.

    Anim commodo laborum eu anim sint officia reprehenderit commodo anim ea officia esse occaecat. Laborum ipsum qui Lorem sint eiusmod Lorem. Ipsum commodo elit cillum.

    Cupidatat temollit.

    Anim commodo laborum eu anim sint officia reprehenderit commodo anim ea officia esse occaecat. Laborum ipsum qui Lorem sint eiusmod Lorem. Ipsum commodo elit cillum.

    Third (no wrap)

    Cupidatat tempor deserunt in do nisi eiusmllit.

    Anim commodo laborum eu anim sint officia reprehenderit commodo anim ea officia esse occaecat. Laborum ipsum qui Lorem sint eiusmod Lorem. Ipsum commodo elit cillum.

    Cupidatat temollit.

    Anim commodo laborum eu anim sint officia reprehenderit commodo anim ea officia esse occaecat. Laborum ipsum qui Lorem sint eiusmod Lorem. Ipsum commodo elit cillum.

    Cupidatat tempor deserunt in do nisi eiusmod esse ad nullt.

    Anim commodo laborum eu anim sint officia reprehenderit commodo anim ea officia esse occaecat. Laborum ipsum qui Lorem sint eiusmod Lorem. Ipsum commodo elit cillum.

    Custom tags

    Cupidatat tempor deserunt in do nisi eiusmllit.

    Anim commodo laborum eu anim sint officia reprehenderit commodo anim ea officia esse occaecat. Laborum ipsum qui Lorem sint eiusmod Lorem. Ipsum commodo elit cillum.

    Cupidatat temollit.

    Anim commodo laborum eu anim sint officia reprehenderit commodo anim ea officia esse occaecat. Laborum ipsum qui Lorem sint eiusmod Lorem. Ipsum commodo elit cillum.

    src/components/Layout/Container/Container.tsx
    Prop nameTypeDefaultDescription
    childrenReactNodeRequired
    size"small" | "medium" | "large"medium

    Size setting for component.

    Features

    • A centered container with 3 size presets

    Small

    Dolore minim eiusmod fugiat sunt occaecat occaecat aliquip ullamco velit sit. Sunt eu voluptate in irure. Voluptate amet ullamco quis proident fugiat ipsum et mollit tempor ea.

    Medium (default)

    Dolore minim eiusmod fugiat sunt occaecat occaecat aliquip ullamco velit sit. Sunt eu voluptate in irure. Voluptate amet ullamco quis proident fugiat ipsum et mollit tempor ea.

    Large

    Dolore minim eiusmod fugiat sunt occaecat occaecat aliquip ullamco velit sit. Sunt eu voluptate in irure. Voluptate amet ullamco quis proident fugiat ipsum et mollit tempor ea.

    src/components/Layout/Grid/Grid.tsx
    Prop nameTypeDefaultDescription
    childrenReactNodeRequired
    gap"xxs" | "xs" | "s" | "m" | "l"s

    Vertical horizontal spacing between grid items

    type"fixed" | "fluid"fixed

    Features

    Features split into two sections below;

    Fixed type

    • Grid based layout.
    • Default of 6 column layout
    • Supports consistent spacing between GridItems, both horizontally and vertically
    • Supports highly custom layouts
    • Supports auto resizing on tablet and mobile breakpoints
    • On tablet layout changes to 4 columns
    • On mobile layout changes to 2 columns
    • Uses media queries under the hood to achieve responsive layout
    • More suitable towards image gallerys or high level layouts

    Fluid type

    • Media query free responsive grid items of a predefined size
    • Does not use media queries to achieve responsive layout
    • More suitable for homogeous items, such as products or article listing

    Fixed (default)

    Sunt cupidatat anim

    Non pariatur incididunt eu culpa laboris ullamco ea. Magna culpa mollit in mollit. Sunt ea qui culpa ut labore sunt

    Sunt cupidatat anim

    Non pariatur incididunt eu culpa laboris ullamco ea. Magna culpa mollit in mollit. Sunt ea qui culpa ut labore sunt

    Sunt cupidatat anim

    Non pariatur incididunt eu culpa laboris ullamco ea. Magna culpa mollit in mollit. Sunt ea qui culpa ut labore sunt

    Sunt cupidatat anim

    Non pariatur incididunt eu culpa laboris ullamco ea. Magna culpa mollit in mollit. Sunt ea qui culpa ut labore sunt

    Sunt cupidatat anim

    Non pariatur incididunt eu culpa laboris ullamco ea. Magna culpa mollit in mollit. Sunt ea qui culpa ut labore sunt

    Sunt cupidatat anim

    Non pariatur incididunt eu culpa laboris ullamco ea. Magna culpa mollit in mollit. Sunt ea qui culpa ut labore sunt

    Sunt cupidatat anim

    Non pariatur incididunt eu culpa laboris ullamco ea. Magna culpa mollit in mollit. Sunt ea qui culpa ut labore sunt

    Sunt cupidatat anim

    Non pariatur incididunt eu culpa laboris ullamco ea. Magna culpa mollit in mollit. Sunt ea qui culpa ut labore sunt

    Fixed, with custom layout

    Sunt cupidatat anim

    Non pariatur incididunt eu culpa laboris ullamco ea. Magna culpa mollit in mollit. Sunt ea qui culpa ut labore sunt

    Sunt cupidatat anim

    Non pariatur incididunt eu culpa laboris ullamco ea. Magna culpa mollit in mollit. Sunt ea qui culpa ut labore sunt

    Sunt cupidatat anim

    Non pariatur incididunt eu culpa laboris ullamco ea. Magna culpa mollit in mollit. Sunt ea qui culpa ut labore sunt

    Sunt cupidatat anim

    Non pariatur incididunt eu culpa laboris ullamco ea. Magna culpa mollit in mollit. Sunt ea qui culpa ut labore sunt

    Sunt cupidatat anim

    Non pariatur incididunt eu culpa laboris ullamco ea. Magna culpa mollit in mollit. Sunt ea qui culpa ut labore sunt

    Sunt cupidatat anim

    Non pariatur incididunt eu culpa laboris ullamco ea. Magna culpa mollit in mollit. Sunt ea qui culpa ut labore sunt

    Sunt cupidatat anim

    Non pariatur incididunt eu culpa laboris ullamco ea. Magna culpa mollit in mollit. Sunt ea qui culpa ut labore sunt

    Sunt cupidatat anim

    Non pariatur incididunt eu culpa laboris ullamco ea. Magna culpa mollit in mollit. Sunt ea qui culpa ut labore sunt

    Sunt cupidatat anim

    Non pariatur incididunt eu culpa laboris ullamco ea. Magna culpa mollit in mollit. Sunt ea qui culpa ut labore sunt

    Sunt cupidatat anim

    Non pariatur incididunt eu culpa laboris ullamco ea. Magna culpa mollit in mollit. Sunt ea qui culpa ut labore sunt

    Sunt cupidatat anim

    Non pariatur incididunt eu culpa laboris ullamco ea. Magna culpa mollit in mollit. Sunt ea qui culpa ut labore sunt

    Sunt cupidatat anim

    Non pariatur incididunt eu culpa laboris ullamco ea. Magna culpa mollit in mollit. Sunt ea qui culpa ut labore sunt

    Sunt cupidatat anim

    Non pariatur incididunt eu culpa laboris ullamco ea. Magna culpa mollit in mollit. Sunt ea qui culpa ut labore sunt

    Sunt cupidatat anim

    Non pariatur incididunt eu culpa laboris ullamco ea. Magna culpa mollit in mollit. Sunt ea qui culpa ut labore sunt

    Sunt cupidatat anim

    Non pariatur incididunt eu culpa laboris ullamco ea. Magna culpa mollit in mollit. Sunt ea qui culpa ut labore sunt

    Fluid

    Sunt cupidatat anim duis occaecat. Adipisicing aliqua

    Non pariatur incididunt eu culpa laboris ullamco ea. Magna culpa mollit in mollit. Sunt ea qui culpa ut labore Lorem est reprehenderit est eiusmod cupidatat eiusmod. Consequat fugiat aute ut sunt

    Sunt cupidatat anim duis occaecat. Adipisicing aliqua

    Non pariatur incididunt eu culpa laboris ullamco ea. Magna culpa mollit in mollit. Sunt ea qui culpa ut labore Lorem est reprehenderit est eiusmod cupidatat eiusmod. Consequat fugiat aute ut sunt

    Sunt cupidatat anim duis occaecat. Adipisicing aliqua

    Non pariatur incididunt eu culpa laboris ullamco ea. Magna culpa mollit in mollit. Sunt ea qui culpa ut labore Lorem est reprehenderit est eiusmod cupidatat eiusmod. Consequat fugiat aute ut sunt

    src/components/Layout/GridItem/GridItem.tsx
    Prop nameTypeDefaultDescription
    ariaLabelstring

    An accessible label.

    ariaLabelledBystring

    An accessible label via id of another element.

    childrenReactNode
    config{ rowStart: number; colStart: number; width: number; height: number; }

    Used for custom positioning with 'fixed'.

    idstring

    Unique id for the component

    paddingX"xxs" | "xs" | "s" | "m" | "l"s

    The horizontal padding

    paddingY"xxs" | "xs" | "s" | "m" | "l"s

    The vertical padding

    tagName"div" | "aside" | "main" | "section"div

    The tag name, defaults to DIV tag

    variant"primary" | "dark" | "light" | "success" | "danger"primary

    Colour theme.

    Padding

    Sunt cupidatat anim duis occaecat. Adipisicing aliqua

    Non pariatur incididunt eu culpa laboris ullamco ea. Magna culpa mollit in mollit. Sunt ea qui culpa ut labore Lorem est reprehenderit est eiusmod cupidatat eiusmod. Consequat fugiat aute ut sunt

    Sunt cupidatat anim duis occaecat. Adipisicing aliqua

    Non pariatur incididunt eu culpa laboris ullamco ea. Magna culpa mollit in mollit. Sunt ea qui culpa ut labore Lorem est reprehenderit est eiusmod cupidatat eiusmod. Consequat fugiat aute ut sunt

    Sunt cupidatat anim duis occaecat. Adipisicing aliqua

    Non pariatur incididunt eu culpa laboris ullamco ea. Magna culpa mollit in mollit. Sunt ea qui culpa ut labore Lorem est reprehenderit est eiusmod cupidatat eiusmod. Consequat fugiat aute ut sunt

    Variants

    Sunt cupidatat anim duis occaecat. Adipisicing aliqua

    Non pariatur incididunt eu culpa laboris ullamco ea. Magna culpa mollit in mollit. Sunt ea qui culpa ut labore Lorem est reprehenderit est eiusmod cupidatat eiusmod. Consequat fugiat aute ut sunt

    Sunt cupidatat anim duis occaecat. Adipisicing aliqua

    Non pariatur incididunt eu culpa laboris ullamco ea. Magna culpa mollit in mollit. Sunt ea qui culpa ut labore Lorem est reprehenderit est eiusmod cupidatat eiusmod. Consequat fugiat aute ut sunt

    Sunt cupidatat anim duis occaecat. Adipisicing aliqua

    Non pariatur incididunt eu culpa laboris ullamco ea. Magna culpa mollit in mollit. Sunt ea qui culpa ut labore Lorem est reprehenderit est eiusmod cupidatat eiusmod. Consequat fugiat aute ut sunt

    Sunt cupidatat anim duis occaecat. Adipisicing aliqua

    Non pariatur incididunt eu culpa laboris ullamco ea. Magna culpa mollit in mollit. Sunt ea qui culpa ut labore Lorem est reprehenderit est eiusmod cupidatat eiusmod. Consequat fugiat aute ut sunt

    Sunt cupidatat anim duis occaecat. Adipisicing aliqua

    Non pariatur incididunt eu culpa laboris ullamco ea. Magna culpa mollit in mollit. Sunt ea qui culpa ut labore Lorem est reprehenderit est eiusmod cupidatat eiusmod. Consequat fugiat aute ut sunt

    Rendering with custom tag names

    Sunt cupidatat anim duis occaecat. Adipisicing aliqua

    Non pariatur incididunt eu culpa laboris ullamco ea. Magna culpa mollit in mollit. Sunt ea qui culpa ut labore Lorem est reprehenderit est eiusmod cupidatat eiusmod. Consequat fugiat aute ut sunt

    Sunt cupidatat anim duis occaecat. Adipisicing aliqua

    Non pariatur incididunt eu culpa laboris ullamco ea. Magna culpa mollit in mollit. Sunt ea qui culpa ut labore Lorem est reprehenderit est eiusmod cupidatat eiusmod. Consequat fugiat aute ut sunt

    Sunt cupidatat anim duis occaecat. Adipisicing aliqua

    Non pariatur incididunt eu culpa laboris ullamco ea. Magna culpa mollit in mollit. Sunt ea qui culpa ut labore Lorem est reprehenderit est eiusmod cupidatat eiusmod. Consequat fugiat aute ut sunt

    Sunt cupidatat anim duis occaecat. Adipisicing aliqua

    Non pariatur incididunt eu culpa laboris ullamco ea. Magna culpa mollit in mollit. Sunt ea qui culpa ut labore Lorem est reprehenderit est eiusmod cupidatat eiusmod. Consequat fugiat aute ut sunt

    src/components/Layout/Row/Row.tsx
    Prop nameTypeDefaultDescription
    childrenReactNodeRequired
    alignX"left" | "right" | "even-between" | "even-around"left
    alignY"top" | "bottom" | "middle" | "stretch"stretch
    wrapbooleantrue

    Wrap columns when they overflow.

    Default

    Cupidatat tempor deserunt in do nisi eiusmllit.

    Anim commodo laborum eu anim sint officia reprehenderit commodo anim ea officia esse occaecat. Laborum ipsum qui Lorem sint eiusmod Lorem. Ipsum commodo elit cillum.

    Cupidatat temollit.

    Anim commodo laborum eu anim sint officia reprehenderit commodo anim ea officia esse occaecat. Laborum ipsum qui Lorem sint eiusmod Lorem. Ipsum commodo elit cillum.

    Cupidatat tempor deserunt in do nisi eiusmod esse ad nullt.

    Anim commodo laborum eu anim sint officia reprehenderit commodo anim ea officia esse occaecat. Laborum ipsum qui Lorem sint eiusmod Lorem. Ipsum commodo elit cillum.

    Cupidatat tempor deserunt in do nisi eiusmooccaecat mollit.

    Anim commodo laborum eu anim sint officia reprehenderit commodo anim ea officia esse occaecat. Laborum ipsum qui Lorem sint eiusmod Lorem. Ipsum commodo elit cillum.

    src/components/Table/Base/Table.tsx
    Prop nameTypeDefaultDescription
    childrenReactNodeRequired
    ariaDescribedBystring

    Indicate id of component used to describe this component.

    ariaLabelstring

    An accessible label.

    centerCellContentboolean

    Center content of Cells.

    idstring

    Provides the component with an id attribute. May be used for accessibility purposes.

    stripedboolean

    Adds a striped background pattern to Rows.

    Features

    • Uses the compound component design pattern
    • Uses native html tags for accessibility
    • Supports striped mode
    • Supports grouping table headers together
    • Support full width mode

    Default

    IpsumIpsumIpsumIpsum
    LoremLoremLoremLorem
    LoremLoremLoremLorem
    LoremLoremLoremLorem

    Full width

    IpsumIpsumIpsumIpsum
    LoremLoremLoremLorem
    LoremLoremLoremLorem
    LoremLoremLoremLorem

    Striped

    IpsumIpsumIpsumIpsum
    LoremLoremLoremLorem
    LoremLoremLoremLorem
    LoremLoremLoremLorem
    LoremLoremLoremLorem
    LoremLoremLoremLorem
    LoremLoremLoremLorem

    Centered cells

    IpsumIpsumIpsumIpsum
    LoremLoremLoremLorem
    LoremLoremLoremLorem
    LoremLoremLoremLorem

    Row Span

    IpsumIpsumIpsumIpsum
    LoremLoremLoremLorem
    LoremLoremLorem
    LoremLoremLorem
    LipsimLoremLoremLorem
    LoremLoremLorem

    With Table.Foot

    ItemsExpenditure
    Lorem23,000
    Ipsum345,000
    Delore45,000
    Septum413,000
    src/components/Table/Body/Body.tsx
    Prop nameTypeDefaultDescription
    childrenReactNodeRequired
    src/components/Table/Cell/Cell.tsx
    Prop nameTypeDefaultDescription
    childrenReactNodeRequired
    src/components/Table/Foot/Foot.tsx
    Prop nameTypeDefaultDescription
    childrenReactNodeRequired
    src/components/Table/Head/Head.tsx
    Prop nameTypeDefaultDescription
    childrenReactNodeRequired
    src/components/Table/Header/Header.tsx
    Prop nameTypeDefaultDescription
    childrenReactNodeRequired
    colSpannumber
    rowSpannumber
    scope"col" | "row"
    src/components/Table/Row/Row.tsx
    Prop nameTypeDefaultDescription
    childrenReactNodeRequired
    src/components/Typography/Base/Typography.tsx
    Prop nameTypeDefaultDescription
    childrenReactNodeRequired

    Features

    • Uses the compound component design pattern
    src/components/Typography/Heading/Heading.tsx
    Prop nameTypeDefaultDescription
    childrenReactNodeRequired
    idstring

    Provides the component with an id attribute. May be used for accessibility purposes.

    jumbobooleanfalse

    Increases the size by a multiplier factor. Can be applied to any level.

    level1 | 2 | 3 | 4 | 5 | 61

    Maps to tag size

    Features

    • Uses native html tags for accessibility
    • Supports multiple sizes

    Levels

    Anim do exercitation consequat aute irure ut sit.

    Anim do exercitation consequat aute irure ut sit.

    Anim do exercitation consequat aute irure ut sit.

    Anim do exercitation consequat aute irure ut sit.

    Anim do exercitation consequat aute irure ut sit.
    Anim do exercitation consequat aute irure ut sit.

    Jumbo

    Anim do exercitation consequat aute irure ut sit.

    src/components/Typography/Paragraph/Paragraph.tsx
    Prop nameTypeDefaultDescription
    childrenReactNodeRequired
    boldedbooleanfalse

    Toggles font weight to bold

    idstring

    Provides the component with an id attribute. May be used for accessibility purposes.

    size"small" | "medium" | "large"medium

    Size setting for component.

    Features

    • Uses native html tags for accessibility
    • Supports multiple
    • Support bolding text

    Default

    Dolor sunt pariatur laboris tempor enim id cupidatat sunt veniam. Id ullamco fugiat exercitation do adipisicing fugiat incididunt ut minim eiusmod qui. Culpa incididunt do dolore Lorem mollit culpa laboris cillum adipisicing. Consequat elit consequat esse magna sunt commodo velit deserunt fugiat. Labore cillum officia irure pariatur anim laborum laborum dolor magna exercitation enim. Ad mollit tempor nisi anim ex velit enim do quis ea nulla cillum est.

    Native text transforms

    Dolor sunt pariatur laboris tempor enim id cupidatat sunt veniam. Id ullamco fugiat exercitation do adipisicing fugiat incididunt ut minim eiusmod qui. Culpa incididunt do dolore Lorem mollit culpa laboris cillum adipisicing. Consequat elit consequat esse magna sun commodo velit deserunt fugiat. Labore cillum officia irure pariatur anim laborum laborum dolor magna exercitation enim. Ad mollit tempor nisi anim ex velit enim do quis ea nulla cillum est.

    Bold

    Dolor sunt pariatur laboris tempor enim id cupidatat sunt veniam. Id ullamco fugiat exercitation do adipisicing fugiat incididunt ut minim eiusmod qui. Culpa incididunt do dolore Lorem mollit culpa laboris cillum adipisicing. Consequat elit consequat esse magna sunt commodo velit deserunt fugiat. Labore cillum officia irure pariatur anim laborum laborum dolor magna exercitation enim. Ad mollit tempor nisi anim ex velit enim do quis ea nulla cillum est.

    Small

    Dolor sunt pariatur laboris tempor enim id cupidatat sunt veniam. Id ullamco fugiat exercitation do adipisicing fugiat incididunt ut minim eiusmod qui. Culpa incididunt do dolore Lorem mollit culpa laboris cillum adipisicing. Consequat elit consequat esse magna sunt commodo velit deserunt fugiat. Labore cillum officia irure pariatur anim laborum laborum dolor magna exercitation enim. Ad mollit tempor nisi anim ex velit enim do quis ea nulla cillum est.

    Large

    Dolor sunt pariatur laboris tempor enim id cupidatat sunt veniam. Id ullamco fugiat exercitation do adipisicing fugiat incididunt ut minim eiusmod qui. Culpa incididunt do dolore Lorem mollit culpa laboris cillum adipisicing. Consequat elit consequat esse magna sunt commodo velit deserunt fugiat. Labore cillum officia irure pariatur anim laborum laborum dolor magna exercitation enim. Ad mollit tempor nisi anim ex velit enim do quis ea nulla cillum est.