Skip to main content

Using Components and Patterns

Nimbus components are elements that enable creating custom interfaces as needed and should be used when there is no standard or template that meets the use case. When applying these templates, the goal is to ensure cohesion with Nuvemshop products and maintain consistency of use with existing interfaces.

Paying attention to component assignments is crucial to preserve consistency of experience, making navigation easier for users already familiar with Nuvemshop.

Check the homologation checklist

Atomic and Composite Components

Component Categorization

  • Atomic Components: are essential elements of the design system and are indivisible.
  • Composite Components: are compositions of atomic components.

Component Assignments

Each component falls into a category of assignment, in order to maintain consistency of experience across different apps and products, it is necessary to follow the uses described below.

AssignmentComponents
Navigation/ActionButton , Icon Button , Link , and Toggle .
FormsInput , Textarea , Checkbox , Radio , Select , and File Uploader .
OrganizationBox , Chip , List , Popover , Table , Accordion , Sidebar , Card , Modal , Pagination , and Tabs .
Informative/DecorativeTitle , Text , Label , Badge , Tag , Toast , Alert , Icon , Thumbnail , Tooltip , Spinner , and Skeleton .

Composition Patterns

What Are Nimbus Patterns?

Nimbus has a variety of patterns that essentially bring together atomic and composite components combined with Nuvemshop's business rules. These resources promote greater consistency and optimize the construction of native applications and partner products.

How to Choose the Right Patterns?

To understand which patterns we should use, it is necessary to analyze the experience we are designing and look for similar applications within the range of existing use cases.

Below, we categorize patterns by functionality. To learn more about their assignments, we recommend reading their documentation.

FunctionalityComponents
Element OrganizationData List , Data Table , Product Updates , Interactive List , Side Modal , Layout , App Shell , and Page .
InteractiveCallout Card , Menu , Menu Button , Nav Tabs , Thumbnail with action , and Form Field .
InformationalEmpty Message and Help Link .

Pattern Customization Limits In order to maintain consistency, which is the main focus of this resource, we must adhere to the limitations of property customization, not including or rearranging elements arbitrarily through overrides. In other words, we must always prioritize consistency with the rest of the products and applications.

Form Components

To receive or send data, we must respect usage recommendations according to the type of information. Below, we separate form components and the corresponding types of information they can send/receive.

Type of InformationComponent
Short TextInput
Long TextTextarea
Multiple Choice SelectionCheckbox
Single Choice SelectionRadio and Select
Image and/or FilesFile Uploader

Form Field Pattern

Nimbus provides a Form Field pattern that combines the Label and Helper Text with the main form fields and their respective appearances, making it easier to implement by our teams and partners.

Field Specification

Labels - Form fields should be clearly labeled, making it clear what type of information we expect to receive; we can do this using the Label component.

Helper Text - Fields can also be accompanied by helper texts, guiding users to enter valid information or indicating fields that have been filled out incorrectly or incompletely.

Appearance - Components have standard, error, success, and danger states to support validations and should be marked whenever a validation occurs.

Customization and Flexibility

Prohibited Overrides

Customization of components should be restricted to the properties available in Storybook and the UI Kit, and the practice of overrides is prohibited. If there is a need for modification or addition of properties, a discussion should be opened in the Github repository.

Pattern Construction

It is allowed to construct new compositions of components as long as there is no other pattern that can solve the imposed challenge. To ensure, it is recommended to open a discussion in the Github repository.

Local Component Construction

If the components do not meet the product's needs, it is possible to design a local component, but this feature should be used sparingly. To ensure, it is recommended to open a discussion in the Github repository.


Next Steps