SlideShare a Scribd company logo
1 of 72
Web-Native UX Design
Prototyping with HTML, CSS and jQuery




                             Jen Matson
                                 @nstop
                        hi@jenmatson.com
@nstop




UNDERSTANDING
@nstop




fàÉÜç g|Åx
@nstop
@nstop
@nstop




????????
@nstop
@nstop




ABOUT ME:
•   Sr User Experience Architect, Ascentium
•   Designing & coding web sites since 1994
•   Find me online:
     @nstop (Twitter)
     jenmatson.com (Web)
@nstop




     WHY NOT USE...
  [ INSERT SOFTWARE
PROGRAM NAME HERE ]?
@nstop




   “We shape our tools and
thereafter our tools shape us”
       - Marshall McLuhan,
     Understanding Media (1964)
@nstop
@nstop
@nstop




 HTML + CSS + JavaScript

Structure + Style + Behavior
@nstop
@nstop




HTML + CSS + JavaScript

HTML5 + CSS3 +   jQuery
@nstop




1. Modern browser support
2. Most features & functionality
3. Learning “The Right Stuff”
@nstop




   YOUR ASSIGNMENT:
   YOUR ASSIGNMENT:
  “You are working with a
 cupcake bakery to create a
new product detail page that
    best showcases each
    delectable cupcake.”
@nstop




HTML5
HTML5   @nstop
HTML5   @nstop
HTML5   @nstop
HTML5   @nstop
HTML5              @nstop




        1. Accesibility

        2. Findability
HTML5   @nstop
HTML5         @nstop




        <article>
        <aside>
        <figure>
        <footer>
        <header>
        <hgroup>
        <menu>
        <nav>
        <section>
HTML5   @nstop
HTML5                               @nstop




<input type="text"   <input type="email"
   name="email"          name="email"
    id="email">           id="email">
HTML5                 @nstop




        date     search
        email    tel
        month    time
        number   url
        range    week
HTML5   @nstop
HTML5   @nstop
HTML5                @nstop




        VALIDATION
HTML5                   @nstop




        VALIDATION
  http://validator.w3.org
HTML5                             @nstop



             VALIDATION
        http://validator.w3.org
HTML5                             @nstop



             VALIDATION
        http://validator.w3.org
@nstop




CSS3
CSS3   @nstop
CSS3   @nstop
CSS3                    @nstop




       APPLYING STYLE
CSS3   @nstop
CSS3   @nstop
CSS3   @nstop
CSS3   @nstop
CSS3   @nstop
CSS3                  @nstop




 1. Rounded corners
 2. Shadows
 3. Opacity
CSS3   @nstop
CSS3   @nstop
CSS3   @nstop
CSS3              @nstop




 4. Web fonts
 5. Text stroke
CSS3   @nstop
CSS3   @nstop
CSS3             @nstop




 6. Transforms
 7. Animations
CSS3   @nstop
CSS3   @nstop
@nstop




jQuery
jQuery   @nstop
jQuery   @nstop
jQuery   @nstop
jQuery   @nstop
jQuery   @nstop
jQuery   @nstop
@nstop




HTML + CSS + JavaScript

=   WORK   +   REWARD
@nstop




   ADDITIONAL STRATEGIES
1. Switch to a different medium or tool
2. Ask a developer for help
3. Surf, view source, copy & paste
@nstop
@nstop




  BUT WAIT...
THAT’S NOT ALL
Annotations   @nstop
Annotations   @nstop
Annotations   @nstop
Annotations   @nstop
@nstop




                    RESOURCES
                                HTML5 Boilerplate
HTML5 Rocks
                                http://
http://slides.html5rocks.com
                                html5boilerplate.com

CSS3 Gradient Generator         Dive Into HTML5
http://gradients.glrzad.com     http://diveintohtml5.org

HTML Dog                        When Can I Use...
http://htmldog.com              http://caniuse.com
Time-Saving & Educational Resources for Web
Designers
http://www.smashingmagazine.com/2011/01/18/time-
saving-and-educational-resources-for-web-designers/
@nstop
@nstop




   THANK YOU
http://jenmatson.com/
@nstop




      PHOTO ÉyCREDITS
        |Ç ÉÜwxÜ tÑÑxtÜtÇvx
Key in Ignition
http://www.flickr.com/photos/cgc/6002365/

Car
http://www.flickr.com/photos/rutlo/3676103315/

Shifter
http://www.flickr.com/photos/8000vueltas/4728937244/

Dashboard
http://www.flickr.com/photos/8000vueltas/4728293079/

Tofurkey
http://www.flickr.com/photos/megabeth/5206564773/

Roast Turkey
http://wallpapers.free-review.net/21__Roast_Turkey_and_Mashed_Potatoes.htm

Single Cupcake
http://www.flickr.com/photos/rosebengal/1035503938/

Row of Cupcakes
http://www.flickr.com/photos/lamantin/5143354092/

More Related Content

Viewers also liked

Web, Design, and UX Trends for 2006
Web, Design, and UX Trends for 2006Web, Design, and UX Trends for 2006
Web, Design, and UX Trends for 2006Jeremy Johnson
 
Web, Design, and UX Trends for 2008
Web, Design, and UX Trends for 2008Web, Design, and UX Trends for 2008
Web, Design, and UX Trends for 2008Jeremy Johnson
 
Conflict is the Key to Great UX - Web Design Day Pittsburgh Lightning Talk
Conflict is the Key to Great UX - Web Design Day Pittsburgh Lightning TalkConflict is the Key to Great UX - Web Design Day Pittsburgh Lightning Talk
Conflict is the Key to Great UX - Web Design Day Pittsburgh Lightning TalkSteve Fisher
 
Hexagonal architecture - message-oriented software design (Symfony Live Berli...
Hexagonal architecture - message-oriented software design (Symfony Live Berli...Hexagonal architecture - message-oriented software design (Symfony Live Berli...
Hexagonal architecture - message-oriented software design (Symfony Live Berli...Matthias Noback
 
Permendagri no-112-tahun-2014-tentang-pemilihan-kepala-desa
Permendagri no-112-tahun-2014-tentang-pemilihan-kepala-desaPermendagri no-112-tahun-2014-tentang-pemilihan-kepala-desa
Permendagri no-112-tahun-2014-tentang-pemilihan-kepala-desaBPD Ajakkang
 
Evolution of Web Design (UX / Usability) by eDesign - ArabNet Riyadh 2015
Evolution of Web Design (UX / Usability) by eDesign - ArabNet Riyadh 2015Evolution of Web Design (UX / Usability) by eDesign - ArabNet Riyadh 2015
Evolution of Web Design (UX / Usability) by eDesign - ArabNet Riyadh 2015ArabNet ME
 
Software Architecture Design Patterns
Software Architecture Design PatternsSoftware Architecture Design Patterns
Software Architecture Design PatternsStanislav
 
Laporan monitoring
Laporan monitoringLaporan monitoring
Laporan monitoringYustus Rona
 
Software Architecture: How Much Design?
Software Architecture: How Much Design?Software Architecture: How Much Design?
Software Architecture: How Much Design?Òscar Vilaplana
 
Software Architecture & Design - Our Meetup Group
Software Architecture & Design - Our Meetup GroupSoftware Architecture & Design - Our Meetup Group
Software Architecture & Design - Our Meetup GroupOliver Stadie
 
Bojan Veljanovski - Modular Software Architecture and Design (Code Camp 2016)
Bojan Veljanovski - Modular Software Architecture and Design (Code Camp 2016)Bojan Veljanovski - Modular Software Architecture and Design (Code Camp 2016)
Bojan Veljanovski - Modular Software Architecture and Design (Code Camp 2016)Bojan Veljanovski
 

Viewers also liked (15)

#4_web_ux_wakizaka
#4_web_ux_wakizaka#4_web_ux_wakizaka
#4_web_ux_wakizaka
 
Web, Design, and UX Trends for 2006
Web, Design, and UX Trends for 2006Web, Design, and UX Trends for 2006
Web, Design, and UX Trends for 2006
 
Web, Design, and UX Trends for 2008
Web, Design, and UX Trends for 2008Web, Design, and UX Trends for 2008
Web, Design, and UX Trends for 2008
 
Mobile Web UX - TdT@Cluj #17
Mobile Web UX - TdT@Cluj #17Mobile Web UX - TdT@Cluj #17
Mobile Web UX - TdT@Cluj #17
 
Conflict is the Key to Great UX - Web Design Day Pittsburgh Lightning Talk
Conflict is the Key to Great UX - Web Design Day Pittsburgh Lightning TalkConflict is the Key to Great UX - Web Design Day Pittsburgh Lightning Talk
Conflict is the Key to Great UX - Web Design Day Pittsburgh Lightning Talk
 
form-form pilkades
form-form pilkadesform-form pilkades
form-form pilkades
 
Hexagonal architecture - message-oriented software design (Symfony Live Berli...
Hexagonal architecture - message-oriented software design (Symfony Live Berli...Hexagonal architecture - message-oriented software design (Symfony Live Berli...
Hexagonal architecture - message-oriented software design (Symfony Live Berli...
 
Permendagri no-112-tahun-2014-tentang-pemilihan-kepala-desa
Permendagri no-112-tahun-2014-tentang-pemilihan-kepala-desaPermendagri no-112-tahun-2014-tentang-pemilihan-kepala-desa
Permendagri no-112-tahun-2014-tentang-pemilihan-kepala-desa
 
Evolution of Web Design (UX / Usability) by eDesign - ArabNet Riyadh 2015
Evolution of Web Design (UX / Usability) by eDesign - ArabNet Riyadh 2015Evolution of Web Design (UX / Usability) by eDesign - ArabNet Riyadh 2015
Evolution of Web Design (UX / Usability) by eDesign - ArabNet Riyadh 2015
 
Software Architecture Design Patterns
Software Architecture Design PatternsSoftware Architecture Design Patterns
Software Architecture Design Patterns
 
Laporan monitoring
Laporan monitoringLaporan monitoring
Laporan monitoring
 
Software Architecture: How Much Design?
Software Architecture: How Much Design?Software Architecture: How Much Design?
Software Architecture: How Much Design?
 
Software Architecture & Design - Our Meetup Group
Software Architecture & Design - Our Meetup GroupSoftware Architecture & Design - Our Meetup Group
Software Architecture & Design - Our Meetup Group
 
Bojan Veljanovski - Modular Software Architecture and Design (Code Camp 2016)
Bojan Veljanovski - Modular Software Architecture and Design (Code Camp 2016)Bojan Veljanovski - Modular Software Architecture and Design (Code Camp 2016)
Bojan Veljanovski - Modular Software Architecture and Design (Code Camp 2016)
 
Managemen Proses
Managemen ProsesManagemen Proses
Managemen Proses
 

Recently uploaded

Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...gurkirankumar98700
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 

Recently uploaded (20)

Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 

Web-Native UX Design: Prototyping with HTML, CSS and jQuery

  • 1. Web-Native UX Design Prototyping with HTML, CSS and jQuery Jen Matson @nstop hi@jenmatson.com
  • 8. @nstop ABOUT ME: • Sr User Experience Architect, Ascentium • Designing & coding web sites since 1994 • Find me online: @nstop (Twitter) jenmatson.com (Web)
  • 9. @nstop WHY NOT USE... [ INSERT SOFTWARE PROGRAM NAME HERE ]?
  • 10. @nstop “We shape our tools and thereafter our tools shape us” - Marshall McLuhan, Understanding Media (1964)
  • 13. @nstop HTML + CSS + JavaScript Structure + Style + Behavior
  • 15. @nstop HTML + CSS + JavaScript HTML5 + CSS3 + jQuery
  • 16. @nstop 1. Modern browser support 2. Most features & functionality 3. Learning “The Right Stuff”
  • 17. @nstop YOUR ASSIGNMENT: YOUR ASSIGNMENT: “You are working with a cupcake bakery to create a new product detail page that best showcases each delectable cupcake.”
  • 19. HTML5 @nstop
  • 20. HTML5 @nstop
  • 21. HTML5 @nstop
  • 22. HTML5 @nstop
  • 23. HTML5 @nstop 1. Accesibility 2. Findability
  • 24. HTML5 @nstop
  • 25. HTML5 @nstop <article> <aside> <figure> <footer> <header> <hgroup> <menu> <nav> <section>
  • 26. HTML5 @nstop
  • 27. HTML5 @nstop <input type="text" <input type="email" name="email" name="email" id="email"> id="email">
  • 28. HTML5 @nstop date search email tel month time number url range week
  • 29. HTML5 @nstop
  • 30. HTML5 @nstop
  • 31. HTML5 @nstop VALIDATION
  • 32. HTML5 @nstop VALIDATION http://validator.w3.org
  • 33. HTML5 @nstop VALIDATION http://validator.w3.org
  • 34. HTML5 @nstop VALIDATION http://validator.w3.org
  • 36. CSS3 @nstop
  • 37. CSS3 @nstop
  • 38. CSS3 @nstop APPLYING STYLE
  • 39. CSS3 @nstop
  • 40. CSS3 @nstop
  • 41. CSS3 @nstop
  • 42. CSS3 @nstop
  • 43. CSS3 @nstop
  • 44. CSS3 @nstop 1. Rounded corners 2. Shadows 3. Opacity
  • 45. CSS3 @nstop
  • 46. CSS3 @nstop
  • 47. CSS3 @nstop
  • 48. CSS3 @nstop 4. Web fonts 5. Text stroke
  • 49. CSS3 @nstop
  • 50. CSS3 @nstop
  • 51. CSS3 @nstop 6. Transforms 7. Animations
  • 52. CSS3 @nstop
  • 53. CSS3 @nstop
  • 55. jQuery @nstop
  • 56. jQuery @nstop
  • 57. jQuery @nstop
  • 58. jQuery @nstop
  • 59. jQuery @nstop
  • 60. jQuery @nstop
  • 61. @nstop HTML + CSS + JavaScript = WORK + REWARD
  • 62. @nstop ADDITIONAL STRATEGIES 1. Switch to a different medium or tool 2. Ask a developer for help 3. Surf, view source, copy & paste
  • 64. @nstop BUT WAIT... THAT’S NOT ALL
  • 65. Annotations @nstop
  • 66. Annotations @nstop
  • 67. Annotations @nstop
  • 68. Annotations @nstop
  • 69. @nstop RESOURCES HTML5 Boilerplate HTML5 Rocks http:// http://slides.html5rocks.com html5boilerplate.com CSS3 Gradient Generator Dive Into HTML5 http://gradients.glrzad.com http://diveintohtml5.org HTML Dog When Can I Use... http://htmldog.com http://caniuse.com Time-Saving & Educational Resources for Web Designers http://www.smashingmagazine.com/2011/01/18/time- saving-and-educational-resources-for-web-designers/
  • 71. @nstop THANK YOU http://jenmatson.com/
  • 72. @nstop PHOTO ÉyCREDITS |Ç ÉÜwxÜ tÑÑxtÜtÇvx Key in Ignition http://www.flickr.com/photos/cgc/6002365/ Car http://www.flickr.com/photos/rutlo/3676103315/ Shifter http://www.flickr.com/photos/8000vueltas/4728937244/ Dashboard http://www.flickr.com/photos/8000vueltas/4728293079/ Tofurkey http://www.flickr.com/photos/megabeth/5206564773/ Roast Turkey http://wallpapers.free-review.net/21__Roast_Turkey_and_Mashed_Potatoes.htm Single Cupcake http://www.flickr.com/photos/rosebengal/1035503938/ Row of Cupcakes http://www.flickr.com/photos/lamantin/5143354092/

Editor's Notes

  1. Hello. I&apos;m excited to be here to today to talk about some of the ways in which you can start building interactive prototypes in code. I feel strongly that the better we understand the building blocks used to bring our design ideas to life, the more we can use that domain knowledge to create even better designs.\n
  2. The key there is the word &quot;understanding.&quot; It&apos;s not about learning a specific methodology, or a tool. Methodologies can fail, us and tools can obscure the true nature of what it is we&apos;re doing. In a lot of areas of our lives, this is perfectly fine. I don&apos;t need to know the details of what&apos;s happening to my food, on a molecular level, when I stick in the microwave. But in areas where we do care, and especially where many of us make our living, on the web, failing to understand underlying systems undermines our capacity for learning.\n
  3. But before I get to talking about the web, something I care about, passionately, I&apos;d like to share a little story about me and cars and my total lack of understanding.\n
  4. Cars are something I used to care virtually NOTHING about. As far as I was concerned, you turn the key, move the stick to &quot;D&quot;, lift your foot off the brake, put it on the gas pedal, press and go! I never questioned this, or learned anything more than I needed to in order to pass my driver&apos;s license test (which, even so, I failed on my first attempt).\n\nSo naturally I learned to drive cars with automatic transmissions only. My parents&apos; cars were automatics, as were the Driver&apos;s Ed cars. My first car, which I got at the ripe old age of 21, not long after FINALLY passing my driver&apos;s license test, was therefore an automatic. And I really had no interest in making my transition to an auto-driving adult any more complicated than I already thought it was.\n\nThat is, until my boyfriend got a new convertible.\n
  5. Now THIS was a car I wanted to drive, much more so than my &apos;87 Honda Accord hatchback. I was motivated. And, unbelievably, my boyfriend was game to allow me to learn to drive stick using his brand-new, shiny car. And since he wanted to make sure I didn&amp;#x2019;t end up crashing it, much emphasis was placed on, again, a series of instructions to make it go.\n
  6. And so he gave me a driver&apos;s ed-style version of how to make things go, this time involving something called a clutch pedal and a stick with many more labels on it, and a specific order in which I needed to move it. And oh! -- don&apos;t forget to look at the tachometer and listen to the engine when you&apos;re ready to shift!\n\nNeedless to say, I pretty much sucked at this.\n\nMy mental model for how cars worked was fuzzy, at best, and was definitely not helped by my having only driven cars with automatic transmissions up until that point. The method I learned was a series of rote actions applied in a specific context, knowledge devoid of the understanding I&apos;d need in order to apply it elsewhere.\n
  7. It was only much later, after I stumbled across a picture like this one and learned how transmissions work, that I was able to connect my actions with the specific results, in terms of speed or responsiveness. Or harm -- I also got why I was yelled at for riding the clutch.\n\nWhile I&apos;ve decided to stick with automatics -- not least in part due to a daily Eastside commute -- I do think that understanding how a car works has helped me become a better driver. However, it&apos;s probably a good thing that I&apos;m not responsible for designing cars.\n
  8. But web sites -- those I can do. I&apos;m a Senior User Experience Architect at Ascentium, a web agency in Bellevue. I&apos;ve been designing experiences for the web since 1994 and have been coding for just as long. You can find me online at jenmatson.com, and on Twitter as nstop.\n\nNow, of course my tech background is immensely helpful for me when creating prototypes for clients. But I&apos;ve actually had to entirely re-learn how to create web sites at least three times in my career -- first it was tables, then it was no tables and CSS layouts, and now it&apos;s HTML5 and CSS3. Add in rich interactivity via JavaScript frameworks like jQuery and technical approaches that enable us to serve up different layouts and content for mobile devices and different screen sizes&amp;#x2026; that&apos;s a lot to learn.\n
  9. Given that, you may be thinking, &quot;Wouldn&apos;t it be easier to just learn a prototyping tool like Axure or Balsamiq, or even a WYSIWYG HTML editor? In a word: YES.\n\nBut in the same way that my automatic transmission abstracted away the actual functionality of the car from me, the driver, prototyping tools that hide the inner workings of the code behind our designs and interactions are doing nothing more than creating a convincing simulation of a web site.\n
  10. As designers, our process affects the result. And our tools shape our process and our thinking, often in ways of which we&apos;re largely unaware. How do we know that a software program is abstracting functionality, or only showing a limited subset of the actual design possibilities, if we don&apos;t already understand the capabilities of the underlying technology? If a software program can&apos;t implement a content box that dynamically stretches to fill the screen when I click it, will I even know it&apos;s even possible to do that? (And it is. And it&apos;s easy!)\n\nSo basically, what I&apos;m saying is, unless you&apos;re a vegetarian...\n
  11. You don&apos;t want this. You want the real thing.\n
  12. So, let&apos;s talk turkey! Which is, in this context, code.\n
  13. These are the three building blocks of the front-end of the web site, the part that that the user sees and interacts directly with, therefore having the largest impact on the user experience. While there is some degree of overlap between the three, in general, each has a distinct role to play.\nHTML provides the structure to the web page using semantic tags meant to define web page content. It&apos;s the markup language used for things like page headings, paragraphs, images -- any and all web content. CSS adds styling information to a web page, determining color, size and placement, among other things, for HTML elements on the page. Those HTML elements plus their &quot;class&quot; and &quot;ID&quot; attributes provide hooks for CSS style declarations, ensuring that the right styles are applied to the right parts of the page.\nAnd while you can have a perfectly usable web page -- even an entire web site -- comprised of nothing but HTML and CSS, JavaScript is what brings the magic. It&apos;s a programming language that adds the behavior layer to our well-structured and styled pages. While CSS alone can be used for minor behavioral elements (such as mouseovers), JavaScript is what powers an increasing degree of the rich interactions you see online, including many things you previously needed to use proprietary technologies like Flash to do.\n\nAnd help you feel the magic, here&apos;s a quick example of what JavaScript can do to ANY web site. Like, say, the Puget Sound SIGCHI site:\n\n
  14. If you&apos;re familiar with the videogame Katamari Damacy, what&apos;s happening right now should look familiar. And while I&apos;ll admit that I added the theme music, it&apos;s this JavaScript bookmarklet -- just a little piece of code -- that&apos;s taking every single element on this page and rolling it up into a big ball.\n
  15. I hope I won&apos;t disappoint you too much by saying that I won&apos;t be showing you how to do *that* today. But we will be seeing some animations courtesy of jQuery. That&apos;s a JavaScript library. It&apos;s open-source, free for anyone to use, and has made it easy to write JavaScript. You can use individual jQuery effects for simple interactions or chain multiple ones together for more complex scenarios.\n\nThe other specifics we&apos;ll be going through today are HTML5 and CSS3. These are just the latest versions of -- you guessed it -- HTML and CSS. We&apos;ll be focusing on the latest iterations of these for a few reasons:\n
  16. 1. They are supported today by modern web browsers. Not all browsers, and not evenly, but for the purposes of prototyping, and not creating production-ready web sites, being able to run your prototype in two or more freely-downloadable, cross-platform browsers is more than sufficient.\n2. They pack in the most features and functionality. What fun is prototyping if you aren&apos;t able to demonstrate the widest range of possible interactions? For example, CSS3 enables you to create buttons with gradients, drop-shadows and fancy fonts without you (or your visual designer) ever cracking open a copy of Photoshop. And developers can often use fancy code ninja tricks to get the same, or similar, effects in older browsers, and when they can&apos;t you can discuss how to gracefully handle those instances.\n3. You will learn the &quot;right way&quot; to create web pages. There is a lot of bad code out on the web. Some of it is just legacy code, the remnants of old ways of doing things that were born of necessity when browsers often behaved badly. And some of it is being written today, by people holding outdated and strange views, like the notion that every web site needs to look EXACTLY THE SAME in every single browser. We should try to ignore those people, and their code.\nUltimately, the future will become the present. What&apos;s new now will be the new standard. Knowing &quot;the old way&quot; of doing something can actually put up a mental roadblock to learning the new way, as I, and anyone else who used to code web pages using nested tables and single-pixel spacer GIFs can attest.\nSo, in order to best see what we can create with a little HTML, CSS and JavaScript, we need an assignment. Something that we might ordinarily wireframe. Here we go...\n
  17. Your Assignment: &amp;#x201C;You are working with a cupcake bakery to create a new product detail page that best showcases each delectable cupcake.&amp;#x201D; A product detail page is pretty straightforward. We can start with the structure, using HTML5:\n
  18. \n
  19. This is a fairly traditional wireframe, one that should look pretty familiar. It has a header, a footer, a navigation sidebar and a content area in the middle.\n\nFirst, we want to translate that wireframe into HTML. Eventually, you&apos;ll get to where you can skip the wireframing. At least, the wireframing in a software tool part. Sketching is, of course, a tremendously valuable part of the creative process, and it&apos;s something I continue to do before I start creating anything new on the computer.\n
  20. Here are the HTML5 tags we&apos;d use for each of these elements in a web page. If you already have some knowledge of HTML, these tags might look kind of funny to you. That&apos;s because, up until very recently, you&apos;d actually mark up the page like this:\n
  21. Divs with IDs (or classes) that provided the semantic meaning. In fact, this is still the way most web pages today are built, partly due to backwards-compatibility concerns, and partly just because HTML5 is still so new. But again, we&apos;re just building prototypes, not finished web sites, so don&apos;t need to worry about that right now.\n
  22. Back to the HTML5-tagged version. You&apos;ll see that HTML5 has, as one of its built-in features, semantic tags. We don&apos;t need to use IDs or classes to give them meaning. That makes for cleaner, easier-to-read code. But there are two, much bigger benefits:\n\n1. Accessibility. Screen readers can more easily interpret web page content, so that users with visual impairments can have a better experience.\n\n2. Findability. Search engines also love semantic content. In fact, Google recently launched a recipe search feature that relies upon web pages that use semantic markup, like microformats, for recipe content. Web pages that aren&apos;t marked up semantically simply won&apos;t appear in the Recipe View results.\n
  23. Back to the HTML5-tagged version. You&apos;ll see that HTML5 has, as one of its built-in features, semantic tags. We don&apos;t need to use IDs or classes to give them meaning. That makes for cleaner, easier-to-read code. But there are two, much bigger benefits:\n\n1. Accessibility. Screen readers can more easily interpret web page content, so that users with visual impairments can have a better experience.\n\n2. Findability. Search engines also love semantic content. In fact, Google recently launched a recipe search feature that relies upon web pages that use semantic markup, like microformats, for recipe content. Web pages that aren&apos;t marked up semantically simply won&apos;t appear in the Recipe View results.\n
  24. Back to the HTML5-tagged version. You&apos;ll see that HTML5 has, as one of its built-in features, semantic tags. We don&apos;t need to use IDs or classes to give them meaning. That makes for cleaner, easier-to-read code. But there are two, much bigger benefits:\n\n1. Accessibility. Screen readers can more easily interpret web page content, so that users with visual impairments can have a better experience.\n\n2. Findability. Search engines also love semantic content. In fact, Google recently launched a recipe search feature that relies upon web pages that use semantic markup, like microformats, for recipe content. Web pages that aren&apos;t marked up semantically simply won&apos;t appear in the Recipe View results.\n
  25. Here&apos;s a list of all the new HTML5 tags, with the ones we&apos;re using in this wireframe highlighted. You can also nest these tags within each other so that, say, an article has its own sidebar, in addition to the page sidebar.\n\nSo that&apos;s some of the structural goodness of HTML5. Another one that can have a big impact on the user experience is new field input types which, again, bring semantic meaning to input fields used in forms. So let&apos;s say we wanted to add an email sign-up form where users could get added to the bakery&apos;s mailing list.\n
  26. Pretty straightforward, right? A form field where the user enters their email address, with a submit button. But what if the user is viewing this web page in the browser of a smartphone, like an iPhone? (That&apos;s right, our web page should look and work well in mobile browsers, too.)\n
  27. The form will still work. However, the soft keyboard that shows up onscreen doesn&apos;t know that the form field is for email, so it just shows the default keys. But if we added the new &quot;email&quot; input type to that field&amp;#x2026;\n\n&amp;#x2026;with just a tiny bit of extra code, we add meaning to the form field. The phone&apos;s browser sees that it&apos;s for an email address, and helpfully switches up the keyboard to display an @ symbol and a period so that the user does not have to switch back and forth between the different alpha and numeric keyboards to type in her address.\n
  28. And here is a list of new input types you can use. Email is just one. And while not all browsers will use this additional information in the way that was just demonstrated on a mobile phone, since it&apos;s semantic, you&apos;re setting yourself up for the accessibility and findability benefits previously mentioned.\n\nThose are just two HTML5 features; there are many more. But those are the two you can and should start using right away when prototyping. At the end of this presentation there will be links to resources with more information about HTML5 if you want to learn more.\n\nNow that we have our structure, let&apos;s add a bit of placeholder content. Though, to be fair, content development should be parallel to the UX process, and content plays a huge role in determining the overall design. But that&amp;#x2019;s a whole other topic...\n
  29. Looking good, if a bit sparse. But before we move on to adding styling, let&apos;s take a look at the HTML code behind it all:\n
  30. From top to bottom, first there is a DOCTYPE. This tells the browser to use the document type specification &quot;HTML,&quot; which is what&apos;s used for HTML5 documents. Older specs include those for HTML4, which preceded HTML5 and XHTML 1.0, which was meant to be the next step in HTML and then kind of never took off.\n\nNext up is the HEAD tag, which indicates the section of the document where we put all of our meta information and resources, prior to the start of the actual page content. You&apos;ll see below the head I have a page title, which I&apos;ve structured in such a way for optimal readability when it appears in search engine results and in my list of bookmarks. Here&apos;s where meta tags for things like keywords, content type and description go, but those are strictly optional for our prototype, and -- shh, secret! -- virtually all search engines ignore meta keywords anyway, so don&apos;t bother. We&apos;ll also be putting references to our CSS and JavaScript files in the HEAD, but we don&apos;t need to do that just yet.\n\nFinally, the BODY tag opens our content area, consisting of the content blocks defined in our wireframe, plus our new content, which is likewise marked-up. We&apos;re using an unordered list for our sidebar navigation. At the end of the content comes the closing BODY and HTML tags.\n\nOne last thing before we move on to styling:\n
  31. You are doing a great job as an audience so far! Okay no, not that kind of validation. (Though if you created a web page like this on your first try, I would be quite impressed.)\n
  32. Validation, in this context, just means checking the syntax of your code to ensure it is valid markup, free of errors, that follows the rules defined in the spec for your chosen DOCTYPE.\n\nAll you need to do is go to the validator tool provided by the web standards body the W3C at &quot;http://validator.w3.org&quot; and either put in the URL of your web page (if you&apos;ve uploaded it to a web server) or upload the HTML file itself. And if you&apos;ve done everything right, you will be blessed with the following message:\n
  33. And if you&apos;ve done something wrong, you&apos;ll get a different kind of message:\n
  34. &amp;#x2026;but it&apos;s one that should have (usually) helpful info on what went wrong and how to fix it. Now, your web page may still look fine in your browser, even if you fail validation. Again, we&apos;re not developers here, so that in and of itself is not a problem. BUT&amp;#x2026; if you run into design problems later on down the road, it will be that much more difficult to troubleshoot if the document is invalid. Make it valid, and that&apos;s just one less thing you need to worry about.\n
  35. Now for style.\n
  36. Here&amp;#x2019;s our wireframe with content again. But first, let me confess -- I&apos;ve already added a *tiny* bit of styling. I made our content blocks line up using CSS positioning. If I hadn&apos;t, the code I showed for our wireframe would have looked like this:\n
  37. Pretty plain, right? But perfectly readable. So I added this CSS to the page -- regular old, CSS, not CSS3, to size and position our elements like so:\n
  38. So, as you can see, CSS is style, but it also affects structure -- at least, visual structure. It is also used to communicate the overall look &amp; feel of a web site. Now, for prototyping, this may be less crucial, especially if your role does not include any visual design duties. But I&apos;ve observed usability studies where the participants find higher fidelity prototypes to be less distracting, especially when new pages are being blended into an existing web site. So if you can do it, and you have the time, it&apos;s worth knowing the small bits of code that can create major visual effects.\n\nAnd because we&apos;re not using Photoshop, those effects can be scalable, dynamic and easily reusable, regardless of content or context.\n\nFirst, let&apos;s style that cupcake picture.\n
  39. Here I&apos;ve specified borders for our main content blocks, along with basic padding and margins. I&amp;#x2019;ve also specified height and width values for specific content blocks. I&apos;m also using CSS positioning, to make the sidebar and the article &quot;float&quot; to the left. Floating takes those elements out of the document flow. Since the header is set to take up 100% of the width of that wrapper, the floats need to line up below that, side by side.\n\nThis is an extremely basic description of floats, and again, you can check out my resources list for more reading on this topic. Thankfully, there are a number of excellent page templates online that already cover a lot of common content layouts.\n
  40. First, we&apos;ll round the corners of the photo.\n
  41. Then, we&apos;ll add a drop-shadow to the box containing the photo and caption.\n
  42. Finally, we&apos;ll style the caption so that its container is slightly opaque, positioned over the cupcake pic.\n
  43. That&apos;s a lot of design work with a little bit of code. Here are the CSS3 effects we applied:\n
  44. 1. Rounded corners 2. Shadows 3. Opacity\n\nNow&apos;s let transform that logo (or lack thereof).\n
  45. We&apos;ll pick a fancy font, this case League Gothic, which is free for web use&amp;#x2026;\n
  46. And then add a slight text stroke.\n
  47. And we&apos;re done. CSS3 effects used:\n
  48. We can add in a little bit of interactivity with just CSS3. Say we want to make that cupcake picture just a bit more&amp;#x2026; playful.\n
  49. That&apos;s right, zoom and tilt on mouseover! The effects:\n
  50. And here&amp;#x2019;s the code for that CSS animation. CSS3 effects used:\n
  51. Now, there are lots of other CSS3 effects. Those are just a handful. If I really wanted to show you ALL the new CSS3 visual effects, I could do that...\n
  52. But your eyes would burn. Comic Sans. Papyrus. Hobo. *shudder* Let&apos;s get that back to where it was, maybe with a little additional CSS frosting of its own.\n
  53. Much better. Now for the final pillar in our trio of tech: jQuery.\n
  54. We have a web page, structured and designed. If visual design is not part of your role, your prototype would likely be less styled than this. Or, you&apos;ll have grabbed a code-savvy designer to help apply visual style in the prototyping process, if you have time for that.\n\nBut jQuery -- remember, just a JavaScript library for code lightweights like you and me -- can give you the interaction design oomph. Let&apos;s take a look at the one obvious interactive component on this page, the email submission form.\n
  55. In order to use jQuery, we first need to add some code to the HEAD of our HTML document. First is the reference to the jQuery file itself, which you can download from jquery.com. Then a reference to our own file with our interactions, global.js. Finally, a bit of code that will initialize our functions on page load so they are ready to go.\n
  56. Now for our interactions: what do we want to happen when the user enters their email address and clicks on the Submit button? Aside from the data itself getting passed to the server and an address getting added to a list somewhere. That&apos;s all back-end -- important to document, but not something that we&apos;ll actually *see* in a prototype.\n\nLet&apos;s start with the simple act of clicking on the form field. Maybe highlight the field?\n
  57. Here is code in our global.js file specifying that, when the field is clicked on, for a special &quot;hilite&quot; class to be applied to the field. We could specify the particular CSS background color and border as part of our jQuery code, but it&apos;s much better to keep the style and behavior layers cleanly separated. I also find it&apos;s much easier to edit CSS than comb through a bunch of JavaScript when you later decide you want that background color to be blue instead of yellow.\n\nNow, we probably want to let the user know when they&apos;ve been successfully added to the list.\n
  58. Here we&apos;re simply displaying a div with a &quot;success!&quot; message when the button is clicked. In reality, there would be additional JavaScript that would run first, checking to see that the field wasn&apos;t blank, the address was formatted correctly (with an @ symbol and a dot-something). And you&apos;d want to create and format the appropriate error messages for those instances, since error states should always be part of your design, too. There would also be additional code needed to dismiss this message after a certain interval, and how to do so: fade out, slide away, and so on.\n\nFinally, what about that sale message?\n
  59. Instead of having it take the user to another page when it&apos;s clicked, what if we just expanded it within the page, with a smooth animation that revealed the sale details? And we could close it up again after reading.\n
  60. And this is just a small taste of the kind of interactions you can do. Any element on the page can be manipulated, with animations, hide/show behavior, if/then statements based on user form selections -- you name it. I&apos;ve done all of those and more in my prototypes&amp;#x2026; time willing, of course.\n
  61. And skill willing, too. At any point in creating a prototype, you will run up against the limit of your abilities and patience. And if you&apos;re me, you&apos;ll try the patience of your programmer boyfriend, too, as you ask the umpteenth JavaScript question in the quest to perfect some effect.\n\nWhen that happens (not &quot;if&quot;), you can try a couple of other things:\n
  62. 1. Switch to a different medium or tool.\nIf you can&apos;t do it with HTML, CSS and JavaScript, that doesn&apos;t mean the design or effect you want can&apos;t be demonstrated in some other manner. It could be Photoshop, Flash, a WYSIWYG prototyping tool, even paper. Just knowing the capabilities of what can be done natively, even if you can&apos;t execute it yourself, will keep you grounded when using another tool.\n2. Ask a developer on your project team for help.\nChances are, you have a tech lead or developer already assigned to your project or team at work. And if you don&apos;t, SHAME ON YOUR PROJECT MANAGER. At the very least, that shouldn&apos;t be the normal state of affairs. Teams need cross-skill and -idea pollination at every stage of a project, even if you&apos;re doing Agile.\nNow, a developer may not have time to help you with your prototype, but I guarantee that he or she will appreciate your having gotten them involved early on. And they may be able to suggest a better way of doing something. Some of the coolest ideas come from your tech folks, as they are (or should be) immersed in all the latest and greatest developments in browsers, languages and techniques.\n\n3. Do what I and every web developer has done since the beginning: find the layout or effect you&amp;#x2019;re looking for online, view the page source, and copy the elements as a starting point for your own work. (Don&amp;#x2019;t take anything as-is, of course -- that&amp;#x2019;s tacky.)\n
  63. So there you have it! A full-fledged web page with structure, style and interaction. You&apos;d almost think we were done, right?\n
  64. Well, for those of us working in an agency environment, in particular, there&apos;s one thing that always needs to be added on to wireframes: annotations. And prototypes, while they may be able to reduce the amount of annotating required due to their showing interactions, generally still need some explaining for clients, or anyone else on their end to which they need to show your prototype.\n\nWe could just try to position numbered labels directly on top of our page elements -- and I did try that, initially -- but the alignment is always wonky between browsers, things shift in unexpected ways when you resize the browser, and it&apos;s a real pain to manage 20+ unique tags floating over your content. It&apos;s especially hard when the tags need to change along with the different page states.\n\nIntroducing&amp;#x2026; CSS annotations!\n
  65. Each element to be annotated has its own label, dynamically-generated using CSS3. A corresponding numbered list of notes appears in a panel to the right. This page template also has a drop-down control with style-switching JavaScript that turns the annotations on or off, depending on whether you need to focus on the page information or meta information.\n\nHere is the style-switcher in action.\n
  66. I&apos;ve also added a &quot;sketchy&quot; option to the style switcher, in case you want to start by demoing the basic structure before the high-fidelity design. It styles everything on the page using &quot;sketchy&quot; lines and switches all type to a brush-stroke font.\n\nFinally, while it does take some additional JavaScript know-how, it is possible to change the annotations along with the interactions. Here&apos;s an example from my personal web site that shows dynamic annotations in action:\n
  67. So there we have a one-page prototype. If you haven&apos;t been discouraged by the amount of work that goes into creating just one page, then next you can hook up multiple pages. You can even use JavaScript to pass variables from page to page, enabling us to create an entire catalog of cupcakes with just a few templates.\n\nIf you want to do that, you can do the visual design piece, *and* you can create clean and valid code, you are probably on your way to becoming the most insanely sought-after designer-slash-developer on the planet. But for most of us, just getting the cross-training itself is a valuable exercise.\n
  68. \n
  69. Here are just a few amazing resources that can help you both learn more about code and give you some tools to create it without having to hand-code everything. That&apos;s right, all those crazy shadows and gradients can be done by tweaking sliders on a web page, with a live preview and all. Now that you&apos;ve sent the hard way, I can show you the easy way. And I&amp;#x2019;ll be posting a more extensive list of resources on my web site next week, so check jenmatson.com for that soon.\n\nBut whatever you do, please use these tools for good, not evil.\n\n
  70. \n
  71. \n