--- title: Attributes.asRenderProps() --- The `Attributes.asRenderProps()` method will return the data stored in the attributes as a serializable JavaScript object. This method is typically note invoked directly but rather called under the hood as a result of calling [`Pattern.getRenderProps()`](/reference/api/pattern/getrenderprops). ## Signature ```js Object attributes.asRenderProps() ``` ## Returned object properties This returns JavaScript object has the following properties: | Name | Description | | ----:| ----------- | | `list`| A plain object representation of all attributes | | `forSvg`| All attributes rendered as a string for inclusion in an SVG (or HTML) tag | | `forCss`| All attributes rendered as a string for inclusion in CSS | | `circle`| An array of circles radii to render (set as the `data-circle` attribute) | | `circleProps`| A plain object representation of all circle-specific attributes (set as the `data-circle-*` attribute) | | `text`| An array of texts to render (set as the `data-text` attribute) | | `textProps`| A plain object representation of all text-specific attributes (set as the `data-text-*` attribute) | ## Example ```js const attr = new Attributes() .add('class', 'various') .add('stroke', 'red') .add('stroke-width', 2) .add('data-circle', 20) .add('data-circle-class', 'lining') .add('data-text', 'test') .add('data-text-dx', 3) const json = JSON.stringify( attr.asRenderProps(), null ,2 ) /* json holds: { "list": { "class": [ "various" ], "stroke": [ "red" ], "stroke-width": [ 2 ], "data-circle": [ 20 ], "data-circle-class": [ "lining" ], "data-text": [ "test" ], "data-text-dx": [ 3 ] }, "forSvg": " class=\"various\" stroke=\"red\" stroke-width=\"2\" data-circle=\"20\" data-circle-class=\"lining\" data-text=\"test\" data-text-dx=\"3\"", "forCss": " class:various; stroke:red; stroke-width:2; data-circle:20; data-circle-class:lining; data-text:test; data-text-dx:3;", "circle": [ 20 ], "circleProps": { "className": "lining" }, "text": [ "test" ], "textProps": { "dx": "3" } } */ ```