I'm building a simple Gutenberg block.
Attributes
attributes: {
sign: {
type: 'string',
source: 'text',
default: '+'
},
size: {
type: 'string',
default: 16,
selector: '.plusblok',
source: 'attributes',
attributes: 'style',
property: 'font-size'
}
},
edit
var attr = props.attributes;
return [
el(InspectorControls, {key: 'inspector'},
el(components.PanelBody, {
title: 'Details',
initialOpen: true
},
el(TextControl, {
type: 'text',
value: attr.sign,
label: 'Teken',
onChange: function (newSign) {
props.setAttributes({ sign: newSign})
}
}),
el(
RangeControl, {
label: 'Grootte (in px)',
value: attr.size,
initialPosition: 16,
min: 8,
max: 48,
onChange: function( newSize ) {
props.setAttributes({ size: newSize })
}
}
)
)
),
el('div', {className: props.className},
el('div', {
className: 'plusblok',
style: {
fontSize: attr.size + 'px',
}
},
attr.sign
)
)
]
save
var attr = props.attributes;
return (
el('div', {className: props.className},
el('div', {
className: 'plusblok',
style: {
fontSize: attr.size + 'px',
}
},
attr.sign
)
)
)
The problem is with 'selecting' the font-size
and reading the values into the attributes
-part. The current code is a combination of this issue and this page in the handbook, but it doesn't work. What am I doing wrong?
style
attribute?style: '{ font-size: ' + attr.size + 'px; }'
? That doesn't work, asstyle
expects a JS-object.