Template de Tema Canvas

|||
|-|-|-|
| :information_source: | Resumo | Inicie rapidamente o design do seu tema com um modelo de tema preparado.
| :eyes: |Público| Novos desenvolvedores que desejam começar a criar temas para o Discourse. Desenvolvedores experientes que desejam usar um modelo pronto. |
| :hammer_and_wrench:|Repositório| Manuel Kostka / Discourse / Canvas / Canvas Theme Template · GitLab |
| :question:|Guia de Instalação|Como instalar um tema ou componente de tema|
| :open_book:|Novo em Temas do Discourse?| Guia para iniciantes no uso de Temas do Discourse|

O Canvas fornece um modelo flexível que permite criar temas personalizados com menos código. Ajuste facilmente propriedades e valores de configuração para adaptar um tema às suas necessidades.

Exemplos de visualizações


O modelo base mantém os valores padrão e permanece neutro no design.

Ajustes mínimos que modificam algumas propriedades personalizadas e definem uma cor de destaque:

Um design que integra o componente Topic Cards e estilos personalizados para banners:

Um tema elaborado que inclui uma fonte personalizada e esquemas de cores exclusivos:

Uso


  1. Clone o Modelo de Tema.

  2. Sincronize o tema com sua instância do Discourse usando o gem discourse_theme.

  3. Vá para o backend de administração e ajuste manualmente estas configurações do componente de tema:
    Banners de Categoria
    Plugin outlet → above-main-container
    Banners de Tag
    Mostrar abaixo do cabeçalho do site → desmarcar
    Mostrar acima do contêiner principal → marcar

  4. Edite scss/properties.scss para definir valores para propriedades personalizadas

  5. Edite about.json para adicionar ativos, esquemas de cores e mais componentes de tema

Uma olhada mais de perto na configuração


O modelo Canvas Theme apenas estende o esqueleto do tema padrão, agrupando alguns componentes de tema e adicionando alguns arquivos de estilo prontos. As funcionalidades reais são tratadas por um componente de tema separado, Canvas Settings. Este componente serve duas funções:

Essa configuração dividida permite que você crie um tema usando o modelo Canvas, enquanto ainda se beneficia das correções e atualizações contínuas fornecidas por meio do componente.

Exemplos de temas


Você pode revisar o código das visualizações de exemplo compartilhadas ou instalá-las como seu tema inicial nestes repositórios:


:tada: Um enorme agradecimento ao Discourse por patrocinar o desenvolvimento deste projeto!

24 curtidas

Essas configurações de tema não aparecem quando tentei instalar os temas de exemplo. Esse é o comportamento esperado?

1 curtida

As configurações estão no componente de tema instalado como Configurações do Canvas. Talvez seja um pouco confuso que as configurações sempre sejam chamadas de Configurações do Tema na interface, também nos componentes de tema.

2 curtidas

Encontrados no componente Configurações da Tela, obrigado!

3 curtidas

Muito obrigado por trabalhar nisso, @manuel.

Eu testei a versão Editor localmente, funcionou muito bem na maior parte, mas notei alguns pequenos problemas.


Em uma instalação padrão, sem alterar nenhuma configuração, o rótulo da tag no componente Extra Banners aparece no lugar errado:

O banner da categoria também é exibido no mesmo lugar, acima da barra lateral. Os tópicos mais recentes e os tópicos em alta são exibidos corretamente na coluna principal.


Imagino que não seja um objetivo do tema cobrir totalmente a interface de administração, no entanto, as paletas de cores clara e escura do Editor fazem com que a barra lateral de administração pareça bem diferente. Fiquei curioso se é possível harmonizar com a barra lateral não administrativa.

5 curtidas

O tema destina-se a mostrar banners ao lado da barra lateral, usando o outlet above-main-container. O componente Extra-Banners usa esse outlet por padrão, mas os dois componentes para banners de Categoria e Tag são renderizados por padrão abaixo do cabeçalho. Eu não gostaria de fazer um fork desses componentes apenas para definir um outlet padrão diferente. É por isso que coloquei estas instruções:

Mas se isso for fácil de perder, talvez haja uma maneira melhor de colocar? :thinking:

Sim, isso é fácil o suficiente e parece uma boa abordagem para este tema. Acabei de adicionar um commit!

5 curtidas

Ah sim, vejo como chegamos aqui. Não queremos necessariamente alterar os padrões nos componentes de banners de categoria/tag, nem queremos criar forks deles. Difícil de consertar, vamos deixar como está por enquanto e ver se outros encontram o mesmo problema.

A alteração na barra lateral do administrador já parece boa, obrigado!

4 curtidas

Essas instruções poderiam ser um pouco mais detalhadas? Não é possível simplesmente instalar pela interface de administração? Obrigado :folded_hands:t4:

EDIT: Instalei pela interface de administração e parece estar funcionando, exceto que não parece haver lugar para editar scss agora.

EDIT: Deixe pra lá, vejo que isso provavelmente é esperado e você está mostrando para editar os arquivos do tema diretamente. Gostaria de saber se isso poderia estar no roteiro para acontecer pela interface de administração? Por exemplo, ter um editor de variáveis assim como você tem um editor de configurações.

3 curtidas

Não sei qual é o roteiro principal, mas uma coisa que você poderia fazer agora mesmo é criar um novo componente de tema diretamente na interface do administrador:

E então declarar propriedades personalizadas no arquivo CSS dele. Você pode procurar propriedades no arquivo Readme. Ou copiar o conteúdo de properties.scss do repositório do tema.

2 curtidas

Como eu clono isso para o GitHub? Ainda estou um pouco verde :wink:

Você pode importá-lo através da interface do usuário:

No entanto, se você quiser ser capaz de sincronizar alterações, acredito que você precisaria fazer um pull para um clone local e, em seguida, fazer um push a partir dele. Algo como isto:

  1. Clone do GitLab
git clone "https://gitlab.com/manuelkostka/discourse/canvas/theme.git"
  1. Defina o URL de push para o seu repositório GitHub
git remote set-url --push origin "git@github.com:Username/Reponame.git"
  1. Em seguida, você pode periodicamente fazer fetch do GitLab e push para o GitHub
git fetch -p origin
git push origin
2 curtidas

Não vejo um sinal de mais no celular no GitHub. Talvez precise tentar as linhas de comando quando estiver em casa.

Tudo o que vejo no GitHub no painel é a opção de criar um novo repositório, mas nenhuma opção de reivindicar. Estou em uma conta gratuita, então não tenho certeza se isso pode ter algo a ver com isso.

Adicionei um componente que permite definir algumas variáveis de estilo e opções de layout diretamente na interface do componente:

É limitado em comparação com a declaração de variáveis personalizadas na folha de estilos. Mas permite que você experimente alguns visuais diferentes. Curioso para saber se isso funciona! :eyes:

2 curtidas

Estou jogando com ele agora e acho que é legal! Existe uma maneira de reduzir o espaçamento entre as linhas do menu - para torná-lo mais compacto?

Além disso, não consigo rolar a barra lateral sólida, isso é por engano?

2 curtidas

Ajustei os estilos CSS para a barra lateral sólida, a rolagem deve funcionar novamente!

No entanto, a barra lateral sólida é apenas uma das opções no componente Estilos que mencionei na postagem acima. Se você quiser ajustar mais estilos (como espaçar o menu da barra lateral), você precisará seguir a abordagem explicada acima em Uso e Uma olhada mais de perto na Configuração: Use sua própria folha de estilos com propriedades CSS personalizadas – neste caso, seria -d-sidebar-row-height.

3 curtidas

Montei um novo tema de exemplo baseado neste template. Como o nome sugere, este é uma homenagem ao tema Central original! :hugs: :partying_face:

Eu adorei o layout e o estilo visual do Central e tenho empacotado algumas de suas funcionalidades em componentes independentes, como o Menu Personalizado do Usuário e vários blocos na barra lateral.

Percebi que com a barra lateral e alguns estilos, este template na verdade te leva um bom caminho em direção ao visual e à sensação do tema original.


De qualquer forma, não pretendo reconstruir totalmente o tema Central… mas ainda posso experimentar um estilo dedicado de lista de tópicos no futuro. Se você estiver curioso e quiser dar uma olhada, o tema também está ativo aqui: https://central.kostka.studio

8 curtidas

Muito bom. Obrigado por compartilhar.

1 curtida

Obrigado por compartilhar este modelo! A flexibilidade com os componentes e o design limpo tornam muito fácil de personalizar. Ansioso para experimentá-lo na minha própria instância.

2 curtidas

Bem-vindo ao Discourse :discourse: !

2 curtidas