A @tst-labs/basilar é uma proposta de biblioteca de componentes, inicialmente direcionada aos desenvolvedores do TST, contendo as bases necessárias para a construção de UIs em React e Material UI, que leva em consideração os elementos (design tokens) estabelecidos pelo Manual de Identidade Visual JT/TST.
Nesse primeiro momento, a @tst-labs/basilar está configurada para usar as versões v5.6.4 da MUI e v18.1.0 do React. Em um momento futuro (não muito distante) pretendemos torná-la compatível com as versões mais antigas em uso nos projetos de front end em produção no TST.
Instale a @tst-labs/basilar
como dependência no seu projeto React
yarn add @tst-labs/basilar
Recomendamos o uso de
yarn
em seus projetos, mas não é uma exigência.
Em seguida é só escolher que funcionalidades exportadas pela @tst-labs/basilar
deseja usar no seu projeto. Por exemplo, use o tema padrão do TST em seu projeto:
import React from 'react';
import ReactDOM from 'react-dom/client';
import CssBaseline from '@mui/material/CssBaseline';
import { ProvedorTemaTST } from '@tst-labs/basilar';
import App from './app/app';
import './index.css';
const root = ReactDOM.createRoot(document.getElementById('root'));
root.render(
<React.StrictMode>
<ProvedorTemaTST>
<CssBaseline />
<App />
</ProvedorTemaTST>
</React.StrictMode>
);
Usamos Node.js v16.x, mas já foi testada com v14.x e funciona bem. Recomendamos o uso do nvm para gerencia as versões do Node em sua máquina de trabalho.
Usamos o yarn
nesse projeto. No diretório do projeto você pode executar os seguintes de scripts:
Empacota a biblioteca, usando o rollup
, no diretório dist/
.
Empacota a biblioteca, usando o rollup
, no diretório dist/
e fica verificando alterações a serem reempacotadas.
Inicia uma sessão interativa de testes executando react-scripts test
.
Executa react-scripts test
mas configurado para ser usado em pipelines de CI/CD.
Adotaremos um processo de trabalho manual para adicionar novos componentes à @tst-labs/basilar descrita nos passos a seguir.
# ### Pode usar https ou ssh, como preferir. Abaixo uso SSH.
git clone [email protected]:tst-labs/basilar.git
# ### Mude para o diretório do projeto
cd basilar
# ### IMPORTANTE: Usamos o yarn nesse projeto. Evite problemas!
yarn
# ### Ou
# yarn install
Os componentes deverão ser organizados abaixo do diretório src/componentes/
em diretórios próprios e exportados em arquivos index.js
. O diretório raíz dos componentes (supracitado) tem o index.js
que exporta tudo da biblioteca.
Explore o diretório de componentes para ter ideia de como organizar os novos componentes.
# ### Ao usar o yarn link você instalará a biblioteca no repositório global do host.
# ### No diretório raíz do projeto execute o seguinte comando:
yarn link
# ### No diretório raíz do projeto que usará a biblioteca execute o seguinte comando:
yarn link @tst-labs/basilar
Agora é só incluir o novo componente e testar em sua aplicação.
# ### No diretório raíz do projeto:
git checkout -b novo-componente-fantastico
# ### Envie a nova *branch* para o repositório principal no Github:
git push --set-upstream origin novo-componente-fantastico
E crie um novo Pull Request explicando o que está sendo proposto para inclusão na biblioteca. Marque o PR como WIP (Work In Progress) para evitar que seja incorporado à biblioteca acidentalmente.
Essa conversa pode demorar caso haja alguma discordância entre os mantenedores sobre o componente sendo proposto, por isso não é bom contar com uma atualização automática da biblioteca tão logo o código seja enviado ao repositório principal.
Assim que os MRs abertos sejam aceitos a documentação em Storybook da biblioteca já será atualizada, mas a biblioteca em si ainda dependerá de uma release para que seja publicada em uma nova versão na registry do npmjs.com.
TODO:
Usamos licença MIT para esse projeto.
- @lemos.dev