# Nectarblocks > The ultimate Wordpress Gutenberg editor experience. Design Websites that Wow. This file contains all documentation content in a single document following the llmstxt.org standard. ## Scroll Into View The **Scroll Into View** trigger plays a preset animation once, when the element is scrolled into view, and then leaves it in place. It's the simplest trigger type — perfect for quickly adding common entrance animations. To build your own custom scrubbed animation instead, see the **[Scroll Position](./scroll-based)** type. ## How to use 1. Select the **[Nectar block](../blocks/overview)** you want to animate 2. Open the **Block Settings** panel and scroll to **"Block Animation"** 3. Click **Add Animation Trigger** 4. Choose **Scroll Into View** as the trigger type 5. Pick an animation **Type** and configure its settings Click **Preview Animation** to play it right on the editor canvas. ### Animation Types Choose a **Type**, then refine it with the options that apply to it: - **Slide** — slide in from a direction. Set **From** (Left, Right, Up, Down) and a **Distance** (how far it travels). - **Fade** — fade in or out. - **Grow** / **Shrink** — scale up or down into place. - **Rotate** — rotate into place. - **Flip** — flip in from a direction (**From**). - **Reveal** — uncover the element with a clip-path wipe. Choose a **Mode** (Directional or Inset), optionally **Fade In**, and set **Inset** and **Roundness** amounts. Most types share a **From / To** (play direction — animate *in* or *out*), a **Duration**, a **Delay**, and an **Easing** curve (presets or a custom cubic-bézier; see [Easing](./scroll-based#easing--playback)). ### Staggering Child Elements By default the animation applies to the block itself. Under **Target**, switch to **Children** to instead animate the block's direct children, and set a **Stagger** delay to offset each child's start — an easy way to cascade a grid of cards, list items, or columns into view. (Children targeting is scoped to the Scroll Into View trigger and does not affect any Scroll Position or Interaction triggers on the same block.) Use **Trigger On** to choose which devices (desktop / tablet / mobile) the animation runs on. --- ## Interaction The **Interaction** trigger animates a block in response to a visitor **hovering or focusing** it — for buttons, cards, icons, images and any other block. Unlike the scroll triggers, an interaction animation plays forward on hover/focus and reverses when the pointer leaves. ### Adding an Interaction animation 1. Select the **[Nectar block](../blocks/overview)** you want to animate 2. Open the **Block Settings** panel and scroll to **"Block Animation"** 3. Click **Add Animation Trigger** 4. Choose **Interaction** as the trigger type 5. Add the properties you want to animate and set their **From** / **To** values The interaction type is **On Hover/Focus**, so it also fires for keyboard users who tab to the element. ### Trigger target — self or another block By default an interaction animates the block it's attached to (**Use Self**). Switch the **Trigger** to **Pick Trigger Block** to animate this block when a *different* block is hovered — for example, hovering a card wrapper to animate an arrow icon inside it. Select the source block from the block tree. ### Animation Properties Click **Add Animation Property** and set a **From** and **To** value for each. The same property set as Scroll Position is available — Transforms (Translate, Scale, Rotate, Skew, Perspective), Width, Height, Opacity, Box Shadow, Color, Background Color, Filters and Masks. - **Duration** — how long the hover animation takes (in seconds). - **Easing** — a cubic-bézier preset or custom curve, or a **Spring** easing (Gentle, Wobbly, Stiff) for bouncy motion. ### Per-Property Timing Open a property's **Timeline** to give it its own **Offset** (0–100, when it starts) and **Duration** (1–100, how much of the interaction it occupies), so properties can cascade instead of all moving together. Per-property timing is unavailable when **Spring** easing is selected — with a spring, all properties animate together. Use **Trigger On** to choose which devices the interaction runs on. You can preview the hover state directly on the editor canvas while configuring it. --- ## Animation System ### Overview Nectarblocks has a robust system for triggering animations on your elements. You can quickly add common preset animations, or build your own complex, multi-property animations through an intuitive interface — all rendered on the front end by a single, consolidated **GSAP** bundle for smooth, performant playback. ### Video Tutorial ### The Animation System When editing any **[Nectar block](../blocks/overview)** that supports the Animation block control, you'll find the settings in the sidebar under the **"Block Animation"** section. Click the **Add Animation Trigger** button to add a trigger. Each block can hold one trigger of each type, and you can combine them — for example, a **Scroll Into View** entrance plus an **Interaction** hover effect on the same block. Once a trigger is added, its settings slide in. ## Trigger Types 1. **[Scroll Into View](./in-view)** — play a preset animation (Slide, Fade, Grow, Reveal and more) once, when the element scrolls into view. The simplest way to add a polished entrance, with optional staggering of child elements. 2. **[Scroll Position](./scroll-based)** — scrub a custom animation between a **Start** and **End** state based on the element's scroll position. Supports pinning, per-property timing, and color animation. 3. **[Interaction](./interaction)** — animate a block on **hover/focus**, targeting the block itself or another block on the page. ### What's new in the Animation System - **Per-property timing** — for **Scroll Position** and **Interaction** animations, each property has its own **Offset** (when it starts) and **Duration** (how much of the timeline it occupies), shown in a timeline view, so properties can cascade rather than all moving at once. - **Spring physics** — alongside cubic-bézier easing, choose a **Spring** easing (Gentle, Wobbly, Stiff) with optional custom tension/friction/mass for natural, bouncy motion. - **3D & perspective** — the **[Transform control](../block-controls/transform-control)** adds `translateZ`, 3D rotation, a **Perspective** value and a **Transform Origin**, with `preserve-3d` applied automatically so nested 3D transforms compose correctly. - **Color animation** — animate **Text Color** and **Background Color** between two values. - **Editor previews** — preview animations directly on the canvas before publishing. Beyond the general Animation System, specific **[Nectar blocks](../blocks/overview)** provide their own unique animation settings. For instance, the **[Text](../blocks/text)** block offers animation settings for animating each letter individually. Another example includes the **[Row](../blocks/row)** and **[Column](../blocks/column)** Blocks, which feature animation settings associated with background layers (such as parallax and zoom effects). --- ## Scroll Position The **Scroll Position** trigger lets you craft a custom animation by defining a **Start** and **End** state and scrubbing smoothly between them based on the element's current scroll position. ## Adding a Scroll Position animation 1. Select the **[Nectar block](../blocks/overview)** you want to animate 2. Open the **Block Settings** panel and scroll to **"Block Animation"** 3. Click **Add Animation Trigger** 4. Choose **Scroll Position** as the trigger type 5. Add the properties you want to animate and configure their Start/End values ## Animation Properties Click **Add Animation Property** to add a property to the timeline. Add as many as you like — each is configured individually and the block scrubs from its **Start** value to its **End** value as the visitor scrolls. New properties are seeded with sensible ending values, so you can often create an effect just by setting the **Start**. Available properties are grouped as: - **Transforms** — Translate, Scale, Rotate, Skew, Perspective - **Width**, **Height**, **Opacity**, **Box Shadow** - **Color** (text) and **Background Color** - **Filters** — Blur, Brightness, Contrast, Grayscale, Hue Rotate, Invert, Saturation, Sepia, Drop Shadow - **Masks** — Inset and Circle reveals ### Animation Boundaries The **Animation Boundaries** define *when* the scrub starts and ends. Each boundary is a pair of positions — a point on the **Element** meeting a point on the **Viewport** (each can be **Top**, **Center** or **Bottom**): - **Begin Animations** (start) — *when the element position meets the viewport position, the animation begins.* For example, **Element: Top** / **Viewport: Bottom** starts the animation the instant the element first enters from the bottom of the screen. - **End** — *when the element position meets the viewport position, the animation is complete.* Each boundary also accepts an **Offset** to fine-tune the trigger point, and convenient presets (In View, View Center, Fully Visible, etc.) are available for common setups. ## Scroll Pinning (Advanced) Scroll Pinning sticks the block in place once it's reached and holds it there until the animation completes — great for storytelling and reveal effects ✨ Enable **Pin While Animating** in the **Animation Boundaries** section. Then control the pin with: - **End After Scrolling** — how far the visitor scrolls to complete the animation, measured in viewport heights (e.g. `200%` = two screens of scrolling). - **Pin On** — start pinning when the row is **In View** or only **On Pin** (once it reaches the pin point). - **Row Animation End** — whether a property's animation ends with the **Entrance** or extends to the **Pin Offset**. - **Stagger Children** — offset the animation of pinned child blocks for a cascading effect. **Pin While Animating** is only available on root-level blocks. Child blocks of a pinned block are pinned too and inherit the parent's boundaries (their own boundary controls are disabled). ### Per-Property Timing By default every property animates across the full scroll range. Open a property's **Timeline** to give it its own timing: - **Offset** (0–100) — where within the scroll range the property *begins* animating. - **Duration** (1–100) — the percentage of the scroll range the property's animation occupies. Cascading the offsets and durations of different properties lets you sequence a complex, multi-step animation from a single scroll. ### Easing & Playback By default a Scroll Position animation is tied linearly to the scroll bar. Shape that motion with an **Easing** curve — choose a cubic-bézier preset (Sine, Cubic, Quint, Circular and more) or design your own in the built-in **cubic-bézier editor**, or pick a **Spring** easing (Gentle, Wobbly, Stiff) for natural, bouncy motion. Enable **Smooth** playback to ease the scrubbing for a more fluid feel. Use **Preview Starting State** to see the Start values applied on the canvas while you edit. ### Animating Colors Among the properties you can animate are **Color** (text) and **Background Color**. Set a starting and ending color — from your **[Global Colors](../global-settings/colors)** or a custom value — and the block transitions between them as the visitor scrolls. Color animation is available on blocks that support the corresponding color: - **Text color** — Text, Button, Icon, Row, Column, Flex Box, Scrolling Marquee and World Time. - **Background color** — Text, Button, Icon, Row, Column and Flex Box. --- ## Alignment Control ## Alignment Controls - **Align** Allows you to select if your object is aligned to the left, right, or center of your page. --- ## Background Color Control - **Solid** Allows you to select which color is in the background of your block. - **Gradient** Allows you to create a gradient background color. --- ## Background Image Control - **Size** Allows you to select the size of the image in your block. - **Attachment** The size of the block's background image. The image can be left to its natural size, stretched, or constrained to fit the available space. - **Opacity** Drag to adjust the opacity of your background image. --- ## Background Scroll Animation Control - **Effect** Select a parallax or zoom animation effect. - **Strength** Determine the strength of your animation. - **Trigger On** Choose if your scroll animation triggers on desktop, tablet, or mobile. --- ## Background Shape Control - **Shape** Choose a background shape for your block. - **Color** Select a color for your background shape. - **Position** Choose if your shape is at the top, bottom, or top and bottom of your block. - **Height** Set the height of your background shape. - **Align** Select if your shape will be on the inside or outside of your block. --- ## Background Video Control - **Loop** Allows you to enable or disable a loop of your video background. - **Fit** Select how your video fits into your block. - **Alignment** Choose the alignment of how your video displays in the block. - **Opacity** Allows you to determine how opaque your background video is. --- ## Border Control - **Outline** Select which sides of your block will have a border. - **Width** Choose the width of your border. - **Style** Allows you to pick between a border of solid, dashed, or dotted line(s). - **Color** Choose the color of your border. --- ## Border Radius Control - **Corner Radius** Allows you to determine the radius of your block. 1. Linked/Unlinked Select to change all of the radius for each corner at the same time or one at a time. --- ## Content Repeater Control The Content Repeater control lets you manage a **list of repeatable items** inside a block. Each item can be either **text** or an **image**. You can add, remove, duplicate, and reorder items. This control is used by blocks that display multiple content pieces in a loop, such as the [Scrolling Marquee](../blocks/scrolling-marquee) block. ### Where it appears The Content Repeater appears in the block sidebar for blocks that support it. The main example is the **Scrolling Marquee** block, where it powers the marquee’s content lines (the text or images that scroll). You may also see repeater-style interfaces in other blocks (e.g. taxonomy or meta layouts) that use the same pattern. ### Managing items - **Add item** – Use the add button to append a new item to the list. - **Remove** – Remove a single item from the list. - **Duplicate** – Create a copy of an item (same content and settings). - **Reorder** – Move items up or down to change their order. Each row in the repeater opens a panel or popover where you edit that item’s settings. ### Item settings #### Content type Choose whether the item is **Text** or **Image**. #### Text items - **Text** – The copy for this item (plain text / text area). - **Tag** – HTML tag used for the text (e.g. Span, H1–H6) for semantics or styling. - **Outline Effect** – Toggle a text outline effect. - **Spin Effect** – Toggle a spin (rotation) effect on the text. #### Image items - **Image** – Select or upload the image for this item. - **Aspect ratio** – Set the image aspect ratio (e.g. Auto or a specific ratio). Settings may vary slightly by block; the Scrolling Marquee uses these options to build the scrolling content lines. ### Typical use In the **Scrolling Marquee** block, you add multiple repeater items so that each item becomes one “segment” in the marquee (a word, phrase, or image). The block then repeats and scrolls this list. Use a mix of text and image items, set the tag and effects per item, and reorder them to control the sequence. --- ## Custom ID Control The Custom ID control lets you assign a custom HTML `id` attribute to a block. The block’s wrapper element will output that `id` in the markup (e.g. `
`), which you can use for: - **Anchor links** – Link directly to a section (e.g. `example.com/page/#pricing`). - **CSS or JavaScript** – Target the block with selectors like `#your-id`. - **Accessibility** – Reference the block from `aria-describedby` or similar attributes. ### Where it appears The control is in the **Advanced** group in the block’s sidebar (under the block’s main settings). Not every block exposes it; it is available on blocks that include the Custom ID control (e.g. the [Text](../blocks/text) block and others that support it). ### Settings - **Custom ID** – A single text field. Enter a valid HTML id value: - Use only letters, numbers, hyphens, and underscores. - Must not start with a number. - Should be unique on the page if you use it for anchor links or specific styling. If you enter an invalid value, the control will indicate the error and the invalid id will not be saved. Leave the field empty to use no custom id (default). --- ## Display Control The Display control sets how the block is laid out in the document flow. It appears on many Nectar blocks as a **Display** option in the sidebar (sometimes under a Display panel). - **Display** Select how your block is displayed. 1. **Auto** – Default; the block follows normal flow and context. 2. **Block** – The block is displayed as a block-level element. 3. **Hidden** – The block is hidden (e.g. for responsive show/hide). You can set different values per device (desktop, tablet, mobile) when responsive editing is available, so you can hide a block on mobile or change its display by viewport. --- ## Effects Control - **Opacity** Allows you to add an opaque effect to your block. Select the amount of transparency for the element. - **Box Shadow** Select to add a shadow and depth behind your block. - **Filters** Choose a visual filter for your block. - **Backdrop Filters** Select to add a filter behind the element in your block for an overlay effect. - **Transform** Allows you to alter the the elements in your block by rotating, skewing, or translating them. --- ## Font Color Control - **Color** Allows you to select to color of the font in your block. --- ## Font Settings Control - **Font Size** Allows you to adjust the size of your font within your block. - **Line Height** Select the line height of your font. --- ## Font Size Control The Font Size control lets you set **font size** and **line height** for the block’s text. It can include optional **minimum and maximum** font sizes (useful for fluid typography) and supports **responsive** values so you can use different sizes on desktop, tablet, and mobile. ### Where it appears The Font Size control appears in the sidebar on blocks that expose it, often under **General** or **Typography**-related panels. It is used by the [Accordion](../blocks/accordion), [Tabs](../blocks/tabs), [Icon List](../blocks/icon-list), and [Testimonial](../blocks/testimonial) blocks, among others. Blocks that use it may show it alongside [Font Settings](./font-settings-control) or [Typography](./typography-control); Font Size focuses specifically on size and line height. ### Settings - **Font size** – The main font size for the block (with unit, e.g. em or px). Can be locked (disabled) to inherit from a parent or global style. - **Line height** – Line height for the text (e.g. in em), often with a lock to inherit. - **Font size min / max** – (When available) Minimum and maximum font size, useful for fluid or responsive typography so the size scales between bounds. Values can be set per **device** (desktop, tablet, mobile) when the block supports responsive editing, so you can use larger type on desktop and smaller on mobile. ### Relation to other controls - **Font Settings control** – Covers font size and line height in a general “font settings” panel; some blocks use that instead of or in addition to this dedicated Font Size control. - **Typography control** – Applies a **typography preset** (from [Global Typography](../global-settings/typography)); that preset may define size and line height. The Font Size control then adjusts size/line height for this block specifically. Use Font Size when the block exposes it to fine-tune the text size and line height for that block. --- ## Link Control - **URL** Add the URL you would like to link to on your block. - **Target** Select whether to have your link open in a new window or in the same window. - **On Click** Allows you to open your URL as a regular link or as a lightbox on your page. - **Custom Attributes** Select to add custom attributes to your links for things like analytics. --- ## Mask Control The Mask control adds a **linear gradient mask** to the block so that content fades at the edges (e.g. top/bottom or left/right). This is useful for blending a block into the background, creating soft edges on images or text, or matching effects like the “Mask Edges” option on the [Scrolling Marquee](../blocks/scrolling-marquee) block. ### Where it appears The Mask control appears in the block sidebar for blocks that support it (e.g. [Text](../blocks/text), [Testimonial](../blocks/testimonial), [Row](../blocks/row), and others). Look for a **Mask** section or panel in the design/effects area. ### Settings - **Enable** – Turn the mask effect on or off. - **Direction** – Orientation of the gradient: - **Horizontal** – Fade on left and/or right. - **Vertical** – Fade on top and/or bottom. - **Sides** – Choose which edges are masked: - **Horizontal:** Left, Right, or both. - **Vertical:** Top, Bottom, or both. - **Mask amount** – Strength of the fade (how much of the edge is blended out). Higher values create a longer, softer fade. Settings can be set per device (desktop, tablet, mobile) where the control supports responsive editing, so you can use different mask directions or amounts on different screen sizes. ### Typical use Use the mask to soften the top and bottom of a full-width section, or the left/right edges of a row, so content blends into the page background instead of ending in a hard line. --- ## Overflow Control - **Overflow** Allows you to control the visibility and behavior of content that exceeds the boundaries of your block. --- ## Overview ## Block Controls ## Overview Nectar Block controls provide abstractions over common CSS rules. Each Block Control is focused on a different set of rules. Block Controls allow for these common sets of CSS rules to be applied to every block for which they are enabled. --- ## Position Control - **Z-Index** Allows you to choose the position of the layered elements in your blocks. - **Position** Choose how to position your block on your page (for example absolute or fixed positioning to free it from the normal flow). ## Drag to reposition When a block uses **absolute** positioning, you can place it visually instead of typing offsets. Click the **draw / move icon** in the block toolbar, then drag the block to where you want it on the canvas — the position offsets update as you drag. This makes it easy to nudge an absolutely positioned badge, label or decorative element into place. --- ## Render Tag Control The Render Tag control lets you change the **HTML element** used as the block’s wrapper. By default many layout blocks output a `
`. This control allows you to switch to a semantic element such as `
`, `
`, `
`, or `