Utilities Overview
Utility classes are single-purpose CSS classes that apply a specific style. Styleframe's utility composables make it easy to generate these classes programmatically with full type safety and seamless integration with your design tokens.
Why Use Utility Composables?
Styleframe's approach to utilities offers several key advantages:
- Type-Safe Generation: Full TypeScript support with auto-complete for all utility values
- Design Token Integration: Reference your design tokens directly in utility values using
ref() - Modifier Support: Apply state modifiers like
hover,focus, andactiveto any utility - Consistent Naming: Generated class names follow predictable patterns like
_property:value - Minimal Code: Generate comprehensive utility sets with just a few lines of code
- Customizable: Define exactly the utilities you need without bloat
Quick Start
Here's a minimal example showing how utilities work:
import { styleframe } from 'styleframe';
import { useSpacing } from '@styleframe/theme';
import { useMarginUtility, usePaddingUtility, useDisplayUtility } from '@styleframe/theme';
const s = styleframe();
// Define spacing design tokens
const { spacing, spacingSm, spacingMd, spacingLg } = useSpacing(s, {
default: '1rem',
sm: '0.5rem',
md: '1rem',
lg: '1.5rem',
} as const);
// Create margin utilities with your spacing values
useMarginUtility(s, {
sm: s.ref(spacingSm),
md: s.ref(spacingMd),
lg: s.ref(spacingLg),
auto: 'auto',
});
// Create padding utilities
usePaddingUtility(s, {
sm: s.ref(spacingSm),
md: s.ref(spacingMd),
lg: s.ref(spacingLg),
});
// Create display utilities (uses built-in defaults)
useDisplayUtility(s);
export default s;
This generates utility classes like:
._margin\:sm { margin: var(--spacing--sm); }
._margin\:md { margin: var(--spacing--md); }
._margin\:lg { margin: var(--spacing--lg); }
._margin\:auto { margin: auto; }
._padding\:sm { padding: var(--spacing--sm); }
._padding\:md { padding: var(--spacing--md); }
._padding\:lg { padding: var(--spacing--lg); }
._display\:flex { display: flex; }
._display\:block { display: block; }
._display\:grid { display: grid; }
/* ... more display values */
Utility Categories
These composables are organized into categories following common CSS property groupings.
Accessibility
Utilities for accessibility features like screen reader visibility and forced color adjustments.
Available composables:
useForcedColorAdjustUtility(): Control forced-color-adjust behavioruseSrOnlyUtility(): Visually hide content while keeping it accessibleuseNotSrOnlyUtility(): Undo screen-reader-only styles
Learn more about Accessibility Utilities →
Backgrounds
Utilities for controlling background properties.
Available composables:
useBackgroundColorUtility(): Set background colorsuseBackgroundImageUtility(): Set background imagesuseBackgroundSizeUtility(): Control background sizinguseBackgroundPositionUtility(): Set background positionuseBackgroundRepeatUtility(): Control background repeat behavioruseBackgroundAttachmentUtility(): Set scroll behavioruseBackgroundClipUtility(): Control background clippinguseBackgroundOriginUtility(): Set background origin
Learn more about Background Utilities →
Borders
Utilities for borders, outlines, dividers, and focus rings.
Available composables:
useBorderColorUtility(): Set border colors (with directional variants)useBorderWidthUtility(): Control border widthuseBorderRadiusUtility(): Set border radiususeBorderStyleUtility(): Define border stylesuseDivideUtility(): Add divider lines between childrenuseOutlineUtility(): Control outline stylesuseRingUtility(): Create focus rings
Learn more about Border Utilities →
Effects
Utilities for visual effects like shadows, opacity, and blend modes.
Available composables:
useBoxShadowUtility(): Apply box shadowsuseBoxShadowColorUtility(): Set shadow colorsuseOpacityUtility(): Control element opacityuseTextShadowUtility(): Add text shadowsuseMixBlendModeUtility(): Set blend modesuseBackgroundBlendModeUtility(): Control background blending
Learn more about Effect Utilities →
Filters
Utilities for CSS filter effects and backdrop filters.
Available composables:
useBlurUtility(): Apply blur effectsuseBrightnessUtility(): Adjust brightnessuseContrastUtility(): Control contrastuseGrayscaleUtility(): Apply grayscaleuseHueRotateUtility(): Rotate hueuseInvertUtility(): Invert colorsuseSaturateUtility(): Adjust saturationuseSepiaUtility(): Apply sepia toneuseDropShadowUtility(): Add drop shadowsuseBackdropBlurUtility(): Blur backdrop (+ other backdrop filters)
Learn more about Filter Utilities →
Flexbox & Grid
Utilities for flexbox and grid layout systems.
Available composables:
useFlexUtility(): Flex shorthand valuesuseFlexDirectionUtility(): Set flex directionuseFlexWrapUtility(): Control flex wrappinguseFlexGrowUtility(),useFlexShrinkUtility(): Control flex growth/shrinkuseGridTemplateColumnsUtility(),useGridTemplateRowsUtility(): Define grid templatesuseGapUtility(): Set gaps between itemsuseAlignUtility(),useJustifyUtility(),usePlaceUtility(): Alignment utilitiesuseOrderUtility(): Control item order
Learn more about Flexbox & Grid Utilities →
Interactivity
Utilities for user interaction properties.
Available composables:
useCursorUtility(): Set cursor stylesusePointerEventsUtility(): Control pointer eventsuseUserSelectUtility(): Manage text selectionuseScrollBehaviorUtility(): Set scroll behavioruseTouchActionUtility(): Control touch interactionsuseResizeUtility(): Enable element resizinguseAccentColorUtility(),useCaretColorUtility(): Form element colors
Learn more about Interactivity Utilities →
Layout
Utilities for element layout and positioning.
Available composables:
useDisplayUtility(): Set display typesusePositionUtility(): Set positioning modeuseInsetUtility(): Control inset values (+ directional variants)useZIndexUtility(): Set stacking orderuseOverflowUtility(): Control overflow behavioruseVisibilityUtility(): Toggle visibilityuseAspectRatioUtility(): Set aspect ratiosuseColumnsUtility(): Multi-column layouts
Learn more about Layout Utilities →
Sizing
Utilities for width and height properties.
Available composables:
useWidthUtility(),useMinWidthUtility(),useMaxWidthUtility(): Width controluseHeightUtility(),useMinHeightUtility(),useMaxHeightUtility(): Height controluseSizeUtility(): Set both dimensions at once
Learn more about Sizing Utilities →
Spacing
Utilities for margin and padding.
Available composables:
useMarginUtility(): Set margins (+ directional variants)usePaddingUtility(): Set padding (+ directional variants)useSpaceUtility(): Space between children
Learn more about Spacing Utilities →
SVG
Utilities for SVG-specific properties.
Available composables:
useFillUtility(): Set SVG fill coloruseStrokeUtility(): Set SVG stroke coloruseStrokeWidthUtility(): Control stroke width
Learn more about SVG Utilities →
Tables
Utilities for table layout properties.
Available composables:
useBorderCollapseUtility(): Control border collapsinguseBorderSpacingUtility(): Set border spacinguseTableLayoutUtility(): Set table layout algorithmuseCaptionSideUtility(): Position table captions
Learn more about Table Utilities →
Transforms
Utilities for CSS transforms.
Available composables:
useRotateUtility(): Rotate elementsuseScaleUtility(): Scale elementsuseTranslateUtility(): Translate positionuseSkewXUtility(),useSkewYUtility(): Skew elementsuseTransformOriginUtility(): Set transform originusePerspectiveUtility(): Set 3D perspective
Learn more about Transform Utilities →
Transitions & Animation
Utilities for transitions and animations.
Available composables:
useTransitionPropertyUtility(): Set which properties transitionuseTransitionDurationUtility(): Set transition durationuseTransitionTimingFunctionUtility(): Set easing functionsuseTransitionDelayUtility(): Set transition delaysuseAnimationUtility(): Apply CSS animations
Learn more about Transition & Animation Utilities →
Typography
Utilities for text and font styling.
Available composables:
useFontFamilyUtility(),useFontSizeUtility(),useFontWeightUtility(): Font propertiesuseTextColorUtility(): Set text coloruseTextAlignUtility(): Control text alignmentuseLineHeightUtility(),useLetterSpacingUtility(): Text spacinguseTextDecorationUtility(): Add text decorationsuseTextTransformUtility(): Transform text caseuseLineClampUtility(): Truncate text with ellipsis
Learn more about Typography Utilities →
Utility Reference
| Category | Key Composables | Purpose |
|---|---|---|
| Accessibility | useSrOnlyUtility, useForcedColorAdjustUtility | Screen reader and a11y features |
| Backgrounds | useBackgroundColorUtility, useBackgroundImageUtility | Background styling |
| Borders | useBorderColorUtility, useBorderRadiusUtility, useRingUtility | Border and outline styles |
| Effects | useBoxShadowUtility, useOpacityUtility | Visual effects |
| Filters | useBlurUtility, useBackdropBlurUtility | CSS filters |
| Flexbox & Grid | useFlexUtility, useGapUtility, useGridTemplateColumnsUtility | Layout systems |
| Interactivity | useCursorUtility, usePointerEventsUtility | User interactions |
| Layout | useDisplayUtility, usePositionUtility, useZIndexUtility | Element layout |
| Sizing | useWidthUtility, useHeightUtility, useSizeUtility | Dimensions |
| Spacing | useMarginUtility, usePaddingUtility | Margins and padding |
| SVG | useFillUtility, useStrokeUtility | SVG properties |
| Tables | useBorderCollapseUtility, useTableLayoutUtility | Table layout |
| Transforms | useRotateUtility, useScaleUtility, useTranslateUtility | CSS transforms |
| Transitions | useTransitionDurationUtility, useAnimationUtility | Animations |
| Typography | useFontSizeUtility, useTextColorUtility, useLineClampUtility | Text styling |
Best Practices
- Use design tokens: Reference your design token variables using
ref()for consistent styling - Start small: Only generate the utilities you actually need to keep CSS bundle size minimal
- Leverage defaults: Many utilities have sensible default values you can use directly
- Apply modifiers: Use modifier composables like
hoverto generate state variants - Use
as const: Addas constto value objects for better TypeScript inference - Follow naming conventions: Use semantic names that describe purpose, not appearance
Next Steps
Ready to start using utilities? Begin with these common categories:
- Building layouts? Start with Layout and Flexbox & Grid
- Styling text? Check out Typography
- Adding spacing? Explore Spacing and Sizing
- Creating effects? Look at Effects and Filters
Each utility composable is designed to work seamlessly with Styleframe's design tokens and theming system.