Documentation - Effects.
Discover Marssel: an intelligent, minimal configuration CSS framework designed for fast interfaces and a simplified developer experience.
Startup
Basic concepts
Utilities
Effects
CSS effects allow you to add depth, movement and interactivity to your interfaces. Marssel offers a simple syntax for applying shadows, transforms, opacities and other visual effects. These properties can be combined with :hover, :focus pseudo-classes and breakpoints to create dynamic and responsive user experiences.
Simple shadows
<div class="shadow-[0_2px_4px_rgba(0,0,0,0.1)] p-[20px] bg-[fff]">
Light shadow
</div>
<div class="shadow-[0_4px_8px_rgba(0,0,0,0.15)] p-[20px] bg-[fff]">
Medium shadow
</div>
<div class="shadow-[0_8px_16px_rgba(0,0,0,0.2)] p-[20px] bg-[fff]">
Pronounced shadow
</div>
<div class="shadow-[0_12px_24px_rgba(0,0,0,0.25)] p-[20px] bg-[fff]">
Strong shadow
</div>
Colorful shadows
<div class="shadow-[0_4px_12px_rgba(59,130,246,0.3)] p-[20px] bg-[fff]">
Blue shadow
</div>
<div class="shadow-[0_4px_12px_rgba(16,185,129,0.3)] p-[20px] bg-[fff]">
Green shade
</div>
<div class="shadow-[0_4px_12px_rgba(239,68,68,0.3)] p-[20px] bg-[fff]">
Red shadow
</div>
Shadows with spread
<div class="shadow-[0_4px_20px_8px_rgba(0,0,0,0.1)] p-[20px] bg-[fff]">
Diffuse shadow
</div>
<div class="shadow-[inset_0_2px_4px_rgba(0,0,0,0.1)] p-[20px] bg-[f5f5f5]">
Internal shadow
</div>
Multiple shadows
<div class="shadow-[0_2px_4px_rgba(0,0,0,0.1),0_8px_16px_rgba(0,0,0,0.1)] p-[20px] bg-[fff]">
Multiple shadows
</div>
Shadows on the hover
<div class="shadow-[0_2px_4px_rgba(0,0,0,0.1)] shadow-[0_8px_16px_rgba(0,0,0,0.2)]:hover transition-[all_0.3s] p-[20px] bg-[fff] cursor-[pointer]">
Hover over me
</div>
<div class="shadow-[none] shadow-[0_4px_12px_rgba(0,0,0,0.15)]:hover transition-[box-shadow_0.3s] p-[20px] bg-[fff] cursor-[pointer]">
Shadow on hover
</div>
Opacity
<div class="opacity-[1] bg-[0B63F3] p-[20px] mb-[10px] c-[fff]">
Opacity 100%
</div>
<div class="opacity-[0.75] bg-[0B63F3] p-[20px] mb-[10px] c-[fff]">
Opacity 75%
</div>
<div class="opacity-[0.5] bg-[0B63F3] p-[20px] mb-[10px] c-[fff]">
Opacity 50%
</div>
<div class="opacity-[0.25] bg-[0B63F3] p-[20px] c-[fff]">
Opacity 25%
</div>
Hover opacity
<div class="opacity-[1] opacity-[0.7]:hover transition-[opacity_0.3s] bg-[0B63F3] p-[20px] c-[fff] cursor-[pointer]">
Fade on hover
</div>
<div class="opacity-[0.5] opacity-[1]:hover transition-[opacity_0.3s] bg-[0B63F3] p-[20px] c-[fff] cursor-[pointer]">
Appearance on hover
</div>
Scale
<!-- Reduction -->
<div class="transform-[scale(0.5)] bg-[e2e2e2] p-[20px] mb-[10px]">
Scale 0.5
</div>
<!-- Normal size -->
<div class="transform-[scale(1)] bg-[e2e2e2] p-[20px] mb-[10px]">
Scale 1
</div>
<!-- Enlargement -->
<div class="transform-[scale(1.5)] bg-[e2e2e2] p-[20px]">
Scale 1.5
</div>
Scale to hover
<!-- Zoom on hover -->
<div class="transform-[scale(1)] transform-[scale(1.1)]:hover transition-[transform_0.3s] bg-[0B63F3] p-[20px] c-[fff] cursor-[pointer]">
Zoom on hover
</div>
<!-- Hover reduction -->
<div class="transform-[scale(1)] transform-[scale(0.95)]:hover transition-[transform_0.3s] bg-[0B63F3] p-[20px] c-[fff] cursor-[pointer]">
Hover reduction
</div>
Rotate
<!-- Light rotation -->
<div class="transform-[rotate(2deg)] bg-[e2e2e2] p-[20px] mb-[10px]">
Rotation 2°
</div>
<!-- Average rotation -->
<div class="transform-[rotate(15deg)] bg-[e2e2e2] p-[20px] mb-[10px]">
Rotation 15°
</div>
<!-- Negative rotation -->
<div class="transform-[rotate(-5deg)] bg-[e2e2e2] p-[20px]">
Rotation -5°
</div>
Rotate on hover
<!-- Rotate on hover -->
<div class="transform-[rotate(0deg)] transform-[rotate(5deg)]:hover transition-[transform_0.3s] bg-[0B63F3] p-[20px] c-[fff] cursor-[pointer]">
Rotate on hover
</div>
<!-- Full rotation -->
<div class="transform-[rotate(0deg)] transform-[rotate(360deg)]:hover transition-[transform_1s] bg-[0B63F3] p-[20px] c-[fff] cursor-[pointer]">
360° rotation
</div>
Translate
<!-- Horizontal movement -->
<div class="transform-[translateX(20px)] bg-[e2e2e2] p-[20px] mb-[10px]">
Displacement
</div>
<!-- Vertical movement -->
<div class="transform-[translateY(20px)] bg-[e2e2e2] p-[20px] mb-[10px]">
Y displacement
</div>
<!-- Combined travel -->
<div class="transform-[translate(20px_20px)] bg-[e2e2e2] p-[20px]">
X and Y movement
</div>
Translate to hover
<!-- Swipe up -->
<div class="transform-[translateY(0)] transform-[translateY(-5px)]:hover transition-[transform_0.3s] bg-[0B63F3] p-[20px] c-[fff] cursor-[pointer]">
Slide high
</div>
<!-- Swipe right -->
<div class="transform-[translateX(0)] transform-[translateX(10px)]:hover transition-[transform_0.3s] bg-[0B63F3] p-[20px] c-[fff] cursor-[pointer]">
Right swipe
</div>
Combined transformations
<div class="transform-[scale(1)_rotate(0deg)] transform-[scale(1.1)_rotate(5deg)]:hover transition-[transform_0.3s] bg-[0B63F3] p-[20px] c-[fff] cursor-[pointer]">
Scale + Rotate
</div>
<div class="transform-[translateX(0)_rotate(0deg)] transform-[translateX(10px)_rotate(-5deg)]:hover transition-[transform_0.3s] bg-[0B63F3] p-[20px] c-[fff] cursor-[pointer]">
Move + Rotate
</div>
<div class="transform-[translateX(0)_translateY(0)_scale(1)_rotate(0deg)] transform-[translateX(5px)_translateY(-5px)_scale(1.05)_rotate(3deg)]:hover transition-[transform_0.3s] bg-[0B63F3] p-[20px] c-[fff] cursor-[pointer]">
Complex transformation
</div>
Blur
<div class="filter-[blur(0px)] mb-[10px]">
<img src="https://placehold.co/300x200" class="w-[100%] rounded-[8px]" alt="Sans flou">
</div>
<div class="filter-[blur(2px)] mb-[10px]">
<img src="https://placehold.co/300x200" class="w-[100%] rounded-[8px]" alt="Flou léger">
</div>
<div class="filter-[blur(5px)]">
<img src="https://placehold.co/300x200" class="w-[100%] rounded-[8px]" alt="Flou moyen">
</div>
Brightness
<!-- Reduced brightness -->
<div class="filter-[brightness(0.4)] mb-[10px]">
<img src="https://placehold.co/300x200" class="w-[100%] rounded-[8px]" alt="Sombre">
</div>
<!-- Increased brightness -->
<div class="filter-[brightness(1.3)]">
<img src="https://placehold.co/300x200" class="w-[100%] rounded-[8px]" alt="Lumineux">
</div>
Grayscale
<!-- Color image -->
<div class="filter-[grayscale(0)] mb-[10px]">
<img src="https://picsum.photos/id/13/300/200" class="w-[100%] rounded-[8px]" alt="Couleur">
</div>
<!-- Black and white image -->
<div class="filter-[grayscale(1)] filter-[grayscale(0)]:hover transition-[filter_0.3s] cursor-[pointer]">
<img src="https://picsum.photos/id/13/300/200" class="w-[100%] rounded-[8px]" alt="Noir et blanc">
</div>
Combined filters
<!-- Blur + Brightness -->
<div class="filter-[blur(2px)_brightness(1.2)]">
<img src="https://picsum.photos/id/13/300/200" class="w-[100%] rounded-[8px]" alt="Flou lumineux">
</div>
<!-- Grayscale + Contrast -->
<div class="filter-[grayscale(0.8)_contrast(1.2)] filter-[grayscale(0)_contrast(1)]:hover transition-[filter_0.5s] cursor-[pointer]">
<img src="https://picsum.photos/id/13/300/200" class="w-[100%] rounded-[8px]" alt="Effet vintage">
</div>
Backdrop Filter
Glass effect
Text on blurred background
<!-- Glass effect -->
<div class="pos-[relative] h-[300px] overflow-[hidden]">
<img src="https://placehold.co/600x400" class="w-[100%] h-[100%] object-[cover]" alt="Background">
<div class="pos-[absolute] top-[50%] left-[50%] transform-[translate(-50%_-50%)] backdrop-filter-[blur(10px)] bg-rgba-[255,255,255,0.3] p-[24px] rounded-[12px] border-[1px_solid_rgba(255,255,255,0.5)]">
<h3 class="m-[0] mb-[8px]">Glass effect</h3>
<p class="m-[0]">Text on blurred background</p>
</div>
</div>
Transition animations
<div class="bg-[0B63F3] bg-[2563eb]:hover p-[20px] c-[fff] cursor-[pointer] transition-[background-color_0.2s] mb-[10px]">
Fast transition (0.2s)
</div>
<div class="bg-[0B63F3] bg-[2563eb]:hover p-[20px] c-[fff] cursor-[pointer] transition-[background-color_0.3s] mb-[10px]">
Normal transition (0.3s)
</div>
<div class="bg-[0B63F3] bg-[2563eb]:hover p-[20px] c-[fff] cursor-[pointer] transition-[background-color_0.6s]">
Slow transition (0.6s)
</div>
Transitioning Multiple Properties
<div class="bg-[0B63F3] p-[20px] c-[fff] cursor-[pointer] transition-[all_0.3s] transform-[scale(1)] bg-[2563eb]:hover transform-[scale(1.05)]:hover shadow-[0_8px_16px_rgba(0,0,0,0.2)]:hover">
Multiple transition
</div>
<div class="bg-[0B63F3] p-[20px] c-[fff] cursor-[pointer] transition-[background-color_0.3s__transform_0.3s__box-shadow_0.3s] transform-[scale(1)] bg-[2563eb]:hover transform-[scale(1.05)]:hover shadow-[0_8px_16px_rgba(0,0,0,0.2)]:hover">
Targeted transitions
</div>
Card with effects
Interactive card
Hover elevation effect with shadow and displacement.
<div class="bg-[fff] rounded-[12px] p-[24px] shadow-[0_2px_8px_rgba(0,0,0,0.1)] shadow-[0_12px_24px_rgba(0,0,0,0.15)]:hover transform-[translateY(0)] transform-[translateY(-8px)]:hover transition-[all_0.3s] cursor-[pointer]">
<h3 class="m-[0] mb-[12px]">Interactive card</h3>
<p class="m-[0] c-[666]">Hover elevation effect with shadow and displacement.</p>
</div>
Button with complex effects
<button class="bg-[0B63F3] c-[fff] py-[12px] px-[24px] rounded-[6px] border-[none] cursor-[pointer] shadow-[0_4px_12px_rgba(59,130,246,0.3)] transform-[scale(1)] opacity-[1] transition-[all_0.3s] bg-[2563eb]:hover transform-[scale(1.05)]:hover shadow-[0_6px_20px_rgba(59,130,246,0.4)]:hover opacity-[0.9]:active transform-[scale(0.98)]:active">
Animated button
</button>
Image with hover overlay
<div class="pos-[relative] overflow-[hidden] rounded-[12px] cursor-[pointer]">
<img src="https://placehold.co/400x300" class="w-[100%] transform-[scale(1)] transition-[transform_0.5s] transform-[scale(1.1)]:hover" alt="Image">
<div class="pos-[absolute] top-[0] left-[0] w-[100%] h-[100%] bg-rgba-[0,0,0,0]] bg-rgba-[0,0,0,0.5]]:hover d-[flex] items-[center] justify-[center] transition-[background-color_0.3s]">
<span class="c-[fff] font-size-[18px] font-weight-[600] opacity-[0] opacity-[1]:hover transition-[opacity_0.3s]">
See more
</span>
</div>
</div>
Responsive effects
<div class="transform-[rotate(0deg)] md--transform-[rotate(5deg)] lg--transform-[scale(1.1)] bg-[0B63F3] p-[20px] c-[fff]">
Responsive effects
</div>
<div class="shadow-[0_2px_4px_rgba(0,0,0,0.1)] md--shadow-[0_4px_8px_rgba(0,0,0,0.15)] lg--shadow-[0_8px_16px_rgba(0,0,0,0.2)] p-[20px] bg-[fff]">
Responsive shadow
</div>