
Product
Introducing Webhook Events for Alert Changes
Add real-time Socket webhook events to your workflows to automatically receive software supply chain alert changes in real time.
@gama-academy/smash
Advanced tools
- 📌 [O que é?](#o-que-é) - 🛠 [Tecnologias](#tecnologias) - 🚀 [Instalação](#instalação) - [Utilizando os componentes no React Native](#usando-com-react-native) - ↗️ [Publicando](#publicando) - 📁 [Estruturade de pastas](#estrutura-de-pastas) - ↗️ [Publi
O Smash é o projeto de Design System da Gama Academy no qual consiste todos os componentes e suas documentações.
Temos como objetivo centralizar a criação de componentes utilizados nos projetos mais atuais da Gama Academy, mantendo assim a padronização de design e código.
Utilizamos o Storybook como ferramenta de documentação que nos possibilita testar os componentes ao vivo.
Os componentes são criados para atender aplicações tanto web em React quanto mobile em React Native; Ambos utilizando TypeScript.
Para gerar o build da lib utilizamos o React Native Builder bob
Para clonar esta aplicação você precisará do Git, Node.js e Yarn instalados na sua máquina.
# Clonando o repositório
$ git clone https://github.com/gamaacademy/smash
# Vá até o repositório
$ cd smash
# Instale as dependências
$ yarn install
# Inicie o storybook
$ yarn storybook
# Iniciará na porta 6006
Acessará uma página similar a essa:
Será necessário aplicar um link das fontes utilizadas no projeto, para que a aplicação consiga lê-las de forma correta.
Para linkar as fontes ao projeto RN, crie um arquivo chamado react-native.config.js na raiz do projeto com o seguinte conteúdo:
module.exports = {
assets: ["./assets/fonts/"], // path de onde os arquivos de fonte estão localizados
};
Em seguida rode o comando:
$ npx react-native link
É uma alternativa para vincular manualmente a dependência em seu projeto. Funciona tanto para Android quanto para iOS.
Para mais informações poderá acessar o Guia completo para link de fontes.
Os componentes a serem desenvolvidos, foram mapeados e categorizados, de forma que tais categorias influenciarão na organização das pastas do projeto. Lembre-se de seguir os padrões de desenvolvimento durante a criação do componente.
Categoria utilizada para qualquer tipo de elemento que possua uma interação (click) e feedback ao usuário.
Cards são componentes simples, normalmente utilizados por outros componentes e nunca sozinho.
Todo e qualquer tipo de componente que seja referente à um formulário.
A ideia aqui, é que exista um input, o input-base e os demais sejam uma derivativa deste componente
A categoria de icones está dividida em três componentes: icon, gama e material.
Tanto gama quanto material são duas famílias de icones (como famílias de fontes por exemplo).
Importante: Na hora de usar este componente, sempre será chamado somente o componente icon, que será o componente central, que irá consumir os icones de gama e material
Quaisquer componentes que sejam controladores ou possuam algum padrão de estilo em imagens
Componentes utilizados para dar um feedback visual ao usuário que algum elemento (ou tela inteira) esteja carregando.

Componentes utilizados para montagem e controle das telas no aplicativo final.
Componentes referentes à navegação entre páginas dentro do aplicativo.
Elementos que indiquem algum tipo de progresso, seja em porcentagem, dots, timeline e etc.
Todos os elementos referentes à exibição de texto ou controle de fontes
Veja abaixo, um exemplo de como deve ficar a estrutura do projeto, com seus componentes devidamente categorizados
📦 smash
┣ 📂 src
┃ ┣ 📂 components
┃ ┃ ┣ 📂 buttons
┃ ┃ ┃ ┣ 📂 button
┃ ┃ ┃ ┃ ┣ 📜...
┃ ┃ ┃ ┃ ┗ 📜button.comp.tsx
┃ ┃ ┃ ┃
┃ ┃ ┃ ┣ 📂 social-button
┃ ┃ ┃ ┃ ┣ 📜...
┃ ┃ ┃ ┃ ┗ 📜social-button.comp.tsx
┃ ┃ ┃ ┃
┃ ┃ ┃ ┗ 📜index.ts
┃ ┃ ┃
┃ ┃ ┣ 📂 cards
┃ ┃ ┃ ┣ 📂 card
┃ ┃ ┃ ┃ ┣ 📜...
┃ ┃ ┃ ┃ ┗ 📜card.comp.tsx
┃ ┃ ┃ ┃
┃ ┃ ┃ ┗ 📜index.ts
┃ ┃ ┃
┃ ┃ ┣ 📂 forms
┃ ┃ ┃ ┣ 📂 input-base
┃ ┃ ┃ ┃ ┗ 📜input-base.comp.tsx
┃ ┃ ┃ ┃
┃ ┃ ┃ ┣ 📂 input
┃ ┃ ┃ ┃ ┣ 📜...
┃ ┃ ┃ ┃ ┗ 📜input.comp.tsx
┃ ┃ ┃ ┃
┃ ┃ ┃ ┣ 📂 input-password
┃ ┃ ┃ ┃ ┣ 📜...
┃ ┃ ┃ ┃ ┗ 📜input-password.comp.tsx
┃ ┃ ┃ ┃
┃ ┃ ┃ ┣ 📂 input-email
┃ ┃ ┃ ┃ ┣ 📜...
┃ ┃ ┃ ┃ ┗ 📜input-email.comp.tsx
┃ ┃ ┃ ┃
┃ ┃ ┃ ┣ 📂 input-search
┃ ┃ ┃ ┃ ┣ 📜...
┃ ┃ ┃ ┃ ┗ 📜input-search.comp.tsx
┃ ┃ ┃ ┃
┃ ┃ ┃ ┣ 📂 select
┃ ┃ ┃ ┃ ┣ 📜...
┃ ┃ ┃ ┃ ┗ 📜select.comp.tsx
┃ ┃ ┃ ┃
┃ ┃ ┃ ┣ 📂 flat-checkbox
┃ ┃ ┃ ┃ ┣ 📜...
┃ ┃ ┃ ┃ ┗ 📜flat-checkbox.comp.tsx
┃ ┃ ┃ ┃
┃ ┃ ┃ ┣ 📂 checkbox
┃ ┃ ┃ ┃ ┣ 📜...
┃ ┃ ┃ ┃ ┗ 📜checkbox.comp.tsx
┃ ┃ ┃ ┃
┃ ┃ ┃ ┗ 📜index.ts
┃ ┃ ┃
┃ ┃ ┣ 📂 icons
┃ ┃ ┃ ┣ 📂 gama
┃ ┃ ┃ ┃ ┗ 📜...
┃ ┃ ┃ ┃
┃ ┃ ┃ ┣ 📂 icon
┃ ┃ ┃ ┃ ┗ 📜 ...
┃ ┃ ┃ ┃ ┗ 📜icon.comp.tsx
┃ ┃ ┃ ┃
┃ ┃ ┃ ┣ 📂 material
┃ ┃ ┃ ┃ ┗ 📜...
┃ ┃ ┃ ┃
┃ ┃ ┃ ┗ 📜index.ts
┃ ┃ ┃
┃ ┃ ┣ 📂 images
┃ ┃ ┃ ┣ 📂 avatar
┃ ┃ ┃ ┃ ┣ 📜...
┃ ┃ ┃ ┃ ┗ 📜avatar.comp.tsx
┃ ┃ ┃ ┃
┃ ┃ ┃ ┗ 📜index.ts
┃ ┃ ┃
┃ ┃ ┣ 📂 loadings
┃ ┃ ┃ ┣ 📂 loader
┃ ┃ ┃ ┃ ┣ 📜...
┃ ┃ ┃ ┃ ┗ 📜loader.comp.tsx
┃ ┃ ┃ ┃
┃ ┃ ┃ ┣ 📂 spinner
┃ ┃ ┃ ┃ ┣ 📜...
┃ ┃ ┃ ┃ ┗ 📜spinner.comp.tsx
┃ ┃ ┃ ┃
┃ ┃ ┃ ┣ 📂 skeleton
┃ ┃ ┃ ┃ ┣ 📜...
┃ ┃ ┃ ┃ ┗ 📜skeleton.comp.tsx
┃ ┃ ┃ ┃
┃ ┃ ┃ ┗ 📜index.ts
┃ ┃ ┃
┃ ┃ ┣ 📂 layout
┃ ┃ ┃ ┣ 📂 screen
┃ ┃ ┃ ┃ ┣ 📜...
┃ ┃ ┃ ┃ ┗ 📜screen.comp.tsx
┃ ┃ ┃ ┃
┃ ┃ ┃ ┣ 📂 scrollview
┃ ┃ ┃ ┃ ┣ 📜...
┃ ┃ ┃ ┃ ┗ 📜scrollview.comp.tsx
┃ ┃ ┃ ┃
┃ ┃ ┃ ┣ 📂 view
┃ ┃ ┃ ┃ ┣ 📜...
┃ ┃ ┃ ┃ ┗ 📜view.comp.tsx
┃ ┃ ┃ ┃
┃ ┃ ┃ ┗ 📜index.ts
┃ ┃ ┃
┃ ┃ ┣ 📂 navigations
┃ ┃ ┃ ┣ 📂 horizontal-scroll
┃ ┃ ┃ ┃ ┣ 📜...
┃ ┃ ┃ ┃ ┗ 📜horizontal-scroll.comp.tsx
┃ ┃ ┃ ┃
┃ ┃ ┃ ┗ 📜index.ts
┃ ┃ ┃
┃ ┃ ┣ 📂 progress
┃ ┃ ┃ ┣ 📂 progress-bar
┃ ┃ ┃ ┃ ┣ 📜...
┃ ┃ ┃ ┃ ┗ 📜progress-bar.comp.tsx
┃ ┃ ┃ ┃
┃ ┃ ┃ ┣ 📂 time-line
┃ ┃ ┃ ┃ ┣ 📜...
┃ ┃ ┃ ┃ ┗ 📜time-line.comp.tsx
┃ ┃ ┃ ┃
┃ ┃ ┃ ┗ 📜index.ts
┃ ┃ ┃
┃ ┃ ┣ 📂 typography
┃ ┃ ┃ ┣ 📂 text
┃ ┃ ┃ ┃ ┣ 📜...
┃ ┃ ┃ ┃ ┗ 📜text.comp.tsx
┃ ┃ ┃ ┃
┃ ┃ ┃ ┣ 📂 badge
┃ ┃ ┃ ┃ ┣ 📜...
┃ ┃ ┃ ┃ ┗ 📜badge.comp.tsx
┃ ┃ ┃ ┃
┃ ┃ ┃ ┗ 📜index.ts
┃ ┃ ┃
┃ ┃ ┗ 📜 index.ts
┃ ┃
┃ ┣ 📂 theme
┃ ┗ 📂 utils
┃
┗ 📜 ...
yarn version --patch # --major or --minor
git push --tags
git checkout -b feature/FeatureIncrivelgit add .git commit -m 'Adicionando uma Feature incrível!git push origin feature/FeatureIncrivelThis project is under the MIT license. See the LICENSE for details.
Made with ♥ by Gama Academy - Tech Team :wave: Get in touch!
FAQs
- 📌 [O que é?](#o-que-é) - 🛠 [Tecnologias](#tecnologias) - 🚀 [Instalação](#instalação) - [Utilizando os componentes no React Native](#usando-com-react-native) - ↗️ [Publicando](#publicando) - 📁 [Estruturade de pastas](#estrutura-de-pastas) - ↗️ [Publi
The npm package @gama-academy/smash receives a total of 3 weekly downloads. As such, @gama-academy/smash popularity was classified as not popular.
We found that @gama-academy/smash demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 2 open source maintainers collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Product
Add real-time Socket webhook events to your workflows to automatically receive software supply chain alert changes in real time.

Security News
ENISA has become a CVE Program Root, giving the EU a central authority for coordinating vulnerability reporting, disclosure, and cross-border response.

Product
Socket now scans OpenVSX extensions, giving teams early detection of risky behaviors, hidden capabilities, and supply chain threats in developer tools.