-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path2.txt
2583 lines (2362 loc) · 327 KB
/
2.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
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
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
Array
(
[feed] => Array
(
[title] => Array
(
[@value] => Smashing Magazine Feed
[@attributes] => Array
(
[type] => text
)
)
[subtitle] => Array
(
[@value] => For Professional Web Designers and Developers
[@attributes] => Array
(
[type] => text
)
)
[updated] => 2012-06-24T08:30:50Z
[link] => Array
(
[0] => Array
(
[@value] =>
[@attributes] => Array
(
[rel] => alternate
[type] => text/html
[href] => http://www.smashingmagazine.com
)
)
[1] => Array
(
[@value] =>
[@attributes] => Array
(
[rel] => self
[type] => application/atom+xml
[href] => http://rss1.smashingmagazine.com/feed/
)
)
)
[id] => http://www.smashingmagazine.com/feed/atom/
[entry] => Array
(
[0] => Array
(
[author] => Array
(
[name] => Smashing Editorial
[uri] => http://www.smashingmagazine.com
)
[title] => Array
(
[@cdata] => Powerful New CSS- and JavaScript Techniques
[@attributes] => Array
(
[type] => html
)
)
[link] => Array
(
[0] => Array
(
[@value] =>
[@attributes] => Array
(
[rel] => alternate
[type] => text/html
[href] => http://www.smashingmagazine.com/2012/06/21/css-round-up-part-1-new-and-powerful-css-techniques/
)
)
[1] => Array
(
[@value] =>
[@attributes] => Array
(
[rel] => replies
[type] => text/html
[href] => http://www.smashingmagazine.com/2012/06/21/css-round-up-part-1-new-and-powerful-css-techniques/#comments
[count] => 0
)
)
[2] => Array
(
[@value] =>
[@attributes] => Array
(
[rel] => replies
[type] => application/atom+xml
[href] => http://www.smashingmagazine.com/2012/06/21/css-round-up-part-1-new-and-powerful-css-techniques/feed/atom/
[count] => 0
)
)
)
[id] => http://mgmt.smashingmagazine.com/?p=133661
[updated] => 2012-06-21T14:30:31Z
[published] => 2012-06-21T13:59:25Z
[category] => Array
(
[@value] =>
[@attributes] => Array
(
[scheme] => http://www.smashingmagazine.com
[term] => Coding
)
)
[summary] => Array
(
[@cdata] => <table width="650"><tr><td width="650"><div style="width:650px;">
<img src="http://statisches.auslieferung.commindo-media-ressourcen.de/advertisement.gif" alt="" border="0" /><br />
<a href="http://auslieferung.commindo-media-ressourcen.de/random.php?mode=target&collection=smashing-rss&position=1" target="_blank"><img src="http://auslieferung.commindo-media-ressourcen.de/random.php?mode=image&collection=smashing-rss&position=1" border="0" alt="" /></a> <a href="http://auslieferung.commindo-media-ressourcen.de/random.php?mode=target&collection=smashing-rss&position=2" target="_blank"><img src="http://auslieferung.commindo-media-ressourcen.de/random.php?mode=image&collection=smashing-rss&position=2" border="0" alt="" /></a> <a href="http://auslieferung.commindo-media-ressourcen.de/random.php?mode=target&collection=smashing-rss&position=3" target="_blank"><img src="http://auslieferung.commindo-media-ressourcen.de/random.php?mode=image&collection=smashing-rss&position=3" border="0" alt="" /></a>
</div></td></tr></table>
<p>Since our <a href="http://coding.smashingmagazine.com/2011/04/18/powerful-new-css-techniques-and-tools/">last round-up of useful CSS techniques</a>, we've seen a lot of truly remarkable CSS geekery out there. With CSS3, some of the older techniques now have become obsolete, others have established themselves as standards, and many techniques are still in the "crazy experimentation" stage.</p>
<p><a href="http://coding.smashingmagazine.com/2012/06/21/powerful-new-cssjavascript-techniques/" title="CSS3 Dodecahedron"><img src="http://media.smashingmagazine.com/wp-content/uploads/2012/05/result-css-0361.jpg" alt="CSS3 Dodecahedron" width="498" height="298" /></a></p>
<p>Since the release of the previous post, we've been collecting, sorting, filtering and preparing a compact overview of powerful new CSS techniques. Today we finally present some of these techniques. Please note that many techniques are not only CSS-based, but use HTML5 and JavaScript. Use them right away or save them for future reference. Thanks to all of the featured designers and developers for their fantastic work!</p>
[@attributes] => Array
(
[type] => html
)
)
[content] => Array
(
[@cdata] => <table width="650">
<tr>
<td width="650">
<div style="width:650px;">
<img src="http://statisches.auslieferung.commindo-media-ressourcen.de/advertisement.gif" alt="" border="0" /><br />
<a href="http://auslieferung.commindo-media-ressourcen.de/random.php?mode=target&collection=smashing-rss&position=1" target="_blank"><img src="http://auslieferung.commindo-media-ressourcen.de/random.php?mode=image&collection=smashing-rss&position=1" border="0" alt="" /></a> <a href="http://auslieferung.commindo-media-ressourcen.de/random.php?mode=target&collection=smashing-rss&position=2" target="_blank"><img src="http://auslieferung.commindo-media-ressourcen.de/random.php?mode=image&collection=smashing-rss&position=2" border="0" alt="" /></a> <a href="http://auslieferung.commindo-media-ressourcen.de/random.php?mode=target&collection=smashing-rss&position=3" target="_blank"><img src="http://auslieferung.commindo-media-ressourcen.de/random.php?mode=image&collection=smashing-rss&position=3" border="0" alt="" /></a>
</div>
</td>
</tr>
</table>
<p>Since our <a href="http://coding.smashingmagazine.com/2011/04/18/powerful-new-css-techniques-and-tools/">last round-up of useful CSS techniques</a>, we’ve seen a lot of truly remarkable CSS geekery out there. With CSS3, some of the older techniques now have become obsolete, others have established themselves as standards, and many techniques are still in the “crazy experimentation” stage.</p>
<p>Since the release of the previous post, we’ve been collecting, sorting, filtering and preparing a compact <strong>overview of powerful new CSS techniques</strong>. Today we finally present some of these techniques. Use them right away or save them for future reference.</p>
<p>Please note that many techniques are not only CSS-based, but also use HTML5 and JavaScript. We are going to present useful CSS tools and responsive design techniques in separate posts. Please don’t hesitate to comment on this post and let us know how exactly you are using them in your workflow. However, please avoid link dropping; share your insight and experience instead, and feel free to link to techniques that really helped you recently. Thanks to all of the featured designers and developers for their fantastic work!</p>
<h4>Table of Contents</h4>
<ol>
<li><a href="#transitions">CSS Transitions and Animations</a></li>
<li><a href="#practical">Useful and Practical CSS Techniques</a></li>
<li><a href="#typography">CSS Typography and Text Techniques</a></li>
<li><a href="#navigation">CSS Navigation Menus and Hover Effects</a></li>
<li><a href="#visual">Visual Techniques With CSS</a></li>
</ol>
<h3 id="transitions">CSS Transitions And Animations</h3>
<p>CSS transitions and animations are often used to make the user experience a bit more smooth and interesting, especially when it comes to interactive effects on hover or on click. Designers are experimenting with technology and create sometimes crazy, sometimes practical—but often innovative techniques which you could use to make your websites just a tiny bit more engaging.</p>
<p><a href="http://attasi.com/labs/ipad/">Interactive CSS3 lighting effects</a><br />
An interesting effect to create interactive lighting effects with 3-D transforms, CSS gradients and masks; the cast shadow was created using box shadows and transforms.</p>
<p class="showcase"><a href="http://attasi.com/labs/ipad/"><img src="http://media.smashingmagazine.com/wp-content/uploads/2012/05/result-css-048.jpg" alt="Interactive CSS3 Lighting Effects" title="Interactive CSS3 Lighting Effects" width="498" height="298" class="alignnone size-full wp-image-133580" /></a></p>
<p><a href="http://themaninblue.com/experiment/dodecahedron/">CSS3 dodecahedron</a><br />
A fancy dodecahedron experiment, created using CSS Transforms and a tiny JavaScript snippet.</p>
<p class="showcase"><a href="http://themaninblue.com/experiment/dodecahedron/"><img src="http://media.smashingmagazine.com/wp-content/uploads/2012/05/result-css-0361.jpg" alt="CSS3 Dodecahedron" title="CSS3 Dodecahedron" width="498" height="298" class="alignnone size-full wp-image-133504" /></a></p>
<p><a href="http://photon.attasi.com/">CSS 3D Lighting Engine Photon</a><br />Our editor Tom Giannattasio has created a JavaScript library that adds simple lighting effects to DOM elements in 3D space using the WebKitCSSMatrix object. It would be great to have an implementation for other rendering engines as well.</p>
<p class="showcase"><a href="http://photon.attasi.com/"><img src="http://media.smashingmagazine.com/wp-content/uploads/2012/06/csstn-140.jpg" alt="CSS 3D Lighting Engine Photon" /></a></p>
<p><a href="http://tympanus.net/codrops/2012/06/18/3d-thumbnail-hover-effects/">3D Thumbnail Hover Effects With CSS</a><br />This technique produces 3D thumbnail hover effects with CSS 3D transforms. The code is quite verbose and probably could be optimized, but the effect is quite neat.</p>
<p class="showcase"><a href="http://tympanus.net/codrops/2012/06/18/3d-thumbnail-hover-effects/"><img src="http://media.smashingmagazine.com/wp-content/uploads/2012/06/csstn-139.jpg" alt="3D Thumbnail Hover Effects With CSS" /></a></p>
<p><a href="http://css-tricks.com/snippets/css/slide-in-image-boxes/">Slide In Image Boxes</a><br />A technique for creating a “slide in” effect for boxes on hover to make them a bit more interactive.</p>
<p class="showcase"><a href="http://css-tricks.com/snippets/css/slide-in-image-boxes/"><img src="http://media.smashingmagazine.com/wp-content/uploads/2012/06/onhover.jpg" alt="Slide In Image Boxes" /></a></p>
<p><a href="http://attasi.com/labs/picsselz/">CSS3 bitmap graphics</a><br />
The bitmap graphics is rendered with CSS: no images, no <code>canvas</code>, no data URIs and no extra markup. The pixels are drawn with CSS gradients, sized precisely to the pixel’s boundaries.</p>
<p class="showcase"><a href="http://attasi.com/labs/picsselz/"><img src="http://media.smashingmagazine.com/wp-content/uploads/2012/05/result-css-100.jpg" alt="Pure CSS3 Bitmap Graphics" title="Pure CSS3 Bitmap Graphics" width="498" height="298" class="alignnone size-full wp-image-133568" /></a></p>
<p><a href="https://developer.mozilla.org/en-US/demos/detail/paperfold-css">Paperfold CSS</a><br />
A visual folding effect for hidden comments by Felix Niklas. The plugin takes a DOM element, slices it into parts and arranges them like a folded paper in 3-D space.</p>
<p class="showcase"><a href="https://developer.mozilla.org/en-US/demos/detail/paperfold-css"><img src="http://media.smashingmagazine.com/wp-content/uploads/2012/05/css-roundup-018.jpg" alt="Paperfold CSS" title="Paperfold CSS" width="500" height="300" class="alignnone size-full wp-image-133623" /></a></p>
<p><a href="http://coding.smashingmagazine.com/2012/04/17/beercamp-an-experiment-with-css-3d/">Beercamp: An Experiment With CSS 3D</a><br />
A CSS 3D popup book á la Dr. Seuss. The website was a test to see how far SVG and CSS 3D transforms could be pushed. This is the article about it.</p>
<p class="showcase"><a href="http://coding.smashingmagazine.com/2012/04/17/beercamp-an-experiment-with-css-3d/"><img src="http://media.smashingmagazine.com/wp-content/uploads/2012/05/css-roundup-042.jpg" alt="Beercamp: An Experiment With CSS 3D" title="Beercamp: An Experiment With CSS 3D" width="500" height="300" class="alignnone size-full wp-image-133655" /></a></p>
<p><a href="http://bluedashed.com/covers/">Covers: A JS / CSS Experiment</a><br />Now, that’s quite an experiment: what if we combined a music song, stylesheet and beat detector to create animated… covers? Sure, we can do it with CSS3 and JavaScript! Covers does exactly that. The result is interesting, what can you do with this approach?</p>
<p class="showcase"><a href="http://bluedashed.com/covers/"><img src="http://media.smashingmagazine.com/wp-content/uploads/2012/06/csstn-142.jpg" alt="Covers: A JS / CSS Experiment" /></a></p>
<p><a href="http://johnbhall.com/iphone-4s/">Animation on Apple’s page</a><br />
John B. Hall explains the CSS animation on Apple’s Web page for the iPhone 4S.</p>
<p class="showcase"><a href="http://johnbhall.com/iphone-4s/"><img src="http://media.smashingmagazine.com/wp-content/uploads/2012/05/result-css-008.jpg" alt="An explanation of the CSS animation on Apple’s iPhone 4S webpage — John B. Hall" title="An explanation of the CSS animation on Apple’s iPhone 4S webpage — John B. Hall" width="498" height="298" class="alignnone size-full wp-image-133349" /></a></p>
<p><a href="http://tympanus.net/codrops/2011/12/19/experimental-css3-animations-for-image-transitions/">Experimental animations for image transitions</a><br />
A post about experimental 3-D image transitions that use CSS3 animations and jQuery. Only CSS3 transforms are used.</p>
<p class="showcase"><a href="http://tympanus.net/codrops/2011/12/19/experimental-css3-animations-for-image-transitions/"><img src="http://media.smashingmagazine.com/wp-content/uploads/2012/05/css-roundup-004.jpg" alt="Experimental CSS3 Animations for Image Transitions" title="Experimental CSS3 Animations for Image Transitions" width="500" height="300" class="alignnone size-full wp-image-133576" /></a></p>
<p><a href="http://dabblet.com/gist/2076449">Maintaining CSS style states using “infinite” transition delays</a><br />
This demo allows you to move the character around with the D-pad, and notice how it always keeps its position after you stop moving. This demo doesn’t use any JavaScript. The effect is made possible by using a virtually infinite transition delay, so that the CSS rules never return to their default state. The figure will be stuck in a transition and will move only when you hold down a button.</p>
<p class="showcase"><a href="http://dabblet.com/gist/2076449"><img src="http://media.smashingmagazine.com/wp-content/uploads/2012/05/result-css-166.jpg" alt="Maintaining CSS Style States using “Infinite” Transition Delays" title="Maintaining CSS Style States using “Infinite” Transition Delays" width="498" height="298" class="alignnone size-full wp-image-133473" /></a></p>
<p><a href="http://www.clicktorelease.com/code/css3dclouds/">CSS 3-D clouds</a><br />
An experiment in creating 3-D-like clouds with CSS3 transforms and a bit of JavaScript.</p>
<p class="showcase"><a href="http://www.clicktorelease.com/code/css3dclouds/"><img src="http://media.smashingmagazine.com/wp-content/uploads/2012/06/css3d-clouds.jpg" alt="CSS3D Clouds" title="CSS3D Clouds" width="500" height="281" class="alignnone size-full wp-image-133478" /></a></p>
<p><a href="http://www.webinterfacelab.com/snippets/animated-profile-popover">Animated popover of profile box</a><br />
A technique for an animated profile popover menu, built using CSS transitions. </p>
<p><a href="http://www.webinterfacelab.com/snippets/animated-profile-popover"><img src="http://media.smashingmagazine.com/wp-content/uploads/2012/06/csstn-129.jpg" alt="Animated Profile Popover With CSS" /></a></p>
<p><a href="http://lab.hakim.se/scroll-effects/">CSS3 scrolling effects</a><br />
A library of various scrolling effects, such as curl, wave, flip, fly, skew and helix, created with CSS3 and sometimes with JavaScript to spice up the scrolling behavior.</p>
<p><a href="http://lab.hakim.se/scroll-effects/"><img src="http://media.smashingmagazine.com/wp-content/uploads/2012/06/csstn-102.jpg" alt="CSS3 Scroll Effects" /></a></p>
<p><a href="http://inspectelement.com/tutorials/spin-those-icons-with-css3/">Spin those icons with CSS3</a><br />
A simple technique for creating a neat effect that spins social icons with the help of a transform and transition when you hover over them. By Tom Kenny.</p>
<p><a href="http://eng.wealthfront.com/2012/03/scrolling-z-axis-with-css-3d-transforms.html">Scrolling the Z Axis with CSS 3D Transforms</a><br />
This article explains how to create the z-scroll effect step by step.</p>
<h3 id="practical">Useful and Practical CSS Techniques</h3>
<p><a href="http://thecodeplayer.com/walkthrough/css3-family-tree">CSS3 Family Tree</a><br />
Display organizational data or a family tree using just CSS, without Flash or JavaScript. The markup is very simple and uses just nested lists. Pseudo-elements are used to draw the connectors. It also has hover effects: hover over a parent element and the entire lineage will be stylized. Make sure to check Nicolas Gallagher’s <a href="http://nicolasgallagher.com/an-introduction-to-css-pseudo-element-hacks/">Introduction to CSS Pseudo Element Hacks</a>.</p>
<p><a href="http://thecodeplayer.com/walkthrough/css3-family-tree"><img src="http://media.smashingmagazine.com/wp-content/uploads/2012/06/csstn-117.jpg" alt="CSS3 Family Tree" /></a></p>
<p><a href="http://demo.webinterfacelab.com/11-ios-style-popover/">iOS-style popover</a><br />
A simple technique for iOS-style custom checkboxes and a subtle hover effect. The technique is a bit buggy but a good starting point in case you need it. Also, check an excerpt from Lea Verou’s <a href="http://vimeo.com/30379008">talk on customized checkboxes</a> and her article on <a href="http://lea.verou.me/2011/05/rule-filtering-based-on-specific-selectors-support/">rule filtering based on specific selector(s) support</a>.</p>
<p><a href="http://demo.webinterfacelab.com/11-ios-style-popover/"><img src="http://media.smashingmagazine.com/wp-content/uploads/2012/06/ios.jpg" width="500" height="249" alt="iOS-style Popover" /></a></p>
<p><a href="http://jsfiddle.net/necolas/vhZds/">Timeline-Style Comments</a><br />Nicolas Gallagher developed a simple and clean technique to present comments in a timeline-alike overview.</p>
<p class="showcase"><a href="http://jsfiddle.net/necolas/vhZds/"><img src="http://media.smashingmagazine.com/wp-content/uploads/2012/06/timeline-snippet.jpg" alt="Timeline-Style Comments" /></a></p>
<p><a href="http://jsfiddle.net/csswizardry/VqynK/">CSS Table Grid</a><br />
Here is a nice technique for aligning columns in a table, building a “table grid system” of sorts. The idea is to apply classes to <code>col</code> elements in a table’s <code>colgroup</code>; you always leave one <code>col</code> without a class so that it remains fluid and can “soak up” the effects of any breakages elsewhere in the table.</p>
<p><a href="http://jsfiddle.net/csswizardry/VqynK/"><img src="http://media.smashingmagazine.com/wp-content/uploads/2012/06/css-pr.gif" alt="CSS Table Grid " width="494" height="324" /></a></p>
<p><a href="http://webdesign.tutsplus.com/tutorials/htmlcss-tutorials/put-users-in-control-with-confirmation-feedback-buttons/">Confirmation Feedback Buttons</a><br />
This article explains how to create buttons that take on different states depending on the user’s interaction. This type of interaction is especially useful on links such as “Purchase” and “Delete” for which it’s wise to confirm that the user indeed wants to take the specific action. It looks too much like an iTunes button, though.</p>
<p class="showcase"><a href="http://webdesign.tutsplus.com/tutorials/htmlcss-tutorials/put-users-in-control-with-confirmation-feedback-buttons/"><img src="http://media.smashingmagazine.com/wp-content/uploads/2012/06/css-add-008.png" alt="" title="Confirmation Feedback Buttons" width="500" height="300" class="alignnone size-full wp-image-134763" /></a></p>
<p><a href="http://www.jefvlamings.com/blog/a-clean-calendar-in-css3-jquery/">A calendar in CSS3 and jQuery</a><br />
A step by step tutorial on how to create a CSS3 calendar with some jQuery animation. Also, check out <a href="http://dbushell.com/2012/01/04/responsive-calendar-demo/">David Bushell’s responsive calendar demo</a>.</p>
<p class="showcase"><a href="http://www.jefvlamings.com/blog/a-clean-calendar-in-css3-jquery/"><img src="http://media.smashingmagazine.com/wp-content/uploads/2012/05/result-css-024.jpg" alt="A clean calendar in CSS3 & jQuery : Finishing Touch" title="A clean calendar in CSS3 & jQuery : Finishing Touch" width="498" height="298" class="alignnone size-full wp-image-133365" /></a></p>
<p><a href="http://sunpig.com/martin/archives/2012/03/25/outdenting-properties-for-debug-css.html">Outdenting properties for debug CSS</a><br />
Let’s assume you are experimenting with CSS or debugging code. You add properties to figure out how things fit together. How often do you forget to remove all of them? A simple technique for this is to mark a CSS property as a temporary or debugging property by outdenting it and putting it at column 0 in the file. A small trick that can save a lot of time.</p>
<p><a href="http://sunpig.com/martin/archives/2012/03/25/outdenting-properties-for-debug-css.html"><img src="http://media.smashingmagazine.com/wp-content/uploads/2012/06/csstn-108.jpg" alt="Outdenting properties for debug CSS" /></a></p>
<p><a href="http://css-tricks.com/show-markup-in-css-comments/">Show Markup in CSS Comments</a><br />
Chris Coyier discusses the idea of including the basic markup that you will be styling as a comment at the top of your CSS file. </p>
<p><a href="http://css-tricks.com/show-markup-in-css-comments/"><img src="http://media.smashingmagazine.com/wp-content/uploads/2012/06/csstn-111.jpg" alt="Show Markup in CSS Comments" /></a></p>
<p><a href="http://filamentgroup.com/examples/rwd-table-patterns/">Selectively displaying data</a><br />
This technique shows how to selectively display content in a table and add responsive breakpoints to create an responsive, complex multi-column table.</p>
<p class="showcase"><a href="http://filamentgroup.com/examples/rwd-table-patterns/"><img src="http://media.smashingmagazine.com/wp-content/uploads/2012/06/text.gif" alt="" title="Selectively displaying data" width="500" height="332" class="alignnone size-full wp-image-134768" /></a></p>
<p><a href="http://css-tricks.com/snippets/css/remove-margins-first-element/">Remove Margins for First/Last Elements</a><br />If you ever wanted to remove the top or left margin from the first element in a container, or the right or bottom margin from the last element in a container, you can do this by using pseudo-selectors <code>:first-child</code> and <code>:last-child</code>.</p>
<p><a href="http://css-tricks.com/snippets/css/css-diagnostics/">CSS Diagnostics Stylesheet</a><br />A very useful snippet to have nearby when you are debugging your CSS or want to find mistakes in HTML.</p>
<p class="showcase"><a href="http://css-tricks.com/snippets/css/css-diagnostics/"><img src="http://media.smashingmagazine.com/wp-content/uploads/2012/06/debugging.jpg" width="498" height="250" alt="CSS Diagnostics Stylesheet" /></a></p>
<p><a href="http://css-tricks.com/radio-buttons-with-2-way-exclusivity/">Radio Buttons With Two-Way Exclusivity</a><br />
Learn about the <code>:empty</code> pseudo-class selector and jQuery to ensure that when a radio button is clicked, the area is determined and all other radio buttons in that column are turned off, and then is turned back on when clicked on.</p>
<p><a href="http://css-tricks.com/radio-buttons-with-2-way-exclusivity/"><img src="http://media.smashingmagazine.com/wp-content/uploads/2012/06/csstn-124.jpg" alt="Radio Buttons with 2-Way Exclusivity" /></a></p>
<p><a href="http://www.webinterfacelab.com/snippets/tabbed-navigation">Tabbed Navigation With CSS</a><br />
An elegant tabbed navigation menu with drop-down menus — no JavaScript, of course. Nothing new, but it’s a quite clean solution.</p>
<p><a href="http://www.webinterfacelab.com/snippets/tabbed-navigation"><img src="http://media.smashingmagazine.com/wp-content/uploads/2012/06/csstn-127.jpg" alt="Tabbed Navigation With CSS" /></a></p>
<p><a href="http://www.webinterfacelab.com/snippets/menu-with-notification-badges">Menu With Notification Badges With CSS</a><br />
A ready-to-use snippet for a navigation menu with notification badges.</p>
<p><a href="http://www.webinterfacelab.com/snippets/menu-with-notification-badges"><img src="http://media.smashingmagazine.com/wp-content/uploads/2012/06/notifications.jpg" alt="Menu with Notification Badges With CSS" /></a></p>
<p><a href="http://lea.verou.me/css3-secrets/#slide26">Styling based on sibling count (slides)</a><br />
A fantastic overview of the possibilities for styling based on sibling count. Also, make sure to click through the rest of the slide deck — valuable and useful techniques. Make sure to watch <a href="http://fronteers.nl/congres/2011/sessions/css3-secrets-lea-verou">Lea Verou’s presentation</a> as well.</p>
<p><a href="http://lea.verou.me/css3-secrets/#slide26"><img src="http://media.smashingmagazine.com/wp-content/uploads/2012/06/csstn-125.jpg" alt="Styling based on sibling count (Slides)" /></a></p>
<p><a href="http://css-tricks.com/the-checkbox-hack/">Stuff you can do with the “Checkbox Hack”</a><br />
Wiht the “checkbox hack,” you use a connected label and checkbox input and usually some other element that you are trying to control. Learn what you can do with it.</p>
<p><a href="http://nicolasgallagher.com/lab/css3-facebook-buttons/">CSS3 Facebook Buttons</a><br />
Nicolas Gallagher presents a set of CSS buttons for Facebook with different colors and icons. You might want to check Nicolas’ <a href="http://nicolasgallagher.com/lab/css3-social-signin-buttons/">CSS3 Social Sign-In buttons</a> as well as <a href="http://coding.smashingmagazine.com/2012/05/15/zocial-button-set-72-css3-buttons/">Free Social CSS3 Buttons</a> that we released earlier as well.</p>
<p><a href="http://css-tricks.com/youtube-popup-buttons/">YouTube Popup Buttons</a><br />
This article explores the default state of YouTube buttons, which have a very subtle bevel but pop up on <code>:hover</code> and <code>:focus</code> states, eager to be clicked.</p>
<p><a href="http://css-tricks.com/youtube-popup-buttons/"><img src="http://media.smashingmagazine.com/wp-content/uploads/2012/06/csstn-121.jpg" alt="YouTube Popup Buttons" /></a></p>
<p><a href="http://css-tricks.com/14745-centering-in-the-unknown/">Centering in the Unknown</a><br />
When it comes to centering things in Web design, the more information you have about the element being centered and its parent element, the easier it is. Chris Coyier shows how to do it when you do not know anything.</p>
<p class="showcase"><a href="http://css-tricks.com/14745-centering-in-the-unknown/"><img src="http://media.smashingmagazine.com/wp-content/uploads/2012/05/result-css-017.jpg" alt="Centering in the Unknown" title="Centering in the Unknown" width="498" height="298" class="alignnone size-full wp-image-133358" /></a></p>
<p><a href="http://daverupert.com/2012/04/uncle-daves-ol-padded-box/">Uncle Dave’s Ol’ Padded Box</a><br />
What if you combined <code>background-size: cover</code> and Thierry Koblentz’ <a href="http://www.alistapart.com/articles/creating-intrinsic-ratios-for-video/">intrinsic ratios</a>. The result is images and video than maintain their aspect ratio; but you can also use <code>background-size: cover</code> to change the aspect ratio and auto-cropping of images with just a little CSS. And the great news is that the property is supported in all modern browsers and matches media-query support exactly. </p>
<p><a href="http://css-tricks.com/snippets/css/clear-fix/">Micro Clearfix: Force Element To Self-Clear its Children</a><br />Chris Coyier presents various technique for forcing elements to self-clear its children, including Nicolas Gallagher’s short code snippet from 2011.</p>
<p class="showcase"><a href="http://css-tricks.com/snippets/css/clear-fix/"><img src="http://media.smashingmagazine.com/wp-content/uploads/2012/06/micro-clearfix.jpg" height="285" alt="Micro Clearfix: Force Element To Self-Clear its Children" /></a></p>
<p><a href="http://adactio.com/journal/5429/">Conditional CSS</a><br />
A clever technique by Jeremy Keith to load additional content conditionally. The idea is that once a media query fires, the content on the <code>body</code> element is generated and can be detected by a JavaScript, prompting extra content to be loaded.</p>
<p><a href="http://paulirish.com/2012/box-sizing-border-box-ftw/">* { box-sizing: border-box } FTW</a><br />
Once you start mixing and matching various units in CSS — such as <code>%</code> for the container width, <code>em</code> for padding and <code>px</code> for border — then you run right into the box-model problem because the width of the container doesn’t include padding and border. We can easily solve this using <code>box-sizing: border-box</code>. And the best part: it is even supported in IE 8.</p>
<p><a href="http://css-tricks.com/multiple-attribute-values/">Multiple Attribute Values</a><br />
How to treat multiple values in attributes rather than classes.</p>
<p class="showcase"><a href="http://css-tricks.com/multiple-attribute-values/"><img src="http://media.smashingmagazine.com/wp-content/uploads/2012/05/css-roundup-003.jpg" alt="Multiple Attribute Values" title="Multiple Attribute Values" width="500" height="300" class="alignnone size-full wp-image-133562" /></a></p>
<p><a href="http://www.aaronbarker.net/2010/07/diagonal-sprites/">Diagonal CSS Sprites</a><br />
If you build a sprite on a diagonal, there will be no components below or to the right of the component you are showing. This allows you to make the element using the sprite as wide or as tall as it needs to be, without worrying about exposing the next component. Also, check out <a href="http://demosthenes.info/blog/391/CSS-Sprites-for-the-Modern-Era-Refined-Animated-and-Semantic">David Storey’s article on CSS sprites for the moder era</a>.</p>
<p><a href="http://css-tricks.com/double-click-in-css/">Double Click in CSS</a><br />
Is there a way to detect whether a link is tapped or double-clicked on mobile devices? In fact, we can. However, the code requires some hardcore CSS nerdery. Also, check <a href="http://www.ryancollins.me/?p=1041">Pure CSS Clickable Events Without :target</a> by Ryan Collins.</p>
<p><a href="http://www.zeldman.com/2012/03/01/replacing-the-9999px-hack-new-image-replacement/">Replacing the -9999px hack (new image replacement)</a><br />
In the beginning was FIR (Fahrner image replacement). Scott Kellum, design director at Treesaver, has now developed this refactored code for hiding text.</p>
<p class="showcase"><a href="http://www.zeldman.com/2012/03/01/replacing-the-9999px-hack-new-image-replacement/"><img src="http://media.smashingmagazine.com/wp-content/uploads/2012/05/css-roundup-002.jpg" alt="Replacing the -9999px hack (new image replacement)" title="Replacing the -9999px hack (new image replacement)" width="500" height="300" class="alignnone size-full wp-image-133456" /></a></p>
<p><a href="http://css-tricks.com/fighting-the-space-between-inline-block-elements/">Fighting the Space Between Inline Block Elements</a><br />
A series of inline-block elements formatted like you would normally format HTML will have spaces between them. But we often want the elements to butt up against each other, thus avoiding in the case of navigation) those awkward little unclickable gaps. How do you solve it? Chris Coyier has found a couple of solutions.</p>
<p><a href="http://viget.com/inspire/css-pointer-events-and-a-pure-css3-animating-tooltip">CSS pointer-events and a pure CSS3 animating tooltip</a><br />
The pointer-events property allows you to specifiy how the mouse interacts with the element it is touching. See what you can do with it and what to consider when using them.</p>
<p><a href="http://bradfrostweb.com/blog/mobile/anatomy-of-a-mobile-first-responsive-web-design/">Anatomy of a mobile-first responsive Web design</a><br />
An excellent article by Brad Frost about the different considerations for responsive designs. How do you start? What features would you implement and how? What about advanced optimization such as LocalStorage or AppCache? This article provide an excellent guide for getting started with future-friendly responsive designs.</p>
<p class="showcase"><a href="http://bradfrostweb.com/blog/mobile/anatomy-of-a-mobile-first-responsive-web-design/"><img src="http://media.smashingmagazine.com/wp-content/uploads/2012/06/css-add-012.png" alt="" title="anatomy of a mobile-first responsive web design" width="500" height="300" class="alignnone size-full wp-image-134767" /></a></p>
<p><a href="https://github.com/filamentgroup/Southstreet">SouthStreet Progressive Enhancement Workflow</a><br />A fantastic article by Scott Jehl and Filament Group in which they present a set of tools that form the core of an advanced responsive design workflow. Definitely useful to keep in mind for your next responsive design project.</p>
<h3 id="typography">Typography And Text With CSS</h3>
<p>Advanced CSS techniques provide us with remarkable options to style text in very different ways. Not only can we make the typography look sharper and beautiful on the Web with tools such as <a href="http://letteringjs.com">Lettering.js</a>, <a href="http://kerningjs.com/">Kerning.js</a> and <a href="http://fittextjs.com/">FitText</a>; we can also play with glyphs, line breaks, font sizing, truncating text and styling lists. The typography can be adjusted and improved with just a couple of practical approaches.</p>
<p><a href="http://tympanus.net/codrops/2011/11/09/interactive-html5-typography/">Interactive Typography effects with HTML5</a><br />
This techniques uses <code>canvas</code> and JavaScript to create ab interactive typography effect. Users can interact with the glyphs and as designer you can define forms or shapes of the word you’d like to present and how you’d like them to change on hover. Fancy!</p>
<p class="showcase"><a href="http://tympanus.net/codrops/2011/11/09/interactive-html5-typography/"><img src="http://media.smashingmagazine.com/wp-content/uploads/2012/05/css-roundup-008.jpg" alt="Interactive Typography Effects with HTML5" title="Interactive Typography Effects with HTML5" width="500" height="300" class="alignnone size-full wp-image-133598" /></a></p>
<p><a href="http://tympanus.net/codrops/2011/12/28/with-rocking-letters-into-the-new-year/">Rocking letters with CSS3 and jQuery</a><br />
A simple animation of letters with CSS3 and jQuery.</p>
<p class="showcase"><a href="http://tympanus.net/codrops/2011/12/28/with-rocking-letters-into-the-new-year/"><img src="http://media.smashingmagazine.com/wp-content/uploads/2012/05/result-css-098.jpg" alt="With Rocking Letters into the New Year" title="With Rocking Letters into the New Year" width="498" height="298" class="alignnone size-full wp-image-133507" /></a></p>
<p><a href="http://webforfreaks.com/cssandtype/">CSS 3D Typography</a><br />
What about integrating stripes into glyphs and adjust the shadow on hover? This technique uses just that, creating a nice, subtle yet engaging visual effect. You can find more interesting type experiments in <a href="http://webforfreaks.com/cssandtype/">CSS3type Showcase</a>.</p>
<p class="showcase"><a href="http://webforfreaks.com/cssandtype/index.php?chemin=content/2011-01-01/"><img src="http://media.smashingmagazine.com/wp-content/uploads/2012/06/stripes.jpg" alt="cssandtype.com, gallery of css text effects" title="cssandtype.com, gallery of css text effects" width="500" height="208" class="alignnone size-full wp-image-133468" /></a></p>
<p class="showcase"><a href="http://webforfreaks.com/cssandtype/"><img src="http://media.smashingmagazine.com/wp-content/uploads/2012/05/css-012.jpg" alt="cssandtype.com, gallery of css text effects" title="cssandtype.com, gallery of css text effects" width="498" height="298" class="alignnone size-full wp-image-133468" /></a></p>
<p><a href="http://trentwalton.com/bgclip/">CSS3 animation and masking text</a><br />
Chandler Van De Water had a challenge for Trent Walton after seeing the header animation in his “CSS3 in Transition” post. Noticing that he used a PNG image file with knockout transparency, he wanted to do the same CSS animation with selectable text. Trent was happy to oblige! At the moment, this works only in Safari and Chrome.</p>
<p class="showcase"><a href="http://trentwalton.com/bgclip/"><img src="http://media.smashingmagazine.com/wp-content/uploads/2012/05/result-css-070.jpg" alt="CSS3 Animations and Masking Text" title="CSS3 Animations and Masking Text" width="498" height="298" class="alignnone size-full wp-image-133582" /></a></p>
<p><a href="http://trentwalton.com/2011/05/19/mask-image-text/">CSS mask-image and text</a><br />
Trent Walton uses <code>background-clip: text</code> and <code>mask-image</code> to implement a subtle gray-flecked texture effect over white text. Hover over the box to see how it degrades in unsupported browsers. Make sure to check out Lea Verou’s “<a href="http://lea.verou.me/2012/05/text-masking-the-standards-way/">Text Masking: The Standards Way</a>” as well.</p>
<p><a href="http://trentwalton.com/2011/05/19/mask-image-text/"><img src="http://media.smashingmagazine.com/wp-content/uploads/2012/06/csstn-128.jpg" alt="CSS Mask-Image & Text" /></a></p>
<p><a href="http://nimbupani.com/fake-bolding-of-web-fonts.html">Fake bolding of Web fonts</a><br />
Most browsers simulate bold weights for fonts that do not actually have bold weights. For example, Helvetica Neue Light does not have a bold weight. If you used <code>font-weight: bold</code> with it, browsers would artificially create a bold weight. This article explains how to avoid fake bolding of Web fonts in your designs. By Divya Manian.</p>
<p class="showcase"><a href="http://nimbupani.com/fake-bolding-of-web-fonts.html"><img src="http://media.smashingmagazine.com/wp-content/uploads/2012/06/css-add-001.png" alt="Fake Bolding of Web Fonts" title="Fake Bolding of Web Fonts" width="500" height="300" class="alignnone size-full wp-image-134756" /></a></p>
<p><a href="http://elliotjaystocks.com/blog/say-it-with-a-swash/">Tomorrow’s Web type today: Say it With a Swash</a><br />The excellent series “Tomorrow’s Web type today” by Elliot Jay Stocks provides insights into what will be possible with Web typography soon, e.g. swashes. In fact, you can already use them today if you include a swash subset of a font to achieve the desired effect.</p>
<p><a href="http://elliotjaystocks.com/blog/say-it-with-a-swash/"><img src="http://media.smashingmagazine.com/wp-content/uploads/2012/06/fonts1.png" alt="OpenType Swashes" title="fonts" width="500" height="359" class="alignnone size-full wp-image-134676" /></a></p>
<p><a href="http://css-tricks.com/snippets/css/internationalization-language-css/">Internationalization Language CSS</a><br />A very handy CSS nippet with language-specific quotes. Perfect for international, multilingual projects. </p>
<p class="showcase"><a href="http://css-tricks.com/snippets/css/internationalization-language-css/"><img src="http://media.smashingmagazine.com/wp-content/uploads/2012/06/international.jpg" width="498" height="305" alt="Internationalization Language CSS" /></a></p>
<p><a href="http://tympanus.net/codrops/2011/12/12/experiments-with-background-clip-text/">Experiments with <code>background-clip: text</code></a><br />
With the CSS property <code>background-clip: text</code>, we can add a background image to a text element.</p>
<p class="showcase"><a href="http://tympanus.net/codrops/2011/12/12/experiments-with-background-clip-text/"><img src="http://media.smashingmagazine.com/wp-content/uploads/2012/05/result-css-050.jpg" alt="Experiments with background-clip: text" title="Experiments with background-clip: text" width="498" height="298" class="alignnone size-full wp-image-133590" /></a></p>
<p><a href="http://css-tricks.com/14771-a-call-for-nth-everything/">A Call for ::nth-everything</a><br />
With CSS3, we have positional pseudo-class selectors to help us select a particular element when it has no distinguishing characteristics other than where it is in the DOM in relation to its siblings.</p>
<p class="showcase"><a href="http://css-tricks.com/14771-a-call-for-nth-everything/"><img src="http://media.smashingmagazine.com/wp-content/uploads/2012/05/result-css-011.jpg" alt="A Call for ::nth-everything" title="A Call for ::nth-everything" width="498" height="298" class="alignnone size-full wp-image-133352" /></a></p>
<p><a href="http://webforfreaks.com/cssandtype/index.php?chemin=content/2011-06-11/">Smooth font using the text-shadow property</a><br />
A common problem: is there a way smooth the appearance of glyphs on older machines, especially Windows XP (standard / ClearType rendering mode)? Yes, perhaps. You can give a try the <code>text-shadow</code>-property which adds text-shadow on the top-left and the bottom-right to smooth text.</p>
<p class="showcase"><a href="http://webforfreaks.com/cssandtype/index.php?chemin=content/2011-06-11/"><br />
<img src="http://media.smashingmagazine.com/wp-content/uploads/2012/05/result-css-054.jpg" alt="Smooth font using CSS3 text-shadow property" title="Smooth font using CSS3 text-shadow property" width="498" height="298" class="alignnone size-full wp-image-133588" /></a></p>
<p><a href="http://trentwalton.com/2012/06/19/fluid-type/">Fluid Type</a><br />Trent Walton explains his approach to fluid typography in which he asks himself how we can make sure that browser width and typographic settings such as measure or font-size and how should we handle panoramic viewports? An interesting article, especially if you use a typography-out approach in your designs. </p>
<p class="showcase"><a href="http://trentwalton.com/2012/06/19/fluid-type/"><img src="http://media.smashingmagazine.com/wp-content/uploads/2012/06/csstn-141.jpg" alt="Fluid Type" /></a></p>
<p><a href="http://csswizardry.com/2012/02/pragmatic-practical-font-sizing-in-css/">Pragmatic, practical font sizing in CSS</a><br />
Harry Roberts shares his thoughts on how to size fonts more efficiently, writing your CSS differently in the process.</p>
<p><a href="http://www.456bereastreet.com/archive/201204/automatic_line_breaks_in_narrow_columns_with_css_3_hyphens_and_word-wrap/">Automatic line breaks with CSS3 hyphens and word-wrap</a><br />
Roger Johansson shows how to solve a common problem: as columns of text become narrower, the risk of a single word being longer than the column’s width increases. When that happens, the text normally extends beyond the column. Luckily, CSS offers two properties to improve the situation: <code>word-wrap</code> and <code>hyphens</code>.</p>
<p><a href="http://nicewebtype.com/notes/2012/02/03/molten-leading-or-fluid-line-height/">Molten leading (or fluid line height)</a><br />
When a responsive composition meets a viewport, there are different ways to fill space. Adjusting any one element without also adjusting the others is a recipe for uncomfortable reading, which is one reason why designers have such a difficult time with fluid Web layouts. Tim Brown started a discussion about this issue and provides a couple of techniques for opimization.</p>
<p class="showcase"><a href="http://nicewebtype.com/notes/2012/02/03/molten-leading-or-fluid-line-height/"><img src="http://media.smashingmagazine.com/wp-content/uploads/2012/06/mold2.jpg" width="500" alt="Molten leading (or, fluid line-height)" title="Molten leading (or, fluid line-height)" class="alignnone size-full wp-image-133633" /></a></p>
<p><a href="http://css-tricks.com/snippets/css/prevent-long-urls-from-breaking-out-of-container/">Prevent Long URL’s From Breaking Out of Container</a><br />Another snippet by Chris Coyier for keeping long URLs within the container. <code>word-wrap</code>, <code>word-break</code> and <code>hyphens</code> properties in use. Also, learn how to <a href="http://css-tricks.com/snippets/css/prevent-superscripts-and-subscripts-from-affecting-line-height/">Prevent Superscripts and Subscripts from Affecting Line-Height</a>.</p>
<p><a href="http://css-tricks.com/viewport-sized-typography/">Viewport-sized typography</a><br />
This technique uses new CSS values for sizing elements relative to the viewport’s current size: <code>vw</code>, <code>vh</code> and <code>vmin</code>. This allows you to couple the size of, say, a typographic heading to the available screen space. Browser support is quite poor for now, so if you are looking for an alternative, check out <a href="http://fittextjs.com/">FitText.js</a>.</p>
<p><a href="http://css-tricks.com/viewport-sized-typography/"><img src="http://media.smashingmagazine.com/wp-content/uploads/2012/06/csstn-105.jpg" alt="Viewport Sized Typography" /></a></p>
<p><a href="http://css-tricks.com/minimum-paragraph-widths/">Minimum paragraph widths in fluid layouts</a><br />
This article shows how to solve the problem of paragraphs that are too narrow, by implementing a minimum paragraph width. If the space left a the floating image is less than this width, then the whole paragraph moves below the image.</p>
<p><a href="http://www.456bereastreet.com/archive/201105/styling_ordered_list_numbers/">Styling ordered list numbers</a><br />
Roger Johansson shows how we can style ordered list numbers with the <code>:before</code> pseudo element, which can take a counter as a value through the <code>content</code> property. Also check out <a href="http://css-tricks.com/numbering-in-style/">Chris Coyier’s post</a> and Louis Lazaris’ <a href="http://www.impressivewebs.com/css-counter-increment/">CSS Counters: counter-increment and friends</a>.</p>
<p class="showcase"><a href="http://www.456bereastreet.com/archive/201105/styling_ordered_list_numbers/"><img src="http://media.smashingmagazine.com/wp-content/uploads/2012/06/list-item.jpg" alt="Styling ordered list numbers" title="Styling ordered list numbers" width="500" height="261" class="alignnone size-full wp-image-133362" /></a></p>
<p><a href="http://www.impressivewebs.com/reverse-ordered-lists-html5/">Reverse ordered lists in HTML5</a><br />
The reverse attribute allows you to write a descending list of numbered items. Louis Lazaris summarizes what it does and offers a solution to get around a lack of browser support for this attribute.</p>
<p class="showcase"><a href="http://www.impressivewebs.com/reverse-ordered-lists-html5/"><img src="http://media.smashingmagazine.com/wp-content/uploads/2012/06/reversed-lists.jpg" alt="Reverse Ordered Lists in HTML5" title="Reverse Ordered Lists in HTML5" width="500" height="342" class="alignnone size-full wp-image-133594" /></a></p>
<p><a href="http://demosthenes.info/blog/442/Preserving-Whitespace-With-CSS3-tab-size-&-3-Other-Solutions">Preserving white space with CSS3 tab size</a><br />
By default, HTML pages ignore anything more than a single space and collapses them. But there are occasions when you’ll want to preserve this space via one of several possible techniques.</p>
<p><a href="http://amix.dk/blog/post/19661">Truncating text using only CSS</a><br />
This code snippet can be used to shorten a line of text using nothing but CSS.</p>
<p><a href="http://www.impressivewebs.com/new-css3-text-wrap/">New CSS3 properties to handle text and word wrapping</a><br />
Louis Lazaris explains the possibilities and problems of text-wrap, overflow-wrap, line-break and word-break, text-overflow and hyphens. Also worth reading: Kenneth Auchenberg <a href="http://blog.kenneth.io/blog/2012/03/04/word-wrapping-hypernation-using-css/">discusses the options for word wrapping and hyphenation</a> in combination with dynamic width elements.</p>
<p><a href="http://css-tricks.com/snippets/css/end-articles-with-ivy-leaf/">End Articles with Ivy Leaf</a><br />A clever technique for adding an extra touch to the end of your articles. <code>:last-child</code>, <code>:after</code> and <code>content</code> in use.</p>
<h3 id="navigation">Hover Effects and Navigation Menus with CSS</h3>
<p>We are used to classical navigation patterns such as tabbed navigation or drop-downs, but we can do a lot more to spice up our navigation menus with pleasant hover effects, often without extra images. Especially if you’d like to add a bit more polish to your portfolio, gallery or e-commerce website, these techniques can be quite useful. What about “over-the top” hover effect for your links, </p>
<p><a href="http://tympanus.net/Tutorials/CircleNavigationEffect/">Circle Navigation Effect With CSS3</a><br />
A bubble-like thumbnail preview for your navigation with CSS3.</p>
<p class="showcase"><a href="http://tympanus.net/Tutorials/CircleNavigationEffect/"><img src="http://media.smashingmagazine.com/wp-content/uploads/2012/06/circle-navigation.jpg" alt="Circle Navigation Effect with CSS3" title="Circle Navigation Effect with CSS3" width="498" height="309" class="alignnone size-full wp-image-133581" /></a></p>
<p><a href="http://inspectelement.com/articles/create-a-css3-image-gallery-with-a-3d-lightbox-animation/">Create a CSS3 Image Gallery With a 3D Lightbox Animation</a><br />
Tom Kenny has extended a CSS lightbox gallery by adding a few hover effects to the gallery grid itself and a 3D rotation to the lightbox content, all with CSS.</p>
<p class="showcase"><a href="http://inspectelement.com/articles/create-a-css3-image-gallery-with-a-3d-lightbox-animation/"><img src="http://media.smashingmagazine.com/wp-content/uploads/2012/05/result-css-016.jpg" alt="Create a CSS3 Image Gallery with a 3D Lightbox Animation – Inspect Element" title="Create a CSS3 Image Gallery with a 3D Lightbox Animation – Inspect Element" width="498" height="298" class="alignnone size-full wp-image-133357" /></a></p>
<p><a href="http://tympanus.net/codrops/2012/02/06/3d-gallery-with-css3-and-jquery/">3D Gallery With CSS3 and jQuery</a><br />
This article shares an experimental gallery that uses CSS 3D transforms. The idea is to create a circular gallery with an image in the center and two on the sides. Because perspective is being used, the two lateral images will appear three dimensional when rotated.</p>
<p class="showcase"><a href="http://tympanus.net/codrops/2012/02/06/3d-gallery-with-css3-and-jquery/"><img src="http://media.smashingmagazine.com/wp-content/uploads/2012/05/result-css-121.jpg" alt="3D Gallery with CSS3 and jQuery" title="3D Gallery with CSS3 and jQuery" width="498" height="298" class="alignnone size-full wp-image-133515" /></a></p>
<p><a href="http://tympanus.net/codrops/2011/10/24/creative-css3-animation-menus/">Creative CSS3 animation menus</a><br />
Mary Lou presents a couple of creative navigation menu hover effects. The idea is to have a simple composition of elements, an icon, a main title and a secondary title that will be animated on hover using only CSS transitions and animations.</p>
<p class="showcase"><a href="http://tympanus.net/codrops/2011/10/24/creative-css3-animation-menus/"><img src="http://media.smashingmagazine.com/wp-content/uploads/2012/05/result-css-009.jpg" alt="Creative CSS3 Animation Menus" title="Creative CSS3 Animation Menus" width="498" height="298" class="alignnone size-full wp-image-133350" /></a></p>
<p><a href="http://tympanus.net/codrops/2012/01/22/how-to-spice-up-your-menu-with-css3/">How to spice up your menu with CSS3</a><br />
Yes, another technique by Tympanus: this tip shows how to spice up a menu by adding a neat hover effect to it. The idea is to slide an image out to the right when the menu item is hovered over.</p>
<p class="showcase"><a href="http://tympanus.net/codrops/2012/01/22/how-to-spice-up-your-menu-with-css3/"><img src="http://media.smashingmagazine.com/wp-content/uploads/2012/05/result-css-118.jpg" alt="How to spice up your menu with CSS3" title="How to spice up your menu with CSS3" width="498" height="298" class="alignnone size-full wp-image-133512" /></a></p>
<p><a href="http://www.netmagazine.com/node/1417">Create a zoomable user interface</a><br />
David DeSandro reveals how to use CSS transforms to create a zoomable user interface similar to that of <a href="http://2011.beercamp.com/">Beercamp 2011</a>. In this tutorial, you’ll also learn how to use JavaScript to hijack scrolling to manipulate the zoom.</p>
<p class="showcase"><a href="http://www.netmagazine.com/node/1417"><img src="http://media.smashingmagazine.com/wp-content/uploads/2012/05/result-css-058.jpg" alt="Create a zoomable user interface with CSS3" title="Create a zoomable user interface with CSS3" width="498" height="298" class="alignnone size-full wp-image-133584" /></a></p>
<p><a href="http://tympanus.net/Development/FlipboardPageLayout/?page=0">Flipboard Navigation</a><br />
An experimental page layout inspired by Flipboard’s interface.</p>
<p class="showcase"><a href="http://tympanus.net/Development/FlipboardPageLayout/?page=0"><img src="http://media.smashingmagazine.com/wp-content/uploads/2012/06/css-add-006.png" alt="Flipboard Page Layout" title="Flipboard Page Layout" class="alignnone size-full wp-image-134761" /></a></p>
<p><a href="http://jsfiddle.net/kizu/zfUyN/">Multi-direction hover</a><br />
This element shows different hover effects when hovering from different directions.</p>
<p class="showcase"><a href="http://jsfiddle.net/kizu/zfUyN/"><img src="http://media.smashingmagazine.com/wp-content/uploads/2012/05/result-css-129.jpg" alt="Multi-direction hover" title="Multi-direction hover" width="498" height="298" class="alignnone size-full wp-image-133503" /></a></p>
<p><a href="http://jsdo.it/ksk1015/cLLl">Experimental Hover Effects</a><br />
Original and innovative hover effects discovered via Twitter on what appears to be a Japanese code sharing website.</p>
<p class="showcase"><a href="http://jsdo.it/ksk1015/cLLl"><img src="http://media.smashingmagazine.com/wp-content/uploads/2012/05/result-css-005.jpg" alt="Share JavaScript, HTML5 and CSS" title="Share JavaScript, HTML5 and CSS" width="498" height="298" class="alignnone size-full wp-image-133346" /></a></p>
<p><a href="http://jsfiddle.net/hakim/Ht6Ym/">Over-the-top hover effect</a><br />
A CSS and JavaScript technique for creating an “over-the-top” hover effect using the <code>transform-origin</code> <code>transform-style</code> properties as well as 3-D transforms.</p>
<p><a href="http://tympanus.net/codrops/2012/02/21/accordion-with-css3/">Accordion With CSS3</a><br />
Mary Lou experiments with the adjacent and general sibling combinator and the <code>:checked</code> pseudo-class. Using hidden inputs and labels, she creates an accordion that animates the content areas on opening and closing.</p>
<p class="showcase"><a href="http://tympanus.net/codrops/2012/02/21/accordion-with-css3/"><img src="http://media.smashingmagazine.com/wp-content/uploads/2012/05/result-css-138.jpg" alt="Accordion with CSS3" title="Accordion with CSS3" width="498" height="298" class="alignnone size-full wp-image-133466" /></a></p>
<p><a href="http://www.alistapart.com/articles/expanding-text-areas-made-elegant/">Expanding Text Areas Made Elegant</a><br />
An expanding text area is a good choice when you don’t know how much text the user will write and you want to keep the layout compact. In this article, Neil Jenkins explains how to do this simply. Also, you might want to take a look at <a href="http://www.impressivewebs.com/textarea-auto-resize/">Textarea Auto Resize</a>, another technique by Louis Lazaris, using a hidden clone element.</p>
<p><a href="http://tympanus.net/codrops/2012/01/09/filter-functionality-with-css3/">Filter Functionality With CSS3</a><br />
Using the general sibling combinator and the <code>:checked</code> pseudo-class, we can toggle states of other elements by checking a box or radio button. This tutorial explores those CSS3 properties by creating a experimental portfolio filter that toggles the states of items of a specific type.</p>
<p class="showcase"><a href="http://tympanus.net/codrops/2012/01/09/filter-functionality-with-css3/"><img src="http://media.smashingmagazine.com/wp-content/uploads/2012/05/result-css-108.jpg" alt="Filter Functionality with CSS3" title="Filter Functionality with CSS3" width="498" height="298" class="alignnone size-full wp-image-133565" /></a></p>
<p><a href="http://www.456bereastreet.com/archive/201111/an_accessible_keyboard_friendly_custom_select_menu/">An accessible, keyboard-friendly custom select menu</a><br />
A new approach for more accessibility by Roger Johansson. He styles only the <code>select</code> element.</p>
<h3 id="visual">Visual Techniques with CSS</h3>
<p>We used to heavily on images and visual elements to create basic visual effects on the Web. With CSS3, we can not only improved the loading speed of the content, but also make our visual elements more flexible and adaptive. Let’s take a look on a couple of examples of how we can achieve that.</p>
<p><a href="http://inspectelement.com/tutorials/create-the-illusion-of-stacked-elements-with-css3-pseudo-elements/">Create the Illusion of Stacked Elements with CSS3 Pseudo-Elements</a><br />
Tom Kenny shows how to create a simple “stacked” look to a group of images.</p>
<p class="showcase"><a href="http://inspectelement.com/tutorials/create-the-illusion-of-stacked-elements-with-css3-pseudo-elements/"><img src="http://media.smashingmagazine.com/wp-content/uploads/2012/05/css-roundup-023.jpg" alt="Create the Illusion of Stacked Elements with CSS3 Pseudo-Elements – Inspect Element" title="Create the Illusion of Stacked Elements with CSS3 Pseudo-Elements – Inspect Element" width="500" height="300" class="alignnone size-full wp-image-133629" /></a></p>
<p><a href="http://codepen.io/ericft/pen/map_pins/3">CSS3 Unfold Map with Pins</a><br />A handy snippet for placing pins on a map. The code looks a bit verbose, so you might want to remove a couple of visual “nice-to-have” elements.</p>
<p class="showcase"><a href="http://codepen.io/ericft/pen/map_pins/3"><img src="http://media.smashingmagazine.com/wp-content/uploads/2012/06/csstn-146.jpg" alt="CSS3 Unfold Map with Pins" /></a></p>
<p><a href="http://demosthenes.info/blog/446/Turn-Pictures-Into-Postage-Stamps-With-CSS3-border-image">Turn Images Into Postage Stamps With CSS3 border-image</a><br />
Dudley Storey shows a simple way to create a postage stamp from a simple image with <code>border-image</code>.</p>
<p class="showcase"><a href="http://demosthenes.info/blog/446/Turn-Pictures-Into-Postage-Stamps-With-CSS3-border-image"><img src="http://media.smashingmagazine.com/wp-content/uploads/2012/05/result-css-0371.jpg" alt="Turn Images Into Postage Stamps With CSS3 border-image" title="Turn Images Into Postage Stamps With CSS3 border-image" width="498" height="298" class="alignnone size-full wp-image-133595" /></a></p>
<p><a href="http://tympanus.net/codrops/2011/12/21/slopy-elements-with-css3/">Slopy elements with CSS3</a><br />
Angled shapes and diagonal lines can create an interesting visual flow and add some unexpected excitement. This tutorial shows some simple examples and ways how to create slopy, skewed elements with only CSS.</p>
<p class="showcase"><a href="http://tympanus.net/codrops/2011/12/21/slopy-elements-with-css3/"><img src="http://media.smashingmagazine.com/wp-content/uploads/2012/05/result-css-099.jpg" alt="Slopy Elements with CSS3" title="Slopy Elements with CSS3" width="498" height="298" class="alignnone size-full wp-image-133566" /></a></p>
<p><a href="http://codepen.io/rnarian/pen/1/5">CSS Flip Clock</a><br />A code snippet for displaying a flip clock-alike time display using CSS.</p>
<p class="showcase"><a href="http://codepen.io/rnarian/pen/1/5"><img src="http://media.smashingmagazine.com/wp-content/uploads/2012/06/csstn-145.jpg" alt="CSS Flip Clock" /></a></p>
<p><a href="http://webdesignerwall.com/tutorials/css3-image-styles">CSS3 Image Styles</a><br />
When applying a CSS3 inset <code>box-shadow</code> or <code>border-radius</code> directly to an image element, the browser won’t render the CSS style perfectly. Here’s a quick tutorial on how to use jQuery to make perfect rounded corner images dynamically. And check out <a href="http://webdesignerwall.com/tutorials/css3-image-styles-part-2">the second part</a>.</p>
<p class="showcase"><a href="http://webdesignerwall.com/tutorials/css3-image-styles-part-2"><img src="http://media.smashingmagazine.com/wp-content/uploads/2012/06/css-image-styles1.jpg" alt="CSS3 Image Styles – Part 2" title="CSS3 Image Styles – Part 2" width="500" height="271" class="alignnone size-full wp-image-133500" /></a></p>
<p><a href="http://webdesignerwall.com/tutorials/creating-reusable-versatile-background-patterns">Creating Reusable and Versatile Background Patterns</a><br />
A simple tutorial on how to create reusable background patterns with Photoshop and CSS.</p>
<p class="showcase"><a href="http://webdesignerwall.com/tutorials/creating-reusable-versatile-background-patterns"><img src="http://media.smashingmagazine.com/wp-content/uploads/2012/05/result-css-059.jpg" alt="Creating Reusable & Versatile Background Patterns" title="Creating Reusable & Versatile Background Patterns" width="498" height="298" class="alignnone size-full wp-image-133587" /></a></p>
<p><a href="http://jsfiddle.net/ChristopherBurton/MNMQM/">Diagonal Graph Paper Gradient</a><br />
A very nice CSS technique for creating diagonal graph paper gradients using <code>repeating-linear-gradient</code> property in CSS.</p>
<p><a href="http://jsfiddle.net/ChristopherBurton/MNMQM/"><img width="500" height="302" src="http://media.smashingmagazine.com/wp-content/uploads/2012/06/linen.jpg" alt="Diagonal Graph Paper Gradient" /></a></p>
<p><a href="http://html5snippets.com/snippets/80-css-tucked-corner-effect">Tucked Corner Effect</a><br />
A clean CSS technique for producing tucked corners using the pseudo-elements <code>:after</code> and <code>:before</code> as well as data URI-coded images. Also, check out <a href="http://jsfiddle.net/chriscoyier/H6rQ6/1/">Corner Ribbon Effect with CSS</a>.</p>
<p><a href="http://html5snippets.com/snippets/80-css-tucked-corner-effect"><img width="500" src="http://media.smashingmagazine.com/wp-content/uploads/2012/06/tucked.jpg" alt="CSS Tucked Corner Effect" /></a></p>
<p><a href="http://lea.verou.me/2012/04/background-attachment-local/">Scrolling… shadows!</a><br />
An original technique by Roman Komarov to create CSS-only shadow-scrolling effect using <code>background-attachment: local</code>. Developed by Lea Verou, inspired by Roman Komarov.</p>
<p class="showcase"><a href="http://lea.verou.me/2012/04/background-attachment-local/"><img src="http://media.smashingmagazine.com/wp-content/uploads/2012/06/css-add-003.png" alt="Scrolling shadows" title="Scrolling shadows" width="500" height="300" class="alignnone size-full wp-image-134758" /></a></p>
<p><a href="http://www.webinterfacelab.com/snippets/multi-colored-progress-bars">Multi-colored CSS progress bars</a><br />
A quite verbose yet CSS-only solution for displaying multi-colored progress bars. It’s <code>linear-gradient</code> in action! Also, check out <a href="http://dipperstove.com/design/css3-progress-bars.html">CSS3 progress bars</a> that display data inside localized leaderboards for the new analytics platform at G5. They are lightweight and require no JavaScript or images.</p>
<p><a href="http://www.webinterfacelab.com/snippets/multi-colored-progress-bars"><img src="http://media.smashingmagazine.com/wp-content/uploads/2012/06/csstn-118.jpg" alt="Multi-colored CSS Progress Bars" /></a></p>
<p><a href="http://www.red-team-design.com/css3-breadcrumbs">CSS3 breadcrumbs</a><br />
Learn how to create your own cool CSS3 breadcrumbs. Also, check the <a href="http://codepen.io/komputerwiz/pen/css3-breadcrumbs/1">CSS Breadcrumbs Example</a> which uses only CSS linear gradients.</p>
<p class="showcase"><a href="http://www.red-team-design.com/css3-breadcrumbs"><img src="http://media.smashingmagazine.com/wp-content/uploads/2012/05/result-css-131.jpg" alt="CSS3 breadcrumbs" title="CSS3 breadcrumbs" width="498" height="298" class="alignnone size-full wp-image-133496" /></a></p>
<p><a href="http://css-tricks.com/adobe-like-arrow-headers/">Adobe-like Arrow Headers</a><br />
A detailed article about the technique Adobe uses to create header bars for modules on its website.</p>
<p><a href="http://css-tricks.com/adobe-like-arrow-headers/"><img src="http://media.smashingmagazine.com/wp-content/uploads/2012/06/csstn-122.jpg" alt="Adobe-like Arrow Headers" /></a></p>
<p><a href="http://css-tricks.com/snippets/css/top-shadow/">Adding a Top Shadow to a website</a><br />If you ever wanted to add a shadow along the top edge of the website, you can easily do it by styling <code>body:before</code>.</p>
<p class="showcase"><a href="http://css-tricks.com/snippets/css/top-shadow/"><img src="http://media.smashingmagazine.com/wp-content/uploads/2012/06/depth.jpg" height="285" alt="Adding a Top Shadow to a website" /></a></p>
<p><a href="http://devblog.xing.com/frontend/a-flexible-shadow-with-background-size/">A flexible shadow with background-size</a><br />
It’s amazing what you can achieve when you combine different techniques—even when facing a challenge such as a flexible shadow. If you had to create an adaptive shadow effect, how would you create it?</p>
<p class="showcase"><a href="http://devblog.xing.com/frontend/a-flexible-shadow-with-background-size/"><img src="http://media.smashingmagazine.com/wp-content/uploads/2012/06/css-add-016.png" alt="" title="A flexible shadow with background-size" width="500" height="300" class="alignnone size-full wp-image-134811" /></a></p>
<p><a href="http://css-tricks.com/star-ratings/">Star Ratings With Very Little CSS</a><br />
Chris Coyier shows how to code star ratings done with very little CSS code and lots of a bit of Unicode madness.</p>
<p><a href="http://demosthenes.info/blog/532/Convert-Images-To-Black--White-With-CSS">Convert Images to Black And White With CSS</a><br />
Filters allow us to visually process an image in the browser without needing to go through PhotoShop or use cycle-intensive, script-heavy methods in JavaScript or PHP. CSS3 filters are broadly supported in the most recent versions of Firefox and Chrome, and we can gain support in older versions and alternative browsers — even IE — by using a combination of techniques.</p>
<p class="showcase"><a href="http://demosthenes.info/blog/532/Convert-Images-To-Black--White-With-CSS"><img src="http://media.smashingmagazine.com/wp-content/uploads/2012/06/css-add-010.png" alt="" title="Convert Images To Black And White With CSS" width="500" height="300" class="alignnone size-full wp-image-134765" /></a></p>
<p><a href="http://jsfiddle.net/csswizardry/7BXUf/embedded/result,html,css,js/">Punching Holes With CSS</a><br />
A clever and simple technique to make a block in a container appear transparent and display a background image. Also, take a look at <a href="http://lea.verou.me/2011/08/accessible-star-rating-widget-with-pure-css/">Lea Verou’s accessible star rating widget with CSS</a>.</p>
<p><a href="http://css-tricks.com/simple-styles-for-horizontal-rules/">Simple Styles for Horizontal Rules</a><br />
With the help of a few contributors, Chris Coyier put together this page of simple styles for horizontal rules.</p>
<p class="showcase"><a href="http://css-tricks.com/simple-styles-for-horizontal-rules/"><img src="http://media.smashingmagazine.com/wp-content/uploads/2012/05/result-css-126.jpg" alt="Simple Styles for Horizontal Rules" title="Simple Styles for Horizontal Rules" width="498" height="298" class="alignnone size-full wp-image-133561" /></a></p>
<p><a href="http://methodandcraft.com/videos/optimizing-graphics-with-css-masks">Optimizing Graphics With CSS Masks</a (Video)><br />
In this video, Aaron Bushnell shows how CSS masks can help make the process easier on you and how to make sure you have fallbacks in place for non-Webkit browsers.</p>
<p><a href="http://paulirish.com/2009/browser-specific-css-hacks/">Browser-Specific CSS Hacks</a><br />
A useful, comprehensive list of browser-specific CSS hacks for targeting legacy browsers. Unfortunately, most of us will need them quite often.</p>
<h3>Last Click</h3>
<p><a href="http://www.ryancollins.me/?p=539">CSS3 Lasers!</a><br />
Shows a laser shot effect when hovering over an element.</p>
<p class="showcase"><a href="http://www.ryancollins.me/?p=539"><img src="http://media.smashingmagazine.com/wp-content/uploads/2012/06/lasers-new.jpg" alt="CSS3 Lasers!" title="CSS3 Lasers!" width="513" height="433" class="alignnone size-full wp-image-133614" /></a></p>
<p><a href="http://hakim.se/experiments/css/domtree/">The DOM Tree</a><br />
This DOM tree is generated via JavaScript every time you visit the page, so you’ll never see the same one twice. All of the forms are filled with holiday greetings in a variety of languages. CSS3 3D transforms are used to position and rotate, via <code>translate3d()</code> and <code>rotate3d()</code> respectively, the elements when the page loads. The infinitely looping rotation on the tree is controlled by an infinitely looping CSS3 animation. Just one word: crazy!</p>
<p class="showcase"><a href="http://hakim.se/experiments/css/domtree/"><img src="http://media.smashingmagazine.com/wp-content/uploads/2012/06/the-dom-tree.jpg" alt="DOM Tree" title="DOM Tree" class="alignnone size-full wp-image-133316" /></a></p>
<h3>What’s Your Favourite Technique?</h3>
<p>We’d love to know your experience with some of the featured techniques, or perhaps you’ve stumbled upon another interesting CSS technique recently? Let us know in the comments to this post!</p>
<p><!-- deleted script tag --><br />
<noscript><a href="http://polldaddy.com/poll/6331943/">What kind of “round-ups” would you like to see on SmashingMag?</a></noscript></p>
<p><em>(jvg) (al) (vf) (ml)</em></p>
<hr />
<p><small>© Smashing Editorial for <a href="http://www.smashingmagazine.com">Smashing Magazine</a>, 2012.</small></p>
[@attributes] => Array
(
[type] => html
[base] => http://www.smashingmagazine.com/2012/06/21/css-round-up-part-1-new-and-powerful-css-techniques/
)
)
[thr:total] => 0
)
[1] => Array
(
[author] => Array
(
[name] => Joseph Casabona
[uri] => http://www.casabona.org
)
[title] => Array
(
[@cdata] => Easily Customize WordPress’ Default Functionality
[@attributes] => Array
(
[type] => html
)
)
[link] => Array
(
[0] => Array
(
[@value] =>
[@attributes] => Array
(
[rel] => alternate
[type] => text/html
[href] => http://www.smashingmagazine.com/2012/06/20/easily-customize-wordpress-default-functionality/
)
)
[1] => Array
(
[@value] =>
[@attributes] => Array
(
[rel] => replies
[type] => text/html
[href] => http://www.smashingmagazine.com/2012/06/20/easily-customize-wordpress-default-functionality/#comments
[count] => 0
)
)
[2] => Array
(
[@value] =>
[@attributes] => Array
(
[rel] => replies
[type] => application/atom+xml
[href] => http://www.smashingmagazine.com/2012/06/20/easily-customize-wordpress-default-functionality/feed/atom/
[count] => 0
)
)
)
[id] => http://mgmt.smashingmagazine.com/?p=135695
[updated] => 2012-06-20T08:11:37Z
[published] => 2012-06-20T08:03:49Z
[category] => Array
(
[@value] =>
[@attributes] => Array
(
[scheme] => http://www.smashingmagazine.com
[term] => WordPress
)
)
[summary] => Array
(
[@cdata] => <table width="650"><tr><td width="650"><div style="width:650px;">
<img src="http://statisches.auslieferung.commindo-media-ressourcen.de/advertisement.gif" alt="" border="0" /><br />
<a href="http://auslieferung.commindo-media-ressourcen.de/random.php?mode=target&collection=smashing-rss&position=1" target="_blank"><img src="http://auslieferung.commindo-media-ressourcen.de/random.php?mode=image&collection=smashing-rss&position=1" border="0" alt="" /></a> <a href="http://auslieferung.commindo-media-ressourcen.de/random.php?mode=target&collection=smashing-rss&position=2" target="_blank"><img src="http://auslieferung.commindo-media-ressourcen.de/random.php?mode=image&collection=smashing-rss&position=2" border="0" alt="" /></a> <a href="http://auslieferung.commindo-media-ressourcen.de/random.php?mode=target&collection=smashing-rss&position=3" target="_blank"><img src="http://auslieferung.commindo-media-ressourcen.de/random.php?mode=image&collection=smashing-rss&position=3" border="0" alt="" /></a>
</div></td></tr></table>
<p>The absolute best thing about WordPress is how flexible it is. Don't like it? Change the theme. Need added functionality? There is probably a plugin you can download or buy. If not, built it yourself! You can change pretty much everything about WordPress. In this article I'm going to go over some easy ways to customize WordPress that you may not know about.</p>
<p><a href="http://wp.smashingmagazine.com/2012/06/19/customize-wordpress-default-functionality/"><img src="http://media.smashingmagazine.com/wp-content/uploads/2012/06/featured-image.jpg" alt="featured-image" width="500" height="300" /></a></p>
<p>Learn how to add image sizes, change sidebar markup, modify pre-published content, customize the author's comment box, and much more. This concise guide shows you how to customize default WordPress functionality with any or all of these techniques.</p>
[@attributes] => Array
(
[type] => html
)
)
[content] => Array
(
[@cdata] => <table width="650">
<tr>
<td width="650">
<div style="width:650px;">
<img src="http://statisches.auslieferung.commindo-media-ressourcen.de/advertisement.gif" alt="" border="0" /><br />
<a href="http://auslieferung.commindo-media-ressourcen.de/random.php?mode=target&collection=smashing-rss&position=1" target="_blank"><img src="http://auslieferung.commindo-media-ressourcen.de/random.php?mode=image&collection=smashing-rss&position=1" border="0" alt="" /></a> <a href="http://auslieferung.commindo-media-ressourcen.de/random.php?mode=target&collection=smashing-rss&position=2" target="_blank"><img src="http://auslieferung.commindo-media-ressourcen.de/random.php?mode=image&collection=smashing-rss&position=2" border="0" alt="" /></a> <a href="http://auslieferung.commindo-media-ressourcen.de/random.php?mode=target&collection=smashing-rss&position=3" target="_blank"><img src="http://auslieferung.commindo-media-ressourcen.de/random.php?mode=image&collection=smashing-rss&position=3" border="0" alt="" /></a>
</div>
</td>
</tr>
</table>
<p>The absolute best thing about WordPress is how flexible it is. Don’t like the theme? Just change it. Need added functionality? There is probably a plugin you can download or buy. If not, build it yourself! You can change pretty much anything about WordPress. In this article, we’ll go over some easy ways to customize WordPress that you might not know about.</p>
<p><a href="http://media.smashingmagazine.com/wp-content/uploads/2012/06/featured-image.jpg"><img src="http://media.smashingmagazine.com/wp-content/uploads/2012/06/featured-image.jpg" alt="featured-image" width="500" height="300" class="alignnone size-full wp-image-105927" /></a></p>
<h3>Change The Default Source Of jQuery</h3>
<p>Another great thing about WordPress is that it comes locked and loaded with all kinds of JavaScript libraries, including jQuery. It also gives you the power to change the source of those libraries according to your needs.</p>
<p>Let’s say we want to relieve our server of some stress by switching WordPress’ version of jQuery for a hosted solution (or <abbr title="Content Delivery Network">CDN</abbr> version). We can very easily change the source of jQuery with this function:</p>
<pre class="brush: php">
function add_scripts() {
wp_deregister_script( 'jquery' );
wp_register_script( 'jquery', 'http://code.jquery.com/jquery-1.7.1.min.js');
wp_enqueue_script( 'jquery' );
}
add_action('wp_enqueue_scripts', 'add_scripts');
</pre>
<p>Three things are going on here. First, we’re using <code>wp_deregister_script()</code> to tell WordPress to forget about the version of jQuery currently being used. We then use <code>wp_register_script()</code> to re-register jQuery (as the script name), using jQuery’s own CDN version. Finally, we use <code>wp_enqueue_script()</code> to add jQuery to our theme or plugin.</p>
<p>One thing to note here is that we’re using <code>add_action()</code>, not <code>add_filter()</code>, to add our scripts. Because we’re not making any changes to the content, but instead relying on WordPress to do something in order for our scripts to load, we use an action hook, not a filter hook. Read about both <a href="http://codex.wordpress.org/Plugin_API">in the WordPress Codex</a>.</p>
<h3>Add Image Sizes</h3>
<p>We know that WordPress sets a few different sizes for the images we upload. Did you know you can also (relatively easily) set your own image sizes? And all with two simple functions. If we have a custom header image for our posts with dimensions of 760 × 300 pixels, we could make our images upload to that size with this:</p>
<pre class="brush: php">
add_theme_support( 'post-thumbnails' );
add_image_size( 'post-header', 760, 300, true );
</pre>
<p>The first function, <code>add_theme_support()</code>, tells WordPress to allow not just for thumbnails, but for featured images and images of new sizes. The second line, <code><a href="http://codex.wordpress.org/Function_Reference/add_image_size">add_image_size()</a></code>, is where we add our new size. This function accepts four arguments: name, width, height and whether to crop the image. WordPress also advises strongly against using certain reserved names (read: <strong>do not use them</strong>): <code>thumb</code>, <code>thumbnail</code>, <code>medium</code>, <code>large</code> and <code>post-thumbnail</code>.</p>
<p>Once our new size is created, we can add it to the post’s loop to display it to users, like so:</p>
<pre class="brush: php">
if ( has_post_thumbnail() ){
the_post_thumbnail( 'post-header' );
}
</pre>
<p>This checks to see whether you’ve uploaded an image and made it the post’s featured image. If so, WordPress displays it. You can also get fancy and add a default fallback image.</p>
<pre class="brush: php">
if ( has_post_thumbnail() ){
the_post_thumbnail( 'post-header' );
}else{
<img src="'. IMAGES .'/default.jpg" alt="Post Header Image" />
}
</pre>
<p>In this case, if the post has no thumbnail, it falls back to the default image. Hooray, continuity!</p>
<h3>Change the Sidebar’s Markup</h3>
<p>Registering a sidebar doesn’t take much. All you really need is a name and an ID to make it clear in the admin area:</p>
<pre class="brush: php">
register_sidebar( array (
'name' => __( 'Sidebar', 'main-sidebar' ),
'id' => 'primary-widget-area'
));
</pre>
<p>WordPress will apply the default markup for us, which we can style as we want. However, we can also add our own markup and style it as we want. I prefer to use divs for sidebar widgets because they are more semantically correct than list items. I also prefer <code>h3</code> for widget headings because I usually reserve <code>h2</code> for the blog post’s title. So, with that in mind:</p>
<pre class="brush: php">
register_sidebar( array (
'name' => __( 'Sidebar', 'main-sidebar' ),
'id' => 'primary-widget-area',
'description' => __( 'The primary widget area', 'wpbp' ),
'before_widget' => '<div class="widget">',
'after_widget' => "</div>",
'before_title' => '<h3 class="widget-title">',
'after_title' => '</h3>',
) );
</pre>
<p>This produces a sidebar that looks like this:</p>
<p><a href="http://media.smashingmagazine.com/wp-content/uploads/2012/06/sidebar-markup.jpg"><img src="http://media.smashingmagazine.com/wp-content/uploads/2012/06/sidebar-markup.jpg" title="The sidebar with markup. Isn't the Web Developer Toolbar great?" width="299" height="405" /></a><br />
<em>The sidebar with markup. Isn’t the Web Developer Toolbar great? (<a href="http://media.smashingmagazine.com/wp-content/uploads/2012/06/sidebar-markup.jpg">View image</a>.)</em></p>
<h3>Alter The RSS Widget’s Refresh Rate</h3>
<p>WordPress’ built-in RSS widget is fantastic, but sometimes it doesn’t update often enough. Luckily, there is a fairly simple solution for that. Just add this code to your <code>functions.php</code> file:</p>
<pre class="brush: php">
add_filter( 'wp_feed_cache_transient_lifetime',
create_function('$a', 'return 600;') );
</pre>
<p>As you can see, we are using WordPress’ <code><a href="http://codex.wordpress.org/Function_Reference/add_filter">add_filter()</a></code> function, which accepts a <a href="http://codex.wordpress.org/Plugin_API/Filter_Reference">filter hook</a>, callback function and (optional) priority. The <code>wp_feed_cache_transient_lifetime</code> hook handles the feed’s refresh rates. We’re creating our callback function on the fly using PHP’s <a href="http://us2.php.net/manual/en/function.create-function.php"><code>create_function()</code></a> function. It is one line, which returns the refresh rate in seconds. Our refresh rate is set to 10 minutes.</p>
<h3>Add Content To The RSS Feed</h3>
<p>WordPress’ ability to add targeted content to an RSS feed (i.e. content that only your subscribers can see) is especially cool. This could be anything such as ads, a hidden message or value-added content. In the following example, we’ll add a hidden message.</p>
<pre class="brush: php">
function add_to_feed($content){
$content .= "<p>Thanks for Subscribing! You're the best ever!</p>";
return $content;
}
add_filter( "the_content_feed", "add_to_feed" );
</pre>
<p>Using the filter <code>the_content_feed</code>, which is called only when the feed is created, we use a callback function to append new information to the post’s content. If we looked at our website’s feed in Google Reader, we’d see this:</p>
<p><a href="http://media.smashingmagazine.com/wp-content/uploads/2012/06/extra-feed.jpg"><img class="size-full wp-image-105895" title="extra-feed" style="border:1px solid #ddd;" src="http://media.smashingmagazine.com/wp-content/uploads/2012/06/extra-feed.jpg" alt="Here's our super-secret message to all subscribers." width="492" height="186" /></a><br />
<em>Here’s our super-secret message to all subscribers. (<a href="http://media.smashingmagazine.com/wp-content/uploads/2012/06/extra-feed.jpg">View image</a>.)</em></p>
<h3>Highlight The Author’s Comments</h3>
<p>One fairly common practice is to set off the author’s comments from the comments of readers. I do it on my blog:</p>
<p><a href="http://media.smashingmagazine.com/wp-content/uploads/2012/06/comments.jpg"><img class="size-full wp-image-105893" title="comments" src="http://media.smashingmagazine.com/wp-content/uploads/2012/06/comments.jpg" alt="My blog hasn't seen a whole lot of activity lately." width="495" height="439" /></a><br />
<em>My blog hasn’t seen a whole lot of activity lately. (<a href="http://media.smashingmagazine.com/wp-content/uploads/2012/06/comments.jpg">View image</a>.)</em></p>
<p>So, how do we accomplish this? I’m glad you asked! See, in a pre-2.7 world, some custom coding was required to determine whether the author’s ID matches the commenter’s. On my blog, I just used to check whether the commenter’s ID was 1, which was the ID of the admin. Not very good I know, but I was young and naive (as well as the blog’s only author).</p>
<p>Version 2.7+ has a fancy little function named <code><a href="http://codex.wordpress.org/Template_Tags/wp_list_comments">wp_list_comments</a></code>, which prints a post’s comments for us. Even better, it applies the class <code>.bypostauthor</code> to any comments by — you guessed it — the post’s author. Now, to style the author’s comments differently, all we need to do is this:</p>
<pre class="brush: css">
.comment { /* Reader comments */
background: #FFFFFF;
color: #666666;
}
.bypostauthor { /* Author comments */
background: #880000;
color: #FFFFFF;
}
</pre>
<p>Done! Easy, right?</p>
<p><strong>Tip:</strong> If you don’t like that WordPress tells you what markup to use in the comments section, you can tell it to use your own print function:</p>
<pre class="brush: php">
<ul class="commentlist">
<?php wp_list_comments('type=comment&callback=my_comment_display'); ?>
</ul>
</pre>
<p>Then, you create a function named <code>my_comment_display()</code>, which prints your comments as you see fit. More information on that <a href="http://codex.wordpress.org/Template_Tags/wp_list_comments#Comments_Only_With_A_Custom_Comment_Display">in the Codex</a>.</p>
<h3>Modify Published Content</h3>
<p>Just as we modified the feed’s content earlier, we can do the same thing with our website’s content using the <code>the_content</code> filter. What we’ll do here is append the author’s signature to the end of the content:</p>
<pre class="brush: php">
function sig_to_content($content){
$content .= '<p><img src="'. IMAGES .'/sig.png" alt="Joseph L. Casabona" /></p>';
return $content;
}
add_filter( "the_content", "sig_to_content" );
</pre>
<p>By now you’re getting the hang of the <code>add_filter()</code> and callback functions. In this case, our filter is <code>the_content</code>. This will add a signature to the end of both posts and pages. To filter out pages, we simply add this condition:</p>
<pre class="brush: php">
function sig_to_content($content){
if(is_single()){
$content .= '<p><img src="'. IMAGES .'/sig.png" alt="Joseph L. Casabona" /></p>';
return $content;
}
}
</pre>
<p>This function, <code>is_single()</code>, checks to see whether we’re viewing a single post (as opposed to the content’s relationship status).</p>
<h3>Create A Custom Template For A Taxonomy</h3>
<p>I started using WordPress way back in 2004, before pages, plugins or rich editing were introduced. Thinking about its evolution into an amazingly flexible platform, I remember doing custom stuff with certain categories and tags using <code>if</code> statements in the <code>single.php</code> template file. It’s much easier now.</p>
<p>WordPress has an incredibly sophisticated <a href="http://codex.wordpress.org/Template_Hierarchy">template hierarchy</a>. Everything falls back to <code>index.php</code>, while templates such as <code>page.php</code> and <code>single.php</code> display various types of content differently. But you could get specific with <code>category.php</code> and even <code>home.php</code>. As you can imagine, <code>home.php</code> would be your home page, and <code>category.php</code> would display relevant posts when the visitor is viewing a category page. What you might not know is that you can get category-specific. By creating a template page named <code>category-[slug].php</code> or <code>category-[id].php</code> (that is, for example, <code>category-news.php</code> or <code>category-6.php</code>), you are telling WordPress, “Use this template specifically for this category.” I usually copy <code>index.php</code> or <code>category.php</code> and modify them.</p>
<h3>Customize The Search Bar</h3>
<p>On the same note, you can customize the search bar by creating a template page named <code>searchform.php</code>, which will include <strong>only the search form</strong>. By default (i.e. when there is no <code>searchform.php</code>), here’s what we’re looking at:</p>
<pre class="brush: php">
<form role="search" method="get" id="searchform" action="<?php echo home_url( '/' ); ?>">
<div><label class="screen-reader-text" for="s">Search for:</label>
<input type="text" value="" name="s" id="s" />
<input type="submit" id="searchsubmit" value="Search" />
</div>
</form>
</pre>
<p><a href="http://media.smashingmagazine.com/wp-content/uploads/2012/06/search.jpg"><img class="size-full wp-image-105898" title="search" src="http://media.smashingmagazine.com/wp-content/uploads/2012/06/search.jpg" alt="The default search bar" width="342" height="46" /></a><br />
<em>The default search bar. (<a href="http://media.smashingmagazine.com/wp-content/uploads/2012/06/search.jpg">View image</a>.)</em></p>
<p>I like to eliminate the button and label and instruct the user to hit “Enter” to search. We can do that simply by creating a <code>searchform.php</code> template file and adding the code. Here’s the file in its entirety:</p>
<pre class="brush: php">
<!--BEGIN #searchform-->
<form class="searchform" method="get" action="<?php bloginfo( 'url' ); ?>">
<input class="search" name="s" onclick="this.value=''" type="text" value="Enter your search" tabindex="1" />
<!--END #searchform-->
</form>
</pre>
<p><a href="http://media.smashingmagazine.com/wp-content/uploads/2012/06/new-search.jpg"><img class="size-full wp-image-105897" title="new-search" src="http://media.smashingmagazine.com/wp-content/uploads/2012/06/new-search.jpg" alt="Our new search bar after some CSS magic" width="185" height="53" /></a><br />
<em>Our new search bar after some CSS magic. (<a href="http://media.smashingmagazine.com/wp-content/uploads/2012/06/new-search.jpg">View image</a>.)</em></p>
<h3>Customize WordPress’ Log-In Screen</h3>
<p>There are several ways to do this, mostly involving plugins. First, let’s look at a way to customize the log-in logo (and logo URL) through our own theme. Customizing the logo’s URL is easy. Just add this code to your <code>functions.php</code> file:</p>
<pre class="brush: php">
add_filter('login_headerurl',
create_function(false,"return 'http://casabona.org';"));
</pre>
<p>Much like with the refresh rate for our RSS widget, we are combining <code>add_filter()</code> and <code>create_function()</code> to return a different URL (in this case, my home page) when the <code>login_headerurl</code> hook is called. Changing the logo image is theoretically the same but does require a little extra work:</p>
<pre class="brush: php">
add_action("login_head", "custom_login_logo");
function custom_login_logo() {
echo "
<style>
body.login #login h1 a {
background: url('".get_bloginfo('template_url')."/images/custom-logo.png') no-repeat scroll center top transparent;
height: 313px;
width: 313px;
}
</style%gt;
";
}
</pre>
<p>You can see we have a hook (<code>login_head</code>) and a callback function (<code>custom_login_logo()</code>), but instead of <code>add_filter()</code>, we’re using <code>add_action()</code>. The difference between the two is that, while <code>add_filter()</code> replaces some text or default value, <code>add_action()</code> is meant to execute some code at a particular point while WordPress is loading.</p>
<p>In our callback function, we are overwriting the default CSS for the logo (<code>body.login #login h1 a</code>) with an image that we’ve uploaded to our theme’s directory. Be sure to adjust the height and width as needed. We get something like this:</p>
<p><a href="http://media.smashingmagazine.com/wp-content/uploads/2012/06/new-login.png"><img class="size-full wp-image-105896" title="new-login" src="http://media.smashingmagazine.com/wp-content/uploads/2012/06/new-login-500.jpg" alt="That is one handsome sketch." width="500" height="569" /></a><br />
<em>That is one handsome sketch. (<a href="http://media.smashingmagazine.com/wp-content/uploads/2012/06/new-login.png">View image</a>.)</em></p>
<p>You could also go the plugin route and find a bunch that will help you modify the log-in page right from the WordPress admin area. I’m familiar with <a href="http://wordpress.org/extend/plugins/custom-login/">Custom Login</a>, but go ahead and <a href="http://wordpress.org/extend/plugins/search.php?q=custom+login">try a few out</a>!</p>
<h3>Bonus: Make A Splash Page Part Of Your Theme</h3>
<p>While this isn’t exactly modifying WordPress’ default functionality, a lot of designers add completely separate splash pages, and WordPress makes this easy to do. Follow these steps:</p>
<ol>
<li>Create a new file in your theme directory named <code>page-splash.php</code> (although the name doesn’t matter).</li>
<li>Add your HTML and CSS markup and anything else you might use. The idea here is that the markup, CSS and layout for the splash page will probably be different from the rest of the website.</li>
<li>At the top of <code>page-splash.php</code>, add the following, which tells WordPress that this is a page template:<br />
<code><php /* Template Name: Splash */ ?></code></li>
<li>Add the two tags that will make your page a WordPress-ready page. Somewhere in the head (ideally, close to <code></head></code>), add <code><?php wp_head(); ?></code>. Right before the <code></body></code> tag, add <code><?php wp_footer(); ?></code>. Save it!</li>
<li>Go into the WordPress admin panel and create a page using that template:<br />
<a href="http://media.smashingmagazine.com/wp-content/uploads/2012/06/page-temp.png"><img class="aligncenter size-full wp-image-105901" title="page-temp" src="http://media.smashingmagazine.com/wp-content/uploads/2012/06/page-temp.png" alt="default template" width="277" height="179" /></a></li>
<li>Once you have saved the page, go to <code>Settings → Reading</code>, and under “Front page displays” choose the radio button “A static page.” Make the front page the splash page you created!<br />
<a href="http://media.smashingmagazine.com/wp-content/uploads/2012/06/splash1.png"><img class="aligncenter size-full wp-image-105902" title="splash" style="border:1px solid #ddd;" src="http://media.smashingmagazine.com/wp-content/uploads/2012/06/splash1.png" alt="splash screenshot" width="550" height="153" /></a></li>
</ol>
<h3>Conclusion</h3>
<p>There you have it! Over 10 modifications you can make to WordPress through hooks, functions and template pages, oh my! These are ones I use frequently, but there is a whole host of hooks to do everything from adding body classes to modifying the title before it’s printed. Flexibility and not having to modify the core are what makes WordPress such a great platform! What are your favorite tips? Let us know in the comments.</p>
<h4>Other Resources</h4>
<p>Everything we’ve talked about in this article comes from the WordPress Codex. Here are some pages I find particularly helpful:</p>
<ul>
<li>“<a href="http://codex.wordpress.org/Plugin_API">Plugin API</a>”<br />
An in-depth description of actions and filters, as well as a list of hooks.</li>
<li>“<a href="http://codex.wordpress.org/Template_Tags/">Template Tags</a>”<br />
Everything you can use in the loop.</li>
<li>“<a href="http://codex.wordpress.org/Template_Hierarchy">Template Hierarchy</a>”<br />
How your theme drills down.</li>
</ul>
<p><em>(al)</em></p>
<hr />
<p><small>© Joseph Casabona for <a href="http://www.smashingmagazine.com">Smashing Magazine</a>, 2012.</small></p>
[@attributes] => Array
(
[type] => html
[base] => http://www.smashingmagazine.com/2012/06/20/easily-customize-wordpress-default-functionality/
)
)
[thr:total] => 0
)
[2] => Array
(
[author] => Array
(
[name] => Paul Boag
[uri] => http://www.boagworld.com
)
[title] => Array
(
[@cdata] => Work, Life And Side Projects
[@attributes] => Array
(
[type] => html
)
)
[link] => Array
(
[0] => Array
(
[@value] =>
[@attributes] => Array
(
[rel] => alternate
[type] => text/html
[href] => http://www.smashingmagazine.com/2012/06/19/work-life-and-side-projects/
)
)
[1] => Array
(
[@value] =>
[@attributes] => Array
(
[rel] => replies
[type] => text/html
[href] => http://www.smashingmagazine.com/2012/06/19/work-life-and-side-projects/#comments
[count] => 48
)
)
[2] => Array
(
[@value] =>
[@attributes] => Array
(
[rel] => replies
[type] => application/atom+xml
[href] => http://www.smashingmagazine.com/2012/06/19/work-life-and-side-projects/feed/atom/
[count] => 48
)
)
)
[id] => http://mgmt.smashingmagazine.com/?p=133267
[updated] => 2012-06-20T13:37:10Z
[published] => 2012-06-19T12:34:59Z
[category] => Array
(
[0] => Array
(
[@value] =>
[@attributes] => Array
(
[scheme] => http://www.smashingmagazine.com
[term] => Opinion column
)
)
[1] => Array
(
[@value] =>
[@attributes] => Array
(
[scheme] => http://www.smashingmagazine.com
[term] => Business
)
)
[2] => Array
(
[@value] =>
[@attributes] => Array
(
[scheme] => http://www.smashingmagazine.com
[term] => productivity
)
)
)
[summary] => Array
(
[@cdata] => <table width="650"><tr><td width="650"><div style="width:650px;">
<img src="http://statisches.auslieferung.commindo-media-ressourcen.de/advertisement.gif" alt="" border="0" /><br />
<a href="http://auslieferung.commindo-media-ressourcen.de/random.php?mode=target&collection=smashing-rss&position=1" target="_blank"><img src="http://auslieferung.commindo-media-ressourcen.de/random.php?mode=image&collection=smashing-rss&position=1" border="0" alt="" /></a> <a href="http://auslieferung.commindo-media-ressourcen.de/random.php?mode=target&collection=smashing-rss&position=2" target="_blank"><img src="http://auslieferung.commindo-media-ressourcen.de/random.php?mode=image&collection=smashing-rss&position=2" border="0" alt="" /></a> <a href="http://auslieferung.commindo-media-ressourcen.de/random.php?mode=target&collection=smashing-rss&position=3" target="_blank"><img src="http://auslieferung.commindo-media-ressourcen.de/random.php?mode=image&collection=smashing-rss&position=3" border="0" alt="" /></a>
</div></td></tr></table>
<p>There is no doubt about it, I am a hypocrite. Fortunately nobody has noticed… until now. Here’s the thing. On one hand I talk about the importance of having a good work/life balance, and yet on the other I prefer to hire people who do personal projects in their spare time.</p>
<p>Do you see the problem with this scenario? How can one person possibly juggle work, life and the odd side project? It would appear there just aren’t enough hours in the day. Being the arrogant and stubborn individual I am, when this hypocrisy was pointed out to me, my immediate reaction was to endeavour to justify my position. A less opinionated individual would probably have selected one or the other, but I propose these two supposedly contradictory viewpoints can sit harmoniously together.</p>
<p><a href="http://www.smashingmagazine.com/2012/06/19/work-life-and-side-projects/"><img src="http://media.smashingmagazine.com/wp-content/uploads/2012/05/5353194240_aa2e2c66eb1.jpg" /></a><br /><em>Can you have your cake and eat it, by working on side projects, holding down a job and still having a life beyond your computer?</em></p>
<p>To understand how this is possible we must first establish why a work/life balance is important and what role side projects play. Let’s begin by asking ourselves why it is important to have a life beyond our computers, even when we love what we do.</p>
[@attributes] => Array
(
[type] => html
)
)
[content] => Array
(
[@cdata] => <table width="650">
<tr>
<td width="650">
<div style="width:650px;">
<img src="http://statisches.auslieferung.commindo-media-ressourcen.de/advertisement.gif" alt="" border="0" /><br />
<a href="http://auslieferung.commindo-media-ressourcen.de/random.php?mode=target&collection=smashing-rss&position=1" target="_blank"><img src="http://auslieferung.commindo-media-ressourcen.de/random.php?mode=image&collection=smashing-rss&position=1" border="0" alt="" /></a> <a href="http://auslieferung.commindo-media-ressourcen.de/random.php?mode=target&collection=smashing-rss&position=2" target="_blank"><img src="http://auslieferung.commindo-media-ressourcen.de/random.php?mode=image&collection=smashing-rss&position=2" border="0" alt="" /></a> <a href="http://auslieferung.commindo-media-ressourcen.de/random.php?mode=target&collection=smashing-rss&position=3" target="_blank"><img src="http://auslieferung.commindo-media-ressourcen.de/random.php?mode=image&collection=smashing-rss&position=3" border="0" alt="" /></a>
</div>
</td>
</tr>
</table>
<p>There is no doubt about it, I am a hypocrite. Fortunately nobody has noticed… until now. Here’s the thing. On one hand I talk about the importance of having a good work/life balance, and yet on the other I prefer to hire people who do personal projects in their spare time.</p>
<p>Do you see the problem with this scenario? How can one person possibly juggle work, life and the odd side project? It would appear there just aren’t enough hours in the day. Being the arrogant and stubborn individual I am, when this hypocrisy was pointed out to me, my immediate reaction was to endeavour to justify my position. A less opinionated individual would probably have selected one or the other, but I propose these two supposedly contradictory viewpoints can sit harmoniously together.</p>
<p><img src="http://media.smashingmagazine.com/wp-content/uploads/2012/05/5353194240_aa2e2c66eb1.jpg" alt="http://www.smashingmagazine.com/2012/06/19/work-life-and-side-projects/" /><br /><em>Can you have your cake and eat it, by working on side projects, holding down a job and still having a life beyond your computer? Image by <a href="http://www.flickr.com/photos/76491533@N00/5353194240/">GuySie</a>.</em></p>
<p>To understand how this is possible we must first establish why a work/life balance is important and what role side projects play. Let’s begin by asking ourselves why it is important to have a life beyond our computers, even when we love what we do.</p>
<h3>Why We Should Have A Life Beyond The Web</h3>
<p>Generally speaking Web designers love their job. In many cases our job is also our hobby. We love nothing more than experimenting with new technology and techniques. When we aren’t working on websites we are tinkering with gadgets and spending a much higher than average time online. <strong>Although in our job this single-mindedness is useful, it is ultimately damaging both for our personal wellbeing and career</strong>.</p>
<p>In the early days of my career, when I was young, I used to happily work long hours and regularly pull all-nighters. It was fun and I enjoyed my job. However, this set a habit in my working life that continued far longer than was healthy. Eventually I became stressed and fell ill. In the end things became so bad that I was completely unproductive.</p>
<p>This high-intensity working also sets a baseline for the whole industry, where it becomes the norm to work at this accelerated speed. No longer are we working long hours because we want to, but rather because there is an expectation we should. This kind of work/life balance can only end one way, in burnout. This damages us personally, our clients and the industry as a whole. It is in our own interest and those of our clients to look after our health.</p>
<p>This means we cannot spend our lives sitting in front of a screen. It simply isn’t healthy. Instead we need to participate in activities beyond our desks. Preferably activities that involve at least some exercise. A healthy diet wouldn’t hurt either. Getting away from the Web (and Web community) offers other benefits too. It is an opportunity for us to interact with non Web people. Whether you are helping a charity or joining a rock climbing club, the people you meet will provide a much more realistic view of how ‘normal’ people lead their lives.</p>
<p>This will inform our work. I often think that, as Web designers, we live in a bubble in which everybody is on twitter all day, and understands that typing a URL into Google isn’t the best way to reach a website. Not that this is all we will learn from others. We can also learn from other people’s jobs. For example, there is a lot we can learn from architects, psychologists, marketeers and countless other professions. We can learn from their processes, techniques, expertise and outlook. All of this can be applied to our own role.</p>
<p>As somebody who attends a church (with a reasonable cross section of people) and used to run a youth group, I can testify that mixing with non Web people will transform your view of what we do. Furthermore, the activities you undertake will shape how you do work. Reading a non-Web book, visiting an art gallery, or even taking a walk in the countryside, can all inform and inspire your Web work. There is no doubt, that stepping away from the computer at the end of a working day will benefit you personally and professionally. Does this therefore mean you should shelve your side projects? Not at all, these are just as important.</p>
<h3>Why We Should All Have Side Projects</h3>
<p>I love to hire people who have side projects. Take for example <a href="http://twitter.com/bobscape">Rob Borley</a> who works at <a href="http://headscape.co.uk/">Headscape</a>. He runs a <a href="http://www.itakeout.co.uk/">takeaway ordering site</a>, has his <a href="http://www.dootrix.com/">own mobile app business</a> and has just launched an <a href="http://www.simpl.com/">iPad app</a>. These projects have been hugely beneficial to Headscape. Rob has become our mobile expert, has a good handle on what it takes to launch a successful Web app and puts his entrepreneurial enthusiasm into everything he does for us.</p>
<p><a href="http://www.itakeout.co.uk"><img src="http://media.smashingmagazine.com/wp-content/uploads/2012/05/Voila_Capture68.png" alt="Robs side projects such as iTakeout has broadened his experience and made him an indispensable employee." title="itakeout.co.uk" /></a><br /><em>Rob’s side projects such as <a href="http://www.itakeout.co.uk">iTakeout</a> has broadened his experience and made him an indispensable employee.</em></p>
<p>But side projects don’t just benefit your employer, they benefit your personal career. They provide you with a chance to experiment and learn new techniques that your day job may not allow. They also provide you with the opportunity to widen your skills into new areas and roles. Maybe in your day job you are a designer, but your side project might provide the perfect opportunity to learn some PHP. Finally, side projects allow you to work without constraints. This is something many of us crave and being able to set our own agenda is freeing. However, it is also a challenge. We have to learn how to deliver when there is nobody sitting over our shoulder pushing us to launch.</p>
<p><strong>All of this knowledge from personal projects has a transformative effect that will change your career.</strong> It will increase your chance of getting a job and show your employer how valuable you are. It may also convince your employer to create a job that better utilises your skills, as we did for Rob. Rob used to be a project manager, but when we saw his passion and knowledge for mobile we created a new role focusing on that. Of course, this leads us to the obvious question: how can we have time away from the computer if we should also be working on side projects?</p>
<h3>Is Hustling The Answer?</h3>
<p>If you listen to <a href="http://garyvaynerchuk.com/">Gary Vaynerchuk</a> or read <a href="http://calacanis.com/">Jason Calacanis</a>, you maybe forgiven for thinking the answer is to ‘hustle’; to work harder. They proclaim we should cut out TV, dump the xbox and focus single-mindedly on achieving our goals. There is certainly a grain of truth in this. We often fritter away huge amounts of time, largely unaware of where it is going. We need to be much more conscious about how we are spending our time and ensure we are making a choice about where it goes.</p>
<p>I don’t think working harder is the long term solution, however. We can work hard for short periods of time, but as we have already established this can’t continue indefinitely. We need downtime. We need time lounging in front of the TV or mindlessly shooting our friends in Halo. If we don’t have that we never allow our brain the chance to recuperate and we end up undermining our efficiency. I don’t believe the answer is “work hard, play hard”. I believe the answer is “work smarter”.</p>
<h3>We Can Do Everything If We Work Smarter</h3>
<p>Working smarter is about three things:</p>
<ul>
<li>Combining interests,</li>
<li>Creating structure,</li>
<li>Knowing yourself.</li>
</ul>
<p>Let’s look at each in turn.</p>
<h4>Combine Interests</h4>
<p>A good starting point when it comes to working smarter is to look for commonality between the three aspects of your life (work, life and side projects). You can often achieve a lot by coming up with things that have a positive impact in each of those areas. Take for example the choice of your personal project. If you look at most personal projects out there, they are aimed at a technical audience. We are encouraged to “build for people like us” which has led to an endless plethora of HTML frameworks and WordPress plugins.</p>
<p><a href="http://www.pixelzdesign.com/blog_view.php?id=55"><img src="http://media.smashingmagazine.com/wp-content/uploads/2012/05/jquery.png" alt="Maybe if we got out more there would be a wider range of personal projects and fewer of near identical jQuery plugins!" title="Post showing an endless list of jQuery plugins" /></a><br /><em>Maybe if we got out more there would be a wider range of personal projects and fewer of near identical <a href="http://www.pixelzdesign.com/blog_view.php?id=55">jQuery plugins</a>!</em></p>
<p>If however we have built up interests outside of the Web, suddenly it opens up a new world of possibilities for side projects.</p>
<p>I wanted to get to know more people at my church. There are so many I have never spoken to. I also wanted to keep my hand in with code (as I don’t get to code a lot anymore), so I decided to build a new church website in my spare time. This involved talking to lots of people from the church, and also gave me the chance to experiment with new ways of coding. What is more, some of the things I learned have been valuable at work too.</p>
<p>Look for ways of combining personal projects with outside activities. Alternatively, identify side projects that could make your working life easier. This kind of crossover lets you get more done. However, by itself that is not enough. We need some structure too.</p>
<h4>Create Structure</h4>
<p>If we want to get the balance right between personal projects, work and life we need some structure to work in.</p>
<p>For a start take control of your working hours. I know this isn’t easy if you have a slave driver of a boss, but most of us have at least some control over how long we work. You will be surprised, limiting your hours won’t damage your productivity as much as you think. You will probably get as much done in less time. Work tends to expand to take as much time as you are willing to give it. Next, stop fluttering from one thing to another. When you are “having a life” don’t check work email or answer calls. There is a growing expectation we should be available 24/7. Resist it.</p>
<p>One method to keep you focused is the <a href="http://www.pomodorotechnique.com/">Pomodoro technique</a>. This simple approach breaks your day into a series of 30 minute chunks. You work for 25 minutes on a single task free from interruption and then have a 5 minute break. Similar tasks are grouped together so that you spend 25 minutes answering email rather than allowing email to interupt other blocks of work. </p>
<p><a href="http://www.pomodorotechnique.com/"><img src="http://media.smashingmagazine.com/wp-content/uploads/2012/05/Voila_Capture70.png" alt="The Pomodoro technique is a simple way of staying focus on the task in hand" title="Pomodoro technique website" /></a><br /><em>The <a href="http://www.pomodorotechnique.com/">Pomodoro technique</a> is a simple way of staying focus on the task in hand.</em></p>
<p>Set specific time for working on personal projects and stick to them. Don’t allow that time to expand into your free time. Equally don’t allow work to distract you from your side project. Set boundaries. If you need to, set an alarm for each activity. Nothing will focus your mind on a personal project like having only 30 minutes until your alarm goes off. You will inevitably try and squeeze just one more thing in. These artificial deadlines can be very motivating.</p>
<p>Finally, make sure work, personal projects and recreation all have equal priority in your mind. One way to do this is to use a task manager like <a href="http://www.omnigroup.com/products/omnifocus/">Omnifocus</a>, <a href="http://culturedcode.com/things/">Things</a> or <a href="http://www.6wunderkinder.com/wunderlist/">Wunderlist</a> to keep all your tasks in one place. Often we have a task list for our work but not for other aspects of our life. This means that work is always prioritised over other activities. It is just as important to have a task to “finish that book” you are reading as “debug IE7”. Providing structure won’t just help with your side projects. It will also help with your sanity.</p>
<h4>Know Yourself</h4>
<p>Remember, the goal here is to have fun on side projects, broaden your horizon with outside activities and recharge with downtime. You therefore must be vigilant in keeping the balance and ensure that all these competing priorities don’t drain you.</p>
<p>Part of the problem is that we spend too much time on activities that we are just not suited to. Its important to recognize your weaknesses and avoid them. If you don’t, you waste time doing things you hate and doing them badly. For example, I just am no good at DIY. I used to waste hours trying to put up shelves and fix plumbing. Because I was trying to do something I was weak at, it would take forever and leave me too tired to do other things. </p>
<p>My solution to this problem was to delegate. I employed people to do my DIY. People that could do it much quicker and to a higher quality than me. How did I pay for this? I did what I was good at, building websites. I would work on the odd freelance site, which I could turn around quickly and enjoy doing. This applies to the side projects we take on too. Learning new skills is one thing, but if it stops being fun because you are just not suited to it, move on. Working on stuff you are not suited to will just leave you demoralized and tired.</p>
<p>Talking of being tired, I would recommend not working on personal projects immediately after getting home from work. Give yourself time to unwind and allow your brain to recover. Equally don’t work on side projects right up until you go to bed. This will play havoc with your sleep patterns and undermine your productivity.</p>
<p>Finally, remember that side projects are meant to be fun. Don’t undertake anything too large because not seeing regular results will undermine your enthusiasm. If you want to work on something large, I suggest working with others. There is certainly <a href="http://www.smashingmagazine.com/2011/11/30/the-smashing-guide-to-moving-the-web-forward-community/">no shortage of opportunities</a>. Alternatively try breaking up the project into smaller sub-projects each with a functioning deliverable.</p>
<h3>Am I Asking For The Impossible?</h3>
<p>So there you have it. My attempt to have my cake and eat it. I believe you can have side projects, a life beyond computers and get the day job done. It’s not always easy and if I had to pick I would choose having a life over side projects. However, I believe that personal projects can be fun, good for our careers and also facilitate a life beyond the Web.</p>
<p>So do you agree? Am I being unrealistic? What challenges do you find in striking the balance or what advice do you have for others? These are just my thoughts and I am sure you can add a lot to the discussion in the comments.</p>
<p><em>(jc)</em></p>
<hr />
<p><small>© Paul Boag for <a href="http://www.smashingmagazine.com">Smashing Magazine</a>, 2012.</small></p>
[@attributes] => Array
(
[type] => html
[base] => http://www.smashingmagazine.com/2012/06/19/work-life-and-side-projects/
)
)
[thr:total] => 48
)
[3] => Array