In attesa di vedere theme.json uscire dalla fase sperimentale, vorrei condividere come integrare la propria paletta di colori nell’editor di WordPress, in 2 semplici step. Ovviamente mettendo mano al codice!
A differenza di alcuni temi che sfruttano la Customizer Javascript API per permettere agli utenti di gestire la paletta colori dal Customizer, qui vedremo come impostarne una predefinita – non editabile dall’utente – aggiungendo qualche riga di codice nel functions.php e nel foglio di stile del tema.
Definire una paletta di colori predefinita da usare nell’editor può tornare utile quando non è previsto, nel vostro tema, che l’utente modifichi la paletta di colori a disposizione. In questo modo l’utente potrà solamente usare i colori previsti, ad esempio, dalla paletta dei colori dell’immagine aziendale.
Step 1 – aggiungere il supporto nel file functions.php
Come prima cosa bisogna abilitare il supporto tramite la funzione add_theme_support(’editor-color-palette’). Successivamente dovremo fornire un array con i nomi, gli slug e gli esadecimali dei colori.
function theme_setup_supported_features() {
add_theme_support( 'editor-color-palette', array(
array(
'name' => esc_attr__( 'strong magenta', 'themeLangDomain' ),
'slug' => 'strong-magenta',
'color' => '#a156b4',
),
array(
'name' => esc_attr__( 'light grayish magenta', 'themeLangDomain' ),
'slug' => 'light-grayish-magenta',
'color' => '#d0a5db',
),
array(
'name' => esc_attr__( 'very light gray', 'themeLangDomain' ),
'slug' => 'very-light-gray',
'color' => '#eee',
),
array(
'name' => esc_attr__( 'very dark gray', 'themeLangDomain' ),
'slug' => 'very-dark-gray',
'color' => '#444',
),
) );
}
add_action( 'after_setup_theme', 'theme_setup_supported_features' );
Questo passaggio sovrascriverà la paletta di colori del tema a disposizione dell’editor di default. Tuttavia da sola non basta.
WordPress utilizzerà gli slug forniti per generare delle classi con la struttura .has-{slug-colore}-color per i colori di testo e .has-{slug-colore}-background-color per i colori di sfondo. Il passo successivo è quindi fornire al tema gli stili necessari per renderizzare correttamente le classi nel front-end.
Step 2 – aggiungere gli stili per le classi generate da WordPress
Una volta modificato il nostro functions.php vanno create le classi per permettere di visualizzare correttamente i colori di testo e background.
// Mixin per le classi di WordPress
@mixin has-color($has-color, $has-color-name){
.has-#{$has-color-name}{
&-color{
color:$has-color;
}
&-background-color{
background-color: $has-color;
}
}
}
// Colori
$strong-magenta: #a156b4;
$light-grayish-magenta: #d0a5db;
$very-light-gray: #eee;
$very-dark-gray: #444;
// Classi
:root{
@include has-color($strong-magenta, 'strong-magenta');
@include has-color($light-grayish-magenta, 'light-grayish-magenta');
@include has-color($very-light-gray, 'very-light-gray');
@include has-color($very-dark-gray, 'very-dark-gray');
}Ricordatevi di inserire questi stili nel foglio di stile principale del tema, o in alternativa potete crearne uno separato. In questo caso potrebbe tornarvi utile inserirlo nel tema in questo modo:
function mytheme_custom_styles(){
wp_enqueue_style('custom-editor-palette', get_theme_file_uri('{nome-directory}/{nome-file}'));
}
add_action('wp_enqueue_scripts', 'mytheme_custom_styles');Ottimo! In 2 step abbiamo inserito la nostra paletta di colori personalizzati. Ora la ritroveremo nell’editor di WordPress al posto di quella di default. Ecco come si presenta prima e dopo:


Fonti:
https://developer.wordpress.org/block-editor/developers/themes/theme-support/#block-color-palettes

Lascia un commento