Archive pour la catégorie ‘CSS3’

La minute graphique – janvier 2012 #2

Jeudi 12 janvier 2012

Dans ce deuxième article, nous n’allons pas nous contenter de voir des beaux sites, nous allons également voir quelques exemples de ce qu’on peut faire avec les nouvelles technologies, ici CSS3.

Les sites avec une navigation intéressante :

The work cycle

Cheval blanc

10 years in type

xc travels

estudioagraph

graydenpoper

pauleka

Des sites aux contenus inspirants

Design by Rolf

Kyle Bean

With more air

Built by Moby

Des animations en CSS3 (les voir dans Chrome ou Safari!)

Image Transitions

Ipad

Photo stack

iPhone 4

Naturellement il est toujours délicat d’utiliser des effets comme ceux-là dans nos sites, mais c’est toujours une bonne source d’inspiration, et la révolution CSS3 n’est plus très loin!

La prochaine, nous verrons des outils très pratiques pour jouer avec CSS3.

HTML5 vs CSS3 pour dessiner

Dimanche 10 juillet 2011

Exercice de comparaison entre HTML5 et CSS3 pour dessiner dans une page web. J’ai repris le petit blob réalisé il y a maintenant 1 an et demi et je l’ai passé à la sauce canvas. Voici le résultat

Réaliser des dessins avec uniquement du CSS3, c’était déjà bien amusant et permettait de faire simplement des animations avec une petite couche de js.

Avec l’élément canvas on passe encore à la vitesse supérieure, car avec cette balise on entre encore dans une autre dimensions. A la fois plus simple car en quelques lignes on réalise des formes très complexes, et plus compliqué car il va falloir se replonger un peu dans ces cours de maths, pas bien méchant mais quand même.

En temps, je pense même avoir été plus vite à réaliser la version HTML5, alors que c’était mon premier vrai exercice.
Voici le résultat : HTML5 vs CSS3

Quelques techniques utilisées ici avec la balise canvas :

  • Dessiner des rectangles
  • Dessiner des cercles et arcs
  • Faire des dégradés linéiares et radiaux
  • Réaliser des courbes et d’autres formes plus complexes
  • Et faire des masques de formes (comme pathfinder d’Illustrator)

Et ceci n’est qu’une petite partie des possibilités.

Pour le moment ces dessins sont statiques, mais très facilement il est possible d’animer ces éléments.

N’hésitez plus et amusez-vous avec la balise canvas, je vous recommande le livre de Rob Hawkes : Foundations HTML5

Have fun!

Effets de lumières sous-marine avec jQuery et du CSS3 (subMarine plugin)

Jeudi 29 avril 2010

D’habitude j’essaie de faire des articles avec des javascripts qui pourront être utiles… Dans le sens fonctionnels. Mais aujourd’hui je vous présente un petit script complètement inutile, mais dont je trouve l’effet assez jolie. Et une fois n’est pas coutume je vous l’ai mis en plugin.

L’objectif de ce script était de créer une ambiance dans une page web, et pour cela il fallait éviter que l’effet soit redondant pour ne pas lasser. Aussi la plupart des éléments de ce script seront complètement aléatoires. Pour cela la page ne doit contenir aucun élément à la base pour que nous puissions jouer avec différentes variables comme le nombre. Nous jouerons aussi avec la hauteur des rayons et leurs largeurs, ainsi que l’opacité. Pour cela rien de tel que du CSS3 plutôt que des images!

La démonstration

Le plugin subMarine

Cet effet fonctionne sur les navigateurs supportant le CSS3 bien sûr, soit les derniers Firefox, Safari, Chrome et sans doute sur mac (clin d’oeil dans la direction d’un certain Manu). Je remarque les limites de mon navigateur favori Firefox qui rame un peu sur l’animation, contrairement aux 2 autres qui assurent.

Ce petit effet utilise notre bonne bibliothèque jQuery, et le plugin timers (par conséquent il faudra utiliser la version 1.3.2 de jQuery, sinon vous devrez utiliser un bon vieux setInterval pour faire la boucle, ce qui n’est pas plus mal.)

Notre structure HTML est archi simple, en effet nous allons nous servir d’un repère et créer à l’intérieur les élement qui feront les rayons.

Puis voici le CSS assez léger également, mais comportant tout le CSS3 pour créer notre reflet. J’aurais aussi pu faire le dégradé du background… mais je ne l’ai pas fait… Si vous voulez changer la couleur du background il vous faudra aussi adapter la couleur de fin du reflet. On utilise des tailles par défaut mais qui seront recalculées par javascript, ainsi que l’opacité.

body {
	background:#006699 url(../images/top.png) repeat-x;
}
#reflets {
	position:relative;
	width:900px;
	margin:0 auto;
}
.gradient {
	position:absolute;
	background: #fff; /* for non-css3 browsers */
	background: -webkit-gradient(linear, left top, left bottom, from(#fff), to(#006699)); /* for webkit browsers */
	background: -moz-linear-gradient(top,  #fff,  #006699); /* for firefox 3.6+ */
	-webkit-transform: rotate(-15deg);
	-moz-transform: rotate(-15deg);
	-o-transform: rotate(-15deg);
	opacity:0.3;
	top:-20px;
}

Voici comment appeler le plugin, si vous utilisez un id ‘reflets’ :

$(document).ready(function(){
	$("#reflets").subMarine();
});

Je vous mets également le plugin complet ici, si vous voulez le détailler tranquillement.

jQuery.fn.subMarine = function(){
	var bloc = $(this).width();
    var chiffre = (Math.floor(Math.random() * 10)) + 5;
    for (i = 0; i < chiffre; i++) {
        $(this).append('
'); var pos = Math.floor(Math.random() * bloc); var hauteur = (Math.floor(Math.random() * 100)) + 200; var largeur = (Math.floor(Math.random() * 30)) + 20; $(".g" + i).css({ left: pos, height: hauteur, width: largeur, opacity: 0 }); jQuery.fn.mouv = function(){ var posNew = Math.floor(Math.random() * bloc); var hauteurNew = (Math.floor(Math.random() * 100)) + 200; var largeurNew = (Math.floor(Math.random() * 30)) + 20; var niveau = (Math.random() * 0.3) + 0.2; var duree = (Math.floor(Math.random() * 3000)) + 15000; $(this).animate({ left: posNew, height: hauteurNew, width: largeurNew, opacity: niveau }, duree); }; $(".g" + i).mouv(); var j = i; for (j = 0; j < chiffre; j++) { $(".g" + i).everyTime(15000, function(){ $(this).mouv(); }); } } };

Alors je n'ai pas fait le boulot complètement, car l'idéal aurait été que je mette des petites variables à modifier à l'extérieur, comme le nombre minimum et max... J'ajouterai ça plus tard. ^^

J'espère que ce petit script vous inspirera, n'hésitez pas à donner vos remarques.
A bientôt !