Uma interface só para login, admin, CRM, empresas, Inside, candidatos e portal. Tudo aqui vem do pacote comum: nenhum app copia componente de outro.
O pacote é distribuído em TypeScript pelo GitHub Packages da MK4. O app compila junto (transpilePackages).
# .npmrc do app
@mk4combr:registry=https://npm.pkg.github.com
//npm.pkg.github.com/:_authToken=${NPM_TOKEN}
npm i @mk4combr/inthegra-ui
// next.config.ts
transpilePackages: ["@mk4combr/inthegra-ui"]
/* globals.css */
@import "tailwindcss";
@import "@mk4combr/inthegra-ui/estilos.css";
@source "../node_modules/@mk4combr/inthegra-ui/src";
// componentes, rótulos, formatação, sessão
import { AppShell, Button, Cartao } from "@mk4combr/inthegra-ui/componentes";
import { STATUS_VAGA, type Linha } from "@mk4combr/inthegra-ui/banco";
import { exigirPerfil } from "@mk4combr/inthegra-ui/auth/servidor";Tema único, escuro. Cada cor tem um papel fixo; fora dele, não usar.
Superfícies do tema escuro
ink-950
#0b0816
ink-900
#110c22
ink-850
#16102c
ink-800
#1d1638
ink-700
#2a2150
ink-600
#3a2f6b
fg para texto, muted para apoio, faint para legenda
fg
#f3eef9
muted
#b8aecb
faint
#8b81a6
Ação principal e marca (troca no white label)
magenta-400
#f04fb5
magenta-500
#e0189a
magenta-600
#b90e79
IA (Thea) e superfícies de marca
violet-300
#cfc6ff
violet-400
#b8aef2
violet-500
#8c78f0
violet-600
#6c58db
Só recompensas e gamificação
ember-400
#ff9a4d
ember-500
#ff7a2f
ember-600
#f05a14
mint positivo, amber atenção, rose negativo
mint-500
#3ddc97
amber-500
#f5b841
rose-500
#ff5470
Bricolage Grotesque para títulos, Geist para texto, Geist Mono para números (classe num).
Contratação que joga junto
Texto corrido em Geist, 15 px, cor muted para apoio e fg para o principal.
4.210 candidatos · R$ 1.234,56
Pílula sempre. Primário em magenta, recompensa em ember, o resto neutro.
Estado e categoria. Dois tamanhos.
Status, soluções e transições espelham o banco (api.inthegrath.com.br). Mudou lá, muda aqui.
Sem foto, o avatar mostra as iniciais. Empresa cliente aparece com o monograma nas cores dela.
Vagas ativas
Candidaturas no mês
12% a mais que setembro
Faturado
Taxa de liberação
Nenhuma vaga com esses filtros. O estado vazio sempre diz o porquê.
Rótulo sempre visível; erro abaixo do campo, em rose.
Estado fica no componente pai.
Lista de vagas da empresa, com status e inscritos.
Barra lateral com seções no desktop, navegação rolável no celular.
A casca ocupa a tela inteira, por isso fica numa página própria.
Abrir a demonstração da cascaestiloDaMarca() troca as variáveis de cor da marca. Mesmo componente, cor de cada cliente.
Sempre pt-BR e fuso de São Paulo.