Copyright | (C) 2014-2015 The University of Kansas |
---|---|
License | BSD-style (see the file LICENSE) |
Maintainer | Andy Gill |
Stability | Beta |
Portability | GHC |
Safe Haskell | None |
Language | Haskell2010 |
This module exposes an overloaded version of the font
function that can accept
a Font
ADT argument. This may be of interest if you desire stronger type safety
than Text
-based fonts provide.
Note that this module's font
function conflicts with font
from Graphics.Blank.
Make sure to hide font
from Graphics.Blank if you use font
from this module.
Synopsis
- font :: CanvasFont canvasFont => canvasFont -> Canvas ()
- class CanvasFont a where
- jsCanvasFont :: a -> Builder
- data Font
- defFont :: [FontFamily] -> Font
- caption :: Font
- icon :: Font
- menu :: Font
- messageBox :: Font
- smallCaption :: Font
- statusBar :: Font
- data FontStyle
- italic :: FontStyle
- oblique :: FontStyle
- data FontVariant
- smallCaps :: FontVariant
- data FontWeight
- bold :: FontWeight
- bolder :: FontWeight
- lighter :: FontWeight
- data FontSize
- xxSmall :: FontSize
- xSmall :: FontSize
- small :: FontSize
- medium :: FontSize
- large :: FontSize
- xLarge :: FontSize
- xxLarge :: FontSize
- larger :: FontSize
- smaller :: FontSize
- data LineHeight
- data FontFamily
- serif :: FontFamily
- sansSerif :: FontFamily
- monospace :: FontFamily
- cursive :: FontFamily
- fantasy :: FontFamily
- class Default a => NormalProperty a where
- normal :: a
- data Length
- class LengthProperty a where
- fromLength :: Length -> a
- em :: LengthProperty a => Double -> a
- ex :: LengthProperty a => Double -> a
- ch :: LengthProperty a => Double -> a
- rem_ :: LengthProperty a => Double -> a
- vh :: LengthProperty a => Double -> a
- vw :: LengthProperty a => Double -> a
- vmin :: LengthProperty a => Double -> a
- vmax :: LengthProperty a => Double -> a
- px :: LengthProperty a => Double -> a
- mm :: LengthProperty a => Double -> a
- cm :: LengthProperty a => Double -> a
- in_ :: LengthProperty a => Double -> a
- pt :: LengthProperty a => Double -> a
- pc :: LengthProperty a => Double -> a
- class PercentageProperty a where
- percent :: Percentage -> a
Overloaded font
font :: CanvasFont canvasFont => canvasFont -> Canvas () Source #
class CanvasFont a where Source #
A data type that can represent a browser font.
jsCanvasFont :: a -> Builder Source #
Convert a value into a JavaScript string representing a font value.
Instances
CanvasFont Text Source # | |
Defined in Graphics.Blank.Types.Font jsCanvasFont :: Text -> Builder Source # | |
CanvasFont Font Source # | |
Defined in Graphics.Blank.Types.Font jsCanvasFont :: Font -> Builder Source # |
font
A CSS-style font data type.
FontProperties | A font specified by its individual longhand properties. |
| |
CaptionFont | The font used for captioned controls (e.g., buttons, drop-downs, etc.) |
IconFont | The font used to label icons. |
MenuFont | The font used in menus (e.g., dropdown menus and menu lists). |
MessageBoxFont | The font used in dialog boxes. |
SmallCaptionFont | The font used for labeling small controls. |
StatusBarFont | The font used in window status bars. |
Instances
Eq Font Source # | |
Ord Font Source # | |
Read Font Source # | |
Show Font Source # | |
IsString Font Source # | |
Defined in Graphics.Blank.Types.Font fromString :: String -> Font # | |
TextShow Font Source # | |
Defined in Graphics.Blank.Types.Font | |
JSArg Font Source # | |
CanvasFont Font Source # | |
Defined in Graphics.Blank.Types.Font jsCanvasFont :: Font -> Builder Source # |
defFont :: [FontFamily] -> Font Source #
Creates a new font from the FontFamily
list, using the Default
instances
for the other five longhand properties. If you only wish to change certain
properties and leave the others alone, this provides a convenient mechanism
for doing so:
(defFont
["Gill Sans Extrabold",sansSerif
]) {fontStyle
=italic
,fontSize
= 12 #px
,lineHeight
= 14 #px
}
Shorthand for CaptionFont
.
messageBox :: Font Source #
Shorthand for MessageBoxFont
.
smallCaption :: Font Source #
Shorthand for SmallCaptionFont
.
Shorthand for StatusBarFont
.
font-style
Specifies if a Font
is italic or oblique.
NormalStyle | Selects a font classified as normal (default). |
ItalicStyle | Selects a font that is labeled italic, or if one is not available, one labeled oblique. |
ObliqueStyle | Selects a font that is labeled oblique. |
Instances
Shorthand for ItalicStyle
.
Shorthand for ObliqueStyle
.
font-variant
data FontVariant Source #
Specifies the face of a Font
.
NormalVariant | A normal font face (default). |
SmallCapsVariant | A font face with small capital letters for lowercase characters. |
Instances
smallCaps :: FontVariant Source #
Shorthand for SmallCapsVariant
.
font-weight
data FontWeight Source #
Specifies the boldness of a Font
. Note that FontWeight
is an instance of
Num
so that the nine numeric weights can be used directly. For example:
(defFont
[sansSerif
]) {fontWeight
= 900 }
Attempting to use a numeric weight other than the nine given will result in a runtime error.
NormalWeight | Default. |
BoldWeight | |
BolderWeight | |
LighterWeight | |
Weight100 | |
Weight200 | |
Weight300 | |
Weight400 | |
Weight500 | |
Weight600 | |
Weight700 | |
Weight800 | |
Weight900 |
Instances
bold :: FontWeight Source #
Shorthand for BoldWeight
.
bolder :: FontWeight Source #
Shorthand for BolderWeight
.
lighter :: FontWeight Source #
Shorthand for LighterWeight
.
font-size
The desired height of Font
glyphs.
Examples
XXSmallSize | |
XSmallSize | |
SmallSize | |
MediumSize | Default. |
LargeSize | |
XLargeSize | |
XXLargeSize | |
LargerSize | |
SmallerSize | |
FontSizeLength Length | |
FontSizePercentage Percentage |
Instances
Eq FontSize Source # | |
Ord FontSize Source # | |
Defined in Graphics.Blank.Types.Font | |
Read FontSize Source # | |
Show FontSize Source # | |
IsString FontSize Source # | |
Defined in Graphics.Blank.Types.Font fromString :: String -> FontSize # | |
Default FontSize Source # | |
Defined in Graphics.Blank.Types.Font | |
TextShow FontSize Source # | |
PercentageProperty FontSize Source # | |
Defined in Graphics.Blank.Types.Font percent :: Percentage -> FontSize Source # | |
LengthProperty FontSize Source # | |
Defined in Graphics.Blank.Types.Font fromLength :: Length -> FontSize Source # |
Shorthand for XXSmallSize
.
Shorthand for XSmallSize
.
Shorthand for MediumSize
.
Shorthand for XLargeSize
.
Shorthand for XXLargeSize
.
Shorthand for LargerSize
.
Shorthand for SmallerSize
.
line-height
data LineHeight Source #
The height of the line boxes in a Font
.
Examples
(defFont
[sansSerif
]) {lineHeight
=normal
} (defFont
[sansSerif
]) {lineHeight
= 50 } (defFont
[sansSerif
]) {lineHeight
= 30 #em
} (defFont
[sansSerif
]) {lineHeight
= 70 #percent
}
NormalLineHeight | Default. |
LineHeightNumber Double | |
LineHeightLength Length | |
LineHeightPercentage Percentage |
Instances
font-family
data FontFamily Source #
The name of a Font
family. Note that both FontFamily
and [
are instances of FontFamily
]IsString
, so it is possible to produce FontFamily
values
in several different ways. For example, these are all of type FontFamily
:
FontFamilyName
"Gill Sans Extrabold" "Gill Sans Extrabold" ::FontFamily
serif
"serif" ::FontFamily
These are all of type [
:FontFamily
]
[FontFamilyName
"Helvetica",serif
] ["Helvetica", "serif"] :: [FontFamily
] "Helvetica, serif" :: [FontFamily
]
FontFamilyName Text | The name of a custom font family. |
SerifFamily | A generic font family where glyphs have serifed endings. |
SansSerifFamily | A generic font family where glyphs do not have serifed endings. |
MonospaceFamily | A generic font family where all glyphs have the same fixed width. |
CursiveFamily | A generic font family with cursive glyphs. |
FantasyFamily | A generic font family where glyphs have decorative, playful representations. |
Instances
serif :: FontFamily Source #
Shorthand for SerifFamily
.
sansSerif :: FontFamily Source #
Shorthand for SansSerifFamily
.
monospace :: FontFamily Source #
Shorthand for MonospaceFamily
.
cursive :: FontFamily Source #
Shorthand for CursiveFamily
.
fantasy :: FontFamily Source #
Shorthand for FantasyFamily
.
Normal values
class Default a => NormalProperty a where Source #
Nothing
The default value for a CSS property. For example, it can be used like this:
(defFont
[sansSerif
]) {lineHeight
=normal
}
Instances
NormalProperty LineHeight Source # | |
Defined in Graphics.Blank.Types.Font normal :: LineHeight Source # | |
NormalProperty FontWeight Source # | |
Defined in Graphics.Blank.Types.Font normal :: FontWeight Source # | |
NormalProperty FontVariant Source # | |
Defined in Graphics.Blank.Types.Font normal :: FontVariant Source # | |
NormalProperty FontStyle Source # | |
Defined in Graphics.Blank.Types.Font |
Lengths
Denotes CSS distance measurements, especially in the context of Font
s.
Em | The height of the current font. |
Ex | The height of the character |
Ch | The width of the character |
Rem | The height of the font relative to the root element. |
Vh | One percent of the height of the viewport. |
Vw | One percent of the width of the viewport. |
Vmin | One percent of the minimum of the viewport height and width. |
Vmax | One percent of the maximum of the viewport height and width. |
Px | One device pixel (dot) of the display. |
Mm | One millimeter. |
Cm | One centimeter (10 millimeters). |
In | One inch (~2.54 centimeters). |
Pt | One point (1/72 inches). |
Pc | One pica (12 points). |
Instances
Eq Length Source # | |
Ord Length Source # | |
Read Length Source # | |
Show Length Source # | |
IsString Length Source # | |
Defined in Graphics.Blank.Types.CSS fromString :: String -> Length # | |
TextShow Length Source # | |
Defined in Graphics.Blank.Types.CSS | |
LengthProperty Length Source # | |
Defined in Graphics.Blank.Types.CSS fromLength :: Length -> Length Source # |
class LengthProperty a where Source #
Designates CSS properties that can consist of a Length
.
fromLength :: Length -> a Source #
Instances
LengthProperty Length Source # | |
Defined in Graphics.Blank.Types.CSS fromLength :: Length -> Length Source # | |
LengthProperty LineHeight Source # | |
Defined in Graphics.Blank.Types.Font fromLength :: Length -> LineHeight Source # | |
LengthProperty FontSize Source # | |
Defined in Graphics.Blank.Types.Font fromLength :: Length -> FontSize Source # |
em :: LengthProperty a => Double -> a Source #
Constructs a LengthProperty
value with Em
units.
ex :: LengthProperty a => Double -> a Source #
Constructs a LengthProperty
value with Ex
units.
ch :: LengthProperty a => Double -> a Source #
Constructs a LengthProperty
value with Ch
units.
rem_ :: LengthProperty a => Double -> a Source #
Constructs a LengthProperty
value with Rem
units. rem_
has an underscore
to distinguish it from rem
.
vh :: LengthProperty a => Double -> a Source #
Constructs a LengthProperty
value with Vh
units.
vw :: LengthProperty a => Double -> a Source #
Constructs a LengthProperty
value with Vw
units.
vmin :: LengthProperty a => Double -> a Source #
Constructs a LengthProperty
value with Em
units.
vmax :: LengthProperty a => Double -> a Source #
Constructs a LengthProperty
value with Vmax
units.
px :: LengthProperty a => Double -> a Source #
Constructs a LengthProperty
value with Px
units.
mm :: LengthProperty a => Double -> a Source #
Constructs a LengthProperty
value with Mm
units.
cm :: LengthProperty a => Double -> a Source #
Constructs a LengthProperty
value with Cm
units.
in_ :: LengthProperty a => Double -> a Source #
Constructs a LengthProperty
value with Im
units. This function has an
underscore to distinguish it from the Haskell keyword.
pt :: LengthProperty a => Double -> a Source #
Constructs a LengthProperty
value with Pt
units.
pc :: LengthProperty a => Double -> a Source #
Constructs a LengthProperty
value with Pc
units.
Percentages
class PercentageProperty a where Source #
Designates CSS properties that can consist of a Percentage
.
percent :: Percentage -> a Source #
Create a CSS property value from a Percentage
.
Instances
PercentageProperty Percentage Source # | |
Defined in Graphics.Blank.Types.CSS percent :: Percentage -> Percentage Source # | |
PercentageProperty LineHeight Source # | |
Defined in Graphics.Blank.Types.Font percent :: Percentage -> LineHeight Source # | |
PercentageProperty FontSize Source # | |
Defined in Graphics.Blank.Types.Font percent :: Percentage -> FontSize Source # |