WP24Horas
♙ ◴
PARCEIRO RECOMENDADO Vai colocar um WordPress no ar? Comece com uma hospedagem que acompanha o seu projeto. Conhecer a HostGator link patrocinado

Desenvolvimento e Programação

Estilizando Blocos Gutenberg com CSS e Classes Dinâmicas

Por Asllan Maciel3 min de leitura
Como Estilizar Blocos Gutenberg com CSS e Classes Dinâmicas
Esta entrada é parte 8 de 20 na série WordPress Extremo: Gutenberg + React + Blocos Customizados

WordPress Extremo: Gutenberg + React + Blocos Customizados

Como Criar um Bloco WordPress com Filtro por Múltiplas Categorias

Bloco de Posts com Filtro por Múltiplas Categorias

Como Filtrar Posts por Categoria em um Bloco Gutenberg

Filtrando Posts por Categoria no Editor do Bloco

Como Criar um Bloco Dinâmico no WordPress com Renderização PHP

Bloco Dinâmico com Renderização no Servidor

Conectando Blocos Gutenberg à REST API

Conectando Blocos com a REST API do WordPress

Componentes Reutilizáveis e Campos Compostos no Gutenberg

Componentes Reutilizáveis e Atributos Compostos em Blocos Gutenberg

Adicionando Imagem Ícone e Classe CSS Personalizada em Bloco Gutenberg

Ícones, Imagens e Classes Personalizadas no Gutenberg

Atributos Visuais e Estilo Dinâmico com Gutenberg

Cor, Alinhamento e Estilo Dinâmico com Gutenberg + React

Como Estilizar Blocos Gutenberg com CSS e Classes Dinâmicas

Estilizando Blocos Gutenberg com CSS e Classes Dinâmicas

Criando Campos Dinâmicos e InspectorControls no Gutenberg

Campos Dinâmicos e InspectorControls no Gutenberg: Deixe Seu Bloco Interativo

Criando Blocos Personalizados com Gutenberg e React

Criando Blocos Personalizados com Gutenberg e React

Como Salvar Dados Personalizados no WordPress Usando Blocos Gutenberg e REST API

Salvando Dados Personalizados no Backend via REST API

Blocos Reutilizáveis com InnerBlocks no Gutenberg

Blocos Reutilizáveis com InnerBlocks no Gutenberg

Comunicação entre Blocos com Block Context API no WordPress

Comunicação entre Blocos com Block Context API no WordPress

Como Criar Blocos Condicionais no Gutenberg com Atributos

Como Criar Blocos Condicionais no Gutenberg com Atributos

Internacionalização de Blocos Gutenberg (i18n)

Internationalização de Blocos Gutenberg (i18n)

Como Carregar Scripts e Estilos no WordPress Apenas Quando Necessário

Scripts e Estilos Condicionais: Carregando apenas quando necessário

Uso de Slots e Templates Personalizados

Como Inserir Blocos Gutenberg via Código, Shortcodes ou PHP

Inserindo Blocos via Código ou Shortcodes

Como Validar e Testar Blocos Gutenberg

Testes e Validação de Blocos com @wordpress/scripts

Como Distribuir Seus Blocos Gutenberg em Plugins ou no GitHub

Distribuindo Seus Blocos: Plugins, Repositório e GitHub

Bora! Chegamos ao Dia 9/14 da Trilha WordPress Extremo — e agora que já temos um bloco funcional e dinâmico, vamos deixá-lo mais profissional e estilizado, com CSS modular e atributos que influenciam o visual.


🧠 Dia 9 – Estilizando Blocos Gutenberg com CSS e Classes Dinâmicas

Criar blocos funcionais é ótimo. Mas blocos profissionais também precisam ter design, responsividade e, de preferência, estilos que se adaptam aos atributos definidos.

Hoje vamos:

  • Criar uma folha de estilos específica do bloco
  • Usar className dinâmico baseado nos atributos
  • Garantir que o bloco fique bonito no editor e no front

✅ O que você vai aprender hoje

  • Como carregar CSS com block.json
  • Como organizar os estilos em cada bloco
  • Como aplicar classes dinamicamente com base em atributos
  • Como estilizar de forma segura, isolada e profissional

📦 Estrutura do bloco hello atualizada

blocks/hello/
├── block.json
├── index.js
├── edit.js
├── save.js
├── style.css         ✅ Estilos para o frontend
├── editor.css        ✅ Estilos específicos para o editor Gutenberg
└── build/hello.js    ✅ Script compilado (via npm run build)

1️⃣ Criando os arquivos de estilo

📄 blocks/hello/style.css

.wp-block-wp24h-hello {
  padding: 1rem;
  background-color: #f0f4ff;
  border: 1px solid #d0d7e2;
  border-radius: 8px;
}

.wp-block-wp24h-hello.is-highlighted {
  background-color: #cce5ff;
  border-color: #66b0ff;
}

📄 blocks/hello/editor.css

.wp-block-wp24h-hello {
  outline: 1px dashed #aaa;
}

2️⃣ Referenciando os estilos no block.json

Atualize seu block.json:

{
  "apiVersion": 2,
  "name": "wp24h/hello",
  "title": "Bloco Hello WP24H",
  "category": "widgets",
  "icon": "smiley",
  "description": "Um bloco estilizado com atributos dinâmicos.",
  "editorScript": "file:./build/hello.js",
  "style": "file:./style.css",
  "editorStyle": "file:./editor.css",
  "attributes": {
    "mensagem": {
      "type": "string",
      "default": "Olá do WP24Horas!"
    },
    "destaque": {
      "type": "boolean",
      "default": false
    }
  }
}

3️⃣ Atualizando o bloco no editor (edit.js)

Vamos adicionar um ToggleControl para ativar ou desativar o destaque:

import { __ } from '@wordpress/i18n';
import {
  useBlockProps,
  InspectorControls
} from '@wordpress/block-editor';
import {
  PanelBody,
  TextControl,
  ToggleControl
} from '@wordpress/components';

export default function Edit({ attributes, setAttributes }) {
  const { mensagem, destaque } = attributes;

  const classes = [
    'wp-block-wp24h-hello',
    destaque ? 'is-highlighted' : ''
  ].join(' ').trim();

  return (
    <>
      <InspectorControls>
        <PanelBody title="Configurações">
          <TextControl
            label="Mensagem"
            value={mensagem}
            onChange={(value) => setAttributes({ mensagem: value })}
          />
          <ToggleControl
            label="Destaque"
            checked={destaque}
            onChange={(value) => setAttributes({ destaque: value })}
          />
        </PanelBody>
      </InspectorControls>

      <div { ...useBlockProps({ className: classes }) }>
        <p>{ mensagem }</p>
      </div>
    </>
  );
}

4️⃣ Salvando com className dinâmico (save.js)

import { useBlockProps } from '@wordpress/block-editor';

export default function save({ attributes }) {
  const { mensagem, destaque } = attributes;

  const classes = [
    'wp-block-wp24h-hello',
    destaque ? 'is-highlighted' : ''
  ].join(' ').trim();

  return (
    <div {...useBlockProps.save({ className: classes })}>
      <p>{ mensagem }</p>
    </div>
  );
}

5️⃣ Compilar

npm run build

6️⃣ Resultado

  • No editor, o usuário pode escrever uma mensagem e ativar/desativar o destaque
  • O estilo muda com base no atributo destaque
  • No front, a estilização é mantida graças ao style.css

✅ Conclusão do Dia 9

Hoje você aprendeu a:

✔️ Estilizar blocos com CSS isolado
✔️ Aplicar classes baseadas em atributos
✔️ Organizar seu bloco de forma profissional e modular


💬 Curtiu o conteúdo?

Esse é o tipo de estrutura que ensino com profundidade nos cursos e mentorias.
Deixe seu comentário abaixo sobre o que achou!

WordPress Extremo: Gutenberg + React + Blocos Customizados

Cor, Alinhamento e Estilo Dinâmico com Gutenberg + React Campos Dinâmicos e InspectorControls no Gutenberg: Deixe Seu Bloco Interativo

Sobre o autor

Asllan Maciel

Asllan Maciel, Fundador do WP24Horas, Consultor de Marketing Digital e amante do Empreendedorismo Digital. Tem um caso de amor com o WordPress.