├── .DS_Store
├── README.md
├── resume
├── .DS_Store
└── index.html
├── ampersands
├── .DS_Store
└── index.html
├── css-demos
├── .DS_Store
├── js
│ ├── .DS_Store
│ ├── dropcap.min.js
│ └── prefixfree.min.js
├── widows
│ ├── .DS_Store
│ └── index.html
├── drop-cap
│ ├── .DS_Store
│ └── index.html
├── flexbox
│ ├── .DS_Store
│ ├── img
│ │ ├── mastering-type.jpg
│ │ ├── typographic-style.jpg
│ │ └── thinking-with-type.jpg
│ └── index.html
├── kerning
│ ├── .DS_Store
│ └── index.html
├── full-screen
│ ├── .DS_Store
│ └── index.html
├── ligatures
│ ├── .DS_Store
│ └── index.html
├── line-length
│ ├── .DS_Store
│ └── index.html
├── small-caps
│ ├── .DS_Store
│ └── index.html
├── multi-column
│ ├── .DS_Store
│ └── index.html
├── hanging-punctuation
│ ├── .DS_Store
│ └── index.html
└── prism
│ ├── prism.css
│ └── prism.js
├── editorial
├── .DS_Store
├── img
│ ├── .DS_Store
│ ├── fig2-anti-alias.jpg
│ ├── fig3-new-yorker.jpg
│ ├── fig1-first-web-site.gif
│ └── fig5-typeface.svg
└── index.html
├── portfolio
├── .DS_Store
├── work
│ ├── .DS_Store
│ ├── img
│ │ ├── vietjazz.svg
│ │ ├── unitea.svg
│ │ ├── prowebtype.svg
│ │ └── miles-app.svg
│ └── index.html
├── index.html
├── about
│ └── index.html
└── style.css
├── text-wrap
├── .DS_Store
├── miles.jpg
├── miles-posing.png
├── prefixfree.min.js
└── index.html
├── animating-type
├── .DS_Store
├── slide-down.html
├── expand-open.html
└── fade-in.html
├── choosing-headings
├── .DS_Store
└── index.html
├── setting-paragraphs
├── .DS_Store
└── index.html
└── index.html
/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/visualgui/prowebtype/HEAD/.DS_Store
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # prowebtype
2 |
3 | Typographic demos for Professional Web Typography
4 |
--------------------------------------------------------------------------------
/resume/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/visualgui/prowebtype/HEAD/resume/.DS_Store
--------------------------------------------------------------------------------
/ampersands/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/visualgui/prowebtype/HEAD/ampersands/.DS_Store
--------------------------------------------------------------------------------
/css-demos/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/visualgui/prowebtype/HEAD/css-demos/.DS_Store
--------------------------------------------------------------------------------
/editorial/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/visualgui/prowebtype/HEAD/editorial/.DS_Store
--------------------------------------------------------------------------------
/portfolio/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/visualgui/prowebtype/HEAD/portfolio/.DS_Store
--------------------------------------------------------------------------------
/text-wrap/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/visualgui/prowebtype/HEAD/text-wrap/.DS_Store
--------------------------------------------------------------------------------
/text-wrap/miles.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/visualgui/prowebtype/HEAD/text-wrap/miles.jpg
--------------------------------------------------------------------------------
/css-demos/js/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/visualgui/prowebtype/HEAD/css-demos/js/.DS_Store
--------------------------------------------------------------------------------
/editorial/img/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/visualgui/prowebtype/HEAD/editorial/img/.DS_Store
--------------------------------------------------------------------------------
/animating-type/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/visualgui/prowebtype/HEAD/animating-type/.DS_Store
--------------------------------------------------------------------------------
/css-demos/widows/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/visualgui/prowebtype/HEAD/css-demos/widows/.DS_Store
--------------------------------------------------------------------------------
/portfolio/work/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/visualgui/prowebtype/HEAD/portfolio/work/.DS_Store
--------------------------------------------------------------------------------
/text-wrap/miles-posing.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/visualgui/prowebtype/HEAD/text-wrap/miles-posing.png
--------------------------------------------------------------------------------
/choosing-headings/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/visualgui/prowebtype/HEAD/choosing-headings/.DS_Store
--------------------------------------------------------------------------------
/css-demos/drop-cap/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/visualgui/prowebtype/HEAD/css-demos/drop-cap/.DS_Store
--------------------------------------------------------------------------------
/css-demos/flexbox/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/visualgui/prowebtype/HEAD/css-demos/flexbox/.DS_Store
--------------------------------------------------------------------------------
/css-demos/kerning/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/visualgui/prowebtype/HEAD/css-demos/kerning/.DS_Store
--------------------------------------------------------------------------------
/setting-paragraphs/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/visualgui/prowebtype/HEAD/setting-paragraphs/.DS_Store
--------------------------------------------------------------------------------
/css-demos/full-screen/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/visualgui/prowebtype/HEAD/css-demos/full-screen/.DS_Store
--------------------------------------------------------------------------------
/css-demos/ligatures/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/visualgui/prowebtype/HEAD/css-demos/ligatures/.DS_Store
--------------------------------------------------------------------------------
/css-demos/line-length/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/visualgui/prowebtype/HEAD/css-demos/line-length/.DS_Store
--------------------------------------------------------------------------------
/css-demos/small-caps/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/visualgui/prowebtype/HEAD/css-demos/small-caps/.DS_Store
--------------------------------------------------------------------------------
/css-demos/multi-column/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/visualgui/prowebtype/HEAD/css-demos/multi-column/.DS_Store
--------------------------------------------------------------------------------
/editorial/img/fig2-anti-alias.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/visualgui/prowebtype/HEAD/editorial/img/fig2-anti-alias.jpg
--------------------------------------------------------------------------------
/editorial/img/fig3-new-yorker.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/visualgui/prowebtype/HEAD/editorial/img/fig3-new-yorker.jpg
--------------------------------------------------------------------------------
/editorial/img/fig1-first-web-site.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/visualgui/prowebtype/HEAD/editorial/img/fig1-first-web-site.gif
--------------------------------------------------------------------------------
/css-demos/flexbox/img/mastering-type.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/visualgui/prowebtype/HEAD/css-demos/flexbox/img/mastering-type.jpg
--------------------------------------------------------------------------------
/css-demos/hanging-punctuation/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/visualgui/prowebtype/HEAD/css-demos/hanging-punctuation/.DS_Store
--------------------------------------------------------------------------------
/css-demos/flexbox/img/typographic-style.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/visualgui/prowebtype/HEAD/css-demos/flexbox/img/typographic-style.jpg
--------------------------------------------------------------------------------
/css-demos/flexbox/img/thinking-with-type.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/visualgui/prowebtype/HEAD/css-demos/flexbox/img/thinking-with-type.jpg
--------------------------------------------------------------------------------
/css-demos/prism/prism.css:
--------------------------------------------------------------------------------
1 | code[class*="language-"],pre[class*="language-"]{color:black;text-shadow:0 1px white;font-family:Consolas,Monaco,'Andale Mono',monospace;direction:ltr;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none}pre[class*="language-"]::-moz-selection,pre[class*="language-"]::-moz-selection,code[class*="language-"]::-moz-selection,code[class*="language-"]::-moz-selection{text-shadow:none;background:#b3d4fc}pre[class*="language-"]::selection,pre[class*="language-"]::selection,code[class*="language-"]::selection,code[class*="language-"]::selection{text-shadow:none;background:#b3d4fc}@media print{code[class*="language-"],pre[class*="language-"]{text-shadow:none}}pre[class*="language-"]{padding:1em;margin:.5em 0;overflow:auto}:not(pre) >code[class*="language-"],pre[class*="language-"]{background:#f5f2f0}:not(pre) >code[class*="language-"]{padding:.1em;border-radius:.3em}.token.comment,.token.prolog,.token.doctype,.token.cdata{color:slategray}.token.punctuation{color:#999}.namespace{opacity:.7}.token.property,.token.tag,.token.boolean,.token.number,.token.constant,.token.symbol,.token.deleted{color:#905}.token.selector,.token.attr-name,.token.string,.token.char,.token.builtin,.token.inserted{color:#690}.token.operator,.token.entity,.token.url,.language-css .token.string,.style .token.string{color:#a67f59;background:hsla(0,0%,100%,.5)}.token.atrule,.token.attr-value,.token.keyword{color:#07a}.token.function{color:#DD4A68}.token.regex,.token.important,.token.variable{color:#e90}.token.important{font-weight:bold}.token.entity{cursor:help}
2 |
--------------------------------------------------------------------------------
/animating-type/slide-down.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | Slide-Down Animation
7 |
8 |
9 |
10 |
11 |
70 |
71 |
72 |
73 |
74 |
75 |
76 | PROWEB TYPE
77 |
78 |
79 |
80 |
81 |
--------------------------------------------------------------------------------
/animating-type/expand-open.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | Expand Open
7 |
8 |
9 |
10 |
11 |
69 |
70 |
71 |
72 |
73 |
74 |
75 | PRO WEB TYPE
76 |
77 |
78 |
79 |
80 |
--------------------------------------------------------------------------------
/animating-type/fade-in.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | Fade-In Text
7 |
8 |
9 |
10 |
11 |
61 |
62 |
63 |
64 |
65 |
66 |
67 | PRO WEB TYPE
68 |
69 |
70 |
71 |
72 |
--------------------------------------------------------------------------------
/css-demos/widows/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | Widows
7 |
8 |
9 |
10 |
11 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 | Widows
51 |
52 |
53 |
54 | The stub-ends left when paragraphs end on the first line of a page are called widows . They have a past but not a future, and they look foreshortened and forlorn. It is the custom—in most, if not all, the world’s typographic cultures—to give them one additional line for company. This rule is applied in close conjunction with the next.
55 |
56 | Source: Robert Bringhurst’s The Elements of Typographic Style , (p.44)
57 |
58 |
59 | Syntax
60 | p {widows: 3;}
61 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
--------------------------------------------------------------------------------
/css-demos/ligatures/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | Ligatures
7 |
8 |
9 |
10 |
11 |
43 |
44 |
45 |
46 |
47 |
48 | Ligatures
49 |
50 |
51 |
52 | ff fi fl ffi ffl fk fh ft
53 |
54 | In most roman faces the letter f reaches into the space beyond it. In most italics, the f reaches into the space on both sides. Typographers call these overlap kerns . Only a few kerns, like those in the arm of the f and the tail of the j , are implicit in a normal typefont, while others, like the overlap in the combination To , are optional refinements, dependent of the letterforms.
55 | Reaching into the space in front of it, the arm of the f will collide with certain letters—b, f, h, i, j, k, l—and with question marks or parentheses, if these are in its way.
56 |
57 |
58 |
59 | Source: Robert Bringhurst’s The Elements of Typographic Style , (p.50)
60 |
61 | Syntax
62 | body {
63 | font-variant-ligatures: common-ligatures;
64 | }
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
--------------------------------------------------------------------------------
/portfolio/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Donny Truong: Home
6 |
7 |
8 |
21 |
22 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
44 |
45 |
46 |
47 |
52 |
53 |
54 |
55 |
56 | Hi, I am Donny , a web designer with a passion for typography.
57 |
58 |
59 |
60 |
61 |
62 |
70 |
71 |
72 |
75 |
76 |
77 |
78 |
79 |
--------------------------------------------------------------------------------
/css-demos/kerning/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | Kerning
7 |
8 |
9 |
10 |
11 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 | Kerning
55 |
56 | Inconsistencies in letterfit are inescapable, given the forms of the Latin alphabet, and small irregularities are after all essential to the legibility of roman type. Kerning —altering the space between selected pairs of letters—can increase consistency of spacing in a word like Washington or Toronto, where the combinations of Wa and To are kerned.
57 |
58 | Source: Robert Bringhurst’s The Elements of Typographic Style , (p.32–33)
59 |
60 |
61 |
Wa shington
62 | No kern
63 |
64 | Wa shington
65 | Kerned
66 |
67 | To ronto
68 | No kern
69 |
70 | To ronto
71 | Kerned
72 |
73 |
74 |
75 |
76 | Syntax
77 | body {font-kerning: normal;}
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
--------------------------------------------------------------------------------
/css-demos/full-screen/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | Full Screen
7 |
8 |
9 |
10 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
Congratulations!
78 |
79 |
80 |
81 |
82 |
83 |
Today is your day.
84 |
85 |
86 |
87 |
88 |
89 |
You’re off to Great Places!
90 |
91 |
92 |
93 |
94 |
95 |
You’re off & away!
96 |
97 |
98 |
99 |
100 |
101 |
102 |
By Dr. Seuss
103 |
104 |
105 |
106 |
107 |
108 |
Syntax
109 |
section { height: 100vh; }
110 |
111 |
112 |
113 |
114 |
115 |
116 |
117 |
118 |
119 |
--------------------------------------------------------------------------------
/css-demos/small-caps/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | Small Caps
7 |
8 |
9 |
10 |
11 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 | Small Caps
54 |
55 | Genuine small caps are not simply shrunken versions of the full caps. They differ from large caps in stroke weight, letterfit and internal proportions as well as in height. Any good set of small caps is designed as such from the ground up. Thickening, shrinking and squashing the full caps with digital modification routines will only produce a parody.
56 |
57 | Source: Robert Bringhurst’s The Elements of Typographic Style , (p.48)
58 |
59 |
60 |
61 | Example
62 | Thus: 3:00 am , 3:00 pm , the ninth century ce , 450 bc to ad 450, the oas and nato ; World War ii or wwii ; but JFK and Fr J.A.S. O’Brien, omi ; hms Hypothesis and uss Ticonderoga ; Washington, DC, and Mexico, DF; J.S.Bach’s Prelude and Fugue in B♭ minor, bwv 867.
63 |
64 | Source: Robert Bringhurst’s The Elements of Typographic Style , (p.48)
65 |
66 |
67 |
Syntax
68 | span { font-variant: common-ligatures, small-caps;
69 | /*fallback*/ font-family: 'Alegreya Sans SC', sans-serif;}
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
--------------------------------------------------------------------------------
/css-demos/js/dropcap.min.js:
--------------------------------------------------------------------------------
1 | /*
2 | Copyright 2014 Adobe Systems Incorporated. Licensed under the Apache 2.0 License.
3 | http://www.apache.org/licenses/LICENSE-2.0.html
4 | */
5 |
6 | !function(){"use strict";function a(a){var b=parseFloat(a.fontSize),c="normal"===a.lineHeight?q*b:parseFloat(a.lineHeight);return{leading:c-b,lineHeight:c,fontSize:b}}function b(a){var b=a.createElement("div");return b.style.position="fixed",b.style.padding=p,b.style.opacity="0",b.style.fontSize=o,b.style.lineHeight="1",a.body.appendChild(b),b}function c(a){var b=a.ownerDocument.createElement("span");return b.textContent=m,a&&a.appendChild(b),b}function d(a){a.ownerDocument.body.removeChild(a)}function e(a,b,c,d){function e(a,b){var c=4*b,d=a.data[c],e=a.data[c+1],f=a.data[c+2];return 0===d||0===e||0===f?!0:!1}var f=-1,g=document.createElement("canvas");g.width=c,g.height=d,a.appendChild(g);var h=g.getContext("2d");h.font=o+" "+b,h.fillStyle="#ffffff",h.fillRect(0,0,h.canvas.width,h.canvas.height),h.fillStyle="#000000",h.textBaseline="top",h.fillText("E",0,0);for(var i=h.getImageData(Math.ceil(g.width/2),0,1,g.height),j=null,k=g.height-1;k>=0;k--)if(e(i,k)){j=k;break}for(var k=0;kd){var x=parseFloat(n.marginTop);l.style.marginTop=g(x+-1*w)}var y=0;i(k)?y=v*(1-o.baselineRatio):h(k)&&(y=v-u),k.style.height=g(u+y);var z=k.dcapjsStrut;z||(z=e.createElement("span"),z.style.display="inline-block",k.appendChild(z),k.dcapjsStrut=z),z.style.height=g(u)}function l(a){function b(a){return a in c.style}var c=window.document.body?window.document.body:document.createElement("div");if(b(a))return a;for(var d=["-webkit-","-moz-","-ms-","-o"],e=0;eb||c&&1>c)throw new RangeError("Dropcap.layout expects the baseline position and height to be 1 or above");if(a instanceof HTMLElement)k(a,b,c);else{if(!(a instanceof NodeList))throw new TypeError("Dropcap.layout expects a single HTMLElement or a NodeList");var e=Array.prototype.forEach;e.call(a,function(a){k(a,b,c)})}}}}();
--------------------------------------------------------------------------------
/portfolio/work/img/vietjazz.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
30 |
31 |
32 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
--------------------------------------------------------------------------------
/portfolio/work/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Donny Truong: Work
6 |
7 |
20 |
21 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
42 |
43 |
44 |
45 |
50 |
51 |
52 |
53 |
54 |
55 | Work
56 |
57 |
58 |
59 | Professional Web Typography
60 |
61 |
62 | Wrote, designed, and published a web-based book as a graduate independent study (Practices in Graphic Design).
63 |
64 |
65 |
66 |
67 | Vietjazz
68 |
69 |
70 | Vietjazz is a recording company I created for a branding class. The concept was to connect Vietnamese ballad with jazz. I designed the logo, stationery and applications. I also developed a responsive web site for the brand guidelines.
71 |
72 |
73 |
74 | Sketches of Miles
75 |
76 |
77 | Created a tablet app prototype for my graduate course on Professional Design Practices.
78 |
79 |
80 |
81 |
82 | Unitea
83 |
84 |
85 | Unitea is a fictitious tea company I developed for the final project of my graduate design seminar. The goal was to build a brand with a unique story.
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
101 |
102 |
103 |
106 |
107 |
108 |
109 |
--------------------------------------------------------------------------------
/portfolio/about/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Donny Truong: About
6 |
7 |
20 |
21 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
41 |
42 |
43 |
44 |
49 |
50 |
51 |
52 |
53 |
54 | About
55 |
56 | Donny Truong is a designer with a passion for typography and a developer with an appreciation for the command line. He enjoys crafting digital products that centered in user experience . He is web services developer for the George Mason University’s School of Law . He received his BA in Digital Arts & Multimedia Design at La Salle University and is pursuing his MA in graphic design at George Mason University’s School of Art .
57 |
58 |
59 | Contact
60 | Donny can be reached via email , Twitter or LinkedIn . His résumé is available online.
61 |
62 |
63 | Colophon
64 | This site is designed and hand-coded by Donny Truong. The typeface is Raleway . The fonts are served through Google Fonts . The site, which might render goofy in outdated browser , is built with modern HTML and CSS.
65 |
66 |
67 |
68 |
83 |
84 |
85 |
--------------------------------------------------------------------------------
/css-demos/flexbox/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | Flexbox
7 |
8 |
9 |
10 |
11 |
12 |
76 |
77 |
78 |
79 |
80 |
81 |
82 | Typographic Books
83 |
84 |
85 |
86 |
87 |
88 |
The Elements of Typographic Style
89 |
ROBERT BRINGHURST
90 |
The essential type book to be read at least once a year.
91 |
92 |
93 |
94 |
95 |
96 |
Thinking With Type
97 |
ELLEN LUPTON
98 |
A rare gem—a book on typography that is as thoughtfully explained as it is designed.
99 |
100 |
101 |
102 |
103 |
Mastering Type
104 |
DENISE BOSLER
105 |
From leading to legibility, Bosler provides insightful guides and good-vs.-bad examples on typography.
106 |
107 |
108 |
109 |
110 |
111 |
112 |
113 |
114 |
115 |
116 | .books {
117 | display: flex;
118 | flex-direction: row;
119 | flex-wrap: wrap;
120 | align-items: stretch;
121 | justify-content: space-between;
122 | }
123 |
124 | .book {
125 | padding-right: 1em;
126 | flex:1;
127 | }
128 |
129 |
130 |
131 |
132 |
133 |
134 |
--------------------------------------------------------------------------------
/css-demos/line-length/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | Line Length
7 |
8 |
9 |
10 |
11 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 | Choose a comfortable measure
57 |
58 | Anything from 45 to 75 characters is widely regarded as a satisfactory length of line for a single-column page set in a serifed text face in a text size. The 66-character line (counting both letters and spaces) is widely regarded as ideal. For multiple-column work, a better average is 40 to 50 characters.
59 |
60 | Source: Robert Bringhurst’s The Elements of Typographic Style , (p.26)
61 |
62 |
63 | Examples
64 |
65 | Use CSS’s ch unit (the advance measure of the glyph ‘0’) to determine the comfortable reading measure
66 |
67 |
68 | Line length of the 47-character zero
69 |
70 | Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.
71 |
72 | p {max-width: 47ch;}
73 |
74 |
75 | Line length of the 67-character zero
76 |
77 | Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo. Quisque sit amet est et sapien ullamcorper pharetra. Vestibulum erat wisi, condimentum sed, commodo vitae, ornare sit amet, wisi. Aenean fermentum, elit eget tincidunt condimentum, eros ipsum rutrum orci, sagittis tempus lacus enim ac dui. Donec non enim in turpis pulvinar facilisis. Ut felis. Praesent dapibus, neque id cursus faucibus, tortor neque egestas augue, eu vulputate magna eros eu erat. Aliquam erat volutpat. Nam dui mi, tincidunt quis, accumsan porttitor, facilisis luctus, metus.
78 |
79 |
80 |
81 |
82 | p {max-width: 67ch;}
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
--------------------------------------------------------------------------------
/css-demos/hanging-punctuation/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | Hanging Punctuation
7 |
8 |
9 |
10 |
11 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 | Hanging Punctuation
57 |
58 |
59 | Ellen Lupton’s Thinking with Type , (p.58):
60 |
61 | “Hanging punctuation” prevents quotations and other marks from taking a bite out of the crisp left edge of a text block.
62 |
63 |
64 | Syntax
65 | blockquote p {
66 | /*Currently not supported*/
67 | hanging-punctuation: first;
68 |
69 | /*fallback*/
70 | text-indent: -0.5em;}
71 |
72 |
73 | Avoid overpunctuating lists.
74 |
75 | A list is an inherently spacial and numerical arrangement. Speakers reciting lists often enumerate on their fingers, and lists set in type often call for equivalent typography gestures. This means that the list should be clarified as much as possible through spatial positioning and pointing, usually done with bullets, dashes or numerals. If the numbers are made visible either through prominence (e.g., by setting them in a contrasting face), additional punctuation—extra periods, parentheses or the like—should rarely be required.
76 |
77 | Source: Robert Bringhurst’s The Elements of Typographic Style , (p.71)
78 |
79 |
80 | Recommended Reading
81 |
82 | Detail In Typography by Jost Hochuli
83 | Inside Paragraphs: Typographic Fundamentals by Cyrus Highsmith
84 | Shaping Text: Type, Typography and the Reader by Jan Middendrop
85 |
86 |
87 |
88 | Jan Tschichold’s New Typographic Rules
89 |
90 | Fewest possible typefaces
91 | Fewest possible type sizes
92 | No letterspacing of lowercase (which was then still used for emphasis in German-speaking countries)
93 | Emphasis by using italic or bold of the same face
94 | Use of capitals only as an exception, then carefully letterspaced
95 | Format text lines into not more than three groups
96 |
97 |
98 |
99 |
100 | Syntax
101 | ul, ol {margin: 0; padding: 0}
102 |
103 |
104 |
105 |
106 |
107 |
108 |
109 |
--------------------------------------------------------------------------------
/portfolio/style.css:
--------------------------------------------------------------------------------
1 | /* Donny Truong Portfolio */
2 |
3 | body {
4 | background-color:#fff;
5 | color:#222;
6 | font: 100%/1.6 'Raleway', 'Helvetica Neue', Helvetica , Arial, sans-serif;
7 | font-weight:300;
8 | margin:0 auto;
9 | padding: 0 1em;
10 | text-align: left;
11 | }
12 |
13 |
14 | /* Styling links*/
15 | a {
16 | color: #ee2418;
17 | text-decoration:none;
18 | transition: all .5s ease;
19 | }
20 | a:visited {
21 | color: #ee2418;
22 | }
23 |
24 | a:hover {
25 | color: #000;
26 | }
27 |
28 |
29 | /* Making images responsive */
30 | img {
31 | border: 1px solid #f1f1f1;
32 | height: auto;
33 | margin-top: 1em;
34 | width: 100%;
35 | }
36 |
37 |
38 | h1, h2, h3 {
39 | font-weight: 900;
40 | margin:0;
41 | padding:0;
42 | }
43 |
44 | h1 {
45 | font-size: 1.875em; /*30px*/
46 | margin-top: .5em;
47 | text-transform: uppercase;
48 | }
49 |
50 | a h3,
51 | a:visited h3,
52 | h1 a,
53 | h1 a:visited {
54 | color: #444;
55 | }
56 |
57 | a:hover h3,
58 | h1 a:hover {
59 | color: #ee2418;
60 | }
61 |
62 | h2 {
63 | font-size: 2.5em; /*40px*/
64 | line-height:1.1;
65 | }
66 |
67 | h3 {
68 | font-size: 1.25em; /* 20px*/
69 | margin: 1.5em 0 0 0;
70 | line-height:1;
71 | }
72 |
73 | .work p {
74 | border-bottom: 2px solid #444;
75 | margin-bottom: 3em;
76 | padding-bottom: 4em;
77 | }
78 |
79 | .work p:last-child {
80 | border:none;
81 | margin: 0;
82 | padding: 0;
83 | }
84 |
85 |
86 | ul {
87 | margin: 0;
88 | }
89 |
90 | ul li li {
91 | margin: 0 0 0 1em;}
92 |
93 |
94 | .more-info ul,
95 | nav ul {
96 | list-style: none;
97 | padding: 0;
98 | margin: 0 ;
99 | }
100 |
101 |
102 | .main-nav {
103 | border-bottom: 3px solid #444;
104 | font-weight: 900;
105 | margin: 1em 0 2em 0;
106 | padding: 0 0 2em 0;
107 | }
108 |
109 | .main-nav li {
110 | display: inline;
111 | letter-spacing: .1em;
112 | padding: 0 2em 0 0;
113 | text-transform: uppercase;
114 | }
115 |
116 | .main-nav li a {
117 | color:#444;
118 | }
119 |
120 | .main-nav li a:hover,
121 | .main-nav li.active a {
122 | color:#ee2418;
123 | }
124 |
125 | .main-content {
126 | padding-bottom: 1em;
127 | }
128 |
129 | .footer-info,
130 | .more-info {
131 | border-top: 1px solid #000;
132 | font-size: 0.875em; /*14px*/
133 | margin: 1em 0;
134 | padding: 1em 0 0 0;
135 | }
136 |
137 |
138 |
139 |
140 | /* ------------------------------------------------------------------------------------------------------------------------------------------- */
141 |
142 | @media only screen and (min-width: 40em) /*640px*/ {
143 |
144 | body {
145 | max-width:58.75em; /*940px*/
146 | }
147 |
148 |
149 | .banner {
150 | border-bottom: 3px solid #444;
151 | margin-bottom: 2em;
152 | padding-bottom: 1em;
153 | width: 100%;
154 | }
155 |
156 | h1 {
157 | font-size: 2.313em; /*37px*/
158 | }
159 |
160 |
161 | h2 {
162 | font-size: 6.25em; /*100px*/
163 | line-height: 1.15;
164 | margin-bottom:.2em;
165 | }
166 |
167 | h3 {
168 | font-size: 2.500em; /*40px*/
169 | }
170 |
171 | .main-nav {
172 | border:none;
173 | float: left;
174 | margin: 1em 0 0 0;
175 | padding: 0;
176 | width: 15%; /* 140px/940px*/
177 | }
178 |
179 | .main-nav li {
180 | display: block;
181 | margin: 0 0 .3em 0;
182 | padding: 0;
183 | }
184 |
185 |
186 | .main-content {
187 | float: right;
188 | margin:0;
189 | width: 83%; /*780px/940px*/
190 | }
191 |
192 |
193 | .wrap {
194 | border-top: 3px solid #444;
195 | float: left;
196 | margin-top: 2em;
197 | width: 100%;
198 | }
199 |
200 | .more-info {
201 | border: none;
202 | float: right;
203 | }
204 |
205 | .more-info li {
206 | display: inline;
207 | padding: 0 0 0 2em;
208 | }
209 |
210 | .footer-info {
211 | border: none;
212 | float: left;
213 | }
214 |
215 |
216 | } /*close media query*/
217 |
218 |
219 |
220 |
221 | /* ------------------------------------------------------------------------------------------------------------------------------------------- */
222 | @media print {
223 |
224 | body {
225 | width: 100%;
226 | margin: 0;
227 | padding: 1em;
228 | font-size: 12pt;
229 | line-height: 1.5; }
230 |
231 | h1, h2, h3 {
232 | font-size: 14pt;
233 | }
234 |
235 | /* links */
236 | a:link,
237 | a:visited {
238 | color: #333;
239 | text-decoration: none;
240 | }
241 |
242 | /* hide */
243 | .main-nav,
244 | .more-info {
245 | display: none;
246 | }
247 |
248 | } /*close media query*/
249 |
250 |
251 |
252 |
253 |
254 |
--------------------------------------------------------------------------------
/css-demos/drop-cap/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | Drop cap
7 |
8 |
9 |
10 |
11 |
60 |
61 |
62 |
63 |
64 |
65 | Drop cap CSS
66 |
67 |
68 |
69 | Another excellent method of making the start of the text, inherited from ancient scribal practice, is a large initial capital: a versal or lettrine. Versals can be treated in many ways. Indented or centered, they can stick up from the text. Flush left, they can be nested into text (typographers call these drop caps, as oppose to elevated or stick-up caps.) If there is room, they can hang in left margin. They can be set in the same face as the text or something outlandishly different. In scribal and typographic tradition alike, where the budget permits, versals too are generally red or another color in preference to black.
70 |
71 |
72 | Source: Robert Bringhurst’s The Elements of Typographic Style , (p.63)
73 |
74 |
75 |
Syntax
76 |
77 |
78 | p:first-of-type:first-letter {
79 | font-size: 6.8em;
80 | padding:.12em .1em 0 0;
81 | margin: 0;
82 | float: left;
83 | line-height: .8;
84 | font-family: 'Bevan', cursive;
85 | font-weight:400;
86 | color: red;
87 | }
88 |
89 | /* Clear Drop cap on blockquote*/
90 | blockquote p:first-of-type:first-letter {
91 | font-size: 1em;
92 | padding: 0; float: none;
93 | font-family:'Lato', sans-serif;
94 | font-weight:400;
95 | }
96 |
97 |
98 |
99 | Dropcap.js
100 |
101 |
102 |
103 | A nother excellent method of making the start of the text, inherited from ancient scribal practice, is a large initial capital: a versal or lettrine. Versals can be treated in many ways. Indented or centered, they can stick up from the text. Flush left, they can be nested into text (typographers call these drop caps, as oppose to elevated or stick-up caps.) If there is room, they can hang in left margin. They can be set in the same face as the text or something outlandishly different. In scribal and typographic tradition alike, where the budget permits, versals too are generally red or another color in preference to black.
104 |
105 |
106 | Source: Robert Bringhurst’s The Elements of Typographic Style , (p.63)
107 |
108 |
109 |
110 |
Syntax
111 |
112 |
113 | <script src='../js/dropcap.min.js'></script>
114 | <script>
115 | var dropcaps = document.querySelectorAll(".dropcap");
116 | window.Dropcap.layout(dropcaps, 3);
117 | </script>
118 |
119 |
120 |
121 |
122 |
123 |
124 |
125 |
129 |
130 |
131 |
132 |
133 |
134 |
135 |
--------------------------------------------------------------------------------
/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | Donny Truong: Home
7 |
8 |
9 |
10 |
11 |
12 |
136 |
137 |
138 |
139 |
140 |
141 |
144 |
145 |
146 |
147 |
148 | Professional Web Typography
149 |
150 |
151 |
152 |
153 |
154 |
162 |
163 |
164 |
167 |
168 |
169 |
170 |
--------------------------------------------------------------------------------
/text-wrap/prefixfree.min.js:
--------------------------------------------------------------------------------
1 | /**
2 | * StyleFix 1.0.3 & PrefixFree 1.0.7
3 | * @author Lea Verou
4 | * MIT license
5 | */(function(){function t(e,t){return[].slice.call((t||document).querySelectorAll(e))}if(!window.addEventListener)return;var e=window.StyleFix={link:function(t){try{if(t.rel!=="stylesheet"||t.hasAttribute("data-noprefix"))return}catch(n){return}var r=t.href||t.getAttribute("data-href"),i=r.replace(/[^\/]+$/,""),s=t.parentNode,o=new XMLHttpRequest,u;o.onreadystatechange=function(){o.readyState===4&&u()};u=function(){var n=o.responseText;if(n&&t.parentNode&&(!o.status||o.status<400||o.status>600)){n=e.fix(n,!0,t);if(i){n=n.replace(/url\(\s*?((?:"|')?)(.+?)\1\s*?\)/gi,function(e,t,n){return/^([a-z]{3,10}:|\/|#)/i.test(n)?e:'url("'+i+n+'")'});var r=i.replace(/([\\\^\$*+[\]?{}.=!:(|)])/g,"\\$1");n=n.replace(RegExp("\\b(behavior:\\s*?url\\('?\"?)"+r,"gi"),"$1")}var u=document.createElement("style");u.textContent=n;u.media=t.media;u.disabled=t.disabled;u.setAttribute("data-href",t.getAttribute("href"));s.insertBefore(u,t);s.removeChild(t);u.media=t.media}};try{o.open("GET",r);o.send(null)}catch(n){if(typeof XDomainRequest!="undefined"){o=new XDomainRequest;o.onerror=o.onprogress=function(){};o.onload=u;o.open("GET",r);o.send(null)}}t.setAttribute("data-inprogress","")},styleElement:function(t){if(t.hasAttribute("data-noprefix"))return;var n=t.disabled;t.textContent=e.fix(t.textContent,!0,t);t.disabled=n},styleAttribute:function(t){var n=t.getAttribute("style");n=e.fix(n,!1,t);t.setAttribute("style",n)},process:function(){t('link[rel="stylesheet"]:not([data-inprogress])').forEach(StyleFix.link);t("style").forEach(StyleFix.styleElement);t("[style]").forEach(StyleFix.styleAttribute)},register:function(t,n){(e.fixers=e.fixers||[]).splice(n===undefined?e.fixers.length:n,0,t)},fix:function(t,n,r){for(var i=0;i-1&&(e=e.replace(/(\s|:|,)(repeating-)?linear-gradient\(\s*(-?\d*\.?\d*)deg/ig,function(e,t,n,r){return t+(n||"")+"linear-gradient("+(90-r)+"deg"}));e=t("functions","(\\s|:|,)","\\s*\\(","$1"+s+"$2(",e);e=t("keywords","(\\s|:)","(\\s|;|\\}|$)","$1"+s+"$2$3",e);e=t("properties","(^|\\{|\\s|;)","\\s*:","$1"+s+"$2:",e);if(n.properties.length){var o=RegExp("\\b("+n.properties.join("|")+")(?!:)","gi");e=t("valueProperties","\\b",":(.+?);",function(e){return e.replace(o,s+"$1")},e)}if(r){e=t("selectors","","\\b",n.prefixSelector,e);e=t("atrules","@","\\b","@"+s+"$1",e)}e=e.replace(RegExp("-"+s,"g"),"-");e=e.replace(/-\*-(?=[a-z]+)/gi,n.prefix);return e},property:function(e){return(n.properties.indexOf(e)?n.prefix:"")+e},value:function(e,r){e=t("functions","(^|\\s|,)","\\s*\\(","$1"+n.prefix+"$2(",e);e=t("keywords","(^|\\s)","(\\s|$)","$1"+n.prefix+"$2$3",e);return e},prefixSelector:function(e){return e.replace(/^:{1,2}/,function(e){return e+n.prefix})},prefixProperty:function(e,t){var r=n.prefix+e;return t?StyleFix.camelCase(r):r}};(function(){var e={},t=[],r={},i=getComputedStyle(document.documentElement,null),s=document.createElement("div").style,o=function(n){if(n.charAt(0)==="-"){t.push(n);var r=n.split("-"),i=r[1];e[i]=++e[i]||1;while(r.length>3){r.pop();var s=r.join("-");u(s)&&t.indexOf(s)===-1&&t.push(s)}}},u=function(e){return StyleFix.camelCase(e)in s};if(i.length>0)for(var a=0;a600)){n=e.fix(n,!0,t);if(i){n=n.replace(/url\(\s*?((?:"|')?)(.+?)\1\s*?\)/gi,function(e,t,n){return/^([a-z]{3,10}:|\/|#)/i.test(n)?e:'url("'+i+n+'")'});var r=i.replace(/([\\\^\$*+[\]?{}.=!:(|)])/g,"\\$1");n=n.replace(RegExp("\\b(behavior:\\s*?url\\('?\"?)"+r,"gi"),"$1")}var u=document.createElement("style");u.textContent=n;u.media=t.media;u.disabled=t.disabled;u.setAttribute("data-href",t.getAttribute("href"));s.insertBefore(u,t);s.removeChild(t);u.media=t.media}};try{o.open("GET",r);o.send(null)}catch(n){if(typeof XDomainRequest!="undefined"){o=new XDomainRequest;o.onerror=o.onprogress=function(){};o.onload=u;o.open("GET",r);o.send(null)}}t.setAttribute("data-inprogress","")},styleElement:function(t){if(t.hasAttribute("data-noprefix"))return;var n=t.disabled;t.textContent=e.fix(t.textContent,!0,t);t.disabled=n},styleAttribute:function(t){var n=t.getAttribute("style");n=e.fix(n,!1,t);t.setAttribute("style",n)},process:function(){t('link[rel="stylesheet"]:not([data-inprogress])').forEach(StyleFix.link);t("style").forEach(StyleFix.styleElement);t("[style]").forEach(StyleFix.styleAttribute)},register:function(t,n){(e.fixers=e.fixers||[]).splice(n===undefined?e.fixers.length:n,0,t)},fix:function(t,n,r){for(var i=0;i-1&&(e=e.replace(/(\s|:|,)(repeating-)?linear-gradient\(\s*(-?\d*\.?\d*)deg/ig,function(e,t,n,r){return t+(n||"")+"linear-gradient("+(90-r)+"deg"}));e=t("functions","(\\s|:|,)","\\s*\\(","$1"+s+"$2(",e);e=t("keywords","(\\s|:)","(\\s|;|\\}|$)","$1"+s+"$2$3",e);e=t("properties","(^|\\{|\\s|;)","\\s*:","$1"+s+"$2:",e);if(n.properties.length){var o=RegExp("\\b("+n.properties.join("|")+")(?!:)","gi");e=t("valueProperties","\\b",":(.+?);",function(e){return e.replace(o,s+"$1")},e)}if(r){e=t("selectors","","\\b",n.prefixSelector,e);e=t("atrules","@","\\b","@"+s+"$1",e)}e=e.replace(RegExp("-"+s,"g"),"-");e=e.replace(/-\*-(?=[a-z]+)/gi,n.prefix);return e},property:function(e){return(n.properties.indexOf(e)?n.prefix:"")+e},value:function(e,r){e=t("functions","(^|\\s|,)","\\s*\\(","$1"+n.prefix+"$2(",e);e=t("keywords","(^|\\s)","(\\s|$)","$1"+n.prefix+"$2$3",e);return e},prefixSelector:function(e){return e.replace(/^:{1,2}/,function(e){return e+n.prefix})},prefixProperty:function(e,t){var r=n.prefix+e;return t?StyleFix.camelCase(r):r}};(function(){var e={},t=[],r={},i=getComputedStyle(document.documentElement,null),s=document.createElement("div").style,o=function(n){if(n.charAt(0)==="-"){t.push(n);var r=n.split("-"),i=r[1];e[i]=++e[i]||1;while(r.length>3){r.pop();var s=r.join("-");u(s)&&t.indexOf(s)===-1&&t.push(s)}}},u=function(e){return StyleFix.camelCase(e)in s};if(i.length>0)for(var a=0;a
2 |
3 |
4 |
6 |
7 |
16 |
26 |
34 |
39 |
46 |
57 |
58 |
60 |
62 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
--------------------------------------------------------------------------------
/css-demos/prism/prism.js:
--------------------------------------------------------------------------------
1 | /* http://prismjs.com/download.html?themes=prism&languages=markup+css+clike+javascript */
2 | self="undefined"!=typeof window?window:"undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope?self:{};var Prism=function(){var e=/\blang(?:uage)?-(?!\*)(\w+)\b/i,t=self.Prism={util:{encode:function(e){return e instanceof n?new n(e.type,t.util.encode(e.content),e.alias):"Array"===t.util.type(e)?e.map(t.util.encode):e.replace(/&/g,"&").replace(/e.length)break e;if(!(d instanceof a)){c.lastIndex=0;var m=c.exec(d);if(m){u&&(f=m[1].length);var y=m.index-1+f,m=m[0].slice(f),v=m.length,k=y+v,b=d.slice(0,y+1),w=d.slice(k+1),N=[p,1];b&&N.push(b);var O=new a(l,g?t.tokenize(m,g):m,h);N.push(O),w&&N.push(w),Array.prototype.splice.apply(r,N)}}}}}return r},hooks:{all:{},add:function(e,n){var a=t.hooks.all;a[e]=a[e]||[],a[e].push(n)},run:function(e,n){var a=t.hooks.all[e];if(a&&a.length)for(var r,i=0;r=a[i++];)r(n)}}},n=t.Token=function(e,t,n){this.type=e,this.content=t,this.alias=n};if(n.stringify=function(e,a,r){if("string"==typeof e)return e;if("[object Array]"==Object.prototype.toString.call(e))return e.map(function(t){return n.stringify(t,a,e)}).join("");var i={type:e.type,content:n.stringify(e.content,a,r),tag:"span",classes:["token",e.type],attributes:{},language:a,parent:r};if("comment"==i.type&&(i.attributes.spellcheck="true"),e.alias){var l="Array"===t.util.type(e.alias)?e.alias:[e.alias];Array.prototype.push.apply(i.classes,l)}t.hooks.run("wrap",i);var o="";for(var s in i.attributes)o+=s+'="'+(i.attributes[s]||"")+'"';return"<"+i.tag+' class="'+i.classes.join(" ")+'" '+o+">"+i.content+""+i.tag+">"},!self.document)return self.addEventListener?(self.addEventListener("message",function(e){var n=JSON.parse(e.data),a=n.language,r=n.code;self.postMessage(JSON.stringify(t.util.encode(t.tokenize(r,t.languages[a])))),self.close()},!1),self.Prism):self.Prism;var a=document.getElementsByTagName("script");return a=a[a.length-1],a&&(t.filename=a.src,document.addEventListener&&!a.hasAttribute("data-manual")&&document.addEventListener("DOMContentLoaded",t.highlightAll)),self.Prism}();"undefined"!=typeof module&&module.exports&&(module.exports=Prism);;
3 | Prism.languages.markup={comment://g,prolog:/<\?.+?\?>/,doctype://,cdata://i,tag:{pattern:/<\/?[\w:-]+\s*(?:\s+[\w:-]+(?:=(?:("|')(\\?[\w\W])*?\1|[^\s'">=]+))?\s*)*\/?>/gi,inside:{tag:{pattern:/^<\/?[\w:-]+/i,inside:{punctuation:/^<\/?/,namespace:/^[\w-]+?:/}},"attr-value":{pattern:/=(?:('|")[\w\W]*?(\1)|[^\s>]+)/gi,inside:{punctuation:/=|>|"/g}},punctuation:/\/?>/g,"attr-name":{pattern:/[\w:-]+/g,inside:{namespace:/^[\w-]+?:/}}}},entity:/\?[\da-z]{1,8};/gi},Prism.hooks.add("wrap",function(t){"entity"===t.type&&(t.attributes.title=t.content.replace(/&/,"&"))});;
4 | Prism.languages.css={comment:/\/\*[\w\W]*?\*\//g,atrule:{pattern:/@[\w-]+?.*?(;|(?=\s*{))/gi,inside:{punctuation:/[;:]/g}},url:/url\((["']?).*?\1\)/gi,selector:/[^\{\}\s][^\{\};]*(?=\s*\{)/g,property:/(\b|\B)[\w-]+(?=\s*:)/gi,string:/("|')(\\?.)*?\1/g,important:/\B!important\b/gi,punctuation:/[\{\};:]/g,"function":/[-a-z0-9]+(?=\()/gi},Prism.languages.markup&&Prism.languages.insertBefore("markup","tag",{style:{pattern:/
80 |
81 |
82 |
83 |
84 |
85 |
86 | Designing With Miles
87 |
88 |
89 |
90 | Miles Davis opened up my ears and introduced me to the world of jazz and fusion, but beyond that he changed the way I do my professional work. While Davis who reinvented jazz at least five times was constantly changing his musical direction, he was also refining and redefining his sound. His choices of notes were thoughtful and his phrasings were meaningful. The notes he left out were as essentials as the notes he played.
91 |
92 | As I listened to Davis’s music, particularly his quintessential Kind of Blue , I began to change my design approach. Davis’s improvisations in “So What,” “Freddie Freeloader” and “All Blues” were complete opposite from John Coltrane’s and Cannonball Adderley’s. Whereas Coltrane and Adderley played swift, blazing solos, Davis played only the most telling notes. In a similar way, I began to see the important elements emerge in my design as I stripped away decorative ones. I came to realize that design is not only what I put in, but also what I left out.
93 |
94 | While the process sounds easy, it took me tremendous amount of time and decision to accomplish. In many occasions, I keep turning on and off layers in Photoshop, Illustrator or even Cascading Style Sheet (CSS) to figure out whether I should leave in or take out a certain elements without over-simplifying the design. Coltrane had similar problem in his early career. He was having a hard time finding the right place to end his solo; therefore, he sought Davis for advice. Davis suggested, “Take the horn out of your mouth.”
95 |
96 |
97 |
98 | In addition to being one of the world greatest trumpet players, Davis was also a master of communication. The recording of “Autumn Leaves” (with Adderley as the leader) is a brilliant example of Davis’s power of precision and command. After a brief intro from the quintet, which includes Hank Jones on piano, Art Blakey on drums and Sam Jones on bass, Davis cut straight to the melodic core. Each note he played on his muted trumpet struck the emotional cord: brooding, melancholy and hauntingly clear. In my own work, I explore emotional design through the practice of selection and the art of reduction. Whether working with colors, types or images, I would choose the ones that give the most emotional value to my design. I have also learned to cut out the non-essential parts and applied more detail to essence.
99 |
100 | Using space, another design-related element, was one of the techniques Davis had acquired in his early career. With the rise of bebop in the 1950s, every jazz musician at the time wanted to play like Charlie Parker and Dizzy Gillespie. They filled in as many notes as they could into their improvisation. In contrast, Davis left plenty of space in his phrasing. As a result, he let his melodic lines breathe and gave listeners a chance to absorb his music.
101 |
102 | When I first started doing creative work, I crammed as much elements as I could into my design. My first web page was filled with at least four different typefaces, animated GIFs (Graphical Interchangeable Format) and unrelated colors. Later on, I learned the concept of using space to make the key message stronger through one of Davis’s fusion albums titled Bitches Brew . In exploring the jazz-rock territory, Davis gave his rhythm section, which was made up of four drummers, three electric keyboardists and two bassists, the freedom to work out its chaotic, organic groove. He only came in to play when he had something to say. Every time he blew his horn, however, he created the order out of the disorder. Likewise, my responsibility as a designer is to take the client contents and organize them into a logical sense. While Davis had demonstrated that space in music creates harmony and balance, white space in web design can also create harmonious layouts and free the eye from clutter. The correct use of white space not only brings out the content, but also enhances readability.
103 |
104 |
105 | In his late career, Davis experimented with funk, rock, electric, pre-recorded orchestration and even hip-hop backbeat. The way he played opened my ears once again on the art of adaptation. Because he was such a versatile and flexible trumpeter, Davis was able to response and adapt to any musical backdrop. For instance, he was skillfully maneuvered his way around the pre-recorded arrangements in Tutu . In the hand of another musician, Tutu might sound like lightweight background music, but Davis made it into, as critic Kevin Le Gendre puts it: “a work of engrossingly fraught atmospheres.”
106 |
107 | With the rise of smartphones, tablets and various digital devices, a designer must embrace the fluidity of the web. I learned to let go of the fixed design and abandon making mockups in Photoshop. I took on the challenge of designing web site where it actually lives. Designing in the browser feels much more natural once I get past the technicality. Davis once said, “The way you change and help music is by tryin’ to invent new ways to play.” I keep his words in mind whenever I need to learn and adapt to new technologies in the fast-changing paste of web design and development.
108 |
109 |
110 |
111 | Written for Advanced Web Design class at George Mason University School of Art.
112 |
113 |
114 |
115 | article {
116 | column-width: 20em;
117 | column-gap: 2em;
118 | }
119 |
120 | article h1 {
121 | column-span: all;
122 | }
123 |
124 |
125 |
126 |
127 |
128 |
129 |
130 |
131 |
132 |