Skip to content

Commit 28bbe23

Browse files
Merge pull request #116 from closemarketing/background-image-size
Background image size
2 parents a9e363d + 668cd35 commit 28bbe23

7 files changed

Lines changed: 499 additions & 7 deletions

File tree

assets/animations/frontblocks-animation-option.js

Lines changed: 43 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -414,7 +414,11 @@ function addAnimationControls(BlockEdit) {
414414
_props$attributes$frb7 = _props$attributes.frblGlassEffect,
415415
frblGlassEffect = _props$attributes$frb7 === void 0 ? false : _props$attributes$frb7,
416416
_props$attributes$frb8 = _props$attributes.frblGlassBlur,
417-
frblGlassBlur = _props$attributes$frb8 === void 0 ? 10 : _props$attributes$frb8;
417+
frblGlassBlur = _props$attributes$frb8 === void 0 ? 10 : _props$attributes$frb8,
418+
_props$attributes$frb9 = _props$attributes.frblHoverBgScale,
419+
frblHoverBgScale = _props$attributes$frb9 === void 0 ? false : _props$attributes$frb9,
420+
_props$attributes$frb0 = _props$attributes.frblHoverBgScaleAmount,
421+
frblHoverBgScaleAmount = _props$attributes$frb0 === void 0 ? 1.1 : _props$attributes$frb0;
418422

419423
// Create flattened options for the SelectControl
420424
var flattenedOptions = createFlattenedOptions();
@@ -728,6 +732,30 @@ function addAnimationControls(BlockEdit) {
728732
min: 0,
729733
max: 50,
730734
step: 1
735+
})), /*#__PURE__*/React.createElement(PanelBody, {
736+
title: __('FrontBlocks Hover Effects', 'frontblocks'),
737+
initialOpen: false
738+
}, /*#__PURE__*/React.createElement(ToggleControl, {
739+
label: __('FrontBlocks: Scale Background on Hover', 'frontblocks'),
740+
help: __('Scales the background image when hovering (FrontBlocks Hover Effect). Works with inline background images (--inline-bg-image) and standard CSS backgrounds.', 'frontblocks'),
741+
checked: frblHoverBgScale,
742+
onChange: function onChange(value) {
743+
return props.setAttributes({
744+
frblHoverBgScale: value
745+
});
746+
}
747+
}), frblHoverBgScale && /*#__PURE__*/React.createElement(RangeControl, {
748+
label: __('Scale Amount', 'frontblocks'),
749+
help: __('How much to scale the background image (1.0 = no scale, 1.1 = 110%, 1.5 = 150%)', 'frontblocks'),
750+
value: frblHoverBgScaleAmount,
751+
onChange: function onChange(value) {
752+
return props.setAttributes({
753+
frblHoverBgScaleAmount: value
754+
});
755+
},
756+
min: 1.0,
757+
max: 2.0,
758+
step: 0.05
731759
}))));
732760
};
733761
}
@@ -747,7 +775,11 @@ addFilter('blocks.getSaveContent.extraProps', 'frontblocks/apply-animations', fu
747775
_attributes$frblGlass = attributes.frblGlassEffect,
748776
frblGlassEffect = _attributes$frblGlass === void 0 ? false : _attributes$frblGlass,
749777
_attributes$frblGlass2 = attributes.frblGlassBlur,
750-
frblGlassBlur = _attributes$frblGlass2 === void 0 ? 10 : _attributes$frblGlass2;
778+
frblGlassBlur = _attributes$frblGlass2 === void 0 ? 10 : _attributes$frblGlass2,
779+
_attributes$frblHover = attributes.frblHoverBgScale,
780+
frblHoverBgScale = _attributes$frblHover === void 0 ? false : _attributes$frblHover,
781+
_attributes$frblHover2 = attributes.frblHoverBgScaleAmount,
782+
frblHoverBgScaleAmount = _attributes$frblHover2 === void 0 ? 1.1 : _attributes$frblHover2;
751783

752784
// Add style attribute if needed
753785
if (!props.style) {
@@ -788,5 +820,14 @@ addFilter('blocks.getSaveContent.extraProps', 'frontblocks/apply-animations', fu
788820
props.style['backdropFilter'] = "blur(".concat(frblGlassBlur, "px)");
789821
props.style['-webkit-backdrop-filter'] = "blur(".concat(frblGlassBlur, "px)");
790822
}
823+
824+
// Handle hover background scale
825+
if (frblHoverBgScale) {
826+
var hoverBgScaleClass = 'frbl-hover-bg-scale';
827+
props.className = props.className ? "".concat(props.className, " ").concat(hoverBgScaleClass) : hoverBgScaleClass;
828+
829+
// Add hover scale amount as CSS variable
830+
props.style['--frbl-hover-scale'] = frblHoverBgScaleAmount;
831+
}
791832
return props;
792833
});

assets/animations/frontblocks-animation-option.jsx

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -236,6 +236,8 @@ function addAnimationControls(BlockEdit) {
236236
frblDisableAnimationMobile = false,
237237
frblGlassEffect = false,
238238
frblGlassBlur = 10,
239+
frblHoverBgScale = false,
240+
frblHoverBgScaleAmount = 1.1,
239241
} = props.attributes;
240242

241243
// Create flattened options for the SelectControl
@@ -555,6 +557,30 @@ function addAnimationControls(BlockEdit) {
555557
/>
556558
)}
557559
</PanelBody>
560+
561+
<PanelBody
562+
title={__('FrontBlocks Hover Effects', 'frontblocks')}
563+
initialOpen={false}
564+
>
565+
<ToggleControl
566+
label={__('FrontBlocks: Scale Background on Hover', 'frontblocks')}
567+
help={__('Scales the background image when hovering (FrontBlocks Hover Effect). Works with inline background images (--inline-bg-image) and standard CSS backgrounds.', 'frontblocks')}
568+
checked={frblHoverBgScale}
569+
onChange={(value) => props.setAttributes({ frblHoverBgScale: value })}
570+
/>
571+
572+
{frblHoverBgScale && (
573+
<RangeControl
574+
label={__('Scale Amount', 'frontblocks')}
575+
help={__('How much to scale the background image (1.0 = no scale, 1.1 = 110%, 1.5 = 150%)', 'frontblocks')}
576+
value={frblHoverBgScaleAmount}
577+
onChange={(value) => props.setAttributes({ frblHoverBgScaleAmount: value })}
578+
min={1.0}
579+
max={2.0}
580+
step={0.05}
581+
/>
582+
)}
583+
</PanelBody>
558584
</InspectorControls>
559585
</Fragment>
560586
);
@@ -582,6 +608,8 @@ addFilter(
582608
frblDisableAnimationMobile = false,
583609
frblGlassEffect = false,
584610
frblGlassBlur = 10,
611+
frblHoverBgScale = false,
612+
frblHoverBgScaleAmount = 1.1,
585613
} = attributes;
586614

587615
// Add style attribute if needed
@@ -631,6 +659,17 @@ addFilter(
631659
props.style['-webkit-backdrop-filter'] = `blur(${frblGlassBlur}px)`;
632660
}
633661

662+
// Handle hover background scale
663+
if (frblHoverBgScale) {
664+
const hoverBgScaleClass = 'frbl-hover-bg-scale';
665+
props.className = props.className ?
666+
`${props.className} ${hoverBgScaleClass}` :
667+
hoverBgScaleClass;
668+
669+
// Add hover scale amount as CSS variable
670+
props.style['--frbl-hover-scale'] = frblHoverBgScaleAmount;
671+
}
672+
634673
return props;
635674
}
636675
);

assets/animations/frontblocks-animations.css

Lines changed: 52 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)