This is a custom preset for UnoCSS that allows you to create CSS gradients with easing functions. This preset provides utility classes to define gradients with custom easing and shape options. Gradients can be linear, radial or conic and support custom colour stops based on easing functions or Bézier curves.
- Easing-based colour stops: Create smooth gradient transitions based on easing functions.
- Customisable stops: Specify gradient colours, shapes and number of steps.
- Supports linear, radial and tapered gradients.
- Easy configuration: Control colours, shapes, directions, and smoothing functions directly in CSS classes.
npm install -D unocss-preset-easing-gradient
Add the preset to your UnoCSS configuration.
import { defineConfig } from 'unocss'
import { presetEasingGradient } from 'unocss-preset-easing-gradient'
export default defineConfig({
presets: [
presetEasingGradient(),
// other presets
],
})
To create a gradient with easing, follow these steps:
- Set the starting color with
bg-gradient-fn-from-$color
. - Set the ending color with
bg-gradient-fn-to-$color
. - Choose an easing function by name, like
bg-gradient-fn-ease-in-out
.
<div class="bg-gradient-fn-from-blue-500 bg-gradient-fn-to-l bg-gradient-fn-to-green-400 bg-gradient-fn-ease-in-out">
<!-- Your content here -->
</div>
Define the direction or shape of the gradient using bg-gradient-fn-to-{direction}
or bg-gradient-fn-shape-{shape}
.
- Directions:
t
(top),r
(right),b
(bottom),l
(left) - Shape: Use
linear
,radial
, orconic
shapes
<div class="bg-gradient-fn-from-pink-400 bg-gradient-fn-to-yellow-500 bg-gradient-fn-to-tr">
<!-- Content -->
</div>
For advanced customization, define custom Bézier curves:
<div class="bg-gradient-fn-from-red-400 bg-gradient-fn-to-blue-500 bg-gradient-fn-bezier-[0.42,0,0.58,1]">
<!-- Content -->
</div>
Set the number of steps in the gradient with bg-gradient-fn-steps-{number}. Default is 8.
<div class="bg-gradient-fn-from-indigo-400 bg-gradient-fn-to-purple-500 bg-gradient-fn-steps-12">
<!-- Content -->
</div>
This preset supports common easing functions, including:
ease
ease-in
ease-out
ease-in-out
- Full list at
easing.ts
Ensure from and to colors are set before applying easing or Bézier functions.
Step count affects the smoothness of the gradient; higher values yield smoother gradients.