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.
- 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.
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. |
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
.
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. |
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. |
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.
bold :: FontWeight Source
Shorthand for BoldWeight
.
Shorthand for BolderWeight
.
Shorthand for LighterWeight
.
font-size
The desired height of Font
glyphs.
Examples
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 |
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. |
Eq FontFamily Source | |
Ord FontFamily Source | |
Read FontFamily Source | |
Show FontFamily Source | |
IsString FontFamily Source | |
TextShow FontFamily Source | |
IsString [FontFamily] Source | There are two separate |
Shorthand for SerifFamily
.
sansSerif :: FontFamily Source
Shorthand for SansSerifFamily
.
monospace :: FontFamily Source
Shorthand for MonospaceFamily
.
Shorthand for CursiveFamily
.
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
}
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). |
class LengthProperty a where Source
Designates CSS properties that can consist of a Length
.
fromLength :: Length -> a 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
.