# Module Dom_svg

    module Dom_svg: sig .. end

DOM SVG binding

This is a partial binding to the DOM SVG API.

    val xmlns : Js.js_string Js.t

## Types

    type error_code =

`|` | `WRONG_TYPE_ERR`
`|` | `INVALID_VALUE_ERR`
`|` | `MATRIX_NOT_INVERTABLE`

    class type svg_error = object .. end

    exception SVGError of svg_error

    type lengthUnitType =

`|` | `LENGTHTYPE_UNKNOWN`
`|` | `LENGTHTYPE_NUMBER`
`|` | `LENGTHTYPE_PERCENTAGE`
`|` | `LENGTHTYPE_EMS`
`|` | `LENGTHTYPE_EXS`
`|` | `LENGTHTYPE_PX`
`|` | `LENGTHTYPE_CM`
`|` | `LENGTHTYPE_MM`
`|` | `LENGTHTYPE_IN`
`|` | `LENGTHTYPE_PT`
`|` | `LENGTHTYPE_PC`

    type angleUnitType =

`|` | `ANGLETYPE_UNKNOWN`
`|` | `ANGLETYPE_UNSPECIFIED`
`|` | `ANGLETYPE_DEG`
`|` | `ANGLETYPE_RAD`
`|` | `ANGLETYPE_GRAD`

    type colorType =

`|` | `COLORTYPE_UNKNOWN`
`|` | `COLORTYPE_RGBCOLOR`
`|` | `COLORTYPE_RGBCOLOR_ICCCOLOR`
`|` | `COLORTYPE_CURRENTCOLOR`

    type alignmentType =

`|` | `PRESERVEASPECTRATIO_UNKNOWN`
`|` | `PRESERVEASPECTRATIO_NONE`
`|` | `PRESERVEASPECTRATIO_XMINYMIN`
`|` | `PRESERVEASPECTRATIO_XMIDYMIN`
`|` | `PRESERVEASPECTRATIO_XMAXYMIN`
`|` | `PRESERVEASPECTRATIO_XMINYMID`
`|` | `PRESERVEASPECTRATIO_XMIDYMID`
`|` | `PRESERVEASPECTRATIO_XMAXYMID`
`|` | `PRESERVEASPECTRATIO_XMINYMAX`
`|` | `PRESERVEASPECTRATIO_XMIDYMAX`
`|` | `PRESERVEASPECTRATIO_XMAXYMAX`

    type meetOrSliceType =

`|` | `MEETORSLICE_UNKNOWN`
`|` | `MEETORSLICE_MEET`
`|` | `MEETORSLICE_SLICE`

    type transformType =

`|` | `TRANSFORM_UNKNOWN`
`|` | `TRANSFORM_MATRIX`
`|` | `TRANSFORM_TRANSLATE`
`|` | `TRANSFORM_SCALE`
`|` | `TRANSFORM_ROTATE`
`|` | `TRANSFORM_SKEWX`
`|` | `TRANSFORM_SKEWY`

    type zoomAndPanType =

`|` | `ZOOMANDPAN_UNKNOWN`
`|` | `ZOOMANDPAN_DISABLE`
`|` | `ZOOMANDPAN_MAGNIFY`

    type lengthAdjust =

`|` | `LENGTHADJUST_UNKNOWN`
`|` | `LENGTHADJUST_SPACING`
`|` | `LENGTHADJUST_SPACINGANDGLYPHS`

    type unitType =

`|` | `UNIT_TYPE_UNKNOWN`
`|` | `UNIT_TYPE_USERSPACEONUSE`
`|` | `UNIT_TYPE_OBJECTBOUNDINGBOX`

    type intentType =

`|` | `RENDERING_INTENT_UNKNOWN`
`|` | `RENDERING_INTENT_AUTO`
`|` | `RENDERING_INTENT_PERCEPTUAL`
`|` | `RENDERING_INTENT_RELATIVE_COLORIMETRIC`
`|` | `RENDERING_INTENT_SATURATION`
`|` | `RENDERING_INTENT_ABSOLUTE_COLORIMETRIC`

    type pathSegmentType =

`|` | `PATHSEG_UNKNOWN`
`|` | `PATHSEG_CLOSEPATH`
`|` | `PATHSEG_MOVETO_ABS`
`|` | `PATHSEG_MOVETO_REL`
`|` | `PATHSEG_LINETO_ABS`
`|` | `PATHSEG_LINETO_REL`
`|` | `PATHSEG_CURVETO_CUBIC_ABS`
`|` | `PATHSEG_CURVETO_CUBIC_REL`
`|` | `PATHSEG_CURVETO_QUADRATIC_ABS`
`|` | `PATHSEG_CURVETO_QUADRATIC_REL`
`|` | `PATHSEG_ARC_ABS`
`|` | `PATHSEG_ARC_REL`
`|` | `PATHSEG_LINETO_HORIZONTAL_ABS`
`|` | `PATHSEG_LINETO_HORIZONTAL_REL`
`|` | `PATHSEG_LINETO_VERTICAL_ABS`
`|` | `PATHSEG_LINETO_VERTICAL_REL`
`|` | `PATHSEG_CURVETO_CUBIC_SMOOTH_ABS`
`|` | `PATHSEG_CURVETO_CUBIC_SMOOTH_REL`
`|` | `PATHSEG_CURVETO_QUADRATIC_SMOOTH_ABS`
`|` | `PATHSEG_CURVETO_QUADRATIC_SMOOTH_REL`

    type textPathMethodType =

`|` | `TEXTPATH_METHODTYPE_UNKNOWN`
`|` | `TEXTPATH_METHODTYPE_ALIGN`
`|` | `TEXTPATH_METHODTYPE_STRETCH`

    type textPathSpacingType =

`|` | `TEXTPATH_SPACINGTYPE_UNKNOWN`
`|` | `TEXTPATH_SPACINGTYPE_AUTO`
`|` | `TEXTPATH_SPACINGTYPE_EXACT`

    type spreadMethodType =

`|` | `SPREADMETHOD_UNKNOWN`
`|` | `SPREADMETHOD_PAD`
`|` | `SPREADMETHOD_REFLECT`
`|` | `SPREADMETHOD_REPEAT`

    type suspendHandleID

    class type ['a] animated = object .. end

    class type ['a] list = object .. end

## Elements

    class type element = object .. end

    class type animatedString = [Js.js_string Js.t] animated

    class type animatedBoolean = [bool Js.t] animated

    class type stringList = [Js.js_string Js.t] list

    class type animatedEnumeration = [int] animated

    class type animatedInteger = [int] animated

    class type animatedNumber = [float] animated

    class type numberList = [Js.number Js.t] list

    class type animatedNumberList = [numberList Js.t] animated

    class type length = object .. end

    class type animatedLength = [length] animated

    class type lengthList = [length Js.t] list

    class type animatedLengthList = [lengthList Js.t] animated

    class type angle = object .. end

    class type animatedAngle = [angle Js.t] animated

    class type rgbColor = object .. end

    class type color = object .. end

    class type iccColor = object .. end

    class type rect = object .. end

    class type animatedRect = [rect Js.t] animated

    class type stylable = object .. end

    class type locatable = object .. end

    class type transformable = object .. end

    class type tests = object .. end

    class type langSpace = object .. end

    class type externalResourcesRequired = object .. end

    class type fitToViewBox = object .. end

    class type zoomAndPan = object .. end

    class type viewSpec = object .. end

    class type uriReference = object .. end

    class type document = object .. end

    class type svgElement = object .. end

    class type gElement = object .. end

    class type defsElement = object .. end

    class type descElement = object .. end

    class type titleElement = object .. end

    class type symbolElement = object .. end

    class type useElement = object .. end

    class type elementInstance = object .. end

    class type elementInstanceList = object .. end

    class type imageElement = object .. end

    class type switchElement = object .. end

    class type styleElement = object .. end

    class type point = object .. end

    class type pointList = [point Js.t] list

    class type matrix = object .. end

    class type transform = object .. end

    class type transformList = object .. end

    class type animatedTransformList = [transformList Js.t] animated

    class type preserveAspectRatio = object .. end

    class type animatedPreserveAspectRatio = [preserveAspectRatio Js.t] animated

    class type pathSeg = object .. end

    class type pathSegClosePath = pathSeg

    class type pathSegMoveto = object .. end

    class type pathSegLineto = object .. end

    class type pathSegCurvetoCubic = object .. end

    class type pathSegCurvetoQuadratic = object .. end

    class type pathSegArc = object .. end

    class type pathSegLinetoHorizontal = object .. end

    class type pathSegLinetoVertical = object .. end

    class type pathSegCurvetoCubicSmooth = object .. end

    class type pathSegCurvetoQuadraticSmooth = object .. end

    class type pathSegList = [pathSeg Js.t] list

    class type animatedPathData = object .. end

    class type pathElement = object .. end

    class type rectElement = object .. end

    class type circleElement = object .. end

    class type ellipseElement = object .. end

    class type lineElement = object .. end

    class type animatedPoints = object .. end

    class type polyLineElement = object .. end

    class type polygonElement = object .. end

    class type textContentElement = object .. end

    class type textPositioningElement = object .. end

    class type textElement = object .. end

    class type tspanElement = textPositioningElement

    class type trefElement = object .. end

    class type textPathElementMethod = [textPathMethodType] animated

    class type textPathElementSpacing = [textPathSpacingType] animated

    class type textPathElement = object .. end

    class type altGlyphElement = object .. end

    class type altGlyphDefElement = element

    class type altGlyphItemElement = element

    class type glyphRefElement = object .. end

    class type animatedSpreadMethod = [spreadMethodType] animated

    class type gradientElement = object .. end

    class type linearGradientElement = object .. end

    class type radialGradientElement = object .. end

    class type stopElement = object .. end

    class type patternElement = object .. end

    class type clipPathElement = object .. end

    class type maskElement = object .. end

    class type filterElement = object .. end

    class type cursorElement = object .. end

    class type aElement = object .. end

    class type viewElement = object .. end

    class type scriptElement = object .. end

    class type animationElement = object .. end

    class type animateElement = object .. end

    class type setElement = animationElement

    class type animateMotionElement = animationElement

    class type mPathElement = object .. end

    class type animateColorElement = object .. end

    class type animateTransformElement = animationElement

    class type fontElement = object .. end

    class type glyphElement = object .. end

    class type fontFaceElement = element

    class type fontFaceSrcElement = element

    class type fontFaceUriElement = element

    class type fontFaceFormatElement = element

    class type fontFaceNameElement = element

    class type metadataElement = element

    class type foreignObjectElement = object .. end

## Helper functions for creating Svg elements

    val createElement : document Js.t -> string -> element Js.t

    val createA : document Js.t -> aElement Js.t

    val createAltGlyph : document Js.t -> altGlyphElement Js.t

    val createAltGlyphDef : document Js.t -> altGlyphDefElement Js.t

    val createAltGlyphItem : document Js.t -> altGlyphItemElement Js.t

    val createAnimate : document Js.t -> animateElement Js.t

    val createAnimateColor : document Js.t -> animateColorElement Js.t

    val createAnimateMotion : document Js.t -> animateMotionElement Js.t

    val createAnimateTransform : document Js.t -> animateTransformElement Js.t

    val createCircle : document Js.t -> circleElement Js.t

    val createClipPath : document Js.t -> clipPathElement Js.t

    val createCursor : document Js.t -> cursorElement Js.t

    val createDefs : document Js.t -> defsElement Js.t

    val createDesc : document Js.t -> descElement Js.t

    val createEllipse : document Js.t -> ellipseElement Js.t

    val createFilter : document Js.t -> filterElement Js.t

    val createFont : document Js.t -> fontElement Js.t

    val createFontFace : document Js.t -> fontElement Js.t

    val createFontFaceFormat : document Js.t -> fontElement Js.t

    val createFontFaceName : document Js.t -> fontElement Js.t

    val createFontFaceSrc : document Js.t -> fontElement Js.t

    val createFontFaceUri : document Js.t -> fontElement Js.t

    val createForeignObject : document Js.t -> foreignObjectElement Js.t

    val createG : document Js.t -> gElement Js.t

    val createGlyph : document Js.t -> glyphElement Js.t

    val createGlyphRef : document Js.t -> glyphElement Js.t

    val createhkern : document Js.t -> element Js.t

    val createImage : document Js.t -> imageElement Js.t

    val createLineElement : document Js.t -> lineElement Js.t

    val createLinearElement : document Js.t -> linearGradientElement Js.t

    val createMask : document Js.t -> maskElement Js.t

    val createMetaData : document Js.t -> metadataElement Js.t

    val createMissingGlyph : document Js.t -> glyphElement Js.t

    val createMPath : document Js.t -> mPathElement Js.t

    val createPath : document Js.t -> pathElement Js.t

    val createParttern : document Js.t -> patternElement Js.t

    val createPolygon : document Js.t -> polygonElement Js.t

    val createPolyline : document Js.t -> polyLineElement Js.t

    val createRadialgradient : document Js.t -> radialGradientElement Js.t

    val createRect : document Js.t -> rectElement Js.t

    val createScript : document Js.t -> scriptElement Js.t

    val createSet : document Js.t -> setElement Js.t

    val createStop : document Js.t -> stopElement Js.t

    val createStyle : document Js.t -> styleElement Js.t

    val createSvg : document Js.t -> svgElement Js.t

    val createSwitch : document Js.t -> switchElement Js.t

    val createSymbol : document Js.t -> symbolElement Js.t

    val createTextElement : document Js.t -> textElement Js.t

    val createTextpath : document Js.t -> textPathElement Js.t

    val createTitle : document Js.t -> titleElement Js.t

    val createTref : document Js.t -> trefElement Js.t

    val createTspan : document Js.t -> tspanElement Js.t

    val createUse : document Js.t -> useElement Js.t

    val createView : document Js.t -> viewElement Js.t

    val createvkern : document Js.t -> element Js.t

    val svg_element : element Js.t Js.constr

    val getElementById : string -> element Js.t

    module CoerceTo: sig .. end

Coercion functions