Neobrutalismo

O neubrutalism é cor plana e tinta grossa: cada superfície tem contorno, e tudo o que se destaca da página projeta uma sombra dura, sem desfoque. Premir um controlo afunda-o na sua própria sombra, e um interruptor ligado fica lá. Os preenchimentos suaves são pastéis vivos com texto escuro por cima, os sólidos ficam escuros o suficiente para levar uma etiqueta branca, e no modo escuro a tinta passa a creme, porque uma sombra preta não se veria numa página escura.

Um cartão

A mesma marcação, com outro estilo graças a uma só folha.

  1. Conta

  2. Perfil

  3. Confirmar

Progresso50%
50
Guardado
As suas alterações já estão publicadas.
Copiado para a área de transferência
O que é um preset?
Uma segunda folha que muda o estilo de todos os componentes de uma vez.
Segue o modo escuro?
Sim — experimenta o interruptor no topo da página.
Ainda posso usar o theme()?
Sim, e ele prevalece sobre o preset.
  1. Hoje

    Preset publicado

    O aspeto todo, numa chamada.

  2. Ontem

    Documentação escrita

  3. Segunda-feira

    Primeiro esboço

O aspeto todo, numa chamada.
Liga-o depois da folha principal.
Uma opção: preset.
RascunhoPublicadoArquivado
AL312GH

Como usar

import { styles } from 'sitelo/ui'

head(
  title('O meu site'),
  styles({ preset: 'neubrutalism' }),
)
// <link rel="stylesheet" href="/su/ui-c9428b65.css">
// <link rel="stylesheet" href="/su/neubrutalism-3f1a9c42.css">

Pinta também a página com var(--su-bg), e ela fica com o creme do preset, com as superfícies brancas a destacarem-se.

body {
  background: var(--su-bg);
}

As tuas próprias cores

O theme() continua a funcionar por cima, por isso um preset é um ponto de partida e não um fork. Este acrescenta dois tokens próprios: --su-nb-ink, a cor com que se desenham todas as linhas e sombras, e --su-nb-lift, a distância a que um controlo em relevo fica da página — e, portanto, quanto um clique o desloca.

head(
  styles({ preset: 'neubrutalism' }),
  theme({
    primary: { base: '#c2185b', hover: '#a8144e', active: '#8e1042', soft: '#ffb3d0', softFg: '#5c0a2a' },
    '--su-nb-lift': '6px',
  }),
)