SlideShare une entreprise Scribd logo
1  sur  57
Rich Typography Options for
           the Web
              or
       Why sIFR is Dead in 2009

Paul Irish
Molecular Inc.
Emerging Interactions & Front-end Dev
Where we @?
@font-face
.eot and .ttf embedding
Available in Chrome 2, FF 3.5, Safari 3.2,
Opera 10 .... and all IE for .eot
Free fonts are a go
Still unresolved, licensing issues with
commercial foundries
@font-face
.eot and .ttf embedding
Available in Chrome 2, FF 3.5, Safari 3.2,
Opera 10 .... and all IE for .eot
Free fonts are a go
Still unresolved, licensing issues with
commercial foundries
@font-face
.eot and .ttf embedding
Available in Chrome 2, FF 3.5, Safari 3.2,
Opera 10 .... and all IE for .eot
Free fonts are a go
Still unresolved, licensing issues with
commercial foundries
So then what?
The Landscape
sIFR
Facelift
typeface.js
Cufón
sIFR
 Configuration
     Custom js/css styling syntax

 Internal Technique
     Custom selector engine (or querySelectorAll)
1.
     Reading style properties from sifr-config.js
2.
     Placing Flash SWFs
3.
sIFR
 Configuration
     Custom js/css styling syntax

 Internal Technique
     Custom selector engine (or querySelectorAll)
1.
     Reading style properties from sifr-config.js
2.
     Placing Flash SWFs
3.
sIFR
 Configuration
     Custom js/css styling syntax

 Internal Technique
     Custom selector engine (or querySelectorAll)
1.
     Reading style properties from sifr-config.js
2.
     Placing Flash SWFs
3.
http://www.sifrgenerator.com
http://www.sifrvault.com
http://bit.ly/facelift
Facelift
Configuration
  Styling type with CSS as normal

Runtime Technique
1. Custom selector engine (or querySelectorAll)
2. Reading style properties through
   getComputedStyle()
3. Calling generate.php with text and style parameters
4. Placing PNGs
http://bit.ly/typefacejs
Typeface.js
Configuration
  Styling type with CSS as normal

Runtime Technique:
1. Finds target elements by a 'typeface-js' class

2. Reading style properties through getComputedStyle()
3. Reads JSON representation of font and transforms
   into...
4. VML glyph rendering for IE, Canvas for the rest
http://www.madasplayground.com/fonts/  
    ~300 fonts in typeface.js format
http://bit.ly/cufon
Cufón
Configuration
  Styling type with CSS as normal

Runtime Technique
     Any selector engine currently present is used
1.
     Reading style properties through getComputedStyle()
2.

     Reads JSON representation of VML font and
3.
     transforms into...
     VML glyph rendering for IE, Canvas for the rest
4.
Cufón
Configuration
  Styling type with CSS as normal

Runtime Technique
     Any selector engine currently present is used
1.
     Reading style properties through getComputedStyle()
2.

     Reads JSON representation of VML font and
3.
     transforms into...
     VML glyph rendering for IE, Canvas for the rest
4.
Cufón
Configuration
  Styling type with CSS as normal

Runtime Technique
     Any selector engine currently present is used
1.
     Reading style properties through getComputedStyle()
2.

     Reads JSON representation of VML font and
3.
     transforms into...
     VML glyph rendering for IE, Canvas for the rest
4.
Cufón
Configuration
  Styling type with CSS as normal

Runtime Technique
     Any selector engine currently present is used
1.
     Reading style properties through getComputedStyle()
2.

     Reads JSON representation of VML font and
3.
     transforms into...
     VML glyph rendering for IE, Canvas for the rest
4.
Cufón
Configuration
  Styling type with CSS as normal

Runtime Technique
     Any selector engine currently present is used
1.
     Reading style properties through getComputedStyle()
2.

     Reads JSON representation of VML font and
3.
     transforms into...
     VML glyph rendering for IE, Canvas for the rest
4.
Comparison
  Table!!!
sIFR                 Facelift           typeface.js                  Cufón

Technologies       Javascript, Flash      Javascript, PHP, GD or Javascript, Canvas,VML Javascript, Canvas,VML
                                          ImageMagick


Selectable text?   Yes, but not the        Only in Firefox. No   Supported (minus        Not supported yet.
                   surrounding elements visual affordance.       Opera), but no visual   Solutions for all
                   if the selection starts                       affordance.             browsers minus Opera
                   inside the SWF                                                        exist.

Hover state?       Supported              Supported              In progress             Supported


Printable?         Print.css lets you     <img> prints fine.      Supported.              Supported.
                   define a non-flash
                   fallback

Licensing issues   Little. SWF can be    None. Font file held     TBD. JS file can be      TBD. Cufon file can be
                   paired with a domain. on backend and not      reused with typeface.js reused with Cufon on
                                         distributed             on any domain.          any domain.

Minified javascript 28.8k                  18.4k                  11.7k                   14.2k
size


Fontin Sans (basic 12k swf                n/a                    30k js                  16k js
characters) size  
Technologies       Javascript, Flash      Javascript, PHP, GD or Javascript, Canvas,VML Javascript, Canvas,VML
                                          ImageMagick


Selectable text?   Yes, but not the        Only in Firefox. No   Supported (minus        Not supported yet.
                   surrounding elements visual affordance.       Opera), but no visual   Solutions for all
                   if the selection starts                       affordance.             browsers minus Opera
                   inside the SWF                                                        exist.

Hover state?       Supported              Supported              In progress             Supported


Printable?         Print.css lets you     <img> prints fine.      Supported.              Supported.
                   define a non-flash
                   fallback

Licensing issues   Little. SWF can be    None. Font file held     TBD. JS file can be      TBD. Cufon file can be
                   paired with a domain. on backend and not      reused with typeface.js reused with Cufon on
                                         distributed             on any domain.          any domain.

Minified javascript 28.8k                  18.4k                  11.7k                   14.2k
size


Fontin Sans (basic 12k swf                n/a                    30k js                  16k js
characters) size  


Gentium (full set) 232k swf               n/a                    1334k js                400k js
Licensing?

“We allow embedding with print and preview . We want the user
to embed subsets, not complete fonts.”

                                             -Lucas de Groot


“Right now, we prohibit web embedding in the retail EULA and
provide a pricing scale for web embedding”

                                 -Rich Roat, House Industries
Licensing?
“I have had several discussion with colleagues around the
world regarding Cufón. The consensus is we would not allow
it. As my understand is that it would contravene most EULAs
because it would technically create a new copy of the font and
uploading the file to a server could be open to abuse.”

                                      -Jason Smith, FontSmith
Licensing?
“At the moment our EULA prohibits the embedding of font
data in any vector format, which alas includes SVG. (Simo
Kinnunen actually wrote to me to point out that Cufon
violates both paragraphs 1 and 3.1 of our EULA.) That said,
our EULA is under review right now...”

                  -Jonathan Hoefler, Hoefler & Frere-Jones
Performance
30,000 ms

            Milliseconds to replace 120 elements on a popular homepage
                         Empty cache. Average of five runs.


22,500 ms




15,000 ms




 7,500 ms




    0 ms
            sIFR               Facelift              Cufón               typeface.js

                      Firefox 3            IE 7             IE 6
Performance
30,000 ms

            Milliseconds to replace 120 elements on a popular homepage
                         Empty cache. Average of five runs.


22,500 ms




15,000 ms




 7,500 ms




    0 ms
            sIFR               Facelift              Cufón               typeface.js

                      Firefox 3            IE 7             IE 6
Performance
30,000 ms

            Milliseconds to replace 120 elements on a popular homepage
                         Empty cache. Average of five runs.


22,500 ms




15,000 ms




 7,500 ms




    0 ms
            sIFR               Facelift              Cufón               typeface.js

                      Firefox 3            IE 7             IE 6
Where are they going?
Facelift
 supercache plugin, css sprite plugin,
 eventually no-JS option


Cufón
 rtl & bidi, text rotation
Conclusions
sIFR?
Doesn’t instantiate until visible in non-IE.
Difficult configuration.
Requires flash

Not great with foreign/special characters
Slow selector engine
sIFR?
Doesn’t instantiate until visible in non-IE.
Difficult configuration.
Requires flash

Not great with foreign/special characters
Slow selector engine
Facelift
Font file safe, good for the IP-cautious
Lots of possible effects thanks to Imagemagick

Requires PHP
Many images/HTTP requests
  Mitigated by supercache and CSS sprite plugins

Serious roadmap
Facelift
Font file safe, good for the IP-cautious
Lots of possible effects thanks to Imagemagick

Requires PHP
Many images/HTTP requests
  Mitigated by supercache and CSS sprite plugins

Serious roadmap
Facelift
Font file safe, good for the IP-cautious
Lots of possible effects thanks to Imagemagick

Requires PHP
Many images/HTTP requests
  Mitigated by supercache and CSS sprite plugins

Serious roadmap
Facelift
Font file safe, good for the IP-cautious
Lots of possible effects thanks to Imagemagick

Requires PHP
Many images/HTTP requests
  Mitigated by supercache and CSS sprite plugins

Serious roadmap
Typeface.js
Still rather buggy
Absent developer
Quiet community
Quality/Performance is inferior to Cufón
Typeface.js
Still rather buggy
Absent developer
Quiet community
Quality/Performance is inferior to Cufón
Cufón
Better optimization for IE == better performance
Glyph tweaking for type nerds
Active developer and community
Cufón
Better optimization for IE == better performance
Glyph tweaking for type nerds
Active developer and community
Rich Typography Options for
                        the Web

More:
http:/
     /paulirish.com/type

Me:
http://paulirish.com
http://twitter.com/paul_irish
Rich Typography Options For The Web - or - Why sIFR is Dead in 2009
Rich Typography Options For The Web - or - Why sIFR is Dead in 2009

Contenu connexe

Tendances

WOFF and emerging technology of web fonts
WOFF and emerging technology of web fontsWOFF and emerging technology of web fonts
WOFF and emerging technology of web fontsVladimir Levantovsky
 
PHP Presentation
PHP PresentationPHP Presentation
PHP PresentationNikhil Jain
 
Drawing the Line with Browser Compatibility
Drawing the Line with Browser CompatibilityDrawing the Line with Browser Compatibility
Drawing the Line with Browser Compatibilityjsmith92
 
LESS is More
LESS is MoreLESS is More
LESS is Morejsmith92
 
Even faster web sites presentation 3
Even faster web sites presentation 3Even faster web sites presentation 3
Even faster web sites presentation 3Felipe Lavín
 
A rough guide to JavaScript Performance
A rough guide to JavaScript PerformanceA rough guide to JavaScript Performance
A rough guide to JavaScript Performanceallmarkedup
 
PHP Presentation
PHP PresentationPHP Presentation
PHP PresentationAnkush Jain
 
Even faster web sites
Even faster web sitesEven faster web sites
Even faster web sitesFelipe Lavín
 
Doing more with LESS
Doing more with LESSDoing more with LESS
Doing more with LESSjsmith92
 
Tuning Web Performance
Tuning Web PerformanceTuning Web Performance
Tuning Web PerformanceEric ShangKuan
 
Progressive Enhancement 2.0 (jQuery Conference SF Bay Area 2011)
Progressive Enhancement 2.0 (jQuery Conference SF Bay Area 2011)Progressive Enhancement 2.0 (jQuery Conference SF Bay Area 2011)
Progressive Enhancement 2.0 (jQuery Conference SF Bay Area 2011)Nicholas Zakas
 
Navigating the Programmable Web
Navigating the Programmable WebNavigating the Programmable Web
Navigating the Programmable Webgoodfriday
 

Tendances (17)

Responsive Web Fonts
Responsive Web FontsResponsive Web Fonts
Responsive Web Fonts
 
WOFF and emerging technology of web fonts
WOFF and emerging technology of web fontsWOFF and emerging technology of web fonts
WOFF and emerging technology of web fonts
 
PHP Presentation
PHP PresentationPHP Presentation
PHP Presentation
 
Drawing the Line with Browser Compatibility
Drawing the Line with Browser CompatibilityDrawing the Line with Browser Compatibility
Drawing the Line with Browser Compatibility
 
LESS is More
LESS is MoreLESS is More
LESS is More
 
Even faster web sites presentation 3
Even faster web sites presentation 3Even faster web sites presentation 3
Even faster web sites presentation 3
 
[heweb11] CSS3 Makeover
[heweb11] CSS3 Makeover[heweb11] CSS3 Makeover
[heweb11] CSS3 Makeover
 
A rough guide to JavaScript Performance
A rough guide to JavaScript PerformanceA rough guide to JavaScript Performance
A rough guide to JavaScript Performance
 
PHP Presentation
PHP PresentationPHP Presentation
PHP Presentation
 
AIGA EDGE
AIGA EDGEAIGA EDGE
AIGA EDGE
 
CSS3 3D Workshop
CSS3 3D WorkshopCSS3 3D Workshop
CSS3 3D Workshop
 
Even faster web sites
Even faster web sitesEven faster web sites
Even faster web sites
 
新 · 交互
新 · 交互新 · 交互
新 · 交互
 
Doing more with LESS
Doing more with LESSDoing more with LESS
Doing more with LESS
 
Tuning Web Performance
Tuning Web PerformanceTuning Web Performance
Tuning Web Performance
 
Progressive Enhancement 2.0 (jQuery Conference SF Bay Area 2011)
Progressive Enhancement 2.0 (jQuery Conference SF Bay Area 2011)Progressive Enhancement 2.0 (jQuery Conference SF Bay Area 2011)
Progressive Enhancement 2.0 (jQuery Conference SF Bay Area 2011)
 
Navigating the Programmable Web
Navigating the Programmable WebNavigating the Programmable Web
Navigating the Programmable Web
 

Similaire à Rich Typography Options For The Web - or - Why sIFR is Dead in 2009

Squeezing The Best Out Of Webfonts
Squeezing The Best Out Of WebfontsSqueezing The Best Out Of Webfonts
Squeezing The Best Out Of WebfontsPaul Irish
 
In Pursuit of the Holy Grail: Building Isomorphic JavaScript Apps
In Pursuit of the Holy Grail: Building Isomorphic JavaScript AppsIn Pursuit of the Holy Grail: Building Isomorphic JavaScript Apps
In Pursuit of the Holy Grail: Building Isomorphic JavaScript AppsSpike Brehm
 
Hacking to be performant
Hacking to be performantHacking to be performant
Hacking to be performantApoorv Saxena
 
CSS @font-face : Personalized fonts
CSS @font-face : Personalized fontsCSS @font-face : Personalized fonts
CSS @font-face : Personalized fontsYves Van Goethem
 
Progressive Enhancement & Intentional Degradation 2
Progressive Enhancement & Intentional Degradation 2Progressive Enhancement & Intentional Degradation 2
Progressive Enhancement & Intentional Degradation 2elliotjaystocks
 
HTML5 - The Python Angle (PyCon Ireland 2010)
HTML5 - The Python Angle (PyCon Ireland 2010)HTML5 - The Python Angle (PyCon Ireland 2010)
HTML5 - The Python Angle (PyCon Ireland 2010)Kevin Gill
 
Smart phone development
Smart phone developmentSmart phone development
Smart phone developmentMyles Eftos
 
Tuning web performance
Tuning web performanceTuning web performance
Tuning web performanceGeorge Ang
 
Progressive enhancement - Bridging the gap between CSS2 and CSS3
Progressive enhancement - Bridging the gap between CSS2 and CSS3Progressive enhancement - Bridging the gap between CSS2 and CSS3
Progressive enhancement - Bridging the gap between CSS2 and CSS3Zohar Arad
 
Css3 transitions and animations + graceful degradation with jQuery
Css3 transitions and animations + graceful degradation with jQueryCss3 transitions and animations + graceful degradation with jQuery
Css3 transitions and animations + graceful degradation with jQueryAndrea Verlicchi
 
Flu3nt highlights
Flu3nt highlightsFlu3nt highlights
Flu3nt highlightsdswork
 
From Flash to Canvas - a penchant for black holes
From Flash to Canvas - a penchant for black holesFrom Flash to Canvas - a penchant for black holes
From Flash to Canvas - a penchant for black holesPatric Lanhed
 
Kann JavaScript elegant sein?
Kann JavaScript elegant sein?Kann JavaScript elegant sein?
Kann JavaScript elegant sein?jbandi
 
Iz Pack
Iz PackIz Pack
Iz PackInria
 
Progressive enhancement
Progressive enhancementProgressive enhancement
Progressive enhancementZohar Arad
 

Similaire à Rich Typography Options For The Web - or - Why sIFR is Dead in 2009 (20)

Squeezing The Best Out Of Webfonts
Squeezing The Best Out Of WebfontsSqueezing The Best Out Of Webfonts
Squeezing The Best Out Of Webfonts
 
The Trouble With Type
The Trouble With TypeThe Trouble With Type
The Trouble With Type
 
In Pursuit of the Holy Grail: Building Isomorphic JavaScript Apps
In Pursuit of the Holy Grail: Building Isomorphic JavaScript AppsIn Pursuit of the Holy Grail: Building Isomorphic JavaScript Apps
In Pursuit of the Holy Grail: Building Isomorphic JavaScript Apps
 
Hacking to be performant
Hacking to be performantHacking to be performant
Hacking to be performant
 
CSS @font-face : Personalized fonts
CSS @font-face : Personalized fontsCSS @font-face : Personalized fonts
CSS @font-face : Personalized fonts
 
Html5/CSS3
Html5/CSS3Html5/CSS3
Html5/CSS3
 
Echo HTML5
Echo HTML5Echo HTML5
Echo HTML5
 
Progressive Enhancement & Intentional Degradation 2
Progressive Enhancement & Intentional Degradation 2Progressive Enhancement & Intentional Degradation 2
Progressive Enhancement & Intentional Degradation 2
 
Lit there be light
Lit there be lightLit there be light
Lit there be light
 
HTML5 - The Python Angle (PyCon Ireland 2010)
HTML5 - The Python Angle (PyCon Ireland 2010)HTML5 - The Python Angle (PyCon Ireland 2010)
HTML5 - The Python Angle (PyCon Ireland 2010)
 
Smart phone development
Smart phone developmentSmart phone development
Smart phone development
 
Tuning web performance
Tuning web performanceTuning web performance
Tuning web performance
 
Progressive enhancement - Bridging the gap between CSS2 and CSS3
Progressive enhancement - Bridging the gap between CSS2 and CSS3Progressive enhancement - Bridging the gap between CSS2 and CSS3
Progressive enhancement - Bridging the gap between CSS2 and CSS3
 
Css3 transitions and animations + graceful degradation with jQuery
Css3 transitions and animations + graceful degradation with jQueryCss3 transitions and animations + graceful degradation with jQuery
Css3 transitions and animations + graceful degradation with jQuery
 
Web fonts
Web fontsWeb fonts
Web fonts
 
Flu3nt highlights
Flu3nt highlightsFlu3nt highlights
Flu3nt highlights
 
From Flash to Canvas - a penchant for black holes
From Flash to Canvas - a penchant for black holesFrom Flash to Canvas - a penchant for black holes
From Flash to Canvas - a penchant for black holes
 
Kann JavaScript elegant sein?
Kann JavaScript elegant sein?Kann JavaScript elegant sein?
Kann JavaScript elegant sein?
 
Iz Pack
Iz PackIz Pack
Iz Pack
 
Progressive enhancement
Progressive enhancementProgressive enhancement
Progressive enhancement
 

Plus de Paul Irish

An Overview of HTML5 Storage
An Overview of HTML5 StorageAn Overview of HTML5 Storage
An Overview of HTML5 StoragePaul Irish
 
Progressive Advancement, by way of progressive enhancement
Progressive Advancement, by way of progressive enhancementProgressive Advancement, by way of progressive enhancement
Progressive Advancement, by way of progressive enhancementPaul Irish
 
webfonts & @font-face :: in brief
webfonts & @font-face :: in briefwebfonts & @font-face :: in brief
webfonts & @font-face :: in briefPaul Irish
 
Progressive Advancement in Web8
Progressive Advancement in Web8Progressive Advancement in Web8
Progressive Advancement in Web8Paul Irish
 
Modernizr - Detecting HTML5 and CSS3 support
Modernizr - Detecting HTML5 and CSS3 supportModernizr - Detecting HTML5 and CSS3 support
Modernizr - Detecting HTML5 and CSS3 supportPaul Irish
 
jQuery Anti-Patterns for Performance & Compression
jQuery Anti-Patterns for Performance & CompressionjQuery Anti-Patterns for Performance & Compression
jQuery Anti-Patterns for Performance & CompressionPaul Irish
 
Practical Design Solutions from Japan
Practical Design Solutions from JapanPractical Design Solutions from Japan
Practical Design Solutions from JapanPaul Irish
 

Plus de Paul Irish (7)

An Overview of HTML5 Storage
An Overview of HTML5 StorageAn Overview of HTML5 Storage
An Overview of HTML5 Storage
 
Progressive Advancement, by way of progressive enhancement
Progressive Advancement, by way of progressive enhancementProgressive Advancement, by way of progressive enhancement
Progressive Advancement, by way of progressive enhancement
 
webfonts & @font-face :: in brief
webfonts & @font-face :: in briefwebfonts & @font-face :: in brief
webfonts & @font-face :: in brief
 
Progressive Advancement in Web8
Progressive Advancement in Web8Progressive Advancement in Web8
Progressive Advancement in Web8
 
Modernizr - Detecting HTML5 and CSS3 support
Modernizr - Detecting HTML5 and CSS3 supportModernizr - Detecting HTML5 and CSS3 support
Modernizr - Detecting HTML5 and CSS3 support
 
jQuery Anti-Patterns for Performance & Compression
jQuery Anti-Patterns for Performance & CompressionjQuery Anti-Patterns for Performance & Compression
jQuery Anti-Patterns for Performance & Compression
 
Practical Design Solutions from Japan
Practical Design Solutions from JapanPractical Design Solutions from Japan
Practical Design Solutions from Japan
 

Dernier

How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfPrecisely
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfMounikaPolabathina
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 

Dernier (20)

How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 

Rich Typography Options For The Web - or - Why sIFR is Dead in 2009

  • 1. Rich Typography Options for the Web or Why sIFR is Dead in 2009 Paul Irish Molecular Inc. Emerging Interactions & Front-end Dev
  • 3. @font-face .eot and .ttf embedding Available in Chrome 2, FF 3.5, Safari 3.2, Opera 10 .... and all IE for .eot Free fonts are a go Still unresolved, licensing issues with commercial foundries
  • 4. @font-face .eot and .ttf embedding Available in Chrome 2, FF 3.5, Safari 3.2, Opera 10 .... and all IE for .eot Free fonts are a go Still unresolved, licensing issues with commercial foundries
  • 5. @font-face .eot and .ttf embedding Available in Chrome 2, FF 3.5, Safari 3.2, Opera 10 .... and all IE for .eot Free fonts are a go Still unresolved, licensing issues with commercial foundries
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 13.
  • 14.
  • 15. sIFR Configuration Custom js/css styling syntax Internal Technique Custom selector engine (or querySelectorAll) 1. Reading style properties from sifr-config.js 2. Placing Flash SWFs 3.
  • 16. sIFR Configuration Custom js/css styling syntax Internal Technique Custom selector engine (or querySelectorAll) 1. Reading style properties from sifr-config.js 2. Placing Flash SWFs 3.
  • 17. sIFR Configuration Custom js/css styling syntax Internal Technique Custom selector engine (or querySelectorAll) 1. Reading style properties from sifr-config.js 2. Placing Flash SWFs 3.
  • 21. Facelift Configuration Styling type with CSS as normal Runtime Technique 1. Custom selector engine (or querySelectorAll) 2. Reading style properties through getComputedStyle() 3. Calling generate.php with text and style parameters 4. Placing PNGs
  • 23. Typeface.js Configuration Styling type with CSS as normal Runtime Technique: 1. Finds target elements by a 'typeface-js' class 2. Reading style properties through getComputedStyle() 3. Reads JSON representation of font and transforms into... 4. VML glyph rendering for IE, Canvas for the rest
  • 24. http://www.madasplayground.com/fonts/   ~300 fonts in typeface.js format
  • 26. Cufón Configuration Styling type with CSS as normal Runtime Technique Any selector engine currently present is used 1. Reading style properties through getComputedStyle() 2. Reads JSON representation of VML font and 3. transforms into... VML glyph rendering for IE, Canvas for the rest 4.
  • 27. Cufón Configuration Styling type with CSS as normal Runtime Technique Any selector engine currently present is used 1. Reading style properties through getComputedStyle() 2. Reads JSON representation of VML font and 3. transforms into... VML glyph rendering for IE, Canvas for the rest 4.
  • 28. Cufón Configuration Styling type with CSS as normal Runtime Technique Any selector engine currently present is used 1. Reading style properties through getComputedStyle() 2. Reads JSON representation of VML font and 3. transforms into... VML glyph rendering for IE, Canvas for the rest 4.
  • 29. Cufón Configuration Styling type with CSS as normal Runtime Technique Any selector engine currently present is used 1. Reading style properties through getComputedStyle() 2. Reads JSON representation of VML font and 3. transforms into... VML glyph rendering for IE, Canvas for the rest 4.
  • 30. Cufón Configuration Styling type with CSS as normal Runtime Technique Any selector engine currently present is used 1. Reading style properties through getComputedStyle() 2. Reads JSON representation of VML font and 3. transforms into... VML glyph rendering for IE, Canvas for the rest 4.
  • 31.
  • 32.
  • 34. sIFR Facelift typeface.js Cufón Technologies Javascript, Flash Javascript, PHP, GD or Javascript, Canvas,VML Javascript, Canvas,VML ImageMagick Selectable text? Yes, but not the Only in Firefox. No Supported (minus Not supported yet. surrounding elements visual affordance. Opera), but no visual Solutions for all if the selection starts affordance. browsers minus Opera inside the SWF exist. Hover state? Supported Supported In progress Supported Printable? Print.css lets you <img> prints fine. Supported. Supported. define a non-flash fallback Licensing issues Little. SWF can be None. Font file held TBD. JS file can be TBD. Cufon file can be paired with a domain. on backend and not reused with typeface.js reused with Cufon on distributed on any domain. any domain. Minified javascript 28.8k 18.4k 11.7k 14.2k size Fontin Sans (basic 12k swf n/a 30k js 16k js characters) size  
  • 35. Technologies Javascript, Flash Javascript, PHP, GD or Javascript, Canvas,VML Javascript, Canvas,VML ImageMagick Selectable text? Yes, but not the Only in Firefox. No Supported (minus Not supported yet. surrounding elements visual affordance. Opera), but no visual Solutions for all if the selection starts affordance. browsers minus Opera inside the SWF exist. Hover state? Supported Supported In progress Supported Printable? Print.css lets you <img> prints fine. Supported. Supported. define a non-flash fallback Licensing issues Little. SWF can be None. Font file held TBD. JS file can be TBD. Cufon file can be paired with a domain. on backend and not reused with typeface.js reused with Cufon on distributed on any domain. any domain. Minified javascript 28.8k 18.4k 11.7k 14.2k size Fontin Sans (basic 12k swf n/a 30k js 16k js characters) size   Gentium (full set) 232k swf n/a 1334k js 400k js
  • 36. Licensing? “We allow embedding with print and preview . We want the user to embed subsets, not complete fonts.” -Lucas de Groot “Right now, we prohibit web embedding in the retail EULA and provide a pricing scale for web embedding” -Rich Roat, House Industries
  • 37. Licensing? “I have had several discussion with colleagues around the world regarding Cufón. The consensus is we would not allow it. As my understand is that it would contravene most EULAs because it would technically create a new copy of the font and uploading the file to a server could be open to abuse.” -Jason Smith, FontSmith
  • 38. Licensing? “At the moment our EULA prohibits the embedding of font data in any vector format, which alas includes SVG. (Simo Kinnunen actually wrote to me to point out that Cufon violates both paragraphs 1 and 3.1 of our EULA.) That said, our EULA is under review right now...” -Jonathan Hoefler, Hoefler & Frere-Jones
  • 39. Performance 30,000 ms Milliseconds to replace 120 elements on a popular homepage Empty cache. Average of five runs. 22,500 ms 15,000 ms 7,500 ms 0 ms sIFR Facelift Cufón typeface.js Firefox 3 IE 7 IE 6
  • 40. Performance 30,000 ms Milliseconds to replace 120 elements on a popular homepage Empty cache. Average of five runs. 22,500 ms 15,000 ms 7,500 ms 0 ms sIFR Facelift Cufón typeface.js Firefox 3 IE 7 IE 6
  • 41. Performance 30,000 ms Milliseconds to replace 120 elements on a popular homepage Empty cache. Average of five runs. 22,500 ms 15,000 ms 7,500 ms 0 ms sIFR Facelift Cufón typeface.js Firefox 3 IE 7 IE 6
  • 42. Where are they going? Facelift supercache plugin, css sprite plugin, eventually no-JS option Cufón rtl & bidi, text rotation
  • 43.
  • 45. sIFR? Doesn’t instantiate until visible in non-IE. Difficult configuration. Requires flash Not great with foreign/special characters Slow selector engine
  • 46. sIFR? Doesn’t instantiate until visible in non-IE. Difficult configuration. Requires flash Not great with foreign/special characters Slow selector engine
  • 47. Facelift Font file safe, good for the IP-cautious Lots of possible effects thanks to Imagemagick Requires PHP Many images/HTTP requests Mitigated by supercache and CSS sprite plugins Serious roadmap
  • 48. Facelift Font file safe, good for the IP-cautious Lots of possible effects thanks to Imagemagick Requires PHP Many images/HTTP requests Mitigated by supercache and CSS sprite plugins Serious roadmap
  • 49. Facelift Font file safe, good for the IP-cautious Lots of possible effects thanks to Imagemagick Requires PHP Many images/HTTP requests Mitigated by supercache and CSS sprite plugins Serious roadmap
  • 50. Facelift Font file safe, good for the IP-cautious Lots of possible effects thanks to Imagemagick Requires PHP Many images/HTTP requests Mitigated by supercache and CSS sprite plugins Serious roadmap
  • 51. Typeface.js Still rather buggy Absent developer Quiet community Quality/Performance is inferior to Cufón
  • 52. Typeface.js Still rather buggy Absent developer Quiet community Quality/Performance is inferior to Cufón
  • 53. Cufón Better optimization for IE == better performance Glyph tweaking for type nerds Active developer and community
  • 54. Cufón Better optimization for IE == better performance Glyph tweaking for type nerds Active developer and community
  • 55. Rich Typography Options for the Web More: http:/ /paulirish.com/type Me: http://paulirish.com http://twitter.com/paul_irish

Notes de l'éditeur

  1. http://www.webfonts.info/wiki/index.php?title=Fonts_available_for_@font-face_embedding More: http://del.icio.us/paul.irish/fontface
  2. http://www.webfonts.info/wiki/index.php?title=Fonts_available_for_@font-face_embedding More: http://del.icio.us/paul.irish/fontface
  3. Agenda: - Library overviews, and helpful resources - Comparison table - Licensing - Performance - Conclusions
  4. Great tutorials on getting sIFR up and running: * http://designintellection.com/this-is-how-you-get-sifr-to-work/ * http://css-tricks.com/new-screencast-how-to-use-sifr-3/
  5. Great tutorials on getting sIFR up and running: * http://designintellection.com/this-is-how-you-get-sifr-to-work/ * http://css-tricks.com/new-screencast-how-to-use-sifr-3/
  6. Great tutorials: * http://nettuts.com/javascript-ajax/how-to-use-any-font-you-wish-with-flir/ * http://www.divitodesign.com/2008/10/install-flir-typography-solution-for-the-web/
  7. Good response recently http://net.tutsplus.com/videos/screencasts/the-easiest-way-to-use-any-font-you-wish/ http://www.cameronmoll.com/archives/2009/03/cufon_font_embedding/ &#xA0;
  8. Good response recently http://net.tutsplus.com/videos/screencasts/the-easiest-way-to-use-any-font-you-wish/ http://www.cameronmoll.com/archives/2009/03/cufon_font_embedding/ &#xA0;
  9. Good response recently http://net.tutsplus.com/videos/screencasts/the-easiest-way-to-use-any-font-you-wish/ http://www.cameronmoll.com/archives/2009/03/cufon_font_embedding/ &#xA0;
  10. Good response recently http://net.tutsplus.com/videos/screencasts/the-easiest-way-to-use-any-font-you-wish/ http://www.cameronmoll.com/archives/2009/03/cufon_font_embedding/ &#xA0;
  11. * http://cameronmoll.com/archives/2009/03/cufon_font_embedding/ * http://cameronmoll.com/articles/cufon/calgary.html
  12. Licensing can be from 150&#x20AC; to $1500 for web embedding
  13. No superscript Non-html links (no open in new tab)
  14. http://facelift.mawhorter.net/doc/plugins-quickeffects
  15. http://facelift.mawhorter.net/doc/plugins-quickeffects
  16. http://facelift.mawhorter.net/doc/plugins-quickeffects