/*
* By Elementor Team
*/
( function( $ ) {
var Sticky = function( element, userSettings ) {
var $element,
isSticky = false,
isFollowingParent = false,
isReachedEffectsPoint = false,
elements = {},
settings,
elementOffsetValue,
elementWidth;
var defaultSettings = {
to: 'top',
offset: 0,
effectsOffset: 0,
parent: false,
classes: {
sticky: 'sticky',
stickyActive: 'sticky-active',
stickyEffects: 'sticky-effects',
spacer: 'sticky-spacer',
},
isRTL: false,
isScrollSnapActive: false,
handleScrollbarWidth: false,
};
var initElements = function() {
$element = $( element ).addClass( settings.classes.sticky );
elements.$window = $( window );
elements.$body = $( document ).find( 'body' );
if ( settings.parent ) {
elements.$parent = $element.parent();
if ( 'parent' !== settings.parent ) {
elements.$parent = elements.$parent.closest( settings.parent );
}
}
};
var initSettings = function() {
settings = jQuery.extend( true, defaultSettings, userSettings );
};
var bindEvents = function() {
elements.$window.on( 'resize', onWindowResize );
if ( settings.isScrollSnapActive ) {
elements.$body.on( 'scroll', onWindowScroll );
} else {
elements.$window.on( 'scroll', onWindowScroll );
}
};
var unbindEvents = function() {
elements.$window
.off( 'scroll', onWindowScroll )
.off( 'resize', onWindowResize );
elements.$body.off( 'scroll', onWindowScroll );
};
var init = function() {
initSettings();
initElements();
bindEvents();
checkPosition();
};
var backupCSS = function( $elementBackupCSS, backupState, properties ) {
var css = {},
elementStyle = $elementBackupCSS[ 0 ].style;
properties.forEach( function( property ) {
css[ property ] = undefined !== elementStyle[ property ] ? elementStyle[ property ] : '';
} );
$elementBackupCSS.data( 'css-backup-' + backupState, css );
};
var getCSSBackup = function( $elementCSSBackup, backupState ) {
return $elementCSSBackup.data( 'css-backup-' + backupState );
};
const updateElementSizesData = () => {
elementWidth = getElementOuterSize( $element, 'width' );
elementOffsetValue = $element.offset().left;
if ( settings.isRTL ) {
// `window.innerWidth` includes the scrollbar while `document.body.offsetWidth` doesn't.
const documentWidth = settings.handleScrollbarWidth ? window.innerWidth : document.body.offsetWidth;
elementOffsetValue = Math.max( documentWidth - elementWidth - elementOffsetValue, 0 );
}
}
var addSpacer = function() {
elements.$spacer = $element.clone()
.addClass( settings.classes.spacer )
.css( {
visibility: 'hidden',
transition: 'none',
animation: 'none',
} );
$element.after( elements.$spacer );
};
var removeSpacer = function() {
elements.$spacer.remove();
};
var stickElement = function() {
backupCSS( $element, 'unsticky', [ 'position', 'width', 'margin-top', 'margin-bottom', 'top', 'bottom', 'inset-inline-start' ] );
const css = {
position: 'fixed',
width: elementWidth,
marginTop: 0,
marginBottom: 0,
};
css[ settings.to ] = settings.offset;
css[ 'top' === settings.to ? 'bottom' : 'top' ] = '';
if ( elementOffsetValue ) {
css[ 'inset-inline-start' ] = elementOffsetValue + 'px';
}
$element
.css( css )
.addClass( settings.classes.stickyActive );
};
var unstickElement = function() {
$element
.css( getCSSBackup( $element, 'unsticky' ) )
.removeClass( settings.classes.stickyActive );
};
var followParent = function() {
backupCSS( elements.$parent, 'childNotFollowing', [ 'position' ] );
elements.$parent.css( 'position', 'relative' );
backupCSS( $element, 'notFollowing', [ 'position', 'inset-inline-start', 'top', 'bottom' ] );
const css = {
position: 'absolute',
};
elementOffsetValue = elements.$spacer.position().left;
if ( settings.isRTL ) {
const parentWidth = $element.parent().outerWidth(),
elementOffsetValueLeft = elements.$spacer.position().left;
elementWidth = elements.$spacer.outerWidth();
elementOffsetValue = Math.max( parentWidth - elementWidth - elementOffsetValueLeft, 0 );
}
css[ 'inset-inline-start' ] = elementOffsetValue + 'px';
css[ settings.to ] = '';
css[ 'top' === settings.to ? 'bottom' : 'top' ] = 0;
$element.css( css );
isFollowingParent = true;
};
var unfollowParent = function() {
elements.$parent.css( getCSSBackup( elements.$parent, 'childNotFollowing' ) );
$element.css( getCSSBackup( $element, 'notFollowing' ) );
isFollowingParent = false;
};
var getElementOuterSize = function( $elementOuterSize, dimension, includeMargins ) {
var computedStyle = getComputedStyle( $elementOuterSize[ 0 ] ),
elementSize = parseFloat( computedStyle[ dimension ] ),
sides = 'height' === dimension ? [ 'top', 'bottom' ] : [ 'left', 'right' ],
propertiesToAdd = [];
if ( 'border-box' !== computedStyle.boxSizing ) {
propertiesToAdd.push( 'border', 'padding' );
}
if ( includeMargins ) {
propertiesToAdd.push( 'margin' );
}
propertiesToAdd.forEach( function( property ) {
sides.forEach( function( side ) {
elementSize += parseFloat( computedStyle[ property + '-' + side ] );
} );
} );
return elementSize;
};
var getElementViewportOffset = function( $elementViewportOffset ) {
var windowScrollTop = elements.$window.scrollTop(),
elementHeight = getElementOuterSize( $elementViewportOffset, 'height' ),
viewportHeight = innerHeight,
elementOffsetFromTop = $elementViewportOffset.offset().top,
distanceFromTop = elementOffsetFromTop - windowScrollTop,
topFromBottom = distanceFromTop - viewportHeight;
return {
top: {
fromTop: distanceFromTop,
fromBottom: topFromBottom,
},
bottom: {
fromTop: distanceFromTop + elementHeight,
fromBottom: topFromBottom + elementHeight,
},
};
};
var stick = function() {
updateElementSizesData();
addSpacer();
stickElement();
isSticky = true;
$element.trigger( 'sticky:stick' );
};
var unstick = function() {
unstickElement();
removeSpacer();
isSticky = false;
$element.trigger( 'sticky:unstick' );
};
var checkParent = function() {
var elementOffset = getElementViewportOffset( $element ),
isTop = 'top' === settings.to;
if ( isFollowingParent ) {
var isNeedUnfollowing = isTop ? elementOffset.top.fromTop > settings.offset : elementOffset.bottom.fromBottom < -settings.offset;
if ( isNeedUnfollowing ) {
unfollowParent();
}
} else {
var parentOffset = getElementViewportOffset( elements.$parent ),
parentStyle = getComputedStyle( elements.$parent[ 0 ] ),
borderWidthToDecrease = parseFloat( parentStyle[ isTop ? 'borderBottomWidth' : 'borderTopWidth' ] ),
parentViewportDistance = isTop ? parentOffset.bottom.fromTop - borderWidthToDecrease : parentOffset.top.fromBottom + borderWidthToDecrease,
isNeedFollowing = isTop ? parentViewportDistance <= elementOffset.bottom.fromTop : parentViewportDistance >= elementOffset.top.fromBottom;
if ( isNeedFollowing ) {
followParent();
}
}
};
var checkEffectsPoint = function( distanceFromTriggerPoint ) {
if ( isReachedEffectsPoint && -distanceFromTriggerPoint < settings.effectsOffset ) {
$element.removeClass( settings.classes.stickyEffects );
isReachedEffectsPoint = false;
} else if ( ! isReachedEffectsPoint && -distanceFromTriggerPoint >= settings.effectsOffset ) {
$element.addClass( settings.classes.stickyEffects );
isReachedEffectsPoint = true;
}
};
var checkPosition = function() {
var offset = settings.offset,
distanceFromTriggerPoint;
if ( isSticky ) {
var spacerViewportOffset = getElementViewportOffset( elements.$spacer );
distanceFromTriggerPoint = 'top' === settings.to ? spacerViewportOffset.top.fromTop - offset : -spacerViewportOffset.bottom.fromBottom - offset;
if ( settings.parent ) {
checkParent();
}
if ( distanceFromTriggerPoint > 0 ) {
unstick();
}
} else {
var elementViewportOffset = getElementViewportOffset( $element );
distanceFromTriggerPoint = 'top' === settings.to ? elementViewportOffset.top.fromTop - offset : -elementViewportOffset.bottom.fromBottom - offset;
if ( distanceFromTriggerPoint <= 0 ) {
stick();
if ( settings.parent ) {
checkParent();
}
}
}
checkEffectsPoint( distanceFromTriggerPoint );
};
var onWindowScroll = function() {
checkPosition();
};
var onWindowResize = function() {
if ( ! isSticky ) {
return;
}
unstickElement();
removeSpacer();
updateElementSizesData();
addSpacer();
stickElement();
if ( settings.parent ) {
// Force recalculation of the relation between the element and its parent.
isFollowingParent = false;
checkParent();
}
};
this.destroy = function() {
if ( isSticky ) {
unstick();
}
unbindEvents();
$element.removeClass( settings.classes.sticky );
};
init();
};
$.fn.sticky = function( settings ) {
var isCommand = 'string' === typeof settings;
this.each( function() {
var $this = $( this );
if ( ! isCommand ) {
$this.data( 'sticky', new Sticky( this, settings ) );
return;
}
var instance = $this.data( 'sticky' );
if ( ! instance ) {
throw Error( 'Trying to perform the `' + settings + '` method prior to initialization' );
}
if ( ! instance[ settings ] ) {
throw ReferenceError( 'Method `' + settings + '` not found in sticky instance' );
}
instance[ settings ].apply( instance, Array.prototype.slice.call( arguments, 1 ) );
if ( 'destroy' === settings ) {
$this.removeData( 'sticky' );
}
} );
return this;
};
window.Sticky = Sticky;
} )( jQuery );

Fashion isn’t just for women—men’s wear is booming, and 2025 is full of exciting trends and timeless classics. Whether you’re dressing for work, a casual day out, or a wedding, the right outfit can boost your confidence and leave a lasting impression.
In this guide, we’ll explore the top men’s clothing trends, wardrobe essentials, and styling tips that every modern man should know.
Relaxed Tailoring
Say goodbye to ultra-skinny suits. In 2025, relaxed and oversized tailoring is the go-to style. Think loose blazers, straight trousers, and unstructured suits.
Earthy & Neutral Tones
Shades like olive green, beige, taupe, and stone grey are dominating men’s wear. These colors are versatile and perfect for layering.
Workwear-Inspired Outfits
Utility jackets, cargo pants, and rugged boots bring function and fashion together. This aesthetic is perfect for a casual, masculine look.
Sustainable Fashion
Eco-friendly fabrics and ethical brands are now a big part of men’s wardrobes. Organic cotton, recycled denim, and plant-based dyes are hot in 2025.
Retro Vibes
Think ‘90s baggy jeans, varsity jackets, and vintage sneakers. Nostalgia is big this year.
White Oxford Shirt – A timeless piece for casual or formal events.
Dark Wash Jeans – Clean, minimal, and easy to pair with anything.
Chinos – Comfortable and sharp—great for business casual looks.
Bomber or Denim Jacket – Adds an edge to any outfit.
Classic Sneakers – White leather sneakers never go out of style.
Casual Day Out
Outfit: T-shirt, denim jacket, and chinos
Footwear: White sneakers
Accessories: Sunglasses and a leather bracelet
Work or Business Casual
Outfit: Button-up shirt, slim-fit chinos, and loafers
Layering: Add a lightweight blazer for a sharp touch
Formal Events
Outfit: Tailored suit in navy or charcoal
Footwear: Oxford or Derby shoes
Extras: Pocket square, tie, and a wristwatch
When it comes to dressing up kids, the right balance between comfort and style is everything. In 2025, kids’ fashion is all about vibrant colors, playful patterns, soft fabrics, and functional designs. Whether you’re shopping for school outfits, party wear, or daily essentials, Garokik has the perfect pieces for your little ones.
From jungle animals to space rockets, kids’ clothes in 2025 are bursting with personality. Expect bold color palettes and quirky patterns that let children express their imagination and individuality.
Matching t-shirt and shorts/track pant sets are a hit with parents and kids alike. They’re perfect for school, playdates, or even travel — quick to wear, comfortable to move in, and easy to mix & match.
Kids love to dress like mom and dad! Mini versions of adult fashion — like denim jackets, hoodies, or sneakers — are trendy and super adorable.
Lightweight jackets, zip-up hoodies, and sleeveless puffers are trending this year. They add style while keeping kids cozy in changing weather.
Parents are opting for breathable cottons and organic fabrics that are gentle on the skin. 2025 focuses on sustainable choices — safe for kids and better for the planet.
At Garokik, we understand that kids need fashion that works as hard as they play. That’s why our Kids Collection offers:
Soft, skin-friendly fabrics
Bright, playful designs
Durable materials that last
Easy fits for active movement
Affordable prices for growing wardrobes
From toddlers to tweens, we’ve got styles your kids will love — and you’ll feel good buying.
]]>
Your home is more than just a place — it’s your sanctuary. In 2025, Home & Living trends focus on creating spaces that feel calm, functional, and full of personality. Whether you’re redecorating a single room or upgrading your whole house, Garokik’s Home & Living collection brings modern style, comfort, and quality to every corner of your home.
Space-saving and clutter-free living is the future. Think foldable tables, storage ottomans, and sleek sofas that serve multiple purposes — ideal for modern homes and apartments.
Materials like bamboo, rattan, jute, and reclaimed wood are dominating the scene. These not only look beautiful but also support a sustainable lifestyle.
Add warmth and comfort with ambient lighting, decorative lamps, and soy-wax scented candles. They instantly uplift mood and style.
Shades like olive green, terracotta, beige, and sky blue are trending. These calm tones bring a sense of balance and relaxation into living spaces.
Add character to any room with abstract paintings, framed quotes, and handcrafted décor items. 2025 is all about self-expression through your surroundings.
Keep your home neat and aesthetic with drawer dividers, hanging organizers, and compact storage bins. Functionality meets modern design.
At Garokik, we combine modern design with daily functionality. Our Home & Living range is curated to:
Enhance comfort and style
Fit both large and small spaces
Offer high-quality, durable materials
Match modern lifestyle trends
Bring personality to your home without breaking the budget
From cozy bedroom accents to practical kitchenware, we have what you need to build the home you’ve been dreaming of.
]]>
2025 is a year of bold statements, effortless comfort, and elevated basics. Whether you’re revamping your wardrobe or simply adding a few new pieces, the right fashion choices can transform your everyday style. At Garokik, our Women’s Fashion section brings you the latest trends, handpicked for modern women who want to look confident and stylish.
Comfort meets chic. Loose-fitting tops, flowy tunics, and wide-leg pants are redefining elegance this year. They offer breathable comfort without compromising on style.
Matching two-piece outfits are trending more than ever. Whether it’s a co-ord set for brunch or an evening-ready matching blazer and pants — coordinated fashion is clean, classy, and convenient.
2025 brings denim in new avatars — from distressed mom jeans to stylish denim jackets with embroidery and prints. It’s a must-have for both casual and smart-casual looks.
Think stylish cargo pants, oversized pockets, and functional fashion. This year, clothing that works with you — and not against you — is a top pick for women on the move.
While bold colors make a statement, earthy tones like sand, sage, and terracotta bring a grounded elegance that works across seasons. Combine them with minimalist accessories for a timeless appeal.
From bold earrings and chunky rings to oversized sunglasses and layered chains — 2025 accessories are designed to stand out and complete your outfit with confidence.
At Garokik, we believe every woman deserves to feel confident, comfortable, and stylish — every single day. Our Women’s Collection is carefully curated to offer:
Quality fabrics and fits
Trend-forward designs
Affordable prices
Fast and easy shopping experience
Whether you’re dressing for work, casual outings, or special occasions, you’ll find everything you need to express your personal style.
]]>