 
 
 <?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>upCreative &#187; bootstrap</title>
	<atom:link href="https://www.upcreative.net/tag/bootstrap/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.upcreative.net</link>
	<description>Web Design, grafica,  web application e content web marketing</description>
	<lastBuildDate>Wed, 10 Apr 2019 12:53:28 +0000</lastBuildDate>
	<language>it-IT</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=4.1.41</generator>
	<item>
		<title>Come realizzare un Mobile Action Sheet con Bootstrap 3 e Animazioni CSS3</title>
		<link>https://www.upcreative.net/come-realizzare-un-mobile-action-sheet-con-bootstrap3-e-animazioni-css3/</link>
		<comments>https://www.upcreative.net/come-realizzare-un-mobile-action-sheet-con-bootstrap3-e-animazioni-css3/#comments</comments>
		<pubDate>Tue, 14 Jan 2014 09:23:44 +0000</pubDate>
		<dc:creator><![CDATA[upcreative]]></dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[Web Apps]]></category>
		<category><![CDATA[Web Design]]></category>
		<category><![CDATA[animazioni]]></category>
		<category><![CDATA[bootstrap]]></category>
		<category><![CDATA[css3]]></category>
		<category><![CDATA[HTML Mobile App]]></category>
		<category><![CDATA[html5]]></category>
		<category><![CDATA[iOS 7]]></category>
		<category><![CDATA[javascript]]></category>

		<guid isPermaLink="false">http://www.upcreative.net/?p=3013</guid>
		<description><![CDATA[<p>Un altro tutorial in cui ti mostro come realizzare un'interfaccia con mobile action sheet stile iOS7, tramite animazioni CSS3 e Twitter Bootstrap 3, e sfruttando la tecnica dell'accelerazione hardware per rendere l'effetto fluido e performante.</p>
<p>The post <a rel="nofollow" href="https://www.upcreative.net/come-realizzare-un-mobile-action-sheet-con-bootstrap3-e-animazioni-css3/">Come realizzare un Mobile Action Sheet con Bootstrap 3 e Animazioni CSS3</a> appeared first on <a rel="nofollow" href="https://www.upcreative.net">upCreative</a>.</p>
]]></description>
				<content:encoded><![CDATA[<div class="l-submain"><div class="l-submain-h g-html i-cf"><div class="g-cols"><div class="full-width">
	<div class="wpb_text_column ">
		<div class="wpb_wrapper">
			
<p>Nella realizzazione di <strong>HTML5 Mobile App</strong> in <strong>CSS3</strong> e <strong>Javascript</strong> numerosi sono i controlli che possono essere ricreati in modo da sviluppare prodotti che si avvicinano più possibile alle applicazioni native.</p>
<p>Negli articoli precedenti mi sono soffermato più volte sull&#8217;importanza delle<strong> performance di animazioni CSS3</strong> per quanto riguarda le interfacce web, soprattuto per quelle destinate a girare su dispositivi mobile.</p>
<p>Utilizzando questo tipo di animazioni, che forzano la creazione di <strong>livelli grafici</strong> da essere poi inviati alla <strong>GPU</strong> velocizzando il <strong>processo di</strong><strong> rendering</strong>, è possibile riprodurre la maggior parte dei componenti presenti in app native in modo <strong>fluido e performante</strong>.</p>
<p><em>A questo proposito ti consiglio di leggere:</em></p>
<ul>
<li><em><a title="Ottimizzare le animazioni CSS3 con i layers grafici" href="http://www.upcreative.net/performance-css3-consigli-per-ottimizzare-le-animazioni/">Performance CSS3 &#8211; Consigli per ottimizzare le prestazioni di rendering con i livelli grafici</a></em></li>
</ul>
<p>Con i CSS3 è possibile riprodurre per esempio elementi come slide menu (ecco un <a title="CSS3 slide panel: tutorial su come realizzare un menu stile mob" href="http://www.upcreative.net/css3-slide-panel-tutorial-creare-menu-mobile/">tutorial su come crearne uno</a>), tab bar, modal alert, popover ecc..</p>

		</div> 
	</div> 
	<div class="wpb_single_image wpb_content_element align_center">
		<div class="wpb_wrapper">
			
			<img width="690" height="400" src="http://www.upcreative.net/wp-content/uploads/2014/01/Mobile-Action-Sheet-con-Bootstrap-3-e-Animazioni-CSS3.jpg" class="attachment-full" alt="Mobile-Action-Sheet-con-Bootstrap-3-e-Animazioni-CSS3" />
		</div> 
	</div> <div class="g-cols"><div class="one-half"><div class="wpb_button align_center"><a href="http://www.upcreative.net/tutorials/14012014-Action-sheet-per-dispositivi-mobile/"class="g-btn type_primary size_big"><span><i class="fa fa-eye-open"></i>Demo</span></a></div>
</div><div class="one-half"><div class="wpb_button align_center"><a href="http://www.upcreative.net/download/3048/"class="g-btn type_primary size_big"><span><i class="fa fa-download-alt"></i>Download</span></a></div>
</div></div>
	<div class="wpb_text_column ">
		<div class="wpb_wrapper">
			
<h2></h2>
<h2>Mobile Action Sheet con Animazioni CSS3</h2>
<p><a ref="magnificPopup" href="http://www.upcreative.net/wp-content/uploads/2014/01/CSS3-mobile-action-sheet.jpg"><img class="alignright" alt="CSS3-mobile-action-sheet" src="http://www.upcreative.net/wp-content/uploads/2014/01/CSS3-mobile-action-sheet.jpg" width="250" height="auto" /></a></p>
<p>In questo articolo voglio mostrarti come realizzare un <strong>modal action-sheet</strong> sfruttando <strong>animazioni CSS3</strong> performanti, che agiscono su determinati attributi in modo da sfruttare la tecnica della composizione dei livelli grafici.</p>
<p>In altre parole ricreeremo una modal dialog con dei pulsanti al suo interno che compare dal fondo dello schermo.</p>
<p>Per quanto riguarda gli stili dei pulsanti ci serviremo di quelli forniti dal framework <a title="Twitter Bootstrap 3 - Responsive CSS framework" href="http://getbootstrap.com"><strong>Twitter Bootstrap 3</strong></a>, che con i suoi <a title="Twitter Bootstrap 3 - Gruppi di pulsanti verticali" href="http://getbootstrap.com/components/#btn-groups-vertical">gruppi di pulsanti verticali</a> si avvicina molto ai pulsanti che si trovano nel mobile action sheet del sistema operativo iOS7.</p>
<p><em>Qui a fianco uno screenshot che mostra il classico esempio di un mobile action sheet nativo durante l&#8217;utilizzo dall&#8217;applicazione &#8220;Mail&#8221; di iOS7</em></p>
<h2>Il markup HTML</h2>
<p>Dopo aver incluso nel documento le risorse di cui ci serviremo, come appunto il framework Twitter Bootstrap, <a title="Modernizr - Libreria per determinare le compatibilità dei browser" href="http://modernizr.com">Modernizr</a> ed il solito <a title="jQuery - Javascript framework" href="http://jquery.com">jQuery</a>, andiamo a definire il markup HTML:</p><pre class="crayon-plain-tag">&lt;nav&gt; &lt;!-- tabbar --&gt;
&lt;/nav&gt;
&lt;article&gt;  &lt;!-- corpo documento --&gt;

	&lt;h1&gt;Action Sheet con animazioni CSS3&lt;/h1&gt;

	&lt;div class="text-center"&gt;
		&lt;button id="start"  type="button" class="btn btn-default"&gt;Mostra action sheet&lt;/button&gt;
	&lt;/div&gt;		

&lt;/article&gt;

&lt;div class="action-sheet"&gt; &lt;!-- contenitore action sheet --&gt;

    &lt;div&gt;&lt;/div&gt; &lt;!-- l'overlay dell'action-sheet --&gt;
    &lt;section&gt;   &lt;!-- il contenitore dei pulsanti --&gt;

    &lt;/section&gt;
&lt;/div&gt;</pre><p>
&nbsp;</p>
<p><span style="line-height: 1.5em;">Oltre ai tag </span><em style="line-height: 1.5em;">&lt;nav&gt;</em><span style="line-height: 1.5em;">  ed </span><em style="line-height: 1.5em;">&lt;article&gt;,</em><span style="line-height: 1.5em;"> che rappresentano rispettivamente la tabbar ed il corpo del documento, inseriamo il codice HTML per definire gli elementi DOM che rappresentano l&#8217;intero action sheet. Abbiamo un contenitore principale (con classe .</span><em style="line-height: 1.5em;">action-sheet</em><span style="line-height: 1.5em;">) all&#8217;interno del quale si trovano una </span><strong style="line-height: 1.5em;"><em>&lt;div&gt;</em></strong><span style="line-height: 1.5em;"> ed un elemento </span><em style="line-height: 1.5em;"><strong>&lt;section&gt;</strong>, il primo per </em><span style="line-height: 1.5em;">l&#8217;</span><strong style="line-height: 1.5em;">overlay</strong><span style="line-height: 1.5em;"> trasparente di sfondo, mentre il secondo per il </span><strong style="line-height: 1.5em;">contenitore dei pulsanti</strong><span style="line-height: 1.5em;">.</span></p>
<p>Vediamo ora come scrivere il markup dei pulsanti, utilizzando gli stili di Bootstrap:</p><pre class="crayon-plain-tag">&lt;div class="row"&gt;
    &lt;div class="col-xs-12 col-sm-6 col-sm-offset-3 col-md-6 col-md-offset-3 btn-group-vertical"&gt;
        &lt;button type="button" class="btn btn-default"&gt;Pulsante 1&lt;/button&gt;
        &lt;button type="button" class="btn btn-default"&gt;Pulsante 1&lt;/button&gt;
        &lt;button type="button" class="btn btn-default"&gt;Pulsante 1&lt;/button&gt;
    &lt;/div&gt;
&lt;/div&gt;
&lt;div class="row"&gt;
    &lt;div class="col-xs-12 col-sm-6 col-sm-offset-3 col-md-6 col-md-offset-3"&gt;
        &lt;button type="button" class="btn btn-danger btn-block cancel"&gt;Chiudi&lt;/button&gt;
    &lt;/div&gt;
&lt;/div&gt;</pre><p>
&nbsp;</p>

		</div> 
	</div> <div class="g-cols"><div class="full-width">
	<div class="wpb_text_column ">
		<div class="wpb_wrapper">
			
<p style="text-align: center;"><a ref="magnificPopup" href="http://www.upcreative.net/wp-content/uploads/2014/01/mobile-action-sheet-smartphone.jpg"><img class="size-full wp-image-3030 aligncenter" alt="mobile-action-sheet-smartphone" src="http://www.upcreative.net/wp-content/uploads/2014/01/mobile-action-sheet-smartphone.jpg" width="393" height="240" /></a></p>
<p style="text-align: center;"><em>risultato del markup in uno smartphone</em></p>
<p style="text-align: center;"><a ref="magnificPopup" href="http://www.upcreative.net/wp-content/uploads/2014/01/mobile-action-sheet-tablet.jpg"><img class="size-full wp-image-3031 aligncenter" alt="mobile-action-sheet-tablet" src="http://www.upcreative.net/wp-content/uploads/2014/01/mobile-action-sheet-tablet.jpg" width="772" height="240" /></a></p>
<p style="text-align: center;"><em>risultato del markup in un tablet</em></p>

		</div> 
	</div> </div></div>
	<div class="wpb_text_column ">
		<div class="wpb_wrapper">
			
<p><span style="line-height: 1.5em;">Abbiamo organizzato il gruppo di pulsanti in una prima </span><em style="line-height: 1.5em;">&lt;div&gt;</em><span style="line-height: 1.5em;"> con classe .</span><em style="line-height: 1.5em;">row, </em><span style="line-height: 1.5em;">in modo da rendere poi </span><strong style="line-height: 1.5em;">responsive</strong><span style="line-height: 1.5em;"> gli elementi interni utilizzando le classi del sistema a griglia di Bootstrap (piena larghezza nel caso di smartphone, 6 colonne centrate nel caso di tablet e dispositivi desktop).</span></p>
<p>Per riprodurre poi i pulsanti abbiamo utilizzato le solite classi .<em>btn</em> e <em>.btn-[tipo-di-stile]</em><em> </em>al fine di definire quale tipo di pulsante utilizzare. Nel caso del gruppo di pulsanti superiore ci siamo serviti della classe .<em>btn-group-vertical </em>che come accennato in precedenza raggruppa verticalmente i pulsanti in modo molto analogo a quello di <strong>iOS7</strong>.</p>
<h2>Il foglio di stile CSS3</h2>
<p>Vediamo ora come servirci di animazioni CSS3 performanti per realizzare gli effetti desiderati.</p>
<p>Il primo effetto sarà applicato alla <em>&lt;div&gt; </em>che rappresenta l&#8217;overlay di sfondo, il quale dovrà apparire in dissolvenza, mentre il secondo sarà applicato al contenitore dei pulsanti (ovvero l&#8217;elemento <em>&lt;section&gt;</em>), che dovrà fare la sua comparsa dal fondo dello schermo.<span style="line-height: 1.5em;"> </span></p>
<p>Come prima cosa posizioniamo i due elementi utilizzando l&#8217;istruzione <em>position:absolute </em>e le relative coordinate:</p><pre class="crayon-plain-tag">.action-sheet {
	/*
		finchè non viene avviata l'animazione lasciamo la proprietà "display: none"		
		in modo che l'elemento non vada ad interferire con il resto del DOM del documento
		(omettendo questa istruzione, questo elemento non sarebbe comunque visibile,
		ma allo stesso la sua presenza tempo non permetterebbe di interagire con gli altri elementi)
	*/
    display: none;	  
}

/*overlay di sfondo */

.action-sheet &gt; div{
	/*
		impostiamo le dimensioni e ed il posizionamento 
		assoluto dell'overlay in modo da coprire tutto il documento
	*/
    position:absolute;
    top:0;right:0;
    left:0;bottom:0;
    /*
	    per dare la trsparenza all'overlay utilizziamo l'attributo 'rgba' 
	    che ci permette appunto di impostare un valore di trasparenza
    */
    background: rgba(0,0,0, 0.5);    
}

/* contenitore pulsanti */
.action-sheet &gt; section{

	/*
		anche qui impostiamo il posizionamento assoluto in modo 
		da poter facilmente posizionare il contenitore in fondo allo schermo	
	*/		

    position:absolute;
    left:0;
    right:0;
    bottom:0;
    background: none;
    padding: 0 10px;
}</pre><p>
Poi passiamo ad impostare il punto focale dell&#8217;esperimento, ovvero il funzionamento dell&#8217;effetto:</p><pre class="crayon-plain-tag">.action-sheet &gt; div{    
    /* trasparenza iniziale pari a 0, in modo da visualizzare l'overlay in dissolvenza */
    opacity:0;
    /* 
    	impostiamo l'effetto tramite la proprietà transition 
    	utilizzando l'opacity, attributo performante, per 
    	creare un effetto a comparsa sulla trasparenza
    */
    -webkit-transition: opacity .15s;
    -moz-transition: opacity .15s;
    transition: opacity .15s;
}

/* contenitore pulsanti */
.action-sheet &gt; section{    
    /* 
    	impostiamo la proprietà transitio per l'attributo "transform",
    	che forza la creazine dei livelli grafici da inviare alla GPU 
    	e rende più fluida l'animazione	    
    */	
    -webkit-transition: -webkit-transform .3s;
    -moz-transition: -moz-transform .3s;
    transition: transform .3s;

    /*
	    inzialmente impostiamo il la transform del contenitore in modo che 
	    prima dell'avvio dell'effetto si trovi al di fuori dello schermo,
	    mediante il parametro "Y" della proprietà translate3d
    */
    -webkit-transform: translate3d(0, 110%, 0);
    -moz-transform: translate3d(0, 110%, 0);
    transform: translate3d(0, 110%, 0);
}</pre><p>
&nbsp;</p>
<p>Riassumento il discorso,  per ricreare gli effetti abbiamo attribuito alla proprietà <em>transition i parametri</em> <em>opacità (</em>per l&#8217;overlay<em>) </em>e <em>tranform</em> (per il contenitore dei pulsanti) facendo in modo che quando essi vengono modificati,  di conseguenza viene avviata anche l&#8217;animazione di comparsa. In particolare, andiamo a modificare quei parametri nel caso in cui alla div con classe .<em>action-sheet</em> presenti anche la classe di stile &#8220;<em>open&#8221;.</em></p>
<p><em>(La div .action-sheet serve quindi solamente ad attivare in un colpo solo le animazioni applicate agli elementi che si trovano al suo interno.)</em></p>
<h2>Il codice Javascript</h2>
<p>Abbiamo detto che per attivare l&#8217;effetto dobbiamo solamente aggiungere la classe &#8220;<i>open</i>&#8221; alla div <em>.action-sheet. </em>Come al solito per farlo ci serviamo del <em>Javascript</em> e procediamo in questo modo<em>:</em></p><pre class="crayon-plain-tag">/* Grazie a modernizr riprendo il nome dell'evento di fine animazione, che cambia a seconda del browser */

    	var endTransitionName = {
			'WebkitTransition' : 'webkitTransitionEnd',
			'OTransition' : 'oTransitionEnd',
			'msTransition' : 'MSTransitionEnd',
			'transition' : 'transitionend'
		};
		var transitionEventName = endTransitionName[ Modernizr.prefixed( 'transition' ) ];

	    $(function(){

	    	var actionSheet = $(".action-sheet");

	    	$("#start").on("click", function(){		    	
		    	actionSheet.show(); //equivalente ad impostare la proprietà "display" = "block" 
		        setTimeout(function () {
		            actionSheet.addClass("open"); //aggiungiamo la classe 'open' per avviare l'aniamzione
		        }, 10);		    	
	    	});	 

	    	$(".cancel").on("click", function(){	    
	    		//rimuoviamo la classe che scatena l'effetto, in modo da ritornare allo stato di partenza
	    		//all'evento di fine della transition reipostiamo tramite jQuery la propretà "display" = "none", 
	    		//che era quella dello stato iniziale        
		        actionSheet.removeClass("open").one(transitionEventName, function () {
		            actionSheet.hide();
		        });		    	
	    	});	

	    });</pre><p>
Al click del pulsante con id &#8220;<em>start</em>&#8221; rendiamo visibile tutto il markup del nostro componente tramite il metodo <em>.show()</em> di jQuery (che equivale ad impostare la proprietà CSS &#8220;<em>display: block&#8221;</em> ), poi con un ritardo di 10 millisecondi (piccolo hack per &#8220;far passare qualche istante di il tempo&#8221; dopo il rendering del markup), aggiungiamo la classe &#8220;<em>open</em>&#8220;, avviando l&#8217;effetto a comparsa.</p>
<p>Al contrario, nel momento in cui l&#8217;utente effettua il click (o tap, se si tratta di mobile) sul pulsante di chiusura <em>.cancel</em>, rimuoviamo la classe &#8220;<em>open</em>&#8221; e, nel momento in cui l&#8217;animazione giunge al termine, reimpostiamo la proprietà &#8220;<em>display: none</em>&#8221; per la div <em>.action-sheet</em>, in modo da nasconderla di nuovo.</p>
<p>Come è possibile vedere dal codice, per riprendere il nome giusto dell&#8217;evento di fine animazione in base al browser utilizzato dall&#8217;utente, ci siamo serviti di <strong>Modernizr</strong>, ed in particolare del metodo <em>.prefixed(&#8221;transition&#8217;).</em></p>
<p>Eccoci quindi al risultato finale: come puoi vedere il movimento risulta fluido e piacevole, anche se lo si visualizza da un dispositivo mobile.</p>

		</div> 
	</div> 
	<div class="wpb_single_image wpb_content_element align_center">
		<div class="wpb_wrapper">
			
			<img width="690" height="400" src="http://www.upcreative.net/wp-content/uploads/2014/01/Mobile-Action-Sheet-con-Bootstrap-3-e-Animazioni-CSS3.jpg" class="attachment-full" alt="Mobile-Action-Sheet-con-Bootstrap-3-e-Animazioni-CSS3" />
		</div> 
	</div> <div class="g-cols"><div class="one-half"><div class="wpb_button align_center"><a href="http://www.upcreative.net/tutorials/14012014-Action-sheet-per-dispositivi-mobile/"class="g-btn type_primary size_big"><span><i class="fa fa-eye-open"></i>Demo</span></a></div>
</div><div class="one-half"><div class="wpb_button align_center"><a href="http://www.upcreative.net/download/3048/"class="g-btn type_primary size_big"><span><i class="fa fa-download-alt"></i>Download</span></a></div>
</div></div>
	<div class="wpb_text_column ">
		<div class="wpb_wrapper">
			
<h2>Conclusioni</h2>
<p>Con questo ennesimo esempio ti ho voluto dimostrare come sia possibile servirsi della composizione dei livelli grafici e dell&#8217;<a title="Web e mobile app fluide con l'accelerazione hardware" href="http://www.upcreative.net/web-e-mobile-app-fluide-con-layer-e-hardware-acceleration/"><strong>accelerazione hardware</strong></a> per sfruttare la GPU al fine di realizzare interfacce mobile, dove è possibile avere animazioni più lente e caratterizzate da numerosi sfarfalli, se non vengono utilizzate le giuste proprietà.</p>
<p><em>Per vedere la differenza tra un&#8217;animazione fluida ed una con sfarfallii, ti consiglio di provare la demo di questo tutorial i<em>n cui ho messo a confronto l&#8217;effetto di riempimento di due progressbar:</em></em></p>
<ul>
<li><a title="Come realizzare una progress bar CSS3 per una HTML Mobile App" href="http://www.upcreative.net/come-realizzare-una-progress-bar-css3-per-una-html-mobile-app/"><em>Come realizzare una progress bar CSS3 per una HTML Mobile App</em></a></li>
</ul>

		</div> 
	</div> <div class="g-cols color_alternate w-actionbox"><div class="one-half">
	<div class="wpb_text_column ">
		<div class="wpb_wrapper">
			
<h3>Crea la tua mobile app in HTML, CSS3 e Javascript</h3>
<p>Utilizzando questa tecnica insieme a molte altre, ho realizzato più di 10 mobile app in HTML, CSS3 e Javascript (tra cui <a title="Tint HTML mobile app" href="http://www.upcreative.net/tint-weather-app/">Tint</a> e <a title="Dieta SI o NO? HTML Mobile app" href="http://www.upcreative.net/app-dieta-si-o-no/">Dieta SI o NO?</a>).</p>
<p>Se anche tu vuoi realizzare la tua applicazione in HTML, CSS e javascript da distribuire nei vari store, forse potrebbe interessarti il mio e-book <strong><a title="HTML Mobile Accelerato - Come creare una mobile app in HTML, CSS e Javacript" href="http://www.upcreative.net/html-mobile-accelerato/">HTML Mobile Accelerato</a>.</strong></p>

		</div> 
	</div> </div><div class="one-half">
	<div class="wpb_single_image wpb_content_element align_center">
		<div class="wpb_wrapper">
			
			<a href="http://www.upcreative.net/html-mobile-accelerato/"><img width="563" height="418" src="http://www.upcreative.net/wp-content/uploads/2013/11/HTML-mobile-accelerato-ebook-cover1.png" class="attachment-full" alt="HTML-mobile-accelerato-ebook-cover" /></a>
		</div> 
	</div> </div></div></div></div>
</div></div><p>The post <a rel="nofollow" href="https://www.upcreative.net/come-realizzare-un-mobile-action-sheet-con-bootstrap3-e-animazioni-css3/">Come realizzare un Mobile Action Sheet con Bootstrap 3 e Animazioni CSS3</a> appeared first on <a rel="nofollow" href="https://www.upcreative.net">upCreative</a>.</p>
]]></content:encoded>
			<wfw:commentRss>https://www.upcreative.net/come-realizzare-un-mobile-action-sheet-con-bootstrap3-e-animazioni-css3/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Tutorial: Backbone web app responsive con Bootstrap 3</title>
		<link>https://www.upcreative.net/tutorial-backbone-web-app-con-bootstrap-3/</link>
		<comments>https://www.upcreative.net/tutorial-backbone-web-app-con-bootstrap-3/#comments</comments>
		<pubDate>Wed, 13 Nov 2013 11:19:29 +0000</pubDate>
		<dc:creator><![CDATA[upcreative]]></dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[Creare applicazioni javascript]]></category>
		<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[Web Apps]]></category>
		<category><![CDATA[backbone]]></category>
		<category><![CDATA[bootstrap]]></category>
		<category><![CDATA[css3]]></category>
		<category><![CDATA[javscript]]></category>
		<category><![CDATA[web app]]></category>

		<guid isPermaLink="false">http://www.upcreative.net/?p=2473</guid>
		<description><![CDATA[<p>In un precedente articolo ho sottolineato il ruolo fondamentale che può rappresentare Backbone per la realizzazione di una MVC javascript web application, elencando anche i vari componenti che la libreria mette a disposizione, oltre ad alcune applicazioni con essa realizzate. Su lobaedesign.com</p>
<p>The post <a rel="nofollow" href="https://www.upcreative.net/tutorial-backbone-web-app-con-bootstrap-3/">Tutorial: Backbone web app responsive con Bootstrap 3</a> appeared first on <a rel="nofollow" href="https://www.upcreative.net">upCreative</a>.</p>
]]></description>
				<content:encoded><![CDATA[<div class="l-submain"><div class="l-submain-h g-html i-cf"><p>In un <a title="Usare Backbone.js per realizzare web applications" href="http://www.upcreative.net/mvc-backbone-per-html5-css3-javascript-web-app/">precedente articolo</a> ho sottolineato il ruolo fondamentale che può rappresentare <a title="Backbone frame work javascript per web app" href="http://backbonejs.org"><strong>Backbone</strong></a> per la realizzazione di una <strong>MVC</strong> <strong>javascript web application</strong>, elencando anche i vari componenti che la libreria mette a disposizione, oltre ad alcune applicazioni con essa realizzate.</p>
<p>Su <a href="http://lobaedesign.com">lobaedesign.com</a> invece, ho introdotto l&#8217;indipendenza della view dagli altri componenti con un tutorial su <a title="Tutorial Backbone.js: come realizzare un orologio analogico CSS3 e JavaScript con animazione" href="http://www.lobaedesign.com/tutorial-backbone-js-come-realizzare-un-orologio-css3-e-javascript-con-animazione/">come realizzare un orologio analogico CSS3 e JavaScript con animazione</a>, e su come la stessa view aggiorna gli elementi dell&#8217;interfaccia &#8220;<strong>osservando</strong>&#8221; il cambiamento di un model.</p>
<p>In questo post voglio introdurre invece altri due componenti per la creazione di una <strong>backbone web app</strong>:</p>
<ul>
<li><strong>la collection</strong>, ovvero la lista secondo la quale organizzare i model</li>
<li><strong>il sistema di templating</strong> della libreria <a title="Underscore.js - sistema di templating per web app" href="http://underscorejs.org">underscore.js</a>, per la generazione del markup HTML</li>
</ul>
<p>Lo farò attraverso un semplice tutorial che implementa il framework bootstrap 3 nel documento e usa due view diverse legate allo stesso model ed una alla lista.</p>
<p><a ref="magnificPopup" href="http://www.upcreative.net/wp-content/uploads/2013/11/Tutorial-Backbone-web-app-responsive-con-Bootstrap-3.jpg"><img class="alignnone size-full wp-image-2489" alt="Tutorial-Backbone-web-app-responsive-con-Bootstrap-3" src="http://www.upcreative.net/wp-content/uploads/2013/11/Tutorial-Backbone-web-app-responsive-con-Bootstrap-3.jpg" width="690" height="400" /></a></p>
<div class="g-cols">
<div class="one-half">
	<div class="wpb_text_column ">
		<div class="wpb_wrapper">
			<div class="wpb_button align_center"><a href="http://www.upcreative.net/tutorials/13112013-backbone-responsive-we-app/"class="g-btn type_primary size_big"><span><i class="fa fa-icon-eye-open"></i>Demo</span></a></div>
 
		</div> 
	</div> </div>
<div class="one-half">
	<div class="wpb_text_column ">
		<div class="wpb_wrapper">
			<div class="wpb_button align_center"><a href="http://www.upcreative.net/download/2491/"class="g-btn type_primary size_big"><span><i class="fa fa-icon-download-alt"></i>Download</span></a></div>
 
		</div> 
	</div> </div>
</div>
<p>Il nostro intento sarà quindi quello di creare una <strong>backbone </strong><strong>web app responsive</strong> che mostra una lista di persone, ciascuna con informazioni proprie come nome, sesso, occupazione, e descrizione, e con possibilità da parte dell&#8217;utente di creare, modificare, eliminare una persona, oltre che poter visualizzare una modal con delle informazioni aggiuntive cliccando nel nome della lista.</p>
<h2>Impostazione del documento</h2>
<p>Come prima operazione, aggiungiamo al nostro documento, prima della chiusura del tag <em>body</em>,  le librerie di cui abbiamo bisogno:</p><pre class="crayon-plain-tag">&lt;script src="js/jquery-1.10.2.min.js"&gt;&lt;/script&gt; &lt;!-- jquery --&gt;
&lt;script src="js/bootstrap.min.js"&gt;&lt;/script&gt; &lt;!-- bootstrap per il modal--&gt;

&lt;script src="js/underscore-min.js"&gt;&lt;/script&gt; &lt;!-- libreria di supporto per backbone e per il sistema di templating --&gt;
&lt;script src="js/backbone-min.js"&gt;&lt;/script&gt;&lt;!-- backbone.js --&gt;

&lt;script src="js/demo.js"&gt;&lt;/script&gt; &lt;!-- il file js della nostra applicazione --&gt;</pre><p>
Backbone.js e Undersore.js sono scaricabili dai rispettivi link:</p>
<ul>
<li><a title="Sito web Backbone.js" href="http://backbonejs.org"><span style="color: #000000;">Sito web Backbone.js</span></a></li>
<li><a title="Sito web Underscore.js" href="http://underscorejs.org"><span style="color: #000000;">Sito web Underscore.js</span></a></li>
</ul>
<h2>Il markup HTML</h2>
<p>Andiamo a vedere il markup HTML della view principale dell&#8217;applicazione, ovvero quello che comprende il form di inserimento e la lista:</p><pre class="crayon-plain-tag">&lt;!-- form di creazione dell'individuo --&gt;   

&lt;div class="col-md-4 col-lg-4 well well-sm"&gt; 
    &lt;legend&gt;&lt;i class="glyphicon glyphicon-user"&gt;&lt;/i&gt; Aggiungi individuo&lt;/legend&gt;
    &lt;form action="#" id="add-form" method="post" class="form" role="form"&gt;
        &lt;div class="row"&gt;
            &lt;div class="col-xs-8 col-md-8"&gt;
                &lt;input class="form-control" name="name" placeholder="Nome" type="text" /&gt;
            &lt;/div&gt;
            &lt;div class="col-xs-4 col-md-4"&gt;                    
                &lt;select name="gender" class="form-control"&gt;
                    &lt;option value="M"&gt;Maschio&lt;/option&gt;
                    &lt;option value="F"&gt;Femmina&lt;/option&gt;
                &lt;/select&gt;
            &lt;/div&gt;
        &lt;/div&gt;
        &lt;input class="form-control" name="occupation" placeholder="Occupazione" type="text" /&gt;

        &lt;label for="notes"&gt;Note&lt;/label&gt;
        &lt;textarea name="notes" id="notes" class="form-control" rows="3"&gt;&lt;/textarea&gt;
        &lt;button class="btn btn-block button add-person" type="submit"&gt;Aggiungi&lt;/button&gt;
    &lt;/form&gt;
&lt;/div&gt;

&lt;!-- la lista degli individui --&gt;

&lt;div class="col-md-8 col-lg-8"&gt;
 	&lt;ul class="list-group"&gt;
    &lt;/ul&gt;
&lt;/div&gt;</pre><p>
<h2>I template di Underscore.js</h2>
<p>Impostiamo ora il markup HTML dei template delle view secondo il<strong> sistema di templating di underscore.js</strong>; i metodi per comunicare alla view backbone quale template utilizzare per il rendering del markup da inserire poi nel documento sono principalmente tre:</p>
<ol>
<li>Specificare il template sottoforma di <strong>variabile string</strong> nello script</li>
<li>Specificare il <strong>rifermento al template</strong> il cui markup è stato &#8220;posizionato&#8221; nel documento</li>
<li>Utilizzare librerie come <a title="Requirejs.org - Caricare contenuti nel documento in modo asincrono" href="http://requirejs.org"><strong>require.js</strong></a> per &#8220;leggere&#8221; in <strong>modo asincrono</strong> il contenuto del template da un file esterno (solitamente di usa un file con estensione .html)</li>
</ol>
<p>Personalmente preferisco utilizzare l&#8217;ultima opzione, soprattutto nel caso di web app ad architettura molto complessa, per due motivi principali:</p>
<ul>
<li>lasciare il nostro documento più pulito possibile</li>
<li>migliore organizzazione del progetto per quanto riguarda la struttura dei file</li>
</ul>
<p>In questo tutorial tuttavia prenderemo in considerazione il secondo metodo.</p>
<p><strong><em>Per saperne di più sui sistemi di javascript templating leggi</em>: </strong></p>
<ul>
<li><a title="I sistemi di javascript templating e le migliori librerie" href="http://www.upcreative.net/web-application-i-sistemi-di-javascript-templating-e-le-migliori-librerie/">I sistemi di javascript templating e le migliori librerie</a></li>
</ul>
<p>Per l&#8217;esperimento definiremo 3 view, quella dell&#8217;applicazione principale (che comprende il form di inserimento e l&#8217;<em>ul</em> della lista), quella di ogni singolo elemento del lista, e quella della modal delle informazioni aggiuntive.</p>
<p>Poiché per la prima delle tre imposteremo come elemento di riferimento il body stesso del documento, andiamo a definire il markup dei template delle altre due view:</p><pre class="crayon-plain-tag">&lt;!-- *********** Template delle Views ************** --&gt;

&lt;!-- modal dell'elemento della lista --&gt;

&lt;script type="text/template" id="person-template"&gt;

    &lt;div class="view"&gt; 
        &lt;div class="action pull-right"&gt;
            &lt;button type="button" class="btn btn-xs button open-modal" title="View Modal"&gt;
                &lt;span class="glyphicon glyphicon-eye-open"&gt;&lt;/span&gt;
            &lt;/button&gt;
            &lt;button type="button" class="btn btn-xs button edit-view" title="Edit"&gt;
                &lt;span class="glyphicon glyphicon-pencil"&gt;&lt;/span&gt;
            &lt;/button&gt;
            &lt;button type="button" class="btn btn-xs button person-delete" title="Delete"&gt;
                &lt;span class="glyphicon glyphicon-trash"&gt;&lt;/span&gt;
            &lt;/button&gt;
        &lt;/div&gt;

        &lt;h4&gt;&lt;%=name%&gt;&lt;/h4&gt;            
        &lt;div class="gender-info"&gt;
           	Sesso: &lt;strong&gt;&lt;%=gender%&gt;&lt;/strong&gt; - Occupazione: &lt;strong&gt;&lt;%=occupation%&gt;&lt;/strong&gt;
        &lt;/div&gt;
     &lt;/div&gt;

     &lt;div class="edit"&gt;

         &lt;form action="#" class="form" role="form"&gt;
            &lt;div class="row"&gt;
                &lt;div class="col-xs-3 col-md-3"&gt;
                    &lt;input class="form-control" name="name" value="&lt;%=name%&gt;" placeholder="Nome" type="text" /&gt;
                &lt;/div&gt;
                &lt;div class="col-xs-3 col-md-3"&gt;
                    &lt;input class="form-control" value="&lt;%=occupation%&gt;" name="occupation" placeholder="Occupazione" type="text" /&gt;
                &lt;/div&gt;
                &lt;div class="col-xs-2 col-md-2"&gt;                    
                    &lt;select name="gender" class="form-control"&gt;
                        &lt;option value="M" &lt;%if(gender=='M'){%&gt;selected&lt;%}%&gt;&gt;Maschio&lt;/option&gt;
                        &lt;option value="F" &lt;%if(gender=='F'){%&gt;selected&lt;%}%&gt;&gt;Femmina&lt;/option&gt;
                    &lt;/select&gt;
                &lt;/div&gt;
                &lt;div class="col-xs-2 col-md-2"&gt;
                    &lt;button class="btn btn-sm btn-block button save" type="submit"&gt;Salva&lt;/button&gt;
                &lt;/div&gt;
                &lt;div class="col-xs-2 col-md-2"&gt;
                    &lt;a href="#" class="btn btn-sm btn-default btn-block cancel"&gt;Annulla&lt;/a&gt;
                &lt;/div&gt;
            &lt;/div&gt;		            
            &lt;textarea name="notes" id="notes" class="form-control" rows="3"&gt;&lt;%=notes%&gt;&lt;/textarea&gt;
        &lt;/form&gt;

     &lt;/div&gt;

&lt;/script&gt;

&lt;!-- modal delle informazioni aggiuntive--&gt;

&lt;script type="text/template" id="modal-template"&gt;

   &lt;div class="modal-dialog"&gt;
    &lt;div class="modal-content"&gt;
      &lt;div class="modal-header"&gt;
        &lt;button type="button" class="close" data-dismiss="modal" aria-hidden="true"&gt;&amp;times;&lt;/button&gt;
        &lt;h4 class="modal-title"&gt;&lt;%=name%&gt;&lt;/h4&gt;
      &lt;/div&gt;
      &lt;div class="modal-body"&gt;
        	&lt;div class="gender-info"&gt;
               	Sesso: &lt;strong&gt;&lt;%=gender%&gt;&lt;/strong&gt; - Occupazione: &lt;strong&gt;&lt;%=occupation%&gt;&lt;/strong&gt;
            &lt;/div&gt;
            &lt;p class="gender-notes"&gt;
               	&lt;%=notes%&gt;
            &lt;/p&gt;
      &lt;/div&gt;
      &lt;div class="modal-footer"&gt;
        &lt;button type="button" class="btn button" data-dismiss="modal"&gt;Chiudi&lt;/button&gt;
      &lt;/div&gt;
   &lt;/div&gt;

&lt;/script&gt;</pre><p>
Dal codice puoi notare che ogni template è stato definito all&#8217;interno dell tag <em>script</em> in cui è stato impostato un attributo <strong><em>type</em></strong> con valore <em><strong>text/template</strong>. </em>Così facendo il <strong>browser ignorerà questa porzione di codice</strong> che invece sarà <strong>raggiungibile da Javascript</strong> tramite l&#8217;attribuito <em>id</em>.</p>
<h2>Il file JavaScript</h2>
<p>Passiamo ora alla definizione dei vari componenti backbone della nostra applicazione, in primis occupiamoci dell&#8217;astrazione dei dati, <strong>il model della persona:</strong></p><pre class="crayon-plain-tag">//definiamo il modello dell'individuo
var PersonModel = Backbone.Model.extend({

	// Attributi predefiniti per il modello, che vengono usati 
	//se non passati al momento dell'inizializzazione	
	defaults: {
		gender: "M",
		createdat: new Date()
	},

	initialize: function() {  

	},

	//elimina l'istanza del model
	clear: function() {
		this.destroy();
	}

});</pre><p>
<strong>Definiamo ora la collection</strong> in cui tutte le istanze del model appena definito verranno organizzate:</p><pre class="crayon-plain-tag">//definiamo la collection degli individui
var PersonList = Backbone.Collection.extend({

	// Impostiamo la referenza al model per questa collection.
	model: PersonModel,

	url: "#",

	// Filtra tutti gli individui Maschi o Femmina (in base al parametro passato).
	getGender: function(gender) {
		return this.where({gender: gender});
	}

});</pre><p>
Ora che abbiamo definito la nostra (semplicissima) struttura dei dati, vediamo <strong>l&#8217;impostazione delle view.</strong></p>
<h3>La view dell&#8217;elemento della lista</h3>
<pre class="crayon-plain-tag">//impostiamo la view della persona per come elemento nella lista

var PersonView = Backbone.View.extend({

	// diciamo a backbone che il tag deve essere una li
	tagName:  "li",

	//settiamo la classe da impostare al tag li per usare gli stili bootstrap e l'animazione in entrata
	className: "list-group-item animated",

	// Coumunichiamo alla view a quale template far riferimento.
	template: '#person-template',

	// Bindiamo gli eventi agli elementi di questa view (i selettori funzionano come jQuery).
	events: {
		"click .person-delete"        : "deletePerson",
		"click .edit-view"   		  : "toggleView",
		"click .cancel"				  : "toggleView",
		"submit form"			  	  : "savePerson",
		"click .open-modal"			  : "openModal"	
	},

	//questa funzione viene eseguita ogni volta che viene creata 
	//una nuova istanza per questa view
	initialize: function() {

		//compiliamo il template in una variabile
		this.template = _.template($(this.template).html());

		//osserviamo l'evento change del model dell'individuo per fare in modo che 
		//quando ciò accade anche il markup della relativa view venga aggiornato
		this.listenTo(this.model, 'change', this.toggleView);

		//osserviamo l'evento destroy del model dell'individuo per fare in modo che 
		//quando ciò accade anche la relativa view venga rimossa
		this.listenTo(this.model, 'destroy', this.removeFromDOM);
	},

	// Effettua il render dei contenuti del markup della view nella lista.
	render: function() {
		$(this.el).html(this.template(this.model.toJSON()));
		return this;
	},

	//visualizza il modal per le informazioni dell'individuo
	openModal: function(){
		var model = this.model;
		var view = new ModalView({model: model});
		$("body").append(view.render().el);
		///richiamiamo la funzione open della view appena creata
		view.open();
	},

	// Visualizza o nasconde i campi di editing per questa view. 
	toggleView: function() {	
		//riaggiorniamo la vista e cambiamo la classe per la visualizzazione con jQuery
		this.render();
		this.$el.toggleClass("edit");
	},

	//salva i dati modificati dell'indivuduo
	savePerson: function(e){
		e.preventDefault();

		//riprendiamo i dati del nuovo individuo
		var name = $.trim(this.$("[name='name']").val()),
			gender = this.$("[name='gender']").val(),
			occupation = $.trim(this.$("[name='occupation']").val()),
			notes = $.trim(this.$("[name='notes']").val());

	    //se non tutti i campi sono stati compilati, interrompiamo l'operazione
		if(!name.length  || ! occupation.length || !notes.length)
			return;

		//impostiamo i nuovi dati per il model
		this.model.set({
			name: name,
			gender: gender,
			occupation: occupation,
			notes: notes
		});
		//salviamo il model
		this.model.save();
	},

	removeFromDOM: function(){
		//aggiungiamo la classe per l'animazione di uscita, 
		//e alla fine dell'animazione (sappiamo che dura 1 secondo)
		//rimuoviamo l'elemento DOM dal documento
		var that = this;
		that.$el.addClass("hinge");
		setTimeout(function(){
			that.remove();
		}, 1010);		
	},

	// Rimuove la persona distruggendo il relativo model.
	deletePerson: function() {
		this.model.clear();
	}

});</pre>
<h3> La view del modal delle informazioni aggiuntive</h3>
<pre class="crayon-plain-tag">var ModalView = Backbone.View.extend({

	// diciamo a backbone che il tag deve essere una div
	tagName:  "div",

	//settiamo la classe da impostare al tag li per usare gli stili bootstrap e l'animazione in entrata
	className: "modal fade",

	template: "#modal-template",

	initialize: function() {
		//compiliamo il template in una variabile
		this.template = _.template($(this.template).html());

		//rimuoviamo il modal dal DOM quando esso viene nascosto
		this.$el.on("hidden.bs.modal", function(){
			this.remove();
		});
	},

	// Effettua il render dei contenuti del markup della view nella lista.
	render: function() {
		$(this.el).html(this.template(this.model.toJSON()));		
		return this;
	},

	open: function(){
		this.$el.modal("show");
	}

});</pre>
<h3> La view dell&#8217;applicazione</h3>
<pre class="crayon-plain-tag">//definiamo la view dell'app intera
var AppView = Backbone.View.extend({

		//a differenza della view dell'individuo, dove impostavamo 
		//quale elemento generare al'inizializzazione, qui comunichiamo 
		//quale oggetto già aesistente utilizzare come markup
		el: "body",

		// Deleghiamo gli eventi per la creazione di un nuovo 
		//individuo (il funzionamento ed i selettori sono come quelli di jQuery).
		events: {
			"submit #add-form":  "create"
		},

		// Nella funzione di inizializzazione osserviamo l'evento add 
		//della collection legata a questa view, per richiamare la funzione che 
		// inserisce un nuovo elemento nella lista DOM
		initialize: function() {

			var todos = this.collection;

			//deleghiamo gli eventi della collection alle relative funzioni 

			//evento che si verifica quando un nuovo model viene aggiunto alla collection
			// l'ultimo parametro è una funzione alla quale viene passata l'istanza del model appena aggiunto
			// alla collection
			this.listenTo(this.collection, 'add', this.addPerson);

			//richiamiamo la funzione che aggiunge gli elementi all alla lista
			this.addElements();
		},

		// funzione che ogni crea una nuova view ed agigunge 
		// l'elemento generato dal render alla lista
		addPerson: function(personModel) {			
			//creaiamo una nuova istanza della view della persona passando come model quello appena creato
			var view = new PersonView({model: personModel});
			this.$(".list-group").append(view.render().el);
			//aggiungiamo la classe per l'animazione
			view.$el.addClass("fadeInLeftBig");		
		},

		// Aggiunge nella lista tutti gli elementi della collection di individui.
		addElements: function() {
			this.collection.each(this.addPerson);
		},

		// funzione che aggiunge un nuovo model con i dati del form alla collection
		create: function(e) {
			e.preventDefault();
			//riprendiamo i dati del nuovo individuo
			var name = $.trim(this.$("[name='name']").val()),
				gender = this.$("[name='gender']").val(),
				occupation = $.trim(this.$("[name='occupation']").val()),
				notes = $.trim(this.$("[name='notes']").val());

		    //se non tutti i campi sono stati compilati, interrompiamo l'operazione
			if(!name.length  || ! occupation.length || !notes.length)
				return;

			//aggiungiamo il model alla collection
			this.collection.create({
				name: name,
				gender: gender,
				occupation: occupation,
				notes: notes
			});

			//resettiamo il form dopo la creazione
			this.$("input, textarea").val('');
			this.$("[name='gender']").val('M');
		}
	});</pre>
<h3>Avviamo la nostra javascript web application!</h3>
<p>Infine, per instanziare i nostri componenti ed avviare l&#8217;applicazione, ci serviremo del seguente codice javascript:</p><pre class="crayon-plain-tag">// nel momento in cui jQuery è pronto, inizializiamo i nostri componenti 
jQuery(function ($) {
	//creiamo una nuova istanza per la collection degli individui con due models
	var persons = new PersonList([
		{
			name: "Mark Zuckerberg",
			gender: "M",
			occupation: "Sviluppatore",
			notes: "Il creatore di Facebook"
		},
		{
			name: "Giacomo Freddi",
			gender: "M",
			occupation: "Sviluppatore",
			notes: "Web Designer Freelance e Developer, si occupa del design e dello sviluppo di applicazioni "+
					"web dal 2008, come molti freelance è abituato a gestire più ruoli e spaziare su più campi,"+
					" ma la sua passione principale è quella della creazione di interfacce front-end e back-end"+
					" utilizzando codice html5 e css3. Adora usare pattern MVC per i suoi Javascript."
		}
	]);
	//creiamo una nuova istanza per la vire dell'applicazione 
	//principale associandogli la collection
	var app = new AppView({
			collection : persons
	});
});</pre><p>
<h2>Stili e CSS</h2>
<p>Come è possible notare scaricando i sorgenti, al fine di rendere il tutto un po più piacevole all&#8217;utente, abbiamo inserito degli <strong>effetti CSS3</strong> per animare l&#8217;inserimento e l&#8217;eliminazione di ogni record dalla lista; il codice utilizzato proviene dalla <a title="Animate.css libreria per animazioni ed effetti CSS3" href="http://www.upcreative.net/animate-css-animazioni-css3-cross-browser/"><strong>libreria animate.css</strong></a>, e prevede un effetto di entrata con fade da sinistra nel momento dell&#8217;inserimento, mentre un elemento di &#8220;caduta&#8221; nel momento della eliminazione.</p>
<p>Abbiamo inoltre reso il tutto responsive grazie al <a title="Bootstrap 3 - sistema di griglie" href="http://getbootstrap.com/css/#grid">sistema di griglie di Boostrap 3.</a></p>
<p>Divertiti con i sorgenti!</p>
<p><a ref="magnificPopup" href="http://www.upcreative.net/wp-content/uploads/2013/11/effetto-CSS3-entrata.jpg"><img class="alignnone size-full wp-image-2494" alt="effetto-CSS3-entrata" src="http://www.upcreative.net/wp-content/uploads/2013/11/effetto-CSS3-entrata.jpg" width="690" height="293" /></a> <a ref="magnificPopup" href="http://www.upcreative.net/wp-content/uploads/2013/11/effetto-CSS3-caduta.jpg"><img class="alignnone size-full wp-image-2495" alt="effetto-CSS3-caduta" src="http://www.upcreative.net/wp-content/uploads/2013/11/effetto-CSS3-caduta.jpg" width="690" height="293" /></a></p>
<div class="g-cols">
<div class="one-half">
	<div class="wpb_text_column ">
		<div class="wpb_wrapper">
			<div class="wpb_button align_center"><a href="http://www.upcreative.net/tutorials/13112013-backbone-responsive-we-app/"class="g-btn type_primary size_big"><span><i class="fa fa-icon-eye-open"></i>Demo</span></a></div>
 
		</div> 
	</div> </div>
<div class="one-half">
	<div class="wpb_text_column ">
		<div class="wpb_wrapper">
			<div class="wpb_button align_center"><a href="http://www.upcreative.net/download/2491/"class="g-btn type_primary size_big"><span><i class="fa fa-icon-download-alt"></i>Download</span></a></div>
 
		</div> 
	</div> </div>
</div>
</div></div><p>The post <a rel="nofollow" href="https://www.upcreative.net/tutorial-backbone-web-app-con-bootstrap-3/">Tutorial: Backbone web app responsive con Bootstrap 3</a> appeared first on <a rel="nofollow" href="https://www.upcreative.net">upCreative</a>.</p>
]]></content:encoded>
			<wfw:commentRss>https://www.upcreative.net/tutorial-backbone-web-app-con-bootstrap-3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>10 nuovi temi wordpress gratuiti di qualità da scaricare</title>
		<link>https://www.upcreative.net/10-nuovi-temi-wordpress-gratuiti-qualita-scaricare-liberamente/</link>
		<comments>https://www.upcreative.net/10-nuovi-temi-wordpress-gratuiti-qualita-scaricare-liberamente/#comments</comments>
		<pubDate>Sat, 26 Oct 2013 12:36:23 +0000</pubDate>
		<dc:creator><![CDATA[upcreative]]></dc:creator>
				<category><![CDATA[Risorse]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[bootstrap]]></category>
		<category><![CDATA[freebie]]></category>
		<category><![CDATA[responsive]]></category>
		<category><![CDATA[temi gratuiti]]></category>
		<category><![CDATA[template]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://www.upcreative.net/?p=2267</guid>
		<description><![CDATA[<p>The post <a rel="nofollow" href="https://www.upcreative.net/10-nuovi-temi-wordpress-gratuiti-qualita-scaricare-liberamente/">10 nuovi temi wordpress gratuiti di qualità da scaricare</a> appeared first on <a rel="nofollow" href="https://www.upcreative.net">upCreative</a>.</p>
]]></description>
				<content:encoded><![CDATA[<div class="l-submain"><div class="l-submain-h g-html i-cf"><div class="g-cols"><div class="full-width">
	<div class="wpb_text_column ">
		<div class="wpb_wrapper">
			<a title="Wordpress, il CMS più conosciuto al mondo" href="http://wordpress.org">WordPress</a> è il CMS più famoso ed utilizzato dalla rete. Questo grazie a molteplici fattori, come il fatto di rappresentare un sistema molto <strong>robusto</strong> ed allo stesso tempo <strong>facile da usare e mantenere</strong>. WordPress permette infatti di creare siti web con contenuti eleganti e creativi pur avendo a disposizione un badget ridotto.</p>
<p>Tutto ciò è reso possibile dalla vastissima quantità di temi sviluppati per questa piattaforma, il cui numero cresce ogni giorno in modo sempre più veloce. Tuttavia non è sempre facile trovare temi wordpress gratuiti di qualità, a meno che non ci si affidi a servizi come <a title="Themeforest - Temi wordpress di alta qualità" href="http://themeforest.net/?ref=Colddesign">ThemeForest</a> o  dove poterli acquistare in versione premium.</p>
<p>Setacciando la rete alla ricerca di una soluzione gratuita è facile incappare in temi che non sono all&#8217;altezza delle nostre aspettative. E&#8217; per questo che voglio proporti questa lista di <strong>10 nuovi temi wordpress gratuiti</strong> da scaricare liberamente  (per alcuni è presente anche una versione premium con delle funzionalità aggiuntive).</p>
<h4>Prima di iniziare</h4>
<p>Siccome anche per quanto riguarda i temi premium molte volte è difficile trovarne alcuni facilmente usabili e di alta qualità, prima di iniziare con la lista di quelli gratuiti, ti voglio proporre alcuni <strong>temi wordpress premium</strong> che secondo me sono di altissimo livello e offrono un incredibile numero di <strong>personalizzazioni</strong> e <strong>funzionalità</strong>:
		</div> 
	</div> <div class="g-cols"><div class="one-third">
	<div class="wpb_text_column ">
		<div class="wpb_wrapper">
			
<h5><a href="http://themeforest.net/item/avada-responsive-multipurpose-theme/2833226?ref=Colddesign">Avada</a></h5>

		</div> 
	</div> </div><div class="one-third">
	<div class="wpb_text_column ">
		<div class="wpb_wrapper">
			
<h5><a href="http://themeforest.net/item/udesign-wordpress-theme/253220?ref=Colddesign">U-Design WordPress Theme</a></h5>

		</div> 
	</div> </div><div class="one-third">
	<div class="wpb_text_column ">
		<div class="wpb_wrapper">
			
<h5><a href="http://themeforest.net/item/enfold-responsive-multipurpose-theme/4519990?ref=Colddesign">Enfold &#8211; Responsive Multi-Purpose Theme</a></h5>

		</div> 
	</div> </div></div><div class="g-cols"><div class="one-third">
	<div class="wpb_single_image wpb_content_element align_center">
		<div class="wpb_wrapper">
			
			<a href="http://themeforest.net/item/avada-responsive-multipurpose-theme/2833226?ref=Colddesign"><img width="590" height="300" src="http://www.upcreative.net/wp-content/uploads/2013/10/00_preview.__large_preview.jpg" class="attachment-full" alt="00_preview.__large_preview" /></a>
		</div> 
	</div> </div><div class="one-third">
	<div class="wpb_single_image wpb_content_element align_center">
		<div class="wpb_wrapper">
			
			<a href="http://themeforest.net/item/udesign-wordpress-theme/253220?ref=Colddesign"><img width="590" height="300" src="http://www.upcreative.net/wp-content/uploads/2013/10/01_Preview.__large_preview.jpg" class="attachment-full" alt="01_Preview.__large_preview" /></a>
		</div> 
	</div> </div><div class="one-third">
	<div class="wpb_single_image wpb_content_element align_center">
		<div class="wpb_wrapper">
			
			<a href="http://themeforest.net/item/enfold-responsive-multipurpose-theme/4519990?ref=Colddesign"><img width="590" height="300" src="http://www.upcreative.net/wp-content/uploads/2013/10/1_preview.__large_preview.jpg" class="attachment-full" alt="1_preview.__large_preview" /></a>
		</div> 
	</div> </div></div><div class="g-cols"><div class="one-third">
	<div class="wpb_text_column ">
		<div class="wpb_wrapper">
			
<h5><a href="http://themeforest.net/item/karma-responsive-wordpress-theme/168737?ref=Colddesign">Karma &#8211; Responsive WordPress Theme</a></h5>

		</div> 
	</div> </div><div class="one-third">
	<div class="wpb_text_column ">
		<div class="wpb_wrapper">
			
<h5><a href="http://themeforest.net/item/striking-multiflex-ecommerce-responsive-wp-theme/128763?ref=Colddesign">Striking MultiFlex &amp; Ecommerce Responsive WP Theme</a></h5>

		</div> 
	</div> </div><div class="one-third">
	<div class="wpb_text_column ">
		<div class="wpb_wrapper">
			
<h5><a href="http://themeforest.net/item/king-size-fullscreen-background-wordpress-theme/166299?ref=Colddesign">King Size &#8211; Fullscreen Background WordPress Theme</a></h5>

		</div> 
	</div> </div></div><div class="g-cols"><div class="one-third">
	<div class="wpb_single_image wpb_content_element align_center">
		<div class="wpb_wrapper">
			
			<a href="http://themeforest.net/item/karma-responsive-wordpress-theme/168737?ref=Colddesign"><img width="590" height="300" src="http://www.upcreative.net/wp-content/uploads/2013/10/1-Karma-Responsive-Wordpress-Theme.__large_preview.png" class="attachment-full" alt="1-Karma-Responsive-Wordpress-Theme.__large_preview" /></a>
		</div> 
	</div> </div><div class="one-third">
	<div class="wpb_single_image wpb_content_element align_center">
		<div class="wpb_wrapper">
			
			<a href="http://themeforest.net/item/striking-multiflex-ecommerce-responsive-wp-theme/128763?ref=Colddesign"><img width="590" height="300" src="http://www.upcreative.net/wp-content/uploads/2013/10/striking-mf-tf-large-preview.__large_preview.jpg" class="attachment-full" alt="striking-mf-tf-large-preview.__large_preview" /></a>
		</div> 
	</div> </div><div class="one-third">
	<div class="wpb_single_image wpb_content_element align_center">
		<div class="wpb_wrapper">
			
			<a href="http://themeforest.net/item/king-size-fullscreen-background-wordpress-theme/166299?ref=Colddesign"><img width="590" height="300" src="http://www.upcreative.net/wp-content/uploads/2013/10/01_presentation.__large_preview.jpg" class="attachment-full" alt="01_presentation.__large_preview" /></a>
		</div> 
	</div> </div></div><div class="g-hr">
						<span class="g-hr-h">
							<i class="fa fa-chevron-down"></i>
						</span>
					</div>
	<div class="wpb_text_column ">
		<div class="wpb_wrapper">
			
<h1>Lista temi wordpress gratuiti</h1>
<h3><a title="Celestino - Tema wordpress responsive gratuito altamente configurabile" href="http://demo.yithemes.com/celestino/">Celestino</a></h3>
<p><a ref="magnificPopup" href="http://www.upcreative.net/wp-content/uploads/2013/10/10-nuovi-temi-wordpress-gratuiti-di-qualita_10.jpg"><img class="alignnone size-full wp-image-2280" alt="10-nuovi-temi-wordpress-gratuiti-di-qualita_10" src="http://www.upcreative.net/wp-content/uploads/2013/10/10-nuovi-temi-wordpress-gratuiti-di-qualita_10.jpg" width="690" height="350" /></a></p>
<p>Celestino è un tema completamente responsive e multipurpose, altamente configurabile. Offre moltissime funzionalità, come lo shortcode manager, la personalizzazione di elementi grafici com il layout i colori o il font dei contenuti, e molto altro. Non ha nulla che invidiare dai temi di Themeforest.</p>
<h3><a title="Tema wordpress responsive incentrato sui contenuti" href="http://www.matmm.me/typesense/">Typesense</a></h3>
<p><a ref="magnificPopup" href="http://www.upcreative.net/wp-content/uploads/2013/10/10-nuovi-temi-wordpress-gratuiti-di-qualita_01.jpg"><img class="alignnone size-full wp-image-2271" alt="10-nuovi-temi-wordpress-gratuiti-di-qualita_01" src="http://www.upcreative.net/wp-content/uploads/2013/10/10-nuovi-temi-wordpress-gratuiti-di-qualita_01.jpg" width="690" height="350" /></a></p>
<p>Typesense è un tema responsive semplice, minimalista e focalizzato sui contenuti, molto indicato per blog.</p>
<h3><a title="Vantage - tema wordpress next-generation e multipurpose " href="http://siteorigin.com/theme/vantage/">Vantage</a></h3>
<p><a ref="magnificPopup" href="http://www.upcreative.net/wp-content/uploads/2013/10/10-nuovi-temi-wordpress-gratuiti-di-qualita_02.jpg"><img class="alignnone size-full wp-image-2272" alt="10-nuovi-temi-wordpress-gratuiti-di-qualita_02" src="http://www.upcreative.net/wp-content/uploads/2013/10/10-nuovi-temi-wordpress-gratuiti-di-qualita_02.jpg" width="690" height="350" /></a></p>
<p>Vantage è un tema versatile e multiuso, che offre un&#8217;alta integrazione con plugin molto utili.</p>
<h3><a title="Socially Awkward - tema wordpress gratuito in css3 e html5" href="http://themehybrid.com/themes/socially-awkward">Socially Awkward</a></h3>
<p><a ref="magnificPopup" href="http://www.upcreative.net/wp-content/uploads/2013/10/10-nuovi-temi-wordpress-gratuiti-di-qualita_03.jpg"><img class="alignnone size-full wp-image-2273" alt="10-nuovi-temi-wordpress-gratuiti-di-qualita_03" src="http://www.upcreative.net/wp-content/uploads/2013/10/10-nuovi-temi-wordpress-gratuiti-di-qualita_03.jpg" width="690" height="350" /></a></p>
<p>Socially Awkward è un tema responsive scritto in CSS3 ed HTML5, che si integra molto bene con i tuoi social networks.</p>
<h3><a title="Doke Doke - tema professionale utile per lo showcase del proprio portfolio" href="http://luiszuno.com/blog/downloads/doke-doke-wordpress-theme/">Doke Doke</a></h3>
<p><a ref="magnificPopup" href="http://www.upcreative.net/wp-content/uploads/2013/10/10-nuovi-temi-wordpress-gratuiti-di-qualita_04.jpg"><img class="alignnone size-full wp-image-2274" alt="10-nuovi-temi-wordpress-gratuiti-di-qualita_04" src="http://www.upcreative.net/wp-content/uploads/2013/10/10-nuovi-temi-wordpress-gratuiti-di-qualita_04.jpg" width="690" height="350" /></a></p>
<p>Creato per agenzie creative doke doke è un tema professionale utile per lo showcase del proprio portfolio.</p>
<h3><a title="DW Minion - Tema responsive molto semplice, pulito e minimalista" href="http://www.designwall.com/wordpress/themes/dw-minion/">DW Minion</a></h3>
<p><a ref="magnificPopup" href="http://www.upcreative.net/wp-content/uploads/2013/10/10-nuovi-temi-wordpress-gratuiti-di-qualita_05.jpg"><img class="alignnone size-full wp-image-2275" alt="10-nuovi-temi-wordpress-gratuiti-di-qualita_05" src="http://www.upcreative.net/wp-content/uploads/2013/10/10-nuovi-temi-wordpress-gratuiti-di-qualita_05.jpg" width="690" height="350" /></a></p>
<p>DW Minion è un tema responsive molto semplice, pulito e minimalista. Molto indicato per blog, offre più tipi di formati per i post.</p>
<h3><a title="Workality Lite - Tema wordpress gratuito completamente responsive, indicato per creativi e agenzie" href="http://northeme.com/theme/workality-lite/">WORKALITY Lite</a></h3>
<p><a ref="magnificPopup" href="http://www.upcreative.net/wp-content/uploads/2013/10/10-nuovi-temi-wordpress-gratuiti-di-qualita_06.jpg"><img class="alignnone size-full wp-image-2276" alt="10-nuovi-temi-wordpress-gratuiti-di-qualita_06" src="http://www.upcreative.net/wp-content/uploads/2013/10/10-nuovi-temi-wordpress-gratuiti-di-qualita_06.jpg" width="690" height="350" /></a></p>
<p>Workality Lite è un tema wordpress gratuito completamente responsive, indicato per creativi e agenzie. Offre 4 diverse modalità per esporre il proprio portfolio.</p>
<h3><a title="Revera - Tema wordpress basato sul framework Bootstrap 3" href="http://www.fabthemes.com/revera/">Revera</a></h3>
<p><a ref="magnificPopup" href="http://www.upcreative.net/wp-content/uploads/2013/10/10-nuovi-temi-wordpress-gratuiti-di-qualita_07.jpg"><img class="alignnone size-full wp-image-2277" alt="10-nuovi-temi-wordpress-gratuiti-di-qualita_07" src="http://www.upcreative.net/wp-content/uploads/2013/10/10-nuovi-temi-wordpress-gratuiti-di-qualita_07.jpg" width="690" height="350" /></a></p>
<p>Revera è un tema wordpress basato sul framework Bootstrap 3 e su tutte le sue funzionalità.</p>
<h3><a title="Panoramica - Tema wordpress gratuito accattivante, moderno e professionale" href="http://www.cpothemes.com/theme/panoramica">Panoramica</a></h3>
<p><a ref="magnificPopup" href="http://www.upcreative.net/wp-content/uploads/2013/10/10-nuovi-temi-wordpress-gratuiti-di-qualita_08.jpg"><img class="alignnone size-full wp-image-2278" alt="10-nuovi-temi-wordpress-gratuiti-di-qualita_08" src="http://www.upcreative.net/wp-content/uploads/2013/10/10-nuovi-temi-wordpress-gratuiti-di-qualita_08.jpg" width="690" height="350" /></a></p>
<p>Panoramica è un tema per mostrare il proprio portfolio, creato per essere visivamente accattivante e allo stesso tempo moderno e professionale.</p>
<h3><a title="TBLOG - Tema wordpress responsive gratuito per portfolio" href="http://www.webdesigntunes.com/portfolio/tblog-free-responsive-wordpress-portfolio-theme/#.UmuxwBZGQeI">TBLOG</a></h3>
<p><a ref="magnificPopup" href="http://www.upcreative.net/wp-content/uploads/2013/10/10-nuovi-temi-wordpress-gratuiti-di-qualita_09.jpg"><img class="alignnone size-full wp-image-2279" alt="10-nuovi-temi-wordpress-gratuiti-di-qualita_09" src="http://www.upcreative.net/wp-content/uploads/2013/10/10-nuovi-temi-wordpress-gratuiti-di-qualita_09.jpg" width="690" height="350" /></a></p>
<p>TBLOG è un tema completamente responsive con layout fluido, molto adatto per blogger, portfolio o per mostrare i propri prodotti.
		</div> 
	</div> <div class="g-hr">
						<span class="g-hr-h">
							<i class="fa fa-chevron-down"></i>
						</span>
					</div>
	<div class="wpb_text_column ">
		<div class="wpb_wrapper">
			
<h5>Temi WordPress Premium:</h5>

		</div> 
	</div> <div class="g-cols"><div class="one-third">
	<div class="wpb_text_column ">
		<div class="wpb_wrapper">
			
<h5><a href="http://themeforest.net/item/avada-responsive-multipurpose-theme/2833226?ref=Colddesign">Avada</a></h5>

		</div> 
	</div> </div><div class="one-third">
	<div class="wpb_text_column ">
		<div class="wpb_wrapper">
			
<h5><a href="http://themeforest.net/item/udesign-wordpress-theme/253220?ref=Colddesign">U-Design WordPress Theme</a></h5>

		</div> 
	</div> </div><div class="one-third">
	<div class="wpb_text_column ">
		<div class="wpb_wrapper">
			
<h5><a href="http://themeforest.net/item/enfold-responsive-multipurpose-theme/4519990?ref=Colddesign">Enfold &#8211; Responsive Multi-Purpose Theme</a></h5>

		</div> 
	</div> </div></div><div class="g-cols"><div class="one-third">
	<div class="wpb_single_image wpb_content_element align_center">
		<div class="wpb_wrapper">
			
			<a href="http://themeforest.net/item/avada-responsive-multipurpose-theme/2833226?ref=Colddesign"><img width="590" height="300" src="http://www.upcreative.net/wp-content/uploads/2013/10/00_preview.__large_preview.jpg" class="attachment-full" alt="00_preview.__large_preview" /></a>
		</div> 
	</div> </div><div class="one-third">
	<div class="wpb_single_image wpb_content_element align_center">
		<div class="wpb_wrapper">
			
			<a href="http://themeforest.net/item/udesign-wordpress-theme/253220?ref=Colddesign"><img width="590" height="300" src="http://www.upcreative.net/wp-content/uploads/2013/10/01_Preview.__large_preview.jpg" class="attachment-full" alt="01_Preview.__large_preview" /></a>
		</div> 
	</div> </div><div class="one-third">
	<div class="wpb_single_image wpb_content_element align_center">
		<div class="wpb_wrapper">
			
			<a href="http://themeforest.net/item/enfold-responsive-multipurpose-theme/4519990?ref=Colddesign"><img width="590" height="300" src="http://www.upcreative.net/wp-content/uploads/2013/10/1_preview.__large_preview.jpg" class="attachment-full" alt="1_preview.__large_preview" /></a>
		</div> 
	</div> </div></div><div class="g-cols"><div class="one-third">
	<div class="wpb_text_column ">
		<div class="wpb_wrapper">
			
<h5><a href="http://themeforest.net/item/karma-responsive-wordpress-theme/168737?ref=Colddesign">Karma &#8211; Responsive WordPress Theme</a></h5>

		</div> 
	</div> </div><div class="one-third">
	<div class="wpb_text_column ">
		<div class="wpb_wrapper">
			
<h5><a href="http://themeforest.net/item/striking-multiflex-ecommerce-responsive-wp-theme/128763?ref=Colddesign">Striking MultiFlex &amp; Ecommerce Responsive WP Theme</a></h5>

		</div> 
	</div> </div><div class="one-third">
	<div class="wpb_text_column ">
		<div class="wpb_wrapper">
			
<h5><a href="http://themeforest.net/item/king-size-fullscreen-background-wordpress-theme/166299?ref=Colddesign">King Size &#8211; Fullscreen Background WordPress Theme</a></h5>

		</div> 
	</div> </div></div><div class="g-cols"><div class="one-third">
	<div class="wpb_single_image wpb_content_element align_center">
		<div class="wpb_wrapper">
			
			<a href="http://themeforest.net/item/karma-responsive-wordpress-theme/168737?ref=Colddesign"><img width="590" height="300" src="http://www.upcreative.net/wp-content/uploads/2013/10/1-Karma-Responsive-Wordpress-Theme.__large_preview.png" class="attachment-full" alt="1-Karma-Responsive-Wordpress-Theme.__large_preview" /></a>
		</div> 
	</div> </div><div class="one-third">
	<div class="wpb_single_image wpb_content_element align_center">
		<div class="wpb_wrapper">
			
			<a href="http://themeforest.net/item/striking-multiflex-ecommerce-responsive-wp-theme/128763?ref=Colddesign"><img width="590" height="300" src="http://www.upcreative.net/wp-content/uploads/2013/10/striking-mf-tf-large-preview.__large_preview.jpg" class="attachment-full" alt="striking-mf-tf-large-preview.__large_preview" /></a>
		</div> 
	</div> </div><div class="one-third">
	<div class="wpb_single_image wpb_content_element align_center">
		<div class="wpb_wrapper">
			
			<a href="http://themeforest.net/item/king-size-fullscreen-background-wordpress-theme/166299?ref=Colddesign"><img width="590" height="300" src="http://www.upcreative.net/wp-content/uploads/2013/10/01_presentation.__large_preview.jpg" class="attachment-full" alt="01_presentation.__large_preview" /></a>
		</div> 
	</div> </div></div></div></div>
</div></div><p>The post <a rel="nofollow" href="https://www.upcreative.net/10-nuovi-temi-wordpress-gratuiti-qualita-scaricare-liberamente/">10 nuovi temi wordpress gratuiti di qualità da scaricare</a> appeared first on <a rel="nofollow" href="https://www.upcreative.net">upCreative</a>.</p>
]]></content:encoded>
			<wfw:commentRss>https://www.upcreative.net/10-nuovi-temi-wordpress-gratuiti-qualita-scaricare-liberamente/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Web design: i 10 migliori CSS framework responsive</title>
		<link>https://www.upcreative.net/web-design-i-10-migliori-framework-responsive-css/</link>
		<comments>https://www.upcreative.net/web-design-i-10-migliori-framework-responsive-css/#comments</comments>
		<pubDate>Sat, 05 Oct 2013 14:39:43 +0000</pubDate>
		<dc:creator><![CDATA[upcreative]]></dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[Risorse]]></category>
		<category><![CDATA[Web Design]]></category>
		<category><![CDATA[bootstrap]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[framework]]></category>
		<category><![CDATA[front-end]]></category>
		<category><![CDATA[html5]]></category>
		<category><![CDATA[javscript]]></category>
		<category><![CDATA[mobile]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[responsive]]></category>

		<guid isPermaLink="false">http://www.upcreative.net/?p=1952</guid>
		<description><![CDATA[<p>The post <a rel="nofollow" href="https://www.upcreative.net/web-design-i-10-migliori-framework-responsive-css/">Web design: i 10 migliori CSS framework responsive</a> appeared first on <a rel="nofollow" href="https://www.upcreative.net">upCreative</a>.</p>
]]></description>
				<content:encoded><![CDATA[<div class="l-submain"><div class="l-submain-h g-html i-cf"><div class="g-cols"><div class="full-width">
	<div class="wpb_text_column ">
		<div class="wpb_wrapper">
			Come si sà il tempo è denaro, e usare un framework CSS Responsive per velocizzare ed automatizzare i tempi di avvio ed i settings iniziali dei propri lavori è diventata ormai una caratteristica fondamentale per qualsiasi web designer.</p>
<h3>Ma cos&#8217;è un framework?</h3>
<blockquote><p>Un <b>framework</b> è una struttura logica di supporto su cui un <a title="Software" href="http://it.wikipedia.org/wiki/Software">software</a> può essere progettato e realizzato, spesso facilitandone lo sviluppo</p>
<p><em>Fonte <a href="http://it.wikipedia.org/wiki/Framework">wikipedia</a></em></p></blockquote>
<p>Nel mondo del web design, per essere più specifici, un framework è <strong>l&#8217;insieme strutturato di file (perlopiù HTML, CSS e Javascript), cartelle e codice standardizzato secondo una logica</strong>, che viene utilizzato come fondamenta o supporto per la creazione di un nuovo sito o applicazione web.</p>
<p>Lo scopo di un framework è quindi quello di fornire una base di partenza comune in modo tale che il web designer non debba riscrivere da zero i propri progetti ogni volta, ma possa affidarsi ad una logica di codice solida e comune.</p>
<p>In questo articolo voglio aiutare gli web designer che sono alla ricerca di un framework, ma che ancora non conoscono molto bene le caratteristiche di quelli più utilizzati, proponendo 10 dei <strong>migliori framework responsive CSS e open source </strong>per la creazione di interfacce grafiche.</p>
<p>Siccome i termini <strong>Mobile First</strong> e <strong>Responsive</strong>, con l&#8217;avvento e la diffusione di dispositivi mobili sono diventati un must, di seguito ho elencato solo quei Framework che presentano queste funzionalità.</p>
<h5>Prima di iniziare</h5>
<p>Molte volte, per mancanza di budget o di tempo, ci dobbiamo affidare a dei <strong>template responsive premium</strong>; prima di mostrarti la lista dei migliori framework responsive ti voglio segnalare questi ottimi temi responsive di altissima qualità che ho avuto l&#8217;occasione di usare per alcuni dei miei progetti:
		</div> 
	</div> <div class="g-cols"><div class="one-third">
	<div class="wpb_text_column ">
		<div class="wpb_wrapper">
			
<h5><a href="http://themeforest.net/item/metronic-responsive-admin-dashboard-template/4021469?ref=Colddesign">Metronic &#8211; Responsive Admin Dashboard Template </a></h5>

		</div> 
	</div> </div><div class="one-third">
	<div class="wpb_text_column ">
		<div class="wpb_wrapper">
			
<h5 itemprop="name"><a href="http://themeforest.net/item/porto-responsive-html5-template/4106987?ref=Colddesign">Porto &#8211; Responsive HTML5 Template</a></h5>

		</div> 
	</div> </div><div class="one-third">
	<div class="wpb_text_column ">
		<div class="wpb_wrapper">
			
<h5 itemprop="name"><a href="http://themeforest.net/item/smartstart-responsive-html5-template/1674915?ref=Colddesign">SmartStart &#8211; Responsive HTML5 Template</a></h5>

		</div> 
	</div> </div></div><div class="g-cols"><div class="one-third">
	<div class="wpb_single_image wpb_content_element align_center">
		<div class="wpb_wrapper">
			
			<a href="http://themeforest.net/item/metronic-responsive-admin-dashboard-template/4021469?ref=Colddesign"><img width="590" height="300" src="http://www.upcreative.net/wp-content/uploads/2013/10/preview_01.__large_preview.jpg" class="attachment-full" alt="preview_01.__large_preview" /></a>
		</div> 
	</div> </div><div class="one-third">
	<div class="wpb_single_image wpb_content_element align_center">
		<div class="wpb_wrapper">
			
			<a href="http://themeforest.net/item/porto-responsive-html5-template/4106987?ref=Colddesign"><img width="590" height="300" src="http://www.upcreative.net/wp-content/uploads/2013/10/Preview.__large_preview.png" class="attachment-full" alt="Preview.__large_preview" /></a>
		</div> 
	</div> </div><div class="one-third">
	<div class="wpb_single_image wpb_content_element align_center">
		<div class="wpb_wrapper">
			
			<a href="http://themeforest.net/item/smartstart-responsive-html5-template/1674915?ref=Colddesign"><img width="590" height="300" src="http://www.upcreative.net/wp-content/uploads/2013/10/01_Preview.__large_preview1.jpg" class="attachment-full" alt="01_Preview.__large_preview" /></a>
		</div> 
	</div> </div></div><div class="g-cols"><div class="one-third">
	<div class="wpb_text_column ">
		<div class="wpb_wrapper">
			
<h5 itemprop="name"><a href="http://themeforest.net/item/synergy-responsive-interactive-html-portfolio/3054099?ref=Colddesign">Synergy &#8211; Responsive &amp; Interactive HTML Portfolio</a></h5>

		</div> 
	</div> </div><div class="one-third">
	<div class="wpb_text_column ">
		<div class="wpb_wrapper">
			
<h5 itemprop="name"><a href="http://themeforest.net/item/karma-responsive-clean-website-template/234990?ref=Colddesign">Karma &#8211; Responsive Clean Website Template</a></h5>

		</div> 
	</div> </div><div class="one-third">
	<div class="wpb_text_column ">
		<div class="wpb_wrapper">
			
<h5 itemprop="name"><a href="http://themeforest.net/item/developr-fully-responsive-admin-skin/2085628?ref=Colddesign">Developr &#8211; Fully Responsive Admin Skin</a></h5>

		</div> 
	</div> </div></div><div class="g-cols"><div class="one-third">
	<div class="wpb_single_image wpb_content_element align_center">
		<div class="wpb_wrapper">
			
			<a href="http://themeforest.net/item/synergy-responsive-interactive-html-portfolio/3054099?ref=Colddesign"><img width="590" height="300" src="http://www.upcreative.net/wp-content/uploads/2013/10/synergy_preview.__large_preview.jpg" class="attachment-full" alt="synergy_preview.__large_preview" /></a>
		</div> 
	</div> </div><div class="one-third">
	<div class="wpb_single_image wpb_content_element align_center">
		<div class="wpb_wrapper">
			
			<a href="http://themeforest.net/item/karma-responsive-clean-website-template/234990?ref=Colddesign"><img width="590" height="300" src="http://www.upcreative.net/wp-content/uploads/2013/10/01_preview.__large_preview.jpg" class="attachment-full" alt="01_preview.__large_preview" /></a>
		</div> 
	</div> </div><div class="one-third">
	<div class="wpb_single_image wpb_content_element align_center">
		<div class="wpb_wrapper">
			
			<a href="http://themeforest.net/item/developr-fully-responsive-admin-skin/2085628?ref=Colddesign"><img width="590" height="300" src="http://www.upcreative.net/wp-content/uploads/2013/10/01_splash.__large_preview.jpg" class="attachment-full" alt="01_splash.__large_preview" /></a>
		</div> 
	</div> </div></div><div class="g-hr">
						<span class="g-hr-h">
							<i class="fa fa-chevron-down"></i>
						</span>
					</div>
	<div class="wpb_text_column ">
		<div class="wpb_wrapper">
			<a style="font-size: 1.8em; line-height: 1.2em;" title="Mobile first front-end framework per uno sviluppo web più veloce ed intuitivo" href="http://getbootstrap.com">Bootstrap</a></p>
<p><a ref="magnificPopup" href="http://www.upcreative.net/wp-content/uploads/2013/10/i-10-migliori-framework-responsive-CSS_01.jpg"><img class="alignnone size-full wp-image-1958" alt="i-10-migliori-framework-responsive-CSS_01" src="http://www.upcreative.net/wp-content/uploads/2013/10/i-10-migliori-framework-responsive-CSS_01.jpg" width="690" height="340" /></a></p>
<p>E&#8217; sicuramente il più famoso, e quello che ha bisogno di meno presentazioni; elegante, intuitivo e veloce. Dispone di un&#8217;ottima libreria di componenti javascript, un&#8217;ottima documentazione e dalla versione 3.0 è diventato <strong>mobile-first. </strong>Sviluppato da Twitter, Bootstrap 3 utilizza <a href="http://lesscss.org">LESS</a> e, compilato tramite <a href="http://nodejs.org">Node.js</a>, offre nella sezione <em>Customize</em> la possibilità di <strong>personalizzare quasi ogni aspetto grafico</strong> tramite delle variabili prima del download.</p>
<h3><!--?xml version="1.0" encoding="UTF-8" standalone="no"?--> <a title="Il più avanzato front-end framework responsive al mondo" href="http://foundation.zurb.com">Foundation</a></h3>
<p><a ref="magnificPopup" href="http://www.upcreative.net/wp-content/uploads/2013/10/i-10-migliori-framework-responsive-CSS_02.jpg"><img class="alignnone size-full wp-image-1959" alt="i-10-migliori-framework-responsive-CSS_02" src="http://www.upcreative.net/wp-content/uploads/2013/10/i-10-migliori-framework-responsive-CSS_02.jpg" width="690" height="340" /></a></p>
<p>Si presenta come il più avanzato front-end framework responsive al mondo. Anch&#8217;esso mobile-first, fa della <strong>semanticità</strong> del codice uno dei suoi punti di forza, &#8220;per poter scrivere un markup pulito senza sacrificare l&#8217;utilità e la velocità del framework&#8221;. Come Bootstrap, presenta un&#8217;ottima libreria di componenti javascript.</p>
<h3><a title="Framework responsive per web app leggere e veloci" href="http://topcoat.io">Topcoat</a></h3>
<p><a ref="magnificPopup" href="http://www.upcreative.net/wp-content/uploads/2013/10/i-10-migliori-framework-responsive-CSS_03.jpg"><img class="alignnone size-full wp-image-1960" alt="i-10-migliori-framework-responsive-CSS_03" src="http://www.upcreative.net/wp-content/uploads/2013/10/i-10-migliori-framework-responsive-CSS_03.jpg" width="690" height="340" /></a></p>
<p>Framework CSS per applicazioni web pulite e veloci. Disegnato per garantire le massime performance, Topcoat presenta una bella collezione di componenti UI, è facilmente personalizzabile e permette anche il <strong>donwload in PSD degli elementi dell&#8217;interfaccia</strong>.</p>
<h3><a title="Un set leggero di moduli CSS da utilizzare in ogni tipo di progetto web" href="http://purecss.io">Pure</a></h3>
<p><a ref="magnificPopup" href="http://www.upcreative.net/wp-content/uploads/2013/10/i-10-migliori-framework-responsive-CSS_04.jpg"><img class="alignnone size-full wp-image-1961" alt="i-10-migliori-framework-responsive-CSS_04" src="http://www.upcreative.net/wp-content/uploads/2013/10/i-10-migliori-framework-responsive-CSS_04.jpg" width="690" height="340" /></a></p>
<p>Pure è si presenta come un set leggero di moduli CSS da utilizzare in ogni tipo di progetto web. Offre una buona documentazione ed effettivamente è molto leggero (il peso totale è di soli 6KB).</p>
<h3><!--?xml version="1.0" encoding="UTF-8" standalone="no"?--> <a title="Boilerplate framework per la creazione di siti web responsive e mobile-ready" href="http://www.getskeleton.com">Skeleton</a></h3>
<p><a ref="magnificPopup" href="http://www.upcreative.net/wp-content/uploads/2013/10/i-10-migliori-framework-responsive-CSS_05.jpg"><img class="alignnone size-full wp-image-1962" alt="i-10-migliori-framework-responsive-CSS_05" src="http://www.upcreative.net/wp-content/uploads/2013/10/i-10-migliori-framework-responsive-CSS_05.jpg" width="690" height="340" /></a></p>
<p>Skeleton è un framework semplice e pulito per siti web e applicazioni HTML5. Mette a disposizione solamente gli elementi di cui hai bisogno, niente di più. Come Topcoat permette il download  di un <strong>template PSD per il mock up</strong> dei tuoi lavori.</p>
<h3><a title="Framework CSS modulare per siti web flessibili, accessibili e responsive" href="http://www.yaml.de">YAML</a></h3>
<p><a ref="magnificPopup" href="http://www.upcreative.net/wp-content/uploads/2013/10/i-10-migliori-framework-responsive-CSS_06.jpg"><img class="alignnone size-full wp-image-1963" alt="i-10-migliori-framework-responsive-CSS_06" src="http://www.upcreative.net/wp-content/uploads/2013/10/i-10-migliori-framework-responsive-CSS_06.jpg" width="690" height="340" /></a></p>
<p>Framework CSS modulare per siti web flessibili, accessibili e responsive. Anche questo molto leggero (5.9 KB) e costruito utilizzando <a title="SASS per CSS" href="http://sass-lang.com">SASS</a>, è testato and supportato dalla maggior parte dei browser come Chrome, Firefox, Opera, Safari ed Internet Explorer.</p>
<h3><a title="Framework CSS flessibile e responsive" href="http://gumbyframework.com">Gumby</a></h3>
<p><a ref="magnificPopup" href="http://www.upcreative.net/wp-content/uploads/2013/10/i-10-migliori-framework-responsive-CSS_07.jpg"><img class="alignnone size-full wp-image-1964" alt="i-10-migliori-framework-responsive-CSS_07" src="http://www.upcreative.net/wp-content/uploads/2013/10/i-10-migliori-framework-responsive-CSS_07.jpg" width="690" height="340" /></a></p>
<p>Framework CSS flessibile e responsive. Presenta una buona libreria di elementi UI e include diversi tipi di griglie con molte variazioni di colonne, che permettono di avere la massima flessibilità durante l&#8217;intero processo di realizzazione di qualsiasi progetto.</p>
<h3><a title="Framework CSS professionale" href="http://imperavi.com/kube/">Kube</a></h3>
<p><a ref="magnificPopup" href="http://www.upcreative.net/wp-content/uploads/2013/10/i-10-migliori-framework-responsive-CSS_08.jpg"><img class="alignnone size-full wp-image-1965" alt="i-10-migliori-framework-responsive-CSS_08" src="http://www.upcreative.net/wp-content/uploads/2013/10/i-10-migliori-framework-responsive-CSS_08.jpg" width="690" height="340" /></a></p>
<p>Dai creatori di <a title="Javascript Editor" href="http://imperavi.com/redactor/"><strong>Redactor.js</strong></a>, Kube si presenta come un framework CSS per sviluppatori professionali. Dispone di un sistema di griglie rivoluzionario e offre molta libertà sulla codifica degli stili.</p>
<h3><a title="Responsive HTML5 e Javascript toolkit" href="http://groundwork.sidereel.com">Groundwork</a></h3>
<p><a ref="magnificPopup" href="http://www.upcreative.net/wp-content/uploads/2013/10/i-10-migliori-framework-responsive-CSS_09.jpg"><img class="alignnone size-full wp-image-1966" alt="i-10-migliori-framework-responsive-CSS_09" src="http://www.upcreative.net/wp-content/uploads/2013/10/i-10-migliori-framework-responsive-CSS_09.jpg" width="690" height="340" /></a></p>
<p>Compilato anch&#8217;esso tramite SASS, Groundwork CSS è un buon toolkit HTML5 Responsive e Javascript.</p>
<h3><a title="Responsive Framework CSS" href="http://tuktuk.tapquo.com">Tuktuk</a></h3>
<p><a ref="magnificPopup" href="http://www.upcreative.net/wp-content/uploads/2013/10/i-10-migliori-framework-responsive-CSS_10.jpg"><img class="alignnone size-full wp-image-1967" alt="i-10-migliori-framework-responsive-CSS_10" src="http://www.upcreative.net/wp-content/uploads/2013/10/i-10-migliori-framework-responsive-CSS_10.jpg" width="690" height="340" /></a></p>
<p>Framework Responsive per dare flessibilità ai propri progetti facilmente. Usa funzionalità CSS 3, è leggero e veloce</p>
<h3>Bella lista, ma quale dei framework scegliere?</h3>
<p>Scegliere il proprio framework non è sicuramente facile, e si può dire che per poter capire meglio quale fa al caso nostro bisogna  all&#8217;inizio provarli direttamente; tuttavia altri aspetti possono essere considerati nella scelta:</p>
<ul>
<li>La grandezza e il tipo di progetto che devi realizzare</li>
<li>La facilità e la velocità di scrittura del codice</li>
<li>La documentazione (più dettagliata è, e più veloce riuscirai a capire come utilizzare il framework)</li>
<li>Con quale frequenza il framework viene aggiornato ed il supporto a lungo termine</li>
<li>La velocità di installazione</li>
<li>Il numero di opzioni disponibili</li>
<li>L&#8217;integrazione con altri sistemi</li>
<li>La leggerezza dei file inclusi</li>
</ul>
<p>E tu quale utilizzerai? Se hai altre ottime soluzioni da segnalare, non esitare a segnalarle nei commenti!
		</div> 
	</div> <div class="g-hr">
						<span class="g-hr-h">
							<i class="fa fa-chevron-down"></i>
						</span>
					</div>
	<div class="wpb_text_column ">
		<div class="wpb_wrapper">
			
<h5>Template responsive premium</h5>

		</div> 
	</div> <div class="g-cols"><div class="one-third">
	<div class="wpb_text_column ">
		<div class="wpb_wrapper">
			
<h5><a href="http://themeforest.net/item/metronic-responsive-admin-dashboard-template/4021469?ref=Colddesign">Metronic &#8211; Responsive Admin Dashboard Template </a></h5>

		</div> 
	</div> </div><div class="one-third">
	<div class="wpb_text_column ">
		<div class="wpb_wrapper">
			
<h5 itemprop="name"><a href="http://themeforest.net/item/porto-responsive-html5-template/4106987?ref=Colddesign">Porto &#8211; Responsive HTML5 Template</a></h5>

		</div> 
	</div> </div><div class="one-third">
	<div class="wpb_text_column ">
		<div class="wpb_wrapper">
			
<h5 itemprop="name"><a href="http://themeforest.net/item/smartstart-responsive-html5-template/1674915?ref=Colddesign">SmartStart &#8211; Responsive HTML5 Template</a></h5>

		</div> 
	</div> </div></div><div class="g-cols"><div class="one-third">
	<div class="wpb_single_image wpb_content_element align_center">
		<div class="wpb_wrapper">
			
			<a href="http://themeforest.net/item/metronic-responsive-admin-dashboard-template/4021469?ref=Colddesign"><img width="590" height="300" src="http://www.upcreative.net/wp-content/uploads/2013/10/preview_01.__large_preview.jpg" class="attachment-full" alt="preview_01.__large_preview" /></a>
		</div> 
	</div> </div><div class="one-third">
	<div class="wpb_single_image wpb_content_element align_center">
		<div class="wpb_wrapper">
			
			<a href="http://themeforest.net/item/porto-responsive-html5-template/4106987?ref=Colddesign"><img width="590" height="300" src="http://www.upcreative.net/wp-content/uploads/2013/10/Preview.__large_preview.png" class="attachment-full" alt="Preview.__large_preview" /></a>
		</div> 
	</div> </div><div class="one-third">
	<div class="wpb_single_image wpb_content_element align_center">
		<div class="wpb_wrapper">
			
			<a href="http://themeforest.net/item/smartstart-responsive-html5-template/1674915?ref=Colddesign"><img width="590" height="300" src="http://www.upcreative.net/wp-content/uploads/2013/10/01_Preview.__large_preview1.jpg" class="attachment-full" alt="01_Preview.__large_preview" /></a>
		</div> 
	</div> </div></div><div class="g-cols"><div class="one-third">
	<div class="wpb_text_column ">
		<div class="wpb_wrapper">
			
<h5 itemprop="name"><a href="http://themeforest.net/item/synergy-responsive-interactive-html-portfolio/3054099?ref=Colddesign">Synergy &#8211; Responsive &amp; Interactive HTML Portfolio</a></h5>

		</div> 
	</div> </div><div class="one-third">
	<div class="wpb_text_column ">
		<div class="wpb_wrapper">
			
<h5 itemprop="name"><a href="http://themeforest.net/item/karma-responsive-clean-website-template/234990?ref=Colddesign">Karma &#8211; Responsive Clean Website Template</a></h5>

		</div> 
	</div> </div><div class="one-third">
	<div class="wpb_text_column ">
		<div class="wpb_wrapper">
			
<h5 itemprop="name"><a href="http://themeforest.net/item/developr-fully-responsive-admin-skin/2085628?ref=Colddesign">Developr &#8211; Fully Responsive Admin Skin</a></h5>

		</div> 
	</div> </div></div><div class="g-cols"><div class="one-third">
	<div class="wpb_single_image wpb_content_element align_center">
		<div class="wpb_wrapper">
			
			<a href="http://themeforest.net/item/synergy-responsive-interactive-html-portfolio/3054099?ref=Colddesign"><img width="590" height="300" src="http://www.upcreative.net/wp-content/uploads/2013/10/synergy_preview.__large_preview.jpg" class="attachment-full" alt="synergy_preview.__large_preview" /></a>
		</div> 
	</div> </div><div class="one-third">
	<div class="wpb_single_image wpb_content_element align_center">
		<div class="wpb_wrapper">
			
			<a href="http://themeforest.net/item/karma-responsive-clean-website-template/234990?ref=Colddesign"><img width="590" height="300" src="http://www.upcreative.net/wp-content/uploads/2013/10/01_preview.__large_preview.jpg" class="attachment-full" alt="01_preview.__large_preview" /></a>
		</div> 
	</div> </div><div class="one-third">
	<div class="wpb_single_image wpb_content_element align_center">
		<div class="wpb_wrapper">
			
			<a href="http://themeforest.net/item/developr-fully-responsive-admin-skin/2085628?ref=Colddesign"><img width="590" height="300" src="http://www.upcreative.net/wp-content/uploads/2013/10/01_splash.__large_preview.jpg" class="attachment-full" alt="01_splash.__large_preview" /></a>
		</div> 
	</div> </div></div></div></div>
</div></div><p>The post <a rel="nofollow" href="https://www.upcreative.net/web-design-i-10-migliori-framework-responsive-css/">Web design: i 10 migliori CSS framework responsive</a> appeared first on <a rel="nofollow" href="https://www.upcreative.net">upCreative</a>.</p>
]]></content:encoded>
			<wfw:commentRss>https://www.upcreative.net/web-design-i-10-migliori-framework-responsive-css/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
	</channel>
</rss>
