From f4b8c0df041b063c0b47d2ec6c818a9c202fd833 Mon Sep 17 00:00:00 2001 From: Ben Sima Date: Wed, 15 Apr 2020 09:54:10 -0700 Subject: Re-namespacing Moving away from the DNS-driven namespacing toward more condensed names, mostly because I don't like typing so much. --- Hero/Look/Typography.hs | 79 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 79 insertions(+) create mode 100644 Hero/Look/Typography.hs (limited to 'Hero/Look') diff --git a/Hero/Look/Typography.hs b/Hero/Look/Typography.hs new file mode 100644 index 0000000..4d4f976 --- /dev/null +++ b/Hero/Look/Typography.hs @@ -0,0 +1,79 @@ +{-# LANGUAGE OverloadedStrings #-} +{-# LANGUAGE NoImplicitPrelude #-} +{-# LANGUAGE GeneralizedNewtypeDeriving #-} +module Hero.Look.Typography where + +import Alpha +import Clay +import Clay.Stylesheet ( key ) +import qualified Hero.Assets as Assets +import Data.Semigroup ( (<>) ) + +main :: Css +main = fonts + +-- font modifiers + +euro, slim, wide, thicc, thinn, norm, lean, smol, lower, upper :: Css + +euro = fontFamily ["Eurostile"] [sansSerif] + +-- | stretch +slim = fontStretch condensed +wide = fontStretch expanded + +-- | weight +thicc = fontWeight bold +thinn = fontWeight normal + +-- | style +norm = fontStyle normal +lean = fontStyle italic + +-- | "smallcaps" is already taken by Clay +smol = fontVariant smallCaps + +lower = textTransform lowercase +upper = textTransform uppercase + +-- | font sizing + +-- | apparently "coat" is a synonym for "size" +coat :: Double -> Css +coat = fontSize . Clay.rem + +fontRoot :: Text +fontRoot = Assets.cdnEdge <> "/old-assets/fonts/eurostile/Eurostile" + +-- | font faces +fonts :: Css +fonts = + mconcat + $ mkEuro + fontStyle normal) + , ("LTStd-Bold.otf" , OpenType, thicc <> norm) + , ("LTStd-Cn.otf" , OpenType, slim <> norm) + , ("LTStd-Ex2.otf" , OpenType, wide <> norm) + , ("LTStd-BoldCn.otf" , OpenType, slim <> thicc) + , ("LTStd-BoldEx2.otf", OpenType, wide <> thicc) + ] + where + mkEuro :: (Text, FontFaceFormat, Css) -> Css + mkEuro (sufx, fmt, extra) = fontFace $ do + fontFamily ["Eurostile"] [] + fontFaceSrc [FontFaceSrcUrl (fontRoot <> sufx) $ Just fmt] + extra + +-- TODO: add the below to Clay.Font upstream + +newtype FontStretch = FontStretch Value + deriving (Val, Inherit, Normal, Other) + +expanded :: FontStretch +expanded = FontStretch "expanded" + +condensed :: FontStretch +condensed = FontStretch "condensed" + +fontStretch :: FontStretch -> Css +fontStretch = key "font-stretch" -- cgit v1.2.3