@ -1,6 +1,7 @@
module Style exposing (..)
module Style exposing (..)
import Color
import Color
import Color.Convert
import Color.Manipulate
import Color.Manipulate
import Echologo exposing (..)
import Echologo exposing (..)
import Element exposing (..)
import Element exposing (..)
@ -11,11 +12,18 @@ import Svg exposing (..)
import Svg.Attributes as SvgA
import Svg.Attributes as SvgA
exposing
exposing
( color
( color
, fill
, dx
, dy
, floodColor
, floodOpacity
, fontFamily
, fontFamily
, fontSize
, fontSize
, height
, id
, in 2
, in_
, operator
, r
, r
, stdDeviation
, strokeWidth
, strokeWidth
, viewBox
, viewBox
, x
, x
@ -23,21 +31,16 @@ import Svg.Attributes as SvgA
)
)
{- | H S L = 1 5 5 , 4 3 . 5 , 5 7 . 6
couleurUI =
- }
fromRgb << Color . toRgba
echoVert =
Color . fromRgba
{ red = 100 / 255
, green = 194 / 255
, blue = 155 / 255
, alpha = 255 / 255
}
vert t =
vert t =
fromRgb <|
Color . Manipulate . lighten t vertMante
Color . toRgba <|
Color . Manipulate . lighten t echoVert
couleurArrierePlan =
vert 0. 3
petitEspacement =
petitEspacement =
@ -56,7 +59,7 @@ bouton fonction label =
Input . button
Input . button
[ centerY
[ centerY
, padding petitEspacement
, padding petitEspacement
, Background . color <| vert - 0. 2
, Background . color <| couleurUI <| vert - 0. 2
, Border . rounded 8
, Border . rounded 8
, Border . shadow
, Border . shadow
{ blur = 10
{ blur = 10
@ -70,20 +73,59 @@ bouton fonction label =
}
}
entete hauteur largeur titre =
entete largeur titre =
html <|
html <|
svg
svg
[ viewBox <| " 0 0 " ++ String . fromInt largeur ++ " 3 0 "
[ viewBox <| " 0 0 3 0 0 3 0 "
, SvgA . height <| String . fromInt haut eur
, SvgA . width <| String . fromInt larg eur
]
]
<|
<|
echologo
[ defs [ ] [ ombreInterne ] ]
++ echologo couleurArrierePlan ( SvgA . filter " u r l ( # o m b r e I n t e r n e ) " )
++ [ text_
++ [ text_
[ x " 4 0 "
[ x " 3 0 "
, y " 2 0 "
, y " 2 5 "
, fontFamily " V e r d a n a "
, fontFamily " V e r d a n a "
, SvgA . fill " w h i t e "
, SvgA . fill <| Color . Convert . colorToHex couleurArrierePlan
, fontSize " 1 5 "
, fontSize " 2 0 "
, SvgA . filter " u r l ( # o m b r e I n t e r n e ) "
]
]
[ Svg . text titre ]
[ Svg . text titre ]
]
]
ombreInterne =
filter [ id " o m b r e I n t e r n e " ]
[ feFlood [ floodColor " b l a c k " , floodOpacity " . 6 " ] [ ]
, feComposite [ in 2 " S o u r c e A l p h a " , operator " o u t " ] [ ]
, feGaussianBlur [ stdDeviation " 1 " ] [ ]
, feOffset [ dx " . 1 " , dy " . 5 " ] [ ]
, feComposite [ in 2 " S o u r c e A l p h a " , operator " i n " ] [ ]
, feMerge [ ]
[ feMergeNode [ in_ " S o u r c e G r a p h i c " ] [ ]
, feMergeNode [ ] [ ]
]
]
designGeneral largeur titre elmt =
layout
[ height fill
, width fill
, padding tresGrandEspacement
, Background . color <| couleurUI <| couleurArrierePlan
]
<|
column
[ height fill
, width fill
, Background . color <| couleurUI <| vert 0
, Border . rounded 13
]
[ row [ ]
[ entete
( largeur - 2 * ( petitEspacement + grandEspacement ) )
titre
]
, elmt
]