---
title: "bypassed-undefinition"
description: "Reports a top-level utility definition that also applies where the built-in definitions remove it."
image: "https://stillwind.dev/og.png"
---

> Documentation Index
> Fetch the complete documentation index at: https://stillwind.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# bypassed-undefinition

This rule reports a top-level `@utility` that also applies where Stillwind
removes the utility on purpose. Inside animation options, for example,
`duration-*` sets `animation-duration`, and the built-in definitions remove the
`transition-duration` meaning there. A top-level `duration-slow` would bring that
meaning back.

## Reported

```css
@utility duration-slow {
  transition-duration: 1s;
}
```

> bypassed-undefinition: `@utility duration-slow` also defines `duration-slow` in the `keyframe` registry, where `@stillwind-undef-utility duration-*` removed the earlier definitions
> 
> Example:1:10

## Fixed

```css
@stillwind-registry default {
  @utility duration-slow {
    transition-duration: 1s;
  }
}
```

## How to fix

Define the utility inside `@stillwind-registry default`, as in the example. Then
it applies in ordinary `style()` calls, and animation options keep their own
meaning of `duration-*`.

## Rule settings

| Preset | Severity |
| --- | --- |
| `recommended` | warn |
| `strict` | deny |
| `stylistic` | off |

[Configure lint](/docs/configuration#lint) to change the severity or options.

Source: https://stillwind.dev/docs/lints/bypassed-undefinition/index.mdx
