packages feed

svg-icons 2.12.1 → 3.0.0

raw patch · 17 files changed

+565/−395 lines, 17 filesPVP ok

version bump matches the API change (PVP)

API changes (from Hackage documentation)

Files

src/SvgIcons/Core/Geometry.hs view
@@ -235,6 +235,7 @@   -> Svg             -- ^ resulting svg path
 regularPolygon n r (x0,y0) =
     S.path
+      ! A.class_ "HaskellSvgIcons__regularPolygon"
       ! A.d directions
   where
     α  = 2 * pi / (fromIntegral n)
@@ -277,6 +278,7 @@   -> Svg             -- ^ resulting svg path
 starPolygonFirstSpecies n r (c1,c2) =
     S.path
+      ! A.class_ "HaskellSvgIcons__starPolygonFirstSpecies"
       ! A.d directions
   where
     α  = 2 * pi / (fromIntegral n)
@@ -331,6 +333,7 @@   -> Svg             -- ^ resulting svg path
 starPolygonWithBorder n r1 w (c1,c2) =
     S.path
+      ! A.class_ "HaskellSvgIcons__starPolygonWithBorder"
       ! A.d directions
   where
     β = 2 * pi / (fromIntegral n)
@@ -399,11 +402,13 @@   -> (Float , Float) -- ^ coordinates of the central point
   -> Svg             -- ^ resulting svg path
 starPolygonOverlap n r1 w (c1,c2) = 
-    S.g $ do
-      starPolygonWithBorder n r1 w (c1,c2)
-        ! A.stroke "none"
-      mapM_ (makeSide . fromIntegral . ((-1)*)) [0 .. (n-1)]
-      fixFirstSide
+    S.g 
+      ! A.class_ "HaskellSvgIcons__starPolygonOverlap"
+      $ do
+        starPolygonWithBorder n r1 w (c1,c2)
+          ! A.stroke "none"
+        mapM_ (makeSide . fromIntegral . ((-1)*)) [0 .. (n-1)]
+        fixFirstSide
   where
     β = 2 * pi / (fromIntegral n)
     r2 = r1 - w * tan β
@@ -554,6 +559,7 @@   -> Svg             -- ^ resulting path
 starOutline n r1 r2 (c1,c2) =
     S.path
+      ! A.class_ "HaskellSvgIcons__starOutline"
       ! A.d directions
   where
     β  = 2 * pi / (fromIntegral n)
@@ -689,6 +695,7 @@   -> Svg             -- ^ resulting svg path
 asterisk n r (c1,c2) =
     S.path
+      ! A.class_ "HaskellSvgIcons__asterisk"
       ! A.d directions
   where
     α  = pi / (fromIntegral n)
@@ -726,6 +733,7 @@   -> Svg             -- ^ resulting svg path
 asteriskStar n r1 (c1,c2) =
     S.path
+      ! A.class_ "HaskellSvgIcons__asteriskStar"
       ! A.d directions
   where
     α  = pi / (fromIntegral n)
src/SvgIcons/Core/Render.hs view
@@ -123,7 +123,8 @@   where
     render = T.unpack . adaptToReact . T.pack . renderSvg 
     adaptToReact =
-        (T.replace "dominant-baseline" "dominantBaseline")
+        (T.replace "class"             "className")
+      . (T.replace "dominant-baseline" "dominantBaseline")
       . (T.replace "fill-rule"         "fillRule")
       . (T.replace "font-family"       "fontFamily")
       . (T.replace "font-size"         "fontSize")
src/SvgIcons/Core/Utils.hs view
@@ -116,6 +116,7 @@   -> S.Svg    -- ^ resulting svg
 frame s color x y w h =
     S.path
+      ! A.class_ "HaskellSvgIcons__frame"
       ! A.fill "none"
       ! A.stroke (S.toValue color)
       ! (A.strokeWidth .: s)
src/SvgIcons/Icons/Arrows.hs view
@@ -53,6 +53,7 @@ curvyArrowLeft :: S.Svg
 curvyArrowLeft =
     S.path
+      ! A.class_ "HaskellSvgIcons__curvyArrowLeft"
       ! d dirs
       ! strokeLinejoin "round"
   where
@@ -86,6 +87,7 @@ curvyArrowRight :: S.Svg
 curvyArrowRight =
     S.path
+      ! A.class_ "HaskellSvgIcons__curvyArrowRight"
       ! d dirs
       ! strokeLinejoin "round"
   where
@@ -119,6 +121,7 @@ bigArrowLeft :: S.Svg
 bigArrowLeft =
     S.path
+      ! A.class_ "HaskellSvgIcons__bigArrowLeft"
       ! d dirs
       ! strokeLinejoin "round"
   where
@@ -152,6 +155,7 @@ bigArrowRight :: S.Svg
 bigArrowRight =
     S.path
+      ! A.class_ "HaskellSvgIcons__bigArrowRight"
       ! d dirs
       ! strokeLinejoin "round"
   where
src/SvgIcons/Icons/Business.hs view
@@ -60,17 +60,19 @@ -}
 company :: S.Svg
 company =
-  S.g $ do
-    S.path
-      ! d leftBuildingPath
-    S.path
-      ! d leftWindowsPath
-      ! strokeDasharray "0.12 0.06"
-    S.path
-      ! d rightBuildingPath
-    S.path
-      ! d rightWindowsPath
-      ! strokeDasharray "0.05"
+  S.g 
+    ! A.class_ "HaskellSvgIcons__company"
+    $ do
+      S.path
+        ! d leftBuildingPath
+      S.path
+        ! d leftWindowsPath
+        ! strokeDasharray "0.12 0.06"
+      S.path
+        ! d rightBuildingPath
+      S.path
+        ! d rightWindowsPath
+        ! strokeDasharray "0.05"
   where
     x1 = -0.92
     x2 = -0.72
@@ -143,20 +145,22 @@ -}
 connections :: Svg
 connections = 
-    S.g $ do
-      circ x0 y0 r0
-      circ x1 y1 r1
-      circ x2 y2 r2
-      circ x3 y3 r3
-      circ x4 y4 r4
-      circ x5 y5 r5
-      circ x6 y6 r6
-      circ x7 y7 r7
-      circ x8 y8 r8
-      circ x9 y9 r9
-      S.path
-        ! A.fill "none"
-        ! d (mkPath connectingLines)
+    S.g 
+      ! A.class_ "HaskellSvgIcons__connections"
+      $ do
+        circ x0 y0 r0
+        circ x1 y1 r1
+        circ x2 y2 r2
+        circ x3 y3 r3
+        circ x4 y4 r4
+        circ x5 y5 r5
+        circ x6 y6 r6
+        circ x7 y7 r7
+        circ x8 y8 r8
+        circ x9 y9 r9
+        S.path
+          ! A.fill "none"
+          ! d (mkPath connectingLines)
   where
     rad1 = 0.2
     rad2 = 0.12
@@ -205,13 +209,15 @@ -}
 analytics :: Svg
 analytics = 
-    S.g $ do
-      S.path
-        ! A.fill "none"
-        ! A.d axesPath
-      S.path ! A.d (bar x1 y1)
-      S.path ! A.d (bar x2 y2)
-      S.path ! A.d (bar x3 y3)
+    S.g 
+      ! A.class_ "HaskellSvgIcons__analytics"
+      $ do
+        S.path
+          ! A.fill "none"
+          ! A.d axesPath
+        S.path ! A.d (bar x1 y1)
+        S.path ! A.d (bar x2 y2)
+        S.path ! A.d (bar x3 y3)
   where
     ax =  0.96
     ay =  0.96
@@ -244,14 +250,16 @@ -}
 bullseye :: Svg
 bullseye = 
-    S.g $ do
-      S.path
-        ! A.strokeLinecap "round"
-        ! A.d circles
-      S.path
-        ! strokeLinecap "round"
-        ! fill "none"
-        ! A.d (mkPath $ stick >> feathers)
+    S.g 
+      ! A.class_ "HaskellSvgIcons__bullseye"
+      $ do
+        S.path
+          ! A.strokeLinecap "round"
+          ! A.d circles
+        S.path
+          ! strokeLinecap "round"
+          ! fill "none"
+          ! A.d (mkPath $ stick >> feathers)
   where
     distanceToCenter x y = distance (x,y) (0,0)
     (p1,k1) = (,) (-0.6 )  0.1
@@ -303,16 +311,18 @@ -}
 creditCard :: Svg
 creditCard =
-    S.g $ do
-      S.path
-        ! A.fill "none"
-        ! A.d cardPath
-      S.path
-        ! A.d cardBand
-      S.path
-        ! A.fill "none"
-        ! A.strokeLinejoin "round"
-        ! A.d chip
+    S.g 
+      ! A.class_ "HaskellSvgIcons__creditCard"
+      $ do
+        S.path
+          ! A.fill "none"
+          ! A.d cardPath
+        S.path
+          ! A.d cardBand
+        S.path
+          ! A.fill "none"
+          ! A.strokeLinejoin "round"
+          ! A.d chip
   where
     x0 = 0.93
     y0 = x0 * 0.618
@@ -372,10 +382,12 @@ -}
 creditIn :: Svg
 creditIn =
-    S.g $ do
-      creditCard
-      bigArrowLeft 
-        ! A.transform (translate 0.45 0.22 <> S.scale 0.25 0.25)
+    S.g 
+      ! A.class_ "HaskellSvgIcons__creditIn"
+      $ do
+        creditCard
+        bigArrowLeft 
+          ! A.transform (translate 0.45 0.22 <> S.scale 0.25 0.25)
 
 
 
@@ -388,7 +400,9 @@ -}
 creditOut :: Svg
 creditOut =
-    S.g $ do
-      creditCard
-      bigArrowRight 
-        ! A.transform (translate 0.45 0.22 <> S.scale 0.25 0.25)
+    S.g 
+      ! A.class_ "HaskellSvgIcons__creditOut"
+      $ do
+        creditCard
+        bigArrowRight 
+          ! A.transform (translate 0.45 0.22 <> S.scale 0.25 0.25)
src/SvgIcons/Icons/Coding.hs view
@@ -46,21 +46,23 @@ -}
 xmlCode :: Svg
 xmlCode =
-    S.g $ do
-      S.defs $ 
+    S.g 
+      ! A.class_ "HaskellSvgIcons__xmlCode"
+      $ do
+        S.defs $ 
+          S.path
+            ! A.id_ "HaskellSvgIcons-xmlCode-triangle"
+            ! A.d triangleDirs
+            ! A.strokeLinejoin "round"
+        S.use
+          ! A.xlinkHref "#HaskellSvgIcons-xmlCode-triangle"
+          ! A.transform (rotateAround 315 0 0)
+        S.use
+          ! A.xlinkHref "#HaskellSvgIcons-xmlCode-triangle"
+          ! A.transform (rotateAround 135 0 0)
         S.path
-          ! A.id_ "HaskellSvgIcons-xmlCode-triangle"
-          ! A.d triangleDirs
-          ! A.strokeLinejoin "round"
-      S.use
-        ! A.xlinkHref "#HaskellSvgIcons-xmlCode-triangle"
-        ! A.transform (rotateAround 315 0 0)
-      S.use
-        ! A.xlinkHref "#HaskellSvgIcons-xmlCode-triangle"
-        ! A.transform (rotateAround 135 0 0)
-      S.path
-        ! A.d barDirs
-        ! A.transform (rotateAround  11 0 0)
+          ! A.d barDirs
+          ! A.transform (rotateAround  11 0 0)
   where
     k0 = 0.1
     k1 = 0.5
@@ -100,6 +102,7 @@ haskell :: Svg
 haskell =
     S.g
+      ! A.class_ "HaskellSvgIcons__haskell"
       $ do
         S.path
           ! A.fill "#453a62"
@@ -186,11 +189,13 @@ -}
 git :: Svg
 git = 
-    S.g $
-      S.path
-        ! A.d dirs
-        ! A.fill "#F03C2E"
-        ! A.transform (rotateAround 45 0 0)
+    S.g 
+      ! A.class_ "HaskellSvgIcons__git"
+      $
+        S.path
+          ! A.d dirs
+          ! A.fill "#F03C2E"
+          ! A.transform (rotateAround 45 0 0)
   where
     r0 =  0.13
     r1 =  0.153
src/SvgIcons/Icons/Computer.hs view
@@ -78,9 +78,11 @@ -}
 ring :: Svg
 ring =
-  S.g $ do
-    S.path
-      ! A.d dirs
+  S.g 
+    ! A.class_ "HaskellSvgIcons__ring"
+    $ do
+      S.path
+        ! A.d dirs
   where
     r1 = 0.75
     r2 = 0.95
@@ -105,11 +107,13 @@ -}
 accept :: Svg
 accept =
-  S.g $ do
-    S.path
-      ! A.strokeLinejoin "round"
-      ! d dirs
-      ! A.transform (translate (-0.3) 0.3 <> rotateAround 45 0 0)
+  S.g 
+    ! A.class_ "HaskellSvgIcons__accept"
+    $ do
+      S.path
+        ! A.strokeLinejoin "round"
+        ! d dirs
+        ! A.transform (translate (-0.3) 0.3 <> rotateAround 45 0 0)
   where
     k1 = 0.1
     k2 = 0.5
@@ -135,6 +139,7 @@ plus :: Svg
 plus =
     S.path 
+      ! A.class_ "HaskellSvgIcons__plus"
       ! A.d dirs
   where
     k1 = 0.1
@@ -165,8 +170,9 @@ -}
 cancel :: Svg
 cancel =
-  S.g $ 
-    plus ! A.transform (rotateAround 45 0 0)
+  S.g 
+    ! A.class_ "HaskellSvgIcons__cancel"
+    $ plus ! A.transform (rotateAround 45 0 0)
 
 
 
@@ -179,7 +185,9 @@ -}
 warning :: Svg
 warning = 
-  S.g $ 
+  S.g 
+    ! A.class_ "HaskellSvgIcons__warning"
+    $ 
     S.g 
       ! A.transform (translate 0 0.2)
       $ do
@@ -230,6 +238,7 @@ minimize :: Svg
 minimize =
   S.path
+    ! A.class_ "HaskellSvgIcons__minimize"
     ! A.d dirs
   where
     w = 0.1
@@ -252,19 +261,21 @@ -}
 maximize :: Svg
 maximize =
-  S.g $ do
-    S.path
-      ! A.d dirs1
-      ! A.transform (translate (k - 0.15) (0.15 - k))
-      ! A.stroke "none"
-      ! A.opacity "0.5"
-    S.path
-      ! A.d dirs2
-      ! A.transform (translate (  - 0.15)  0.15)
-      ! A.fill "none"
-    S.path
-      ! A.d dirs1
-      ! A.transform (translate (-0.1 ) 0.1)
+  S.g 
+    ! A.class_ "HaskellSvgIcons__maximize"
+    $ do
+      S.path
+        ! A.d dirs1
+        ! A.transform (translate (k - 0.15) (0.15 - k))
+        ! A.stroke "none"
+        ! A.opacity "0.5"
+      S.path
+        ! A.d dirs2
+        ! A.transform (translate (  - 0.15)  0.15)
+        ! A.fill "none"
+      S.path
+        ! A.d dirs1
+        ! A.transform (translate (-0.1 ) 0.1)
   where
     w = 1.4
     k = 0.25
@@ -290,7 +301,9 @@ -}
 menuDots :: Svg
 menuDots =
-    S.g $ do
+    S.g 
+      ! A.class_ "HaskellSvgIcons__menuDots"
+      $ do
         dot (-0.7)
         dot ( 0  )
         dot ( 0.7)
@@ -312,10 +325,12 @@ -}
 menuLines :: Svg
 menuLines =
-    S.g $ do
-      S.path ! A.d (line (-0.5))
-      S.path ! A.d (line ( 0  ))
-      S.path ! A.d (line ( 0.5))
+    S.g 
+      ! A.class_ "HaskellSvgIcons__menuLines"
+      $ do
+        S.path ! A.d (line (-0.5))
+        S.path ! A.d (line ( 0  ))
+        S.path ! A.d (line ( 0.5))
   where
     kx = 0.7
     r  = 0.12
@@ -337,13 +352,15 @@ -}
 powerButton :: S.Svg
 powerButton =
-  S.g $ do
-    S.path
-      ! d innerCircle
-      ! A.transform (translate 0 0.1)
-    S.path
-      ! d littleStickPath
-      ! A.transform (translate 0 (-0.42))
+  S.g 
+    ! A.class_ "HaskellSvgIcons__powerButton"
+    $ do
+      S.path
+        ! d innerCircle
+        ! A.transform (translate 0 0.1)
+      S.path
+        ! d littleStickPath
+        ! A.transform (translate 0 (-0.42))
   where
     w  = 0.08
     r1 = 0.7
@@ -378,6 +395,7 @@ diskette :: Svg
 diskette =
     S.path
+      ! A.class_ "HaskellSvgIcons__diskette"
       ! A.d shell
       ! A.fillRule "evenodd"
   where
@@ -417,10 +435,12 @@ -}
 save :: Svg
 save =
-  S.g $ do
-    diskette
-    accept 
-      ! A.transform (translate 0 0.4 <> S.scale 0.5 0.5)
+  S.g 
+    ! A.class_ "HaskellSvgIcons__save"
+    $ do
+      diskette
+      accept 
+        ! A.transform (translate 0 0.4 <> S.scale 0.5 0.5)
 
 
 
@@ -433,18 +453,20 @@ -}
 dustBin :: Svg
 dustBin =
-    S.g $ do
-      S.path
-        ! A.d binDirs
-        ! A.strokeLinecap "round"
-        ! A.strokeLinejoin "round"
-      S.path
-        ! A.d handleDirs
-        ! A.strokeLinejoin "round"
-        ! A.fill "none"
-      S.path
-        ! A.d linesDirs
-        ! A.strokeLinecap "round"
+    S.g 
+      ! A.class_ "HaskellSvgIcons__dustBin"
+      $ do
+        S.path
+          ! A.d binDirs
+          ! A.strokeLinecap "round"
+          ! A.strokeLinejoin "round"
+        S.path
+          ! A.d handleDirs
+          ! A.strokeLinejoin "round"
+          ! A.fill "none"
+        S.path
+          ! A.d linesDirs
+          ! A.strokeLinecap "round"
   where
     x0 = x1 - 0.15
     x8 = x7 + 0.15
src/SvgIcons/Icons/Cosmos.hs view
@@ -51,14 +51,16 @@ -}
 sun :: Int -> Svg
 sun n =
-    S.g $ do
-      S.circle
-        ! A.x "0"
-        ! A.y "0"
-        ! A.r "0.5"
-      S.path
-        ! A.strokeLinecap "round"
-        ! A.d rays
+    S.g 
+      ! A.class_ "HaskellSvgIcons__sun"
+      $ do
+        S.circle
+          ! A.x "0"
+          ! A.y "0"
+          ! A.r "0.5"
+        S.path
+          ! A.strokeLinecap "round"
+          ! A.d rays
   where
     r1 = 0.6
     r2 = 0.78
@@ -86,6 +88,7 @@ moonHalf :: Svg
 moonHalf =
     S.path
+      ! A.class_ "HaskellSvgIcons__moonHalf"
       ! A.strokeLinejoin "round"
       ! A.d moonDirs
   where
@@ -111,6 +114,7 @@ moonCrescent :: Svg
 moonCrescent =
     S.path
+      ! A.class_ "HaskellSvgIcons__moonCrescent"
       ! A.strokeLinejoin "round"
       ! A.d moonDirs
   where
src/SvgIcons/Icons/Human.hs view
@@ -63,10 +63,12 @@ -}
 eyeOpened :: S.Svg
 eyeOpened =
-  S.g $ do
-    eye
-    pupil
-    glow
+  S.g 
+    ! A.class_ "HaskellSvgIcons__eyeOpened"
+    $ do
+      eye
+      pupil
+      glow
   where
     w  = 0.9
     c1 = 0
@@ -110,9 +112,11 @@ -}
 eyeStriked :: S.Svg
 eyeStriked =
-  S.g $ do
-    eyeOpened
-    bar
+  S.g 
+    ! A.class_ "HaskellSvgIcons__eyeStriked"
+    $ do
+      eyeOpened
+      bar
   where
     k = 0.9
     bar =
@@ -134,9 +138,11 @@ -}
 person :: S.Svg
 person =
-  S.g $ do
-    simpleShoulders
-    simpleHead
+  S.g 
+    ! A.class_ "HaskellSvgIcons__person"
+    $ do
+      simpleShoulders
+      simpleHead
   where
     kx =  0.7
     ky =  0.52
@@ -166,10 +172,12 @@ -}
 people :: S.Svg
 people =
-  S.g $ do
-    person ! A.transform (translate   0.4  (-0.2) <> S.scale 0.8 0.8)
-    person ! A.transform (translate (-0.4) (-0.2) <> S.scale 0.8 0.8)
-    person ! A.transform (translate   0    ( 0.2) <> S.scale 0.9 0.9)
+  S.g 
+    ! A.class_ "HaskellSvgIcons__people"
+    $ do
+      person ! A.transform (translate   0.4  (-0.2) <> S.scale 0.8 0.8)
+      person ! A.transform (translate (-0.4) (-0.2) <> S.scale 0.8 0.8)
+      person ! A.transform (translate   0    ( 0.2) <> S.scale 0.9 0.9)
 
 
 
@@ -182,10 +190,12 @@ -}
 carnet :: S.Svg
 carnet =
-  S.g $ do
-    cardBorder
-    textLines ! A.transform (translate ( 0.4) 0 <> S.scale 0.5 0.5)
-    person    ! A.transform (translate (-0.5) 0 <> S.scale 0.5 0.5)
+  S.g 
+    ! A.class_ "HaskellSvgIcons__carnet"
+    $ do
+      cardBorder
+      textLines ! A.transform (translate ( 0.4) 0 <> S.scale 0.5 0.5)
+      person    ! A.transform (translate (-0.5) 0 <> S.scale 0.5 0.5)
   where
     w1 = 0.01
     x1 = 1.618 * y1
@@ -233,11 +243,13 @@ -}
 heartFat :: Svg
 heartFat =
-    S.g $ do
-      S.path
-        ! A.d heartDirs
-        ! A.strokeLinejoin "round"
-        ! A.transform (translate 0 0.1 <> S.scale 1.2 1.2)
+    S.g 
+      ! A.class_ "HaskellSvgIcons__heartFat"
+      $ do
+        S.path
+          ! A.d heartDirs
+          ! A.strokeLinejoin "round"
+          ! A.transform (translate 0 0.1 <> S.scale 1.2 1.2)
   where
     h = 0.06
     (h1x , h1y) = ( 0       , -0.6      )
@@ -266,10 +278,12 @@ -}
 heartSlim :: Svg
 heartSlim =
-    S.g $ do
-      S.path
-        ! A.d heartDirs
-        ! A.strokeLinejoin "round"
+    S.g 
+      ! A.class_ "HaskellSvgIcons__heartSlim"
+      $ do
+        S.path
+          ! A.d heartDirs
+          ! A.strokeLinejoin "round"
   where
     h = 0.2
     (h1x , h1y) = ( 0       , -0.6      )
@@ -298,11 +312,13 @@ -}
 talk :: Svg
 talk = 
-    S.g $ do
-      S.path
-        ! A.fill "none"
-        ! A.d bubble
-      abc
+    S.g 
+      ! A.class_ "HaskellSvgIcons__talk"
+      $ do
+        S.path
+          ! A.fill "none"
+          ! A.d bubble
+        abc
   where
     bubble = mkPath $ do
       m   (-0.56) ( 0.62)
src/SvgIcons/Icons/Math.hs view
@@ -46,11 +46,13 @@ -}
 lambda :: S.Svg
 lambda = 
-    S.g $ do
-      S.path
-        ! A.strokeLinejoin "round"
-        ! A.d (mkPath $ rightLeg >> leftLeg >> arm)
-        ! A.transform (translate 0 (-0.02))
+    S.g 
+      ! A.class_ "HaskellSvgIcons__lambda"
+      $ do
+        S.path
+          ! A.strokeLinejoin "round"
+          ! A.d (mkPath $ rightLeg >> leftLeg >> arm)
+          ! A.transform (translate 0 (-0.02))
   where
     (c1,c2) = (,) ( 0    ) ( 0    )
     (a1,a2) = (,) (-0.376) ( 0.962)
@@ -97,6 +99,7 @@ lemniscate :: Svg
 lemniscate = 
     S.path
+      ! A.class_ "HaskellSvgIcons__lemniscate"
       ! A.d dirs
   where
     k = 0.5
src/SvgIcons/Icons/Office.hs view
@@ -80,6 +80,7 @@ envelope :: Svg
 envelope =
     S.path
+      ! A.class_ "HaskellSvgIcons__envelope"
       ! d dirs
       ! strokeLinejoin "round"
   where
@@ -119,6 +120,7 @@ pencil :: Svg
 pencil =
     S.path
+      ! A.class_ "HaskellSvgIcons__pencil"
       ! d pencilPath
       ! strokeLinejoin "round"
   where
@@ -163,18 +165,20 @@ -}
 document :: Svg
 document = 
-    S.g $ do
-      paperBorder
-      S.path
-        ! strokeLinecap "round"
-        ! d lines
-      S.path
-        ! A.d xMark
-        ! fill "none"
-        ! strokeLinecap "round"
-        ! transform (translate (-0.25) 0.55 <> rotateAround 45 0 0)
-      pencil 
-        ! transform (translate   0.55  0.35 <> rotateAround 45 0 0 <> S.scale 0.4 0.4)
+    S.g 
+      ! A.class_ "HaskellSvgIcons__document"
+      $ do
+        paperBorder
+        S.path
+          ! strokeLinecap "round"
+          ! d lines
+        S.path
+          ! A.d xMark
+          ! fill "none"
+          ! strokeLinecap "round"
+          ! transform (translate (-0.25) 0.55 <> rotateAround 45 0 0)
+        pencil 
+          ! transform (translate   0.55  0.35 <> rotateAround 45 0 0 <> S.scale 0.4 0.4)
   where
     py = 0.95
     px = 0.618 * py
@@ -219,13 +223,15 @@ -}
 archive :: S.Svg
 archive = 
-  S.g $ do
-    S.path
-      ! A.strokeLinejoin "round"
-      ! A.d archiveBody
-    archiveHandle (-ky * 2/3)
-    archiveHandle  0
-    archiveHandle ( ky * 2/3)
+  S.g 
+    ! A.class_ "HaskellSvgIcons__archive"
+    $ do
+      S.path
+        ! A.strokeLinejoin "round"
+        ! A.d archiveBody
+      archiveHandle (-ky * 2/3)
+      archiveHandle  0
+      archiveHandle ( ky * 2/3)
   where
     ky = 0.96
     kx = 0.75
@@ -264,7 +270,9 @@ -}
 pin :: Svg
 pin =
-  S.g $
+  S.g 
+    ! A.class_ "HaskellSvgIcons__pin"
+    $
     S.path
       ! A.strokeLinejoin "arcs"
       ! A.strokeMiterlimit "8"
@@ -312,10 +320,12 @@ -}
 paperclip :: Svg
 paperclip =
-    S.g $ 
-      S.path 
-        ! A.d clipDirs
-        ! A.transform (rotateAround 45 0 0)
+    S.g 
+      ! A.class_ "HaskellSvgIcons__paperclip"
+      $ 
+        S.path 
+          ! A.d clipDirs
+          ! A.transform (rotateAround 45 0 0)
   where
     w  = 0.07
     x1 =  0.2
@@ -358,11 +368,13 @@ -}
 clipboard :: Svg
 clipboard =
-  S.g $ do
-    S.path
-      ! d boardDirs
-    S.path
-      ! d clipDirs
+    S.g 
+      ! A.class_ "HaskellSvgIcons__clipboard"
+      $ do
+        S.path
+          ! d boardDirs
+        S.path
+          ! d clipDirs
   where
     dx1 = 0.3
     dx2 = 0.7
@@ -404,15 +416,17 @@ -}
 printer :: Svg
 printer =
-    S.g $ do
-      S.path
-        ! A.d topDirs
-      S.path
-        ! A.d midDirs
-      S.path 
-        ! A.strokeLinecap "round"
-        ! A.d botDirs
-      dots
+    S.g 
+      ! A.class_ "HaskellSvgIcons__printer"
+      $ do
+        S.path
+          ! A.d topDirs
+        S.path
+          ! A.d midDirs
+        S.path 
+          ! A.strokeLinecap "round"
+          ! A.d botDirs
+        dots
   where
     x0 =  0.5
     x1 =  0.9
@@ -486,11 +500,13 @@ -}
 lupe :: S.Svg
 lupe =
-    S.g $ do
-      S.path
-        ! A.d dirs
-        ! A.fillRule "evenodd"
-        ! A.transform (rotateAround 45 0 0)
+    S.g 
+      ! A.class_ "HaskellSvgIcons__lupe"
+      $ do
+        S.path
+          ! A.d dirs
+          ! A.fillRule "evenodd"
+          ! A.transform (rotateAround 45 0 0)
   where
     w1 = 0.08
     w2 = 0.12
@@ -525,14 +541,16 @@ -}
 briefcase :: Svg
 briefcase = 
-    S.g $ do
-      S.path
-        ! A.strokeLinejoin "round"
-        ! A.d top
-      S.path
-        ! A.strokeLinejoin "round"
-        ! A.d bot
-      button
+    S.g 
+      ! A.class_ "HaskellSvgIcons__briefcase"
+      $ do
+        S.path
+          ! A.strokeLinejoin "round"
+          ! A.d top
+        S.path
+          ! A.strokeLinejoin "round"
+          ! A.d bot
+        button
   where
     r1 =  0.2
     r2 =  0.07
@@ -598,30 +616,32 @@ -}
 bookOpen :: Svg
 bookOpen =
-  S.g $ do
-    S.defs $ do
+  S.g 
+    ! A.class_ "HaskellSvgIcons__bookOpen"
+    $ do
+      S.defs $ do
+        S.path
+          ! A.id_ "HaskellSvgIcons-bookOpen-cover"
+          ! A.d coverDirs
+          ! A.fill "none"
+        S.path
+          ! A.id_ "HaskellSvgIcons-bookOpen-pages"
+          ! A.d pagesDirs
+          ! A.strokeLinejoin "round"
+      S.use
+        ! A.xlinkHref "#HaskellSvgIcons-bookOpen-cover"
+      S.use
+        ! A.xlinkHref "#HaskellSvgIcons-bookOpen-cover"
+        ! A.transform (horizontalMirrorMatrix)
+      S.use
+        ! A.xlinkHref "#HaskellSvgIcons-bookOpen-pages"
+      S.use
+        ! A.xlinkHref "#HaskellSvgIcons-bookOpen-pages"
+        ! A.transform (horizontalMirrorMatrix)
       S.path
-        ! A.id_ "HaskellSvgIcons-bookOpen-cover"
-        ! A.d coverDirs
+        ! A.d spineDirs
         ! A.fill "none"
-      S.path
-        ! A.id_ "HaskellSvgIcons-bookOpen-pages"
-        ! A.d pagesDirs
         ! A.strokeLinejoin "round"
-    S.use
-      ! A.xlinkHref "#HaskellSvgIcons-bookOpen-cover"
-    S.use
-      ! A.xlinkHref "#HaskellSvgIcons-bookOpen-cover"
-      ! A.transform (horizontalMirrorMatrix)
-    S.use
-      ! A.xlinkHref "#HaskellSvgIcons-bookOpen-pages"
-    S.use
-      ! A.xlinkHref "#HaskellSvgIcons-bookOpen-pages"
-      ! A.transform (horizontalMirrorMatrix)
-    S.path
-      ! A.d spineDirs
-      ! A.fill "none"
-      ! A.strokeLinejoin "round"
   where
     y1 = 0.55
     y2 = 0.65
@@ -672,27 +692,29 @@ -}
 bookOpen2 :: Svg
 bookOpen2 =
-  S.g $ do
-    S.defs $ do
-      S.path
-        ! A.id_ "HaskellSvgIcons-bookOpen2-cover"
-        ! A.d coverDirs
-        ! A.fill "none"
-        ! A.strokeLinejoin "round"
-      S.path
-        ! A.id_ "HaskellSvgIcons-bookOpen2-pages"
-        ! A.d pagesDirs
-        ! A.strokeLinejoin "round"
-    S.use
-      ! A.xlinkHref "#HaskellSvgIcons-bookOpen2-cover"
-    S.use
-      ! A.xlinkHref "#HaskellSvgIcons-bookOpen2-cover"
-      ! A.transform (horizontalMirrorMatrix)
-    S.use
-      ! A.xlinkHref "#HaskellSvgIcons-bookOpen2-pages"
-    S.use
-      ! A.xlinkHref "#HaskellSvgIcons-bookOpen2-pages"
-      ! A.transform (horizontalMirrorMatrix)
+  S.g 
+    ! A.class_ "HaskellSvgIcons__bookOpen2"
+    $ do
+      S.defs $ do
+        S.path
+          ! A.id_ "HaskellSvgIcons-bookOpen2-cover"
+          ! A.d coverDirs
+          ! A.fill "none"
+          ! A.strokeLinejoin "round"
+        S.path
+          ! A.id_ "HaskellSvgIcons-bookOpen2-pages"
+          ! A.d pagesDirs
+          ! A.strokeLinejoin "round"
+      S.use
+        ! A.xlinkHref "#HaskellSvgIcons-bookOpen2-cover"
+      S.use
+        ! A.xlinkHref "#HaskellSvgIcons-bookOpen2-cover"
+        ! A.transform (horizontalMirrorMatrix)
+      S.use
+        ! A.xlinkHref "#HaskellSvgIcons-bookOpen2-pages"
+      S.use
+        ! A.xlinkHref "#HaskellSvgIcons-bookOpen2-pages"
+        ! A.transform (horizontalMirrorMatrix)
   where
     y1 =  0.7
     y2 =  0.4
@@ -727,15 +749,17 @@ -}
 boxClosed :: Svg
 boxClosed =
-    S.g $ do
-      S.path
-        ! A.d backSide
-        ! A.strokeLinecap  "round"
-        ! A.strokeLinejoin "round"
-      S.path
-        ! A.d frontSide
-        ! A.strokeLinecap  "round"
-        ! A.strokeLinejoin "round"
+    S.g 
+      ! A.class_ "HaskellSvgIcons__boxClosed"
+      $ do
+        S.path
+          ! A.d backSide
+          ! A.strokeLinecap  "round"
+          ! A.strokeLinejoin "round"
+        S.path
+          ! A.d frontSide
+          ! A.strokeLinecap  "round"
+          ! A.strokeLinejoin "round"
   where
     lm = 0.7
     k  = 0.2
src/SvgIcons/Icons/Outdoors.hs view
@@ -41,11 +41,13 @@ -}
 flag :: Svg
 flag =
-    S.g $ do
-      S.path 
-        ! A.d staff
-      S.path
-        ! A.d field
+    S.g 
+      ! A.class_ "HaskellSvgIcons__flag"
+      $ do
+        S.path 
+          ! A.d staff
+        S.path
+          ! A.d field
   where
     x1  = -0.85
     x2  = -0.7
src/SvgIcons/Icons/Religion.hs view
@@ -75,23 +75,25 @@ -}
 xp :: Svg
 xp = 
-  S.g $ do
-    S.path
-      ! A.d rho
-      ! A.fillRule "evenodd"
-    S.path 
-      ! A.d chi
-      ! A.transform (rotateAround 45 0 0)
-    S.path
-      ! A.d alpha
-      ! A.fill "none"
-      ! A.strokeLinecap  "round"
-      ! A.strokeLinejoin "round"
-    S.path
-      ! A.d omega
-      ! A.fill "none"
-      ! A.strokeLinecap  "round"
-      ! A.strokeLinejoin "round"
+  S.g 
+    ! A.class_ "HaskellSvgIcons__xp"
+    $ do
+      S.path
+        ! A.d rho
+        ! A.fillRule "evenodd"
+      S.path 
+        ! A.d chi
+        ! A.transform (rotateAround 45 0 0)
+      S.path
+        ! A.d alpha
+        ! A.fill "none"
+        ! A.strokeLinecap  "round"
+        ! A.strokeLinejoin "round"
+      S.path
+        ! A.d omega
+        ! A.fill "none"
+        ! A.strokeLinecap  "round"
+        ! A.strokeLinejoin "round"
   where
     w = 0.07
     k1 = 0.5
@@ -162,11 +164,13 @@ -}
 taijitu :: String -> String -> Svg
 taijitu yinColor yangColor =
-    S.g $ do
-      outerCircle
-      yin
-      yangDot
-      yinDot
+    S.g 
+      ! A.class_ "HaskellSvgIcons__taijitu"
+      $ do
+        outerCircle
+        yin
+        yangDot
+        yinDot
   where
     r1  = 0.92
     r1m = 0.5 * r1
@@ -214,6 +218,7 @@ crossLatin :: Svg
 crossLatin =
     S.path
+      ! A.class_ "HaskellSvgIcons__crossLatin"
       ! A.d dirs
   where
     w  = 0.1
@@ -247,6 +252,7 @@ crossGreek :: Svg
 crossGreek = 
     S.path
+      ! A.class_ "HaskellSvgIcons__crossGreek"
       ! A.d dirs
   where
     w = 0.25
@@ -278,6 +284,7 @@ crossOrthodox :: Svg
 crossOrthodox =
     S.path
+      ! A.class_ "HaskellSvgIcons__crossOrthodox"
       ! A.d dirs
   where
     w = 0.1
@@ -335,11 +342,13 @@ -}
 crescentAndStar :: Svg
 crescentAndStar =
-    S.g $ do
-      S.path
-        ! A.strokeLinejoin "round"
-        ! A.d moonDirs
-      starRegular 5 0.3 (0.55, 0.05)
+    S.g 
+      ! A.class_ "HaskellSvgIcons__crescentAndStar"
+      $ do
+        S.path
+          ! A.strokeLinejoin "round"
+          ! A.d moonDirs
+        starRegular 5 0.3 (0.55, 0.05)
   where
     kx = 0.55
     ky = 0.55
@@ -362,7 +371,9 @@ -}
 starOfDavid :: Svg
 starOfDavid =
-  starPolygonOverlap 6 0.9 0.1 (0,0)
+  S.g
+    ! A.class_ "HaskellSvgIcons__starOfDavid"
+    $ starPolygonOverlap 6 0.9 0.1 (0,0)
 
 
 
@@ -383,12 +394,14 @@ -}
 iChingHexagram :: (Int,Int,Int,Int,Int,Int) -> Svg
 iChingHexagram (n1,n2,n3,n4,n5,n6) =
-    S.g $ do
-      S.path
-        ! A.d lines
-      if doNotPrintNumbers
-        then mempty
-        else numbers
+    S.g 
+      ! A.class_ "HaskellSvgIcons__iChingHexagram"
+      $ do
+        S.path
+          ! A.d lines
+        if doNotPrintNumbers
+          then mempty
+          else numbers
   where
     doNotPrintNumbers =
       (\k -> k == 0 || k == 1) `all` [n1,n2,n3,n4,n5,n6]
@@ -436,6 +449,7 @@ dharmachakra :: Svg
 dharmachakra =
     S.path
+      ! A.class_ "HaskellSvgIcons__dharmachakra"
       ! A.fillRule "evenodd"
       ! A.strokeLinejoin "round"
       ! A.d dirs
@@ -487,17 +501,18 @@ -}
 ouroboros :: Svg
 ouroboros =
-  S.g $
-    S.g 
-      ! A.transform (translate 0 0.05 <> rotateAround 30 0 0)
-      $ do
-        S.path
-          ! A.fillRule "evenodd"
-          ! A.d dirs
-        S.circle
-          ! A.cx "-0.25"
-          ! A.cy "-0.8"
-          ! A.r  " 0.01"
+  S.g 
+    ! A.class_ "HaskellSvgIcons__ouroboros"
+    $ S.g 
+        ! A.transform (translate 0 0.05 <> rotateAround 30 0 0)
+        $ do
+          S.path
+            ! A.fillRule "evenodd"
+            ! A.d dirs
+          S.circle
+            ! A.cx "-0.25"
+            ! A.cy "-0.8"
+            ! A.r  " 0.01"
   where
     w = 0.1
     r = 0.78
@@ -526,6 +541,7 @@ ichthys :: Svg
 ichthys =
     S.path
+      ! A.class_ "HaskellSvgIcons__ichthys"
       ! A.fillRule "evenodd"
       ! A.d dirs
   where
src/SvgIcons/Icons/Textarea.hs view
@@ -85,6 +85,7 @@ bold :: S.Svg
 bold =
     S.path 
+      ! A.class_ "HaskellSvgIcons__bold"
       ! d dirs
   where
     k0 = 0.2
@@ -129,6 +130,7 @@ italic :: S.Svg
 italic =
     S.path
+      ! A.class_ "HaskellSvgIcons__italic"
       ! d dirs
   where
     k1 = 0.12  -- half width of the line
@@ -174,9 +176,11 @@ -}
 link :: S.Svg
 link =
-    g $ do
-      topPart ! A.transform (rotateAround 45 0 0)
-      topPart ! A.transform (rotateAround 45 0 0 <> rotateAround 180 0 0)
+    S.g
+      ! A.class_ "HaskellSvgIcons__link" 
+      $ do
+        topPart ! A.transform (rotateAround 45 0 0)
+        topPart ! A.transform (rotateAround 45 0 0 <> rotateAround 180 0 0)
   where
     topPart = S.path ! d topPath 
     -----------------
@@ -211,11 +215,13 @@ -}
 imageIcon :: S.Svg
 imageIcon =
-    S.g $ do
-      sun
-      mountain
-      imageFrameStroked
-      imageFrameFilled
+    S.g 
+      ! A.class_ "HaskellSvgIcons__imageIcon"
+      $ do
+        sun
+        mountain
+        imageFrameStroked
+        imageFrameFilled
   where
     sun =
       circle
@@ -272,7 +278,9 @@ -}
 video :: S.Svg
 video =
-    S.path ! A.d boxPath
+    S.path 
+      ! A.class_ "HaskellSvgIcons__video"
+      ! A.d boxPath
   where
     h  = 1.2
     w  = 1.618 * h
@@ -301,10 +309,12 @@ -}
 horizontalBars :: S.Svg
 horizontalBars =
-    S.g $ do
-      S.path ! d topLine
-      S.path ! d midLine
-      S.path ! d botLine
+    S.g 
+      ! A.class_ "HaskellSvgIcons__horizontalBars"
+      $ do
+        S.path ! d topLine
+        S.path ! d midLine
+        S.path ! d botLine
   where
     w  =  0.20
     x1 = -0.4
@@ -342,9 +352,11 @@ -}
 bulletList :: S.Svg
 bulletList =
-    S.g $ do
-      horizontalBars
-      bullets 
+    S.g 
+      ! A.class_ "HaskellSvgIcons__bulletList"
+      $ do
+        horizontalBars
+        bullets 
   where
     radius = 0.12
     x1 = -0.75
@@ -367,9 +379,11 @@ -}
 numberList :: Svg
 numberList =
-    S.g $ do
-      horizontalBars
-      numbers
+    S.g 
+      ! A.class_ "HaskellSvgIcons__numberList"
+      $ do
+        horizontalBars
+        numbers
   where
     x1 = -0.75
     y1 = -0.6
@@ -401,12 +415,14 @@ -}
 header :: S.Svg
 header =
-    S.g $ do
-      S.path ! d line1
-      S.path ! d line2
-      S.path ! d line3 ! opacity "0.4"
-      S.path ! d line4 ! opacity "0.4"
-      S.path ! d line5 ! opacity "0.4"
+    S.g 
+      ! A.class_ "HaskellSvgIcons__header"
+      $ do
+        S.path ! d line1
+        S.path ! d line2
+        S.path ! d line3 ! opacity "0.4"
+        S.path ! d line4 ! opacity "0.4"
+        S.path ! d line5 ! opacity "0.4"
   where
     l1 = -0.9
     l2 = -0.5
@@ -456,12 +472,14 @@ -}
 horizontalRule :: S.Svg
 horizontalRule =
-    S.g $ do
-      S.path ! d line1 ! opacity "0.4"
-      S.path ! d line2 ! opacity "0.4"
-      line3 
-      S.path ! d line4 ! opacity "0.4"
-      S.path ! d line5 ! opacity "0.4"
+    S.g 
+      ! A.class_ "HaskellSvgIcons__horizontalRule"
+      $ do
+        S.path ! d line1 ! opacity "0.4"
+        S.path ! d line2 ! opacity "0.4"
+        line3 
+        S.path ! d line4 ! opacity "0.4"
+        S.path ! d line5 ! opacity "0.4"
   where
     l1 = -0.9
     l2 = -0.5
@@ -517,9 +535,11 @@ -}
 undo :: S.Svg
 undo =
-  S.g $ do
-    curvyArrowLeft
-      ! A.transform (translate 0 0.1)
+  S.g 
+    ! A.class_ "HaskellSvgIcons__undo"
+    $ do
+      curvyArrowLeft
+        ! A.transform (translate 0 0.1)
 
 
 
@@ -532,9 +552,11 @@ -}
 redo :: S.Svg
 redo =
-  S.g $ do
-    curvyArrowLeft
-      ! A.transform (translate 0 0.1 <> horizontalMirrorMatrix)
+  S.g 
+    ! A.class_ "HaskellSvgIcons__redo"
+    $ do
+      curvyArrowLeft
+        ! A.transform (translate 0 0.1 <> horizontalMirrorMatrix)
 
 
 
@@ -544,6 +566,7 @@ curvyArrowLeft :: S.Svg
 curvyArrowLeft =
   S.path
+    ! A.class_ "HaskellSvgIcons__curvyArrowLeft"
     ! d dirs
     ! strokeLinejoin "round"
   where
@@ -577,6 +600,7 @@ questionMark :: S.Svg
 questionMark =
     S.path
+      ! A.class_ "HaskellSvgIcons__questionMark"
       ! A.d dirs
       ! A.transform (translate 0 (-0.35))
   where
@@ -609,11 +633,13 @@ -}
 fullscreen :: S.Svg
 fullscreen =
-    S.g $ do
-      corner
-      corner ! A.transform (rotateAround  90 0 0)
-      corner ! A.transform (rotateAround 180 0 0)
-      corner ! A.transform (rotateAround 270 0 0)
+    S.g 
+      ! A.class_ "HaskellSvgIcons__fullscreen"
+      $ do
+        corner
+        corner ! A.transform (rotateAround  90 0 0)
+        corner ! A.transform (rotateAround 180 0 0)
+        corner ! A.transform (rotateAround 270 0 0)
  where
    k1 = 0.9
    k2 = 0.7
@@ -643,9 +669,11 @@ -}
 preview :: S.Svg
 preview = 
-    S.g $ do
-      lines
-      rectangle
+    S.g 
+      ! A.class_ "HaskellSvgIcons__preview"
+      $ do
+        lines
+        rectangle
   where
     kx = 0.2
     ky = 0.4
src/SvgIcons/Icons/Tools.hs view
@@ -62,12 +62,14 @@ -}
 lock :: S.Svg
 lock =
-  S.g $ do
-    S.path 
-      ! A.d arm
-    S.path
-      ! fillRule "evenodd"
-      ! A.d body
+  S.g 
+    ! A.class_ "HaskellSvgIcons__lock"
+    $ do
+      S.path 
+        ! A.d arm
+      S.path
+        ! fillRule "evenodd"
+        ! A.d body
   where
     aw  =  0.07
     ax  =  0.4
@@ -117,6 +119,7 @@ key :: S.Svg
 key =
   S.path
+    ! A.class_ "HaskellSvgIcons__key"
     ! fillRule "evenodd"
     ! A.d keyPath
   where
@@ -154,9 +157,11 @@ -}
 keyWithArc :: S.Svg
 keyWithArc =
-    S.g $ do
-      key ! A.transform (translate (-0.4) 0 <> S.scale 0.6 0.6)
-      arc ! A.transform (S.scale 0.6 0.6)
+    S.g 
+      ! A.class_ "HaskellSvgIcons__keyWithArc"
+      $ do
+        key ! A.transform (translate (-0.4) 0 <> S.scale 0.6 0.6)
+        arc ! A.transform (S.scale 0.6 0.6)
   where
     w  = 0.1
     r1 = 1.3
@@ -187,6 +192,7 @@ cogwheel :: Int -> Float -> S.Svg
 cogwheel n eps =
     S.path
+      ! A.class_ "HaskellSvgIcons__cogwheel"
       ! A.d cogPath
   where
     r1 = 0.4  :: Float
@@ -252,10 +258,11 @@ -}
 key1 :: S.Svg
 key1 =
-    S.g $
-      S.path
-        ! A.d keyPath
-        ! A.transform (rotateAround 45 0 0)
+    S.g 
+      ! A.class_ "HaskellSvgIcons__key1"
+      $ S.path
+          ! A.d keyPath
+          ! A.transform (rotateAround 45 0 0)
   where
     x1 = -0.1
     y1 =  0.2
@@ -297,6 +304,7 @@ bell :: S.Svg
 bell =
     S.path
+      ! A.class_ "HaskellSvgIcons__bell"
       ! A.d dirs
   where
     r1 =  0.5
src/SvgIcons/Images/Mosaics.hs view
@@ -97,6 +97,7 @@ nazariMosaic :: String -> String -> Svg
 nazariMosaic colorUpper colorLower =
     svg
+      ! A.class_ "HaskellSvgIcons__nazariMosaic"
       ! A.viewbox (S.toValue vb)
       ! A.width  "300px"
       ! A.height (S.toValue $ (show $ 300*h) ++ "px") 
@@ -170,6 +171,7 @@ triReligiousMosaic :: String -> String -> String -> Svg
 triReligiousMosaic fill1 fill2 fill3 =
     S.svg
+      ! A.class_ "HaskellSvgIcons__triReligiousMosaic"
       ! A.viewbox (S.toValue $ "0 0 1 " ++ show (2*h))
       ! A.width  "300px"
       ! A.height (S.toValue $ (show $ 300 * sqrt 3) ++ "px")
@@ -272,6 +274,7 @@ hexagonsMosaic :: String -> String -> Svg
 hexagonsMosaic strkColor fillColor = do
     S.svg
+      ! A.class_ "HaskellSvgIcons__hexagonsMosaic"
       ! A.viewbox (S.toValue $ "0 0 1 " ++ show (3*rad))
       ! A.width  "300px"
       ! A.height (S.toValue $ (show $ 300 * sqrt 3) ++ "px")
@@ -308,6 +311,7 @@ beehiveMosaic :: Svg
 beehiveMosaic = do
     S.svg
+      ! A.class_ "HaskellSvgIcons__beehiveMosaic"
       ! A.viewbox (S.toValue $ "0 0 1 " ++ show (3*rad))
       ! A.width  "300px"
       ! A.height (S.toValue $ (show $ 300 * sqrt 3) ++ "px")
@@ -370,6 +374,7 @@ lemonsMosaic :: String -> Svg
 lemonsMosaic fillColor =
     svg
+      ! A.class_ "HaskellSvgIcons__lemonsMosaic"
       ! A.viewbox "0.15 0 0.85 1"
       ! A.height "300px"
       ! A.width (S.toValue $ show (0.85 * 300) ++ "px")
@@ -421,6 +426,7 @@ arabicMosaic :: String -> String -> Svg
 arabicMosaic c1 c2 =
     svg
+      ! A.class_ "HaskellSvgIcons__arabicMosaic"
       ! A.viewbox "-1 -1 2 2"
       ! A.width  "300px"
       ! A.height "300px"
@@ -481,6 +487,7 @@ cloudsMosaic :: String -> String -> Svg
 cloudsMosaic strkColor fillColor =
   S.svg
+    ! A.class_ "HaskellSvgIcons__cloudsMosaic"
     ! A.viewbox "-1 -1 2 2"
     ! A.height "300"
     ! A.width  "300"
@@ -512,6 +519,7 @@ hexMosaic :: String -> Svg
 hexMosaic strkColor =
   S.svg
+    ! A.class_ "HaskellSvgIcons__hexMosaic"
     ! A.viewbox (S.toValue $ concat $ intersperse " " $ map show [vbX, vbY, vbW, vbH])
     ! A.height "300px"
     ! A.width  (S.toValue $ show (300 * sqrt 3) ++ "px")
@@ -580,6 +588,7 @@ arrowsMosaic :: String -> Svg
 arrowsMosaic strkColor =
     S.svg
+      ! A.class_ "HaskellSvgIcons__arrowsMosaic"
       ! A.viewbox (S.toValue $ "0 0 1 " ++ show (2*h))
       ! A.width  "300px"
       ! A.height (S.toValue $ show (300 * sqrt 3) ++ "px")
@@ -642,6 +651,7 @@ wiresMosaic :: String -> Svg
 wiresMosaic strkColor =
   S.svg
+    ! A.class_ "HaskellSvgIcons__wiresMosaic"
     ! A.viewbox "0 0 1 1"
     ! A.height "300px"
     ! A.width  "300px"
@@ -861,6 +871,7 @@ curvesMosaic :: Svg
 curvesMosaic =
   S.svg
+    ! A.class_ "HaskellSvgIcons__curvesMosaic"
     ! A.viewbox "0 0 1 1"
     ! A.height "300px"
     ! A.width  "300px"
@@ -995,10 +1006,11 @@ airplaneMosaic :: String -> Svg
 airplaneMosaic fillColor =
   S.svg
-      ! A.viewbox "0 0 2 2"
-      ! A.height "300px"
-      ! A.width  "300px"
-      $ do
+    ! A.class_ "HaskellSvgIcons__airplaneMosaic"
+    ! A.viewbox "0 0 2 2"
+    ! A.height "300px"
+    ! A.width  "300px"
+    $ do
         defs $
           basicPlane ! A.id_ "HaskellSvgIcons-planeTile"
         plane ! A.transform (translate 1 (-0.5))
@@ -1038,6 +1050,7 @@ octagonsMosaic :: String -> String -> Svg
 octagonsMosaic fillColor strkColor =
     svg
+      ! A.class_ "HaskellSvgIcons__octagonsMosaic"
       ! A.viewbox "0 0 4 4"
       ! A.height "300px"
       ! A.width  "300px"
@@ -1073,6 +1086,7 @@ pentagonsMosaic :: String -> String -> Svg
 pentagonsMosaic fillColor strkColor =
     svg
+      ! A.class_ "HaskellSvgIcons__pentagonsMosaic"
       ! A.viewbox (S.toValue $ "0 0 " ++ (show x0) ++ " " ++ (show y0))
       ! A.height "300px"
       ! A.width  (S.toValue $ (show $ 300 * sqrt 3) ++ "px")
svg-icons.cabal view
@@ -1,6 +1,6 @@ cabal-version:      2.4
 name:               svg-icons
-version:            2.12.1
+version:            3.0.0
 homepage:           https://github.com/RamiroPastor/SvgIcons
 license:            BSD-3-Clause
 license-file:       LICENSE