Autenticação com o Github Packages
A biblioteca do Delta
é privada e pode ser acessada apenas por usuários que estejam na organização @escaletech
.
Na raiz do projeto, crie ou edite o arquivo .npmrc
e inclua o texto abaixo neste arquivo.
@escaletech:registry=https://npm.pkg.github.com
Execute o comando abaixo para iniciar a autenticação com o Github packages
.
yarn login --registry=https://npm.pkg.github.com
Instalação
Instale a biblioteca a partir de sua linha de comando.
- npm
- Yarn
- pnpm
npm install @escaletech/delta
yarn add @escaletech/delta
pnpm add @escaletech/delta
Utilização
Criação de um tema
Nesta seção, criaremos um tema simples para o componente Button.
Crie uma pasta chamada theme
e dentro desta pasta um arquivo typescript
para criarmos o nosso tema. Neste caso, irei chamá-lo de stitches.ts
.
- theme
- stitches.ts
Neste arquivo, importemos a função extendsTheme
que realizará a criação do nosso tema personalizado.
Para mais informações sobre os
tokens
e como customizar o tema por completo, visita a página Tema Customizado.
import { extendsTheme } from '@escaletech/delta'
const theme = extendsTheme({
colors: {
buttonPrimaryBackgroundColor: 'red'
},
radii: {
buttonBorderRadius: 0
}
})
A função extendsTheme
retorna uma string
que é a classe de CSS
criada pela a função. Devemos utilizar esta classe na tag
mais alta na estrutura da hierarquia do html
.
Utilizamos como padrão, o framework Next.JS para criar aplicações React
com a renderização do lado do servidor.
Para utilizar o tema criado pelo o Delta
, importe a constante theme
no arquivo _app.js ou _app.tsx
em seu projeto Next.JS
.
Para mais informações sobre este arquivo, acesse a página oficial do
Next.JS
Custom App
import type { AppProps } from 'next/app'
import { theme } from 'theme/stitches'
function MyApp ({ Component, pageProps }: AppProps) {
return (
<div className={theme}>
<Component
{...pageProps}
/>
</div>
)
}
export default MyApp
Estamos quase lá!
No tutorial abaixo, estaremos adicionando os estilos no lado do servidor.
Server Side Rendering
Você deverá ter habilitada a feature Custom Document
do framework. Veja mais em: Custom Document - NextJS
Importe o componente <InjectSSRStyles />
no arquivo _document
na pasta pages
como no exemplo abaixo.
import Document, { Html, Head, Main, NextScript } from 'next/document'
import { InjectSSRStyles } from '@escaletech/delta'
class MyDocument extends Document {
static async getInitialProps(ctx) {
const initialProps = await Document.getInitialProps(ctx)
return { ...initialProps }
}
render() {
return (
<Html>
<Head>
<InjectSSRStyles />
</Head>
<body>
<Main />
<NextScript />
</body>
</Html>
)
}
}
export default MyDocument
Agora, você poderá importar o componente <Button />
em sua aplicação, e verá ele estilizado conforme o nosso tema.
Contribuindo
PR's no Delta são sempre bem-vindos, consulte nossas diretrizes de contribuição para saber como você pode contribuir para este projeto.