@teacss/rule-helpers
v0.10.11
Published
Helpers for authoring TeaCSS preset rules — static/dynamic rule builders and value resolvers.
Readme
@teacss/rule-helpers
Reusable builders and value parsers for TeaCSS preset authors.
This package provides framework-neutral building blocks. The calling preset still owns public prefixes, scales, aliases, theme shape, and registration.
Entry points
| Import | Contents |
| --------------------------------------- | -------------------------------------------------------------------------------- |
| @teacss/rule-helpers | Rule builders, theme helpers, identifiers, arbitrary values, and handler chains. |
| @teacss/rule-helpers/value-resolvers | Theme, keyword, number, time, variable, and opacity resolvers. |
| @teacss/rule-helpers/css-syntax | Top-level CSS value scanning and splitting. |
| @teacss/rule-helpers/css-value-syntax | CSS value validation and numeric-function inference. |
| @teacss/rule-helpers/constants | Shared constants. |
import {
createValueHandler,
getOwn,
h,
makeArbitraryValueRule,
makeGlobalRules,
makeStaticRules,
routeGlobalKeywordsToExactRules,
} from "@teacss/rule-helpers";makeStaticRules produces property:value enum rules. makeGlobalRules
also accepts CSS-wide keywords. Both reject empty enum values, false prefixes,
and the removed bareExclude option. Bare names belong in Core shortcuts;
makeShorthandRules is no longer exported.
Use routeGlobalKeywordsToExactRules before appending user rules so broad
fallbacks cannot shadow exact keyword rules.
h is a first-match handler chain for bracket values, variables, global
keywords, numbers, percentages, lengths, times, identifiers, colors, and URLs.
Use makeArbitraryValueRule for dynamic bracket and variable fallbacks.
getOwn(record, key) reads configured own properties, including names such as
constructor, while ignoring inherited values. Reuse the exported CSS
identifier and grammar helpers instead of maintaining partial validators.
CSS easing validation requires integer tokens for literal steps() counts;
numeric functions and variable substitutions remain supported. In linear(),
the one or two percentages may appear together before or after the output number.
The validator accepts a single stop, including linear(0), following the
CSS Easing editor's draft.
This is grammar validation, not browser feature detection. Chromium 153,
Firefox 155 and WebKit 26.6 reject that form; linear(0,0) provides constant
zero output in those engines. The linear keyword instead produces 0→1 progress.
For steps() and cubic-bezier(), literal ranges and numeric types are checked;
correctly typed calculations retain CSS rounding and clamping even where browser
support differs. Escaped function names, comments around arguments, variable step
positions and complete variable argument lists are accepted. The validator does
not expand variables mixed with other arguments into multiple components.
See the audit and remaining parser/browser limits.
This package does not choose vocabulary or run generation.
Pre-1.0. Helper behavior remains preset-oriented.
