toMap method

Map<String, Object?> toMap()

Converts base style values to a CSS property map.

State and breakpoint styles are intentionally excluded from this map and are exposed through stateStyles and breakpointStyles.

Implementation

Map<String, Object?> toMap() {
  return _withoutNulls({
    'padding': padding?.toCss(),
    'margin': margin?.toCss(),
    'width': cssValue(width),
    'height': cssValue(height),
    'min-width': cssValue(minWidth),
    'max-width': cssValue(maxWidth),
    'min-height': cssValue(minHeight),
    'max-height': cssValue(maxHeight),
    'display': display?.css,
    'gap': cssValue(gap),
    'align-items': alignItems?.css,
    'justify-items': cssValue(justifyItems, unitlessNumber: true),
    'justify-content': justifyContent?.css,
    'flex': cssValue(flex, unitlessNumber: true),
    'flex-direction': flexDirection?.css,
    'flex-wrap': cssValue(flexWrap, unitlessNumber: true),
    'flex-grow': cssValue(flexGrow, unitlessNumber: true),
    'flex-shrink': cssValue(flexShrink, unitlessNumber: true),
    'flex-basis': cssValue(flexBasis),
    'grid-template-columns': gridTemplateColumns,
    'position': position?.css,
    'top': cssValue(top),
    'right': cssValue(right),
    'bottom': cssValue(bottom),
    'left': cssValue(left),
    'z-index': zIndex,
    'overflow': cssValue(overflow, unitlessNumber: true),
    'box-sizing': cssValue(boxSizing, unitlessNumber: true),
    'scroll-behavior': cssValue(scrollBehavior, unitlessNumber: true),
    'aspect-ratio': cssValue(aspectRatio, unitlessNumber: true),
    'object-fit': cssValue(objectFit, unitlessNumber: true),
    'transform': cssValue(transform, unitlessNumber: true),
    'backdrop-filter': cssValue(backdropFilter, unitlessNumber: true),
    'font-family': cssValue(fontFamily, unitlessNumber: true),
    'font-size': cssValue(fontSize),
    'font-weight': cssValue(fontWeight, unitlessNumber: true),
    'line-height': cssValue(lineHeight, unitlessNumber: true),
    'color': cssValue(color),
    'text-align': textAlign?.css,
    'text-transform': cssValue(textTransform, unitlessNumber: true),
    'text-decoration': cssValue(textDecoration, unitlessNumber: true),
    'cursor': cssValue(cursor, unitlessNumber: true),
    'resize': cssValue(resize, unitlessNumber: true),
    'background': cssValue(gradient ?? background),
    'border-radius': cssValue(radius),
    'border': border?.toCss(),
    'border-top': borderTop?.toCss(),
    'border-right': borderRight?.toCss(),
    'border-bottom': borderBottom?.toCss(),
    'border-left': borderLeft?.toCss(),
    'box-shadow': shadow is Shadow
        ? (shadow as Shadow).toCss()
        : cssValue(shadow),
    'opacity': opacity,
    'transition': cssValue(transition, unitlessNumber: true),
    'animation': cssValue(animation, unitlessNumber: true),
    'will-change': cssValue(willChange, unitlessNumber: true),
  });
}