docs: protected NodeData createTextStyle(BoxStyle style, float width)
      {
          NodeData ret = CSSFactory.createNodeData();
          TermFactory tf = CSSFactory.getTermFactory();
          ret.push(createDeclaration("position", tf.createIdent("absolute")));
          ret.push(createDeclaration("overflow", tf.createIdent("hidden")));
          ret.push(createDeclaration("left", tf.createLength(style.getLeft(), unit)));
          ret.push(createDeclaration("top", tf.createLength(style.getTop(), unit)));
          ret.push(createDeclaration("line-height", tf.createLength(style.getLineHeight(), unit)));
          if (style.getFontFamily() != null)
              ret.push(createDeclaration("font-family", tf.createString(style.getFontFamily())));
          if (style.getFontSize() != 0)
          {
              float size = (float) style.getFontSize();
              if (style.getFontFamily() == null)
                  size = size * unknownFontScale;
              ret.push(createDeclaration("font-size", tf.createLength(size, unit)));
          }
          if (style.getFontWeight() != null)
              ret.push(createDeclaration("font-weight", tf.createIdent(style.getFontWeight())));
          if (style.getFontStyle() != null)
              ret.push(createDeclaration("font-style", tf.createIdent(style.getFontStyle())));
          if (style.getWordSpacing() != 0)
              ret.push(createDeclaration("word-spacing", tf.createLength((float) style.getWordSpacing(), unit)));
          if (style.getLetterSpacing() != 0)
              ret.push(createDeclaration("letter-spacing", tf.createLength((float) style.getLetterSpacing(), unit)));
          if (style.getColor() != null)
          {
              String fillColor = style.getColor();
  
              // text stroke css attrs don't render atm but can use stroke as fall back for fill if fill is transparent
              boolean hasStrokeColor = style.getStrokeColor() != null && fillColor.equals(transparentColor);
              if (fillColor.equals(transparentColor) && hasStrokeColor)
                  fillColor = style.getStrokeColor();
  
              ret.push(createDeclaration("color", createTermColor(fillColor)));
          }
  
  		ret.push(createDeclaration("width", tf.createLength(width, unit)));
  		
          return ret;
      }