Prototyper un site web avec Awestruct et Boostrap

Transcription

Prototyper un site web avec Awestruct et Boostrap
Prototyper un site web
avec Awestruct
et Boostrap
On va parler de...
●
Prototype
●
Awestruct
●
Bootstrap
●
Bonus (GitHub, JSF)
Prototyper : pourquoi ?
●
Mettre tout le monde d'accord
●
Avoir un support concret
●
Aide pour rédiger les specs
●
●
Montrer autre chose que des tonnes de papier
au client
Faire autre chose que rédiger des tonnes de
papier pour le client
Prototyper : comment ?
●
Léger
●
Portable
●
Agile
●
Rapide
●
Dynamique
●
Hot-deploy
●
Responsive
●
Réel
●
Bon marché
Prototyper : comment ?
●
Application Java EE
●
HTML pur
●
PHP
●
Générateur en ligne
●
Awestruct
Prototyper : comment ?
●
Application Java EE : un peu lourd
●
HTML pur
●
PHP
●
Générateur en ligne
●
Awestruct
Prototyper : comment ?
●
Application Java EE
●
HTML pur : copier, coller, copier, coller, ...
●
PHP
●
Générateur en ligne
●
Awestruct
Prototyper : comment ?
●
Application Java EE
●
HTML pur
●
PHP : sérieusement ?
●
Générateur en ligne
●
Awestruct
No
t
n
e
m
com
Prototyper : comment ?
●
Application Java EE
●
HTML pur
●
PHP
●
Générateur en ligne :
trop de limitations
●
Awestruct
Prototyper : comment ?
●
Application Java EE
●
HTML pur
●
PHP
●
Générateur en ligne
●
Awestruct : essayons donc ça !
Awestruct
●
Ruby (désolé...)
●
HTML
●
HAML
●
Textile
●
SASS
●
Layout
●
Extensions
Awestruct : installer
$ sudo apt-get install rubygems
$ sudo gem install awestruct
!
t
i
s
'
t
a
Th
Awestruct : démarrer
$ mkdir prototype
$ cd prototype
$ awestruct --init
$ awestruct -d
t
a
h
T
!
n
i
a
g
a
t
i
's
http://localhost:4242/
Awestruct : qu'avons-nous là ?
Configuration
Extensions
Layouts
Génération
Code
Awestruct : fonctionnement
●
Templating
●
Import
●
●
●
●
Tout est “page”
●
Layout
Variables
●
Attributs
Profils
●
Tags
●
N'importe quoi
Extensions
Awestruct : fonctionnement
Scan du projet
Génération des pages
Extensions
Génération du site
Awestruct : extensions & helpers
●
Indexifier
●
IntenseDebate
●
Posts
●
Disqus
●
Paginator
●
Flattr
●
Atomizer
●
Textil
●
Tagger
●
Partial
●
TagCloud
●
Google Analytics
●
DataDir
No limit !
Bilan intermédiaire
●
Nous avons :
●
Nous n'avons pas :
●
Site léger
●
Design
●
Portable
●
Responsive
●
Dynamique
●
Réel
●
Hot-deploy
En résumé : ça marche, mais c'est moche...
Bootstrap
●
Deux fichiers CSS
●
Design de base
●
Design responsive
●
Un fichier JavaScript
●
Deux images
●
Icônes noirs
●
Icônes blancs
!
t
u
o
t
t
s
e
Et c'
Bootstrap : philosophie
●
Responsive
●
Modulaire
●
Simple
●
Documenté
●
Production ready
●
Les classes CSS sont reines
●
Les attributs data-* sont rois
Bootstrap : grille responsive
●
●
Un conteneur fixe ou fluide
●
Fixe : largeur connue
●
Fluide : largeur 100%
Une grille de 12 colonnes
Bootstrap : grille responsive
Environnement
Largeur
Colonne fixe
Marge fixe Colonne fluide
Marge fluide
Smartphone
<= 480px
Fluide
Fluide
Fluide
Fluide
De smartphone
à tablette
481px
767px
Fluide
Fluide
Fluide
Fluide
Tablette en
mode paysage
768px
989px
42px
20px
5.80111%
2.76243%
Défaut
980px
1199px
60px
20px
6.38298%
2.12766%
Ecran large
>= 1200px
70px
30px
5.98291%
2.5641%
Bootstrap : grille responsive
Bootstrap : classes CSS
●
a
●
a.btn
●
a.btn.btn-primary
●
a.btn.btn-primary.btn-large
●
a.btn.btn-primary.btn-large.disabled
Bootstrap : classes CSS
●
●
table.table
table.table.tablebordered
●
●
table.table.table-striped
table.table.tablestriped.table-bordered
Bootstrap : design
Bootstrap : design
Bootstrap : design
Bootstrap : design
Bootstrap : icônes
Bootstrap : attributs data-*
●
Envie d'effets modernes ?
●
Pas le temps de faire du JavaScript ?
●
Pas envie de faire du JavaScript ?
●
La flemme d'apprendre le JavaScript ?
●
Vous ne savez pas ce qu'est le JavaScript ?
●
Bootstrap à la rescousse !
Bootstrap : modal panel
<a class=”btn” data-toggle=”modal” href=”#modalPanel”>Afficher</a>
<div id=”modalPanel” class=”modal”>
<div class=”modal-header”>
<button class="close" data-dismiss="modal">×</button>
<h3>Modal header</h3>
</div>
<div class="modal-body">
<p>One fine body...</p>
</div>
</div>
Bootstrap : dropdown
<ul class=”nav”>
<li id=”dropdown” class=”dropdown”>
<a class="dropdown-toggle" data-toggle="dropdown"
href="#dropdown">Dropdown<b class="caret"></b></a>
<ul class="dropdown-menu">
<li><a href="#">Action</a></li>
<li><a href="#">Another action</a></li>
<li><a href="#">Something else here</a></li>
<li class="divider"></li>
<li><a href="#">Separated link</a></li>
</ul>
</li>
</ul>
Boostrap : résumé
●
Classes CSS
●
JavaScript et data-*
●
Grille responsive
●
Modal panel
●
Boutons
●
Dropdown
●
Tables
●
Onglet
●
Listes
●
Tooltip
●
Formulaires
●
Boutons (split, radio, ...)
●
Labels
●
Spy bar
●
Badges
●
Collapse
●
Miniatures
●
Carousel
●
Barres de chargement
●
Typehead
Bootstrap : aller plus loin
●
●
Réalisez votre propre thème visuel
●
Générateur en ligne
●
A la main
Utilisez SASS ou LESS
Bonus
●
JSF (Java Server Faces)
●
●
●
●
Support des attributs data-* : ticket 1090 de la spec
RichFaces Sandbox : premiers composants JSF
basés sur Bootstrap
render=”@all” is evil !
GitHub
●
username.github.com
●
gh-pages branch
●
Script .sh to deploy and push
Ressources
●
Awestruct
●
Bootstrap
●
Site officiel
●
Site officiel
●
Site Arquillian
●
Gallerie de sites
●
Référence HAML
●
Gallerie de design
Questions
?