Managing Flatsome Responsiveness
August 7, 2025 · AI Conversations
—
### 🔧 **1. Use UX Builder's Built-in Responsive Controls**
Flatsome’s UX Builder allows you to customize layouts for:
– Desktop
– Tablet
– Mobile
**Steps:**
– Edit any page/post with **UX Builder**.
– On the top bar, click the device icons (📱 Tablet, 📱 Mobile) to switch views.
– Adjust paddings, margins, font sizes, hide/show elements per device using **Visibility** options under **Advanced → Responsive Visibility**.
—
### 🧩 **2. Customize Visibility for Devices**
In UX Builder:
– Every section/row/element has an **Advanced > Visibility** tab.
– Set an element to be visible on:
– All Devices
– Desktop Only
– Tablet Only
– Mobile Only
This helps you show alternate content layouts per device if needed.
—
### 🎯 **3. Use Flatsome’s Grid System for Layouts**
Flatsome uses a **12-column grid**, similar to Bootstrap. You can use row/column elements to:
– Set column widths per screen size (e.g., 6/12 on desktop, 12/12 on mobile).
– Use **Stack Columns on Mobile** in Row settings to vertically stack columns.
—
### 🎨 **4. Responsive Typography**
– Navigate to **Flatsome > Typography** in the WP Customizer.
– Set different font sizes for Desktop, Tablet, and Mobile.
– For custom styles, use responsive CSS (see below).
—
### 💻 **5. Custom CSS for Breakpoints**
You can use Flatsome’s built-in **Custom CSS** panel under:
> **Appearance > Customize > Additional CSS**
#### Example media queries:
/* Tablets */
@media (max-width: 1024px) {
.my-class {
font-size: 18px;
padding: 10px;
}
}
/* Mobiles */
@media (max-width: 767px) {
.my-class {
font-size: 16px;
padding: 8px;
}
}
—
### 📱 **6. Responsive Menus and Sticky Headers**
– Go to **Flatsome > Theme Options > Header > Mobile Header**
– Configure how the mobile menu behaves.
– You can show/hide elements in the mobile header and control sticky settings independently.
—
### 📸 **7. Optimize Images for Mobile**
– Use smaller images for mobile versions where needed.
– Enable **Lazy Loading** in **Flatsome > Advanced > Performance**.
– Use **WebP** format if possible for faster loading.
—
### ✅ Best Practices
– Test changes on **real devices** and browser dev tools.
– Use **Google Chrome DevTools** → Responsive mode to preview across various sizes.
– Avoid absolute positioning or fixed widths unless absolutely necessary.
—
If you share a specific layout or issue, I can help you with the exact responsive tweak.
margin-bottom: 56px;
}
.banner-bg-color .row {
background-color: #E3F7F7;
border-radius: 12px;
min-height: 401px;
border: 1px solid #19BDC04D;
}
.banner-bg-color h2{
font-size: 52px;
}
.banner-bg-color p{
font-size: 20px;
}
.related-products h2{
margin-bottom:60px !important;
}
.age-gate {
background-color: #fff !important;
}
.register-page .col-1.large-6.col.pb-0.login-form-container {
display: none;
}
.register-page img {
border-radius:24px;
}
.register-heading{
font-size: 22px;
font-weight: 600 !important;
color: #000 !important;
}
/* 🔵 Form Input Styles */
.woocommerce-form .woocommerce-Input {
width: 100%;
padding: 14px 18px;
border: 1px solid #40a0a0;
background-color: #eafafa;
border-radius: 50px;
font-size: 16px;
color: #333;
box-sizing: border-box;
transition: all 0.3s ease;
outline: none;
}
/* 🔵 Placeholder Text Style */
.woocommerce-form .woocommerce-Input::placeholder {
color: #40a0a0;
font-weight: 400;
opacity: 1; /* For Firefox */
}
/* 🔵 On Focus */
.woocommerce-form .woocommerce-Input:focus {
border-color: #268c8c;
background-color: #e0f7f7;
}
/* 🔵 Label Style */
.woocommerce-form label {
font-weight: 600;
margin-bottom: 8px;
display: block;
color: #1d1d1d;
}
/* 🔵 Instructional Text (below inputs) */
.woocommerce-form p {
margin-bottom: 16px;
color: #333;
font-size: 15px;
}
/* 🔵 Submit Button */
.woocommerce-form .woocommerce-button {
background-color: #40a0a0;
border: none;
color: #fff;
padding: 14px 32px;
border-radius: 50px;
font-size: 16px;
cursor: pointer;
transition: background-color 0.3s ease;
}
.woocommerce-form .woocommerce-button:hover {
background-color: #2d7e7e;
}
/* blog post page */
.blog-fliter-section h2{
font-size:40px;
line-height:1.25;
margin-bottom:27px !important;
}
#post-category-tabs {
display: flex
;
gap: 20px;
justify-content: center;
padding-bottom: 5px;
margin-bottom:27px;
}
.category-tab {
background: none;
border: none;
font-size: 16px;
font-weight: 500;
padding:6px 8px;
color: #002526;
cursor: pointer;
position: relative;
transition: color 0.3s;
margin: 0 !important;
}
.category-tab:hover {
color: #000;
}
.category-tab.active-cat {
font-weight: 600;
color: #002526;
}
.category-tab.active-cat::after {
content: "";
position: absolute;
bottom: 0;
left: 50%;
transform: translateX(-50%);
width: 100%;
height: 1.8px;
background-color: #052626;
}
.post-list {
display: grid
;
grid-template-columns: repeat(2, 1fr);
gap: 24px 18px;
}
.post-search {
margin-bottom:56px;
}
.post-item {
position: relative;
overflow: hidden;
border-radius: 15px;
height: 340px;
}
.post-thumbnail {
background-size: cover;
background-position: center;
height: 100%;
width: 100%;
position: relative;
border-radius: 15px;
display: flex;
align-items: flex-end;
}
.post-overlay {
background: #00252633;
color: #fff;
width: 100%;
height: 100%;
padding: 22px;
display: flex
;
flex-direction: column;
justify-content: space-between;
border-radius: 15px;
position: absolute;
top: 0;
left: 0;
}
.post-cat-title{
display: flex
;
flex-direction: column;
gap: 24px;
}
.post-meta .post-category {
padding: 6px 13px;
border-radius: 20px;
font-size: 12px;
font-weight: 600;
display: inline-block;
text-transform: uppercase;
}
.post-title {
margin: 0 0 10px;
font-size: 20px;
line-height: 1.4;
font-weight: bold;
}
.post-title a {
color: #fff;
text-decoration: none;
font-size: 24px;
font-weight: 600;
}
.read-more {
align-self: flex-end;
font-weight: 600;
text-decoration: none;
color: #fff;
font-size: 17.5px;
border-bottom: 1px solid #fff;
}
.read-more span {
margin-left: 5px;
}
.tag-style-1 {
background-color: #EEEEEE;
color: #0F7173;
border:1px solid #FFFFFF;
}
.tag-style-2 {
background-color: #0F7173;
color: #fff;
border:1px solid #14979A;
}
span.post-category.tag-style-2 a {
color: #fff;
}
.tag-style-3 {
background-color: #19BDC0;
color: #fff;
border: 1px solid #b2e4e5;
}
span.post-category.tag-style-3 a {
color: #fff;
}
.ajax-pagination .disabled {
color: #fff;
cursor: not-allowed;
background-color: #0F7173;
}
.ajax-pagination {
text-align: center;
margin-top: 30px;
}
.ajax-pagination ul {
list-style: none;
display: flex;
justify-content: center;
align-items: center;
gap: 10px;
padding: 0;
margin: 0;
}
.ajax-pagination li {
display: inline-block;
margin: 0 !important;
}
.ajax-pagination a, .ajax-pagination span {
display: inline-flex
;
justify-content: center;
align-items: center;
width: 32px;
height: 32px;
border-radius: 50%;
font-size: 18px;
font-weight: 500;
text-decoration: none;
color: #0F717366;
background-color: transparent;
border: 2px solid transparent;
transition: all 0.3s ease;
}
.ajax-pagination .current {
color: #146e71;
}
.ajax-pagination a:hover {
background-color: rgba(20, 110, 113, 0.1);
}
.pag-arrow-icon {
background-color: #0F7173 !important;
color: #fff !important;
padding: 14px !important;
}
@media (max-width:849px){
.banner-bg-color{
padding-inline:20px;
}
.banner-bg-color h2 {
font-size: 36px;
}
.banner-bg-color p {
font-size: 18px;
}.searchform-wrapper .searchform {
max-width: 410px;
min-width: 100%;
}
#post-category-tabs {
flex-wrap: wrap;
gap: 12px;
}
.post-item {
height: 250px;
}
.post-title a {
font-size: 20px;
}
.post-overlay {
padding: 16px;
}
.read-more {
align-self: flex-start;
}
.related-products h2{
margin-bottom:60px !important;
font-size:32px;
}
.newsletter-section{
padding-inline:20px;
}
.banner-bg-color .row {
min-height: 100%;
}
.banner-bg-color br{
display:none;
}
}
@media (max-width:550px){
.post-list {
grid-template-columns: repeat(1, 1fr);
gap: 16px;
}
.post-item {
height: 200px;
}
}
is there any mistake?
—
### ✅ **What You’ve Done Well**
– Great use of `@media` queries (`max-width: 849px` and `550px`) for tablets and mobile.
– Proper use of `flex`, `grid`, `gap`, and `font-size` adjustments for responsiveness.
– Good use of `transition`, `hover`, and `:focus` styles for interactions.
– Logical class structure and naming convention (`.banner-bg-color`, `.post-item`, `.read-more`, etc.).
—
### 🟡 **Minor Suggestions for Improvement**
#### 1. **Mobile-first Approach (Optional)**
You’ve used `max-width` media queries, which is fine and common, but a **mobile-first** (`min-width`) approach is generally recommended for performance and future scalability:
/* Instead of this */
@media (max-width: 849px) { ... }
/* Use this structure */
base/mobile styles here...
@media (min-width: 850px) {
/* tablet styles */
}
Only refactor if you're planning a full restructure — otherwise it's not urgent.
—
#### 2. **Use `em` or `rem` Instead of `px` (Recommended)**
For better scaling and accessibility, it's a best practice to use:
font-size: 1.125rem; /* instead of 18px */
padding: 1.25rem; /* instead of 20px */
This allows for better zoom behavior and user-defined font scaling.
—
#### 3. **`px` Gaps and Font Sizes are Tight on Small Screens**
For `.post-overlay`, consider reducing padding even more on very small screens:
@media (max-width: 400px) {
.post-overlay {
padding: 12px;
}
.post-title a {
font-size: 18px;
}
}
—
#### 4. **Missing Units Warning**
You wrote:
border: 1px solid #19BDC04D;
But `#19BDC04D` is likely intended to be **`#19BDC0` with 30% opacity**, which should be written using `rgba()`:
border: 1px solid rgba(25, 189, 192, 0.3);
`#19BDC04D` is an 8-digit hex code — not supported by all browsers depending on version.
—
#### 5. **Missing `box-sizing: border-box;` in Grid Containers**
Add this globally to avoid layout bugs:
*, *::before, *::after {
box-sizing: border-box;
}
—
#### 6. **Add Hover/Fallback Styles for Pagination Current State**
If `.ajax-pagination .current` is a `span`, it has no hover style:
.ajax-pagination .current:hover {
background-color: rgba(20, 110, 113, 0.1);
}
—
### ✅ Conclusion
There are **no critical mistakes** — just minor improvements for better accessibility, consistency, and cross-browser support. You’re doing great!
Would you like me to modularize or convert this into SCSS for better maintainability?