blank-canvas-0.7.3: HTML5 Canvas Graphics Library

Copyright(C) 2014-2015 The University of Kansas
LicenseBSD-style (see the file LICENSE)
MaintainerAndy Gill
StabilityBeta
PortabilityGHC
Safe HaskellNone
LanguageHaskell2010

Graphics.Blank.Font

Contents

Description

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

Overloaded font

font :: CanvasFont canvasFont => canvasFont -> Canvas () Source #

Sets the text context's font properties.

Examples

Expand
font (defFont "Gill Sans Extrabold") { fontSize = 40 # pt }
font (defFont sansSerif) { fontSize = 80 # percent }
font (defFont serif) {
    fontWeight = bold
  , fontStyle  = italic
  , fontSize   = large
}

class CanvasFont a where Source #

A data type that can represent a browser font.

Methods

jsCanvasFont :: a -> Builder Source #

Convert a value into a JavaScript string representing a font value.

Instances
CanvasFont Text Source # 
Instance details

Defined in Graphics.Blank.Types.Font

CanvasFont Font Source # 
Instance details

Defined in Graphics.Blank.Types.Font

font

data Font Source #

A CSS-style font data type.

Constructors

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 # 
Instance details

Defined in Graphics.Blank.Types.Font

Methods

(==) :: Font -> Font -> Bool #

(/=) :: Font -> Font -> Bool #

Ord Font Source # 
Instance details

Defined in Graphics.Blank.Types.Font

Methods

compare :: Font -> Font -> Ordering #

(<) :: Font -> Font -> Bool #

(<=) :: Font -> Font -> Bool #

(>) :: Font -> Font -> Bool #

(>=) :: Font -> Font -> Bool #

max :: Font -> Font -> Font #

min :: Font -> Font -> Font #

Read Font Source # 
Instance details

Defined in Graphics.Blank.Types.Font

Show Font Source # 
Instance details

Defined in Graphics.Blank.Types.Font

Methods

showsPrec :: Int -> Font -> ShowS #

show :: Font -> String #

showList :: [Font] -> ShowS #

IsString Font Source # 
Instance details

Defined in Graphics.Blank.Types.Font

Methods

fromString :: String -> Font #

TextShow Font Source # 
Instance details

Defined in Graphics.Blank.Types.Font

JSArg Font Source # 
Instance details

Defined in Graphics.Blank.Types.Font

Methods

showbJS :: Font -> Builder Source #

CanvasFont Font Source # 
Instance details

Defined in Graphics.Blank.Types.Font

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
}

caption :: Font Source #

Shorthand for CaptionFont.

icon :: Font Source #

Shorthand for IconFont.

menu :: Font Source #

Shorthand for MenuFont.

font-style

data FontStyle Source #

Specifies if a Font is italic or oblique.

Constructors

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
Bounded FontStyle Source # 
Instance details

Defined in Graphics.Blank.Types.Font

Enum FontStyle Source # 
Instance details

Defined in Graphics.Blank.Types.Font

Eq FontStyle Source # 
Instance details

Defined in Graphics.Blank.Types.Font

Ord FontStyle Source # 
Instance details

Defined in Graphics.Blank.Types.Font

Read FontStyle Source # 
Instance details

Defined in Graphics.Blank.Types.Font

Show FontStyle Source # 
Instance details

Defined in Graphics.Blank.Types.Font

Ix FontStyle Source # 
Instance details

Defined in Graphics.Blank.Types.Font

IsString FontStyle Source # 
Instance details

Defined in Graphics.Blank.Types.Font

Default FontStyle Source # 
Instance details

Defined in Graphics.Blank.Types.Font

Methods

def :: FontStyle #

TextShow FontStyle Source # 
Instance details

Defined in Graphics.Blank.Types.Font

NormalProperty FontStyle Source # 
Instance details

Defined in Graphics.Blank.Types.Font

font-variant

data FontVariant Source #

Specifies the face of a Font.

Constructors

NormalVariant

A normal font face (default).

SmallCapsVariant

A font face with small capital letters for lowercase characters.

Instances
Bounded FontVariant Source # 
Instance details

Defined in Graphics.Blank.Types.Font

Enum FontVariant Source # 
Instance details

Defined in Graphics.Blank.Types.Font

Eq FontVariant Source # 
Instance details

Defined in Graphics.Blank.Types.Font

Ord FontVariant Source # 
Instance details

Defined in Graphics.Blank.Types.Font

Read FontVariant Source # 
Instance details

Defined in Graphics.Blank.Types.Font

Show FontVariant Source # 
Instance details

Defined in Graphics.Blank.Types.Font

Ix FontVariant Source # 
Instance details

Defined in Graphics.Blank.Types.Font

IsString FontVariant Source # 
Instance details

Defined in Graphics.Blank.Types.Font

Default FontVariant Source # 
Instance details

Defined in Graphics.Blank.Types.Font

Methods

def :: FontVariant #

TextShow FontVariant Source # 
Instance details

Defined in Graphics.Blank.Types.Font

NormalProperty FontVariant Source # 
Instance details

Defined in Graphics.Blank.Types.Font

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.

Instances
Bounded FontWeight Source # 
Instance details

Defined in Graphics.Blank.Types.Font

Enum FontWeight Source # 
Instance details

Defined in Graphics.Blank.Types.Font

Eq FontWeight Source # 
Instance details

Defined in Graphics.Blank.Types.Font

Num FontWeight Source # 
Instance details

Defined in Graphics.Blank.Types.Font

Ord FontWeight Source # 
Instance details

Defined in Graphics.Blank.Types.Font

Read FontWeight Source # 
Instance details

Defined in Graphics.Blank.Types.Font

Show FontWeight Source # 
Instance details

Defined in Graphics.Blank.Types.Font

Ix FontWeight Source # 
Instance details

Defined in Graphics.Blank.Types.Font

IsString FontWeight Source # 
Instance details

Defined in Graphics.Blank.Types.Font

Default FontWeight Source # 
Instance details

Defined in Graphics.Blank.Types.Font

Methods

def :: FontWeight #

TextShow FontWeight Source # 
Instance details

Defined in Graphics.Blank.Types.Font

NormalProperty FontWeight Source # 
Instance details

Defined in Graphics.Blank.Types.Font

bold :: FontWeight Source #

Shorthand for BoldWeight.

font-size

data FontSize Source #

The desired height of Font glyphs.

Examples

Expand
(defFont [sansSerif]) { fontSize = xxSmall }
(defFont [sansSerif]) { fontSize = 30 # pt }
(defFont [sansSerif]) { fontSize = 50 # percent }
Instances
Eq FontSize Source # 
Instance details

Defined in Graphics.Blank.Types.Font

Ord FontSize Source # 
Instance details

Defined in Graphics.Blank.Types.Font

Read FontSize Source # 
Instance details

Defined in Graphics.Blank.Types.Font

Show FontSize Source # 
Instance details

Defined in Graphics.Blank.Types.Font

IsString FontSize Source # 
Instance details

Defined in Graphics.Blank.Types.Font

Default FontSize Source # 
Instance details

Defined in Graphics.Blank.Types.Font

Methods

def :: FontSize #

TextShow FontSize Source # 
Instance details

Defined in Graphics.Blank.Types.Font

PercentageProperty FontSize Source # 
Instance details

Defined in Graphics.Blank.Types.Font

LengthProperty FontSize Source # 
Instance details

Defined in Graphics.Blank.Types.Font

xSmall :: FontSize Source #

Shorthand for XSmallSize.

small :: FontSize Source #

Shorthand for SmallSize.

medium :: FontSize Source #

Shorthand for MediumSize.

large :: FontSize Source #

Shorthand for LargeSize.

xLarge :: FontSize Source #

Shorthand for XLargeSize.

larger :: FontSize Source #

Shorthand for LargerSize.

line-height

data LineHeight Source #

The height of the line boxes in a Font.

Examples

Expand
(defFont [sansSerif]) { lineHeight = normal }
(defFont [sansSerif]) { lineHeight = 50 }
(defFont [sansSerif]) { lineHeight = 30 # em }
(defFont [sansSerif]) { lineHeight = 70 # percent }
Instances
Eq LineHeight Source # 
Instance details

Defined in Graphics.Blank.Types.Font

Fractional LineHeight Source # 
Instance details

Defined in Graphics.Blank.Types.Font

Num LineHeight Source # 
Instance details

Defined in Graphics.Blank.Types.Font

Ord LineHeight Source # 
Instance details

Defined in Graphics.Blank.Types.Font

Read LineHeight Source # 
Instance details

Defined in Graphics.Blank.Types.Font

Show LineHeight Source # 
Instance details

Defined in Graphics.Blank.Types.Font

IsString LineHeight Source # 
Instance details

Defined in Graphics.Blank.Types.Font

Default LineHeight Source # 
Instance details

Defined in Graphics.Blank.Types.Font

Methods

def :: LineHeight #

TextShow LineHeight Source # 
Instance details

Defined in Graphics.Blank.Types.Font

PercentageProperty LineHeight Source # 
Instance details

Defined in Graphics.Blank.Types.Font

LengthProperty LineHeight Source # 
Instance details

Defined in Graphics.Blank.Types.Font

NormalProperty LineHeight Source # 
Instance details

Defined in Graphics.Blank.Types.Font

font-family

data FontFamily Source #

The name of a Font family. Note that both FontFamily and [FontFamily] are instances of 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]

Constructors

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
Eq FontFamily Source # 
Instance details

Defined in Graphics.Blank.Types.Font

Ord FontFamily Source # 
Instance details

Defined in Graphics.Blank.Types.Font

Read FontFamily Source # 
Instance details

Defined in Graphics.Blank.Types.Font

Show FontFamily Source # 
Instance details

Defined in Graphics.Blank.Types.Font

IsString FontFamily Source # 
Instance details

Defined in Graphics.Blank.Types.Font

TextShow FontFamily Source # 
Instance details

Defined in Graphics.Blank.Types.Font

IsString [FontFamily] Source #

There are two separate IsString instances for FontFamily so that single font families and lists of font families alike can be converted from string literals.

Instance details

Defined in Graphics.Blank.Types.Font

Methods

fromString :: String -> [FontFamily] #

Normal values

class Default a => NormalProperty a where Source #

A convenient way to use the Default normal value for several Font longhand properties.

Minimal complete definition

Nothing

Methods

normal :: a Source #

The default value for a CSS property. For example, it can be used like this:

(defFont [sansSerif]) { lineHeight = normal }

Lengths

data Length Source #

Denotes CSS distance measurements, especially in the context of Fonts.

Constructors

Em

The height of the current font.

Fields

Ex

The height of the character x (x-height) in the current font.

Fields

Ch

The width of the character 0 in the current font.

Fields

Rem

The height of the font relative to the root element.

Fields

Vh

One percent of the height of the viewport.

Fields

Vw

One percent of the width of the viewport.

Fields

Vmin

One percent of the minimum of the viewport height and width.

Fields

Vmax

One percent of the maximum of the viewport height and width.

Fields

Px

One device pixel (dot) of the display.

Fields

Mm

One millimeter.

Fields

Cm

One centimeter (10 millimeters).

Fields

In

One inch (~2.54 centimeters).

Fields

Pt

One point (1/72 inches).

Fields

Pc

One pica (12 points).

Fields

Instances
Eq Length Source # 
Instance details

Defined in Graphics.Blank.Types.CSS

Methods

(==) :: Length -> Length -> Bool #

(/=) :: Length -> Length -> Bool #

Ord Length Source # 
Instance details

Defined in Graphics.Blank.Types.CSS

Read Length Source # 
Instance details

Defined in Graphics.Blank.Types.CSS

Show Length Source # 
Instance details

Defined in Graphics.Blank.Types.CSS

IsString Length Source # 
Instance details

Defined in Graphics.Blank.Types.CSS

Methods

fromString :: String -> Length #

TextShow Length Source # 
Instance details

Defined in Graphics.Blank.Types.CSS

LengthProperty Length Source # 
Instance details

Defined in Graphics.Blank.Types.CSS

class LengthProperty a where Source #

Designates CSS properties that can consist of a Length.

Methods

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.

Methods

percent :: Percentage -> a Source #

Create a CSS property value from a Percentage.