Layout

Layout

Control the layout properties of elements with the settings inside Advanced > Layout.
Display
This setting specifies the type of rendering box used for an element. There are six options available:

flex – block-level flex container. This is the default for sections, columns, and divs.
inline-flex – inline-level flex container.
block – block-level element. Set display to block when using the CSS float property on its children.
Inline – inline element (like ).
inline-block – inline-level block.
none – the element is not displayed.

Float
The float property does not work if the parent element's display property is set to flex, which is the default for most elements in Oxygen. There are three options available:

none – Default value. The element does not float
left – The element floats to the left of its container.
right – The element floats the right of its container.

Overflow
This setting specifies what should happen if content overflows an element's rendering box. There are three options available:

visible – Default value. The overflow is not clipped. It renders outside the element's box.
hidden – The overflow is clipped. The overflowing content is not visible.
scroll – The overflow is clipped, but a scroll-bar is added to see the rest of the content.

Clear
This setting specifies on which sides of an element floating elements are not allowed to float. There are four options available:

none – Default value. Allows floating elements on both sides.
left – No floating elements allowed on the left side.
right – No floating elements allowed on the right side.
both – No floating elements allowed on either the left or the right side.

Visibility
This setting specifies whether or not an element is visible. There are two options available:

visible – Default value. The element is visible.
hidden – The element is hidden (but still takes up space).

Z-Index
This setting determines the stacking order of an element. If two elements overlay each other, the element with the higher z-index will appear on top.

Position
This setting specifies the type of positioning method used for an element (static, relative, absolute, fixed). There are four options available:

static – Default value.
absolute – The element is positioned relative to its first positioned (not static) ancestor element.
relative – The element is positioned relative to its normal position.
fixed – The element is positioned relative to the browser window.

Flexbox Controls
Flex Direction
This setting specifies how flex items are placed in the flex container. There are four options available:

row – The flex items are displayed horizontally, as a row.
column – The flex items are displayed vertically, as a column.
row-reverse – Same as a row, but in reverse order.
column-reverse – Same as a column, but in reverse order.

Align Items
This setting specifies the default alignment for flex items inside a flex container. There are four options available:

flex-start – Items are positioned at the beginning of the container.
center – Items are positioned at the center of the container.
flex-end – Items are positioned at the end of the container.
stretch – Items are stretched to fit the container.

Justify Content
This setting aligns the flex container's items when the items do not use all available space on the main-axis. There are five options available:

flex-start – Items are positioned at the beginning of the container.
center – Items are positioned at the center of the container.
flex-end – Items are positioned at the end of the container.
space-between – Available space is distributed between the flex items.
space-around – Available space is distributed around the flex items.

Flex Wrap
This setting specifies whether flex items should wrap or not. There are three options available:

nowrap – Specifies that the flex items will not wrap.
wrap – Specifies that the flex items will wrap if necessary.
wrap-reverse – Specifies that the flex items will wrap if necessary, but in reverse order.

Align Content
This setting specifies how space is distributed between and around flex items along the cross-axis of their flex container. There are five options available:

flex-start – Lines are packed toward the start of the flex container.
center – Lines are packed toward the center of the flex container.
flex-end – Lines are packed toward the end of the flex container.
space-around – Lines are evenly distributed in the flex container, with half-size spaces on either end
stretch – Lines stretch to take up the remaining space.

Flexbox Child Controls
When an element is the child of another element which is display: flex or display: inline-flex, the Flexbox Child Controls are available.
The Align Self setting specifies the alignment for the selected item inside the flex container. There are five options available:

auto – Default value. The element inherits its parent container's Align Items property.
left – The element is positioned on the left (or start) of the container.
center – The element is positioned at the center of the container.
right – The element is positioned on the right (or end) of the container.
stretch – The element is positioned to fit the container.

The Order setting specifies the order of a flex item relative to the rest of the flex items inside the same container. The default value is 0.
The Flex Grow setting specifies how much the item grows relative to the rest of the flex items inside the same container. The default value is 0.
The Flex Shrink setting specifies how the item will shrink relative to the rest of the flex items inside the same container. The default value is 1.

Meta Box

Meta Box

Oxygen integrates with Meta Box / Meta Box Pro.
When Meta Box is installed, fields present on the currently viewed post or fields present on a Meta Box Settings Page are accessible via Oxygen's dynamic data functionality and automatically appear in the Insert Dynamic Data dialog.
Once the Insert Dynamic Data dialog is open, click Meta Box to see the available fields.
Oxygen's Meta Box integration includes support for cloneable groups as Oxygen Repeater data sources.

Size & Spacing

Size & Spacing

Control element widths, heights, paddings, and margins with the settings inside Advanced -> Size & Spacing.
Padding
Padding is spacing on the inside edge of an element.
Margin
Margin is spacing on the outside edge of an element.
Width / Height

Width / Height: Explicitly defines the width and height of the element.
Min Width / Min Height: Defines the element』s minimum width and height.
Max Width / Max Height: Defines the element』s maximum width and height.

You may indicate these values in pixels, percent, em (current font size), rem, vw (1% of the browser viewport width), or vh (1% of the browser viewport height). You can also select 'none' from the unit dropdown, which enables you to use any valid CSS unit.

Migrating An Oxygen Site

Migrating An Oxygen Site

Migrating Full Sites
After migrating an Oxygen site or changing the domain in your hosting, you must follow these steps in order:

Run a search and replace on the database to update the old domain to the new domain (the Better Search Replace plugin is good for this). This isn't needed if you have used a migration plugin that runs a search and replace for you, such as All In One Migration
Save your permalinks twice via Settings > Permalinks
Resign your shortcodes via Oxygen > Settings > Security
Regenerate your CSS cache via Oxygen > Settings > CSS Cache
Re-save your licence key via Oxygen > Settings > License so that your site can use one-click updates when a new version is available

You may also need to open each template in the admin area and click the Update button on the right-hand side but I've only found that to be required on a handful of sites.
If you have any caching plugins installed you will also need to clear the caches.
Migrating Individual Pages or Templates
Manually Copy & Pasting
If you've not used any classes/selectors in your design, you can copy your page/template shortcodes to another site by clicking +Shortcodes below the "Edit with Oxygen" button, copying those shortcodes and pasting them into the same location on a new site.
If you have used classes/selectors, then you would need to copy Oxygen's Export JSON first, as that contains all your Global settings, Classes, Selectors & Stylesheets. You can find it via Oxygen > Export & Import.
Utilising Oxygen's User Design Library
It's possible to make your site a design set that can then be accessed by other sites. There's more information on this here: https://oxygenbuilder.com/documentation/design-library/user-design-library/.
Using a Plugin
The paid, third-party plugin, Hydrogen Pack allows you to copy and paste designs between sites: https://www.cleanplugins.com/products/hydrogen-pack/.

Other Templates

Other Templates

In addition to the options in Singular and Archive templates, WordPress and Oxygen provide a few other places which your template can be applied. You can find these options on the Oxygen -> Templates -> Edit screen inside the Other subsection under Where Does This Template Apply?
Front Page
WordPress has a special page that displays when the root URL is called. This is the Front Page of a website, and WordPress uses its own template for this.
https://codex.wordpress.org/Creating_a_Static_Front_Page
Blog Posts Index
The Blog Posts Index is a Posts archive in WordPress that displays a paginated list of your blog posts.
Search Results
The Search Results template is used to display the results of a search done with the WordPress search form.
Further reading: https://codex.wordpress.org/Creating_a_Search_Page
404
When a user tries to access a page that does not exist on your website, a 404 page not found error is returned. Use this template to customize the display of your 404 error pages. If the template isn't displaying correctly when you visit a page that doesn't exist, please set a higher priority on the 404 template.
Inner Content
By default, the Inner Content element within any other template uses WordPress content. However, you can create an Oxygen template to be applied to all Inner Content elements across the entire website.
Catch All
The Catch All template will be applied by default if no other specific template is used. This is useful for template inheritance and to ensure the header and footer are consistent throughout the entire website.

States

States

A state, technically known as a pseudo-class, allows you to apply styles to elements based on the state of the element.
Examples of states and pseudo-classes:

a hovered button
an active form field
the first or last element of a certain type present in a section

Editing Styles For Element States
First, click the state button. Then, select the state you wish to edit from the list.

Now you can edit the styles for this state.
Adding Custom States
By default, Oxygen lets you edit the styles for :hover, :before, and :after. It is also possible to add custom states.

Click state
Click add state. A pop-up window is displayed.
Type state/pseudo-class name (with or without the :), then click OK. The state is now added to the list.

To add a compound state like :hover:before or :first-child:hover, simply type the compound state into the box.
Complete List Of States / Pseudo-Classes
Many pseudo-classes are available. Details can be found in the Mozilla Developer Network: Pseudo-classes article.

Troubleshooting Guide

Troubleshooting Guide

Most problems and errors you encounter while using Oxygen can be solved using this troubleshooting guide.
If you are getting a 500 error, check your server's error_log file to see the exact error message. Your web hosting provider can help you with this. This error is almost always caused by a misconfigured server or rogue plugin.
Plugin Conflict Test
Improperly coded or misconfigured plugins, especially misconfigured caching plugins, can break Oxygen and your website.
To run a plugin conflict test, disable all active plugins on your site except for Oxygen, and check to see if the problem is solved.
If so, you know the culprit was one of your active plugins. you can then re-enable your plugins one at a time and check for the problem after re-enabling each plugin to find the one causing the conflict.
Caching plugins should generally be configured to not affect the WordPress admin panel, logged in users, or Oxygen's visual editor, which loads JavaScript and CSS files from /wp-content/plugins/oxygen/. Caching plugins that modify these files can break Oxygen.
Check Your Error Log File
If you get an error message in Oxygen, check your server's error_log file for an error message that is logged at the same time you see the error message in Oxygen.
Your web hosting provider can assist you with reading the error_log file.
Many times this error will have meaningful information about the cause of the problem.
Ensure a Modern PHP Version
Oxygen requires PHP v7. Please note that Oxygen isn't yet compatible with PHP v8.
If your host has provided you with an ancient version of PHP and you're not able to update it, you should switch hosts.
Clear All Caches
Clear your browser cache.
If your web hosting provider has caching enabled, clear that cache too. Your web hosting provider can provide assistance with this.
Check & Resave Your Permalinks
Go to the Settings > Permalinks page and change your permalink settings to the default.
Does this fix the problem?
If so, now go to the Settings > Permalinks page and set the permalinks page back to your desired settings.
Check to see if the problem still takes place.
If so, contact your web hosting provider.
If not, it simply means the permalinks needed to be resaved for some reason.
Re-Sign Oxygen Shortcodes
If parts of your design are missing after migrating a site, you will need to re-sign your Oxygen shortcodes.
Before proceeding, perform a full backup of your site.
Once your site has been backed up, go to Oxygen > Settings > Security in the WordPress admin panel and ensure that the "Check Oxygen's shortcodes for a valid signature before executing" checkbox is checked. If it's not, check it and then click Save Changes.
Next, click the "Sign All Shortcodes" link just below the Save Changes button.
Now, check the "I have made a complete backup of my site" box and the boxes for each post type on which you'd like to re-sign the shortcodes. Usually, you'll want to re-sign shortcodes on ct_template, page, and post.
Click the Start shortcodes signing process. You'll be able to watch the progress and see when the re-signing of Oxygen shortcodes has been completed.
Once the process has finished, check the posts or templates that were missing elements and those elements should be visible and editable again.
Regenerate Oxygen's CSS Cache
If your site has been migrated, you will likely need to regenerate Oxygen's CSS cache via Oxygen > Settings > CSS Cache.
500 Error
The most common cause of a 500 error on an Oxygen site is that your site has run out of memory. If the error is only occurring when you try to edit a template, the issue may be caused by the number of items that are being previewed by the template. You can reduce the number of items in the preview dropdown box by setting the Preview Dropdown Limit to something like 10 via Oxygen > Settings > General.
Database Collation
An unsupported database collation can cause Oxygen's shortcodes to be created incorrectly. You will need to make sure that your database and tables are encoded with utf8mb4_general_ci or utf8_general_ci. If the database is set to UTF8 encoding and not utf8mb4_general_ci, 4 byte characters (aka Emojis) in the post meta will prevent anything from being saved.
If you're not sure how to change the database collation on your site, please contact your web host.
Other
The Apache ModEvasive module can prevent the builder from loading as it may incorrectly think that the site is being attacked.

Reusable Parts

Reusable Parts

Reusable parts allow you to use the same page part in multiple pages.
You may edit the reusable part in one place, and it will be updated everywhere it is used as a single.
Creating a reusable part
To make an element reusable, follow these steps:

Click the Structure button at the top to display the Structure panel.
Click the hamburger menu icon next to the element title and select Make re-usable.

Assign a component name in the pop-up window, then click OK.

Editing The Reusable Part
Click the reusable part, anywhere it is used.

Then, click Edit with Oxygen to edit the reusable part.
The changes affect all the pages that include this reusable part as a single.
You can also find all your reusable parts on the Oxygen > Templates screen.
Using the reusable part
To insert the reusable part on your page, click +Add > Reusable, and then select the reusable part.
Then, select the way of using the reusable part: as single or as editable.

Single
Edits made to the original reusable part will take effect for all instances of the reusable part that have been added as Single.
Editable
The reusable part is converted to normal Oxygen elements and can be edited directly where it is used. Edits made to the Oxygen elements will not affect the original reusable part. Edits made to the original reusable part will not affect the page where it was added as Editable.

Typography

Typography

Control the way your text looks with the settings inside Advanced > Typography.
Font Family
This setting specifies the font for an element.
By default, Oxygen allows you to choose from 800+ Google Fonts. Because there are so many fonts on Google Fonts, displaying them all at once in the list would not be practical. To use a font from Google's library, click the Font Family dropdown, and then start typing the font』s name.
Read the article on Global Fonts for information on adding any custom font or linking Oxygen to Typekit.
Font Size
Sets the size of the text.
Color
Sets the color of the text.
Font Weight
Sets the boldness, also known as weight. A weight of 700 is bold, and 400 is normal.
Text Align
Sets the alignment of the text.

Left – Aligns the text to the left.
Right – Aligns the text to the right.
Center – Centers the text.
Justify – Stretches the lines so that each line has an equal width (like newspapers and magazines).

Line Height
Sets the amount of vertical space used by a line of text.
Oxygen recommends using a unitless line height - i.e. just a number, without px or em or %.
When a unitless line height is used, the browser automatically multiplies it by the font size to compute a final line height. For example, a line height of 1.5 and a font-size of 14px would result in lines with heights of 21px.
If you wish to use a unit, simply type it in after the number, i.e. "21px".
Letter Spacing
This setting increases or decreases the space between characters in the text.
Text Decoration

none – Default value.
underline – The text will be underlined
overline – The text will be overlined.
line-through – A line will be displayed through the text.

Font Style

normal – Default value.
italic – The text will be italic.

Text Transform
This setting allows for automatic capitalization of text.

none – No capitalization. The text renders as it is. This is used by default.
capitalize – Transforms the first character of each word to uppercase
uppercase – Transforms all characters to uppercase.
lowercase – Transforms all characters to lowercase.

Font Smoothing
This setting controls the application of anti-aliasing when fonts are rendered. There are three options available:

initial – Is used by default. In this mode, the browser decides when to use subpixel antialiasing.
antialiased – Smooth the font on the level of the pixel, as opposed to the subpixel. Switching from subpixel rendering to antialiasing for light text on dark backgrounds makes it look lighter.
subpixel-antialiased – On most non-retina displays, this will give the sharpest text.

Keep the following tips in mind when changing the font smoothing:

when you place light text on a dark background, change the font smoothing to antialiased
when you place dark text on a light background, leave the font smoothing as is

Recommendation: do not use this setting until you read this excellent article on font smoothing: http://usabilitypost.com/2012/11/05/stop-fixing-font-smoothing/