• Stars
    star
    156
  • Rank 239,589 (Top 5 %)
  • Language
    TypeScript
  • License
    MIT License
  • Created almost 2 years ago
  • Updated 9 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Atomium is an internal design system for 'Juntos Somos Mais' using Web Components

atomium-readme

Atomium - Design System

Release Status Coverage


Atomium is an internal design system for Juntos Somos Mais, using Web Components

Project Package Version Documentation
Core @juntossomosmais/atomium version README
React @juntossomosmais/atomium/react version README
Tokens @juntossomosmais/atomium-tokens version README

About

It is built using a variety of powerful technologies, including:

  • NX: a set of extensible dev tools for monorepos, which helps us build and manage multiple projects within a single repository.
  • Stencil: a web component compiler that generates standard-compliant components using TypeScript, JSX, and HTML.
  • Ionic: a set of UI components and tools that help developers build performant, high-quality mobile and desktop applications using web technologies.
  • Storybook: a user interface development environment and testing tool that allows us to create and showcase components in isolation.
  • Typescript: a typed superset of JavaScript that compiles to plain JavaScript, providing powerful tools for building large-scale applications.
  • Web Components: a set of standards that enable the creation of reusable, encapsulated components using open web technologies.

Getting Started

Clone the repository via ssh

git clone [email protected]:juntossomosmais/atomium.git

Copy .npmrc.example to .npmrc.

Replace <your-github-token-here> in the .npmrc file with your GitHub PAT. Your PAT should have following scopes: repo and write:packages.

Installation

npm i
npm run build

If you get errors about unresolved dependencies, you may need to run npm i --legacy-peer-deps instead.

Running Storybook and Stencil

npm start

If you want to run React Stories locally, you need to run the following command before npm start:

npm run docs-react:start

Running Tests

npm test

Building

## Build Libs
npm run build

## Build Storybook
npm run docs:build

Main folder structure

  • apps/docs: Contains the main documentation for the project.
  • apps/docs-react: Provides a React version of Storybook for showcasing components.
  • packages/core: The core of Atomium, responsible for building all the components.
  • packages/react: The React version of Atomium, automatically generated by Stencil.
  • packages/tokens: Contains the design tokens for Atomium, where all the tokens are defined.
  • packages/icons: Contains the icons used in Atomium, where all the icons are stored.
  • utils/**: Contains utility modules used throughout the project, providing various helper functions and tools.

Stories Documentation

We are using Storybook to document our components.

Writing Stories

Components stories are written in packages/core/**/*.core.mdx files to Web Components version and packages/core/**/*.react.mdx files to React version and are automatically loaded by Storybook. You also can using a shared file called packages/**/*.args.ts to share the same args between Web Components and React version.

Tokens stories are written in packages/tokens/**/*.mdx files.

General documentation is written in apps/docs/**/*.mdx files.

These files are written in MDX.

Syntax Highlighting

To enable syntax highlighting in your editor, you need to install the following extensions:

Local test using NPM Link

To locally test Atomium using NPM Link, follow the steps below:

Build the Atomium libraries by running the following command in the root directory of the Atomium project

npm run core:build

Link the Atomium libraries by navigating to the node_modules/@juntossomosmais/atomium directory

cd node_modules/@juntossomosmais/atomium
npm link

Import Atomium into your project by linking it using NPM Link. Navigate to your project's directory and run the following command

npm link @juntossomosmais/atomium

This will create a symbolic link between your project and the locally built Atomium libraries.

Now you can use the imported Atomium components in your project and test them locally. Make sure to revert these changes and remove the NPM Link when you're done testing to avoid any conflicts or unexpected behavior with the actual installed version of Atomium in your project.

By following these steps, you can easily test and verify any customizations or modifications you have made to Atomium locally using NPM Link.

Contributing

!important, as it's an internal design system, we don't accept external suggestions to change or add new components.

We only accept contributions from Juntos Somos Mais members, but you could like our project and use it as a reference to build your own design system.

More Repositories

1

frontend-guideline

πŸ“ Front-end Guideline by Juntos Somos Mais
1,132
star
2

frontend-challenge

πŸš€ Our hiring challenge to Front-end Developers
477
star
3

venice

[outdated] Design System of @juntossomosmais
TypeScript
147
star
4

code-challenge

Conheça nosso desafio para trabalhar conosco como engenheiro de software
46
star
5

django-outbox-pattern

A django application to make it easier to use the transactional outbox pattern
Python
46
star
6

time-out-market

Time Out Market is a market of shared JavaScript libraries to help you save time and effort
JavaScript
45
star
7

django-stomp

πŸ”ƒ A simple implementation of STOMP with Django
Python
37
star
8

regex4ocr

Plug regular expression models into OCR string results of document pictures to extract structured data!
Python
23
star
9

frontend-dojo

Coding Dojo - Frontend
JavaScript
20
star
10

jsm-component-generator

VSCode Extension to generate code
TypeScript
13
star
11

gitflow

A repository with the gitflows used by JS+ teams
12
star
12

python-fluentd-testing

Test your fluentd configuration leaving manual approach aside
Python
11
star
13

react-native-responsys

Use Oracle Responsys SDK in your React Native project
Objective-C
11
star
14

request-id-django-log

πŸ”– A simple way to implement request_id in Django
Python
10
star
15

JSM.FluentValidation.AspNet.AsyncFilter

ASP.NET filter that performs async validation using FluentValidation
C#
9
star
16

opentelemetry-instrumentation-django-stomp

This library will help you to use opentelemetry traces and metrics on Django STOMP usage library.
Python
7
star
17

JsTalks-testesFrontend

JavaScript
6
star
18

poc-couchdb

C#
6
star
19

auth0-samples

Having trouble integrating with Auth0? Just look at this repository and understand this process once and for all.
Python
5
star
20

serilog-enrichers-request-user-id

Enrich Serilog log events with the request's user Id from ClaimsPrincipal
C#
5
star
21

code-challenge-qa

Conheça nosso desafio para trabalhar conosco como profissional de QA
4
star
22

django-stomp-debug-callback

App to help us to understand database calls on consumer used on django-stomp
Python
3
star
23

http-utils

A simple requests session wrapper.
Python
3
star
24

terraform-development-image

Use it to play with Terraform using AZ CLI, AWS CLI, and other tools.
3
star
25

JSM.Swashbuckle.AspNetCore

Add new functionality to Swashbuckle.AspNetCore
C#
2
star
26

drf-link-navigation-pagination

Yet another pagination class for DRF to set host address by header
Python
2
star
27

jedi-academy

JS+ playbook
JavaScript
2
star