0
51

SHARE

Atributos Visuais e Estilo Dinâmico com Gutenberg

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

Aprenda a adicionar alinhamento, cores e estilo dinâmico em blocos Gutenberg com React. Use atributos como corTexto e alinhamento com UI nativa do WordPress.
Este post é a parte 7 de 16 da Série WordPress Extremo: Gutenberg + React + Blocos Customizados

Bora! Chegamos ao Dia 10 da Trilha WordPress Extremo — e agora é hora de levar nossos blocos a um novo nível de interação visual.

Hoje vamos trabalhar com alinhamento, controle de cores, e atributos que afetam o estilo de forma dinâmica, direto no editor Gutenberg.

Seus blocos já funcionam. Já têm campos. Já têm estilo.

Mas agora vamos deixá-los com cara de plugin premium: personalizáveis, intuitivos e responsivos.


✅ O que você vai aprender hoje:

  • Usar ColorPalette e AlignmentToolbar
  • Salvar valores de cor e alinhamento como atributos
  • Aplicar estilos inline com base nos atributos
  • Deixar o bloco mais visual e interativo

🧩 Atributos que vamos adicionar

Atualize o block.json:

"attributes": {
  "mensagem": {
    "type": "string",
    "default": "Olá do WP24Horas!"
  },
  "destaque": {
    "type": "boolean",
    "default": false
  },
  "corTexto": {
    "type": "string",
    "default": "#333333"
  },
  "alinhamento": {
    "type": "string",
    "default": "left"
  }
}

🎛️ Editando o bloco (edit.js)

Atualize o editor com novos controles:

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

const CORES = [
  { name: 'Azul', color: '#007cba' },
  { name: 'Verde', color: '#46b450' },
  { name: 'Cinza', color: '#555d66' },
  { name: 'Preto', color: '#000000' }
];

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

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

  const styles = {
    color: corTexto,
    textAlign: alinhamento
  };

  return (
    <>
      <BlockControls>
        <AlignmentToolbar
          value={alinhamento}
          onChange={(align) => setAttributes({ alinhamento: align })}
        />
      </BlockControls>

      <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 })}
          />
          <p><strong>Cor do texto:</strong></p>
          <ColorPalette
            colors={CORES}
            value={corTexto}
            onChange={(value) => setAttributes({ corTexto: value })}
          />
        </PanelBody>
      </InspectorControls>

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

💾 Salvando o conteúdo (save.js)

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

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

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

  const styles = {
    color: corTexto,
    textAlign: alinhamento
  };

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

✅ Resultado:

  • O usuário pode:
    • Escrever uma mensagem
    • Escolher cor do texto
    • Alinhar à esquerda, centro ou direita
    • Destacar o bloco

Tudo isso com UI intuitiva e estilos aplicados ao vivo.


🔨 Compile:

npm run build

✅ Conclusão do Dia 10

Hoje você:

✔️ Aprendeu a usar AlignmentToolbar e ColorPalette
✔️ Adicionou atributos visuais ao bloco
✔️ Aplicou estilos inline com React
✔️ Transformou seu bloco em algo digno de produção real


💬 Curtiu o conteúdo?

Esse é o tipo de desenvolvimento que você vê em plugins pagos — e você tá construindo com liberdade total.

👉 Comenta abaixo o que você achou disso!

Navegação<< Ícones, Imagens e Classes Personalizadas no GutenbergEstilizando Blocos Gutenberg com CSS e Classes Dinâmicas >>

Não perca mais nenhuma atualização aqui!

Ative as Notificações!

Clique aqui e, em seguida, clique em Permitir na caixa que aparecerá na parte superior da janela, próximo à barra de endereços.

Torne-se um Assinante e Eleve seu Conhecimento do WordPress!

Acesso Exclusivo, Suporte Especializado e Muito Mais.

Se você está aproveitando nosso conteúdo gratuito, vai adorar os benefícios exclusivos que oferecemos aos nossos assinantes! Ao se tornar um assinante do WP24Horas, você terá acesso a:

Não perca a oportunidade de maximizar seu potencial no WordPress. Clique no botão abaixo para se tornar um assinante e leve suas habilidades ao próximo nível!

Não perca mais nenhuma atualização aqui!

Tabela de Conteúdo
PUBLICIDADE
Últimos Posts
Como Carregar Scripts e Estilos no WordPress Apenas Quando Necessário

Scripts e Estilos Condicionais: Carregando apenas quando necessário

Internacionalização de Blocos Gutenberg (i18n)

Internationalização de Blocos Gutenberg (i18n)

Como Criar Blocos Condicionais no Gutenberg com Atributos

Como Criar Blocos Condicionais no Gutenberg com Atributos

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

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

Blocos Reutilizáveis com InnerBlocks no Gutenberg

Blocos Reutilizáveis com InnerBlocks no Gutenberg

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

Salvando Dados Personalizados no Backend via REST API

Você precisa estar logado para ver esta informação.

Torne-se um Assinante e Eleve seu Conhecimento do WordPress!

Acesso Exclusivo, Suporte Especializado e Muito Mais.

Se você está aproveitando nosso conteúdo gratuito, vai adorar os benefícios exclusivos que oferecemos aos nossos assinantes! 

Não perca a oportunidade de maximizar seu potencial no WordPress. Clique no botão abaixo para se tornar um assinante e leve suas habilidades ao próximo nível!