Sass mixin SVG icons. Actually a lot of words for a little advice!

This article is a very short tutorial about a technique that has delighted me as I was working on some experiment with CSS, trying to figure out how to place simple vector icons in several places with the minimum number of CSS and SVG statements. You know, like most of the computer people I’m a lazy man :).

At first I was wondering how could an SVG icon be reused in several places, say an arrow for example. So the first thing to do was to define a down oriented arrow in SVG:

<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100">
<path style="fill:#000000;" d="M0 50l50,50 50,-50 -10,-10 -40,40 -40,-40z" />
</svg>

Reusing SVG by SASS Mixins

Like most of the front-end developers, I use SASS and I thought it would be a good idea to write a mixin that would help me putting that arrow whenever I need.

@mixin arrow_icon() {
	background-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100"><path style="fill:#000000;" d="M0 50l50,50 50,-50 -10,-10 -40,40 -40,-40z" /></svg>');
}

This way we get our arrow set as a background image. Say that we want to apply this rule to elements with class “down-arrow”:

<div class="down-arrow"></div>

we could define the class like this:

.down-arrow {
	@include arrow_icon();
	
	width:20px; 
	heigth:20px;
	background-size:contain;
}

Cool! It’s a wonderful down arrow, but what if we need a left or a up direction? We could define different mixins for each direction, but we ara lazy, remember? So why not to exploit SVG transformations and add a simple rotation to our icon? How?

The trick is very easy, we just need to add a parameter to the arrow_icon mixin and set the direction passing the angle degrees desired:

@mixin arrow_icon($rotation:0) {
     background-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100">
       <path style="fill:#000000;"
             d="M0 50l50,50 50,-50 -10,-10 -40,40 -40,-40z" 
             transform="rotate('+$rotation+' 50 50 )"/>
     </svg>');
}

So now we can think to change the arrow’s color. It’s not an hard job now, we just need to add another parameter:

@mixin arrow_icon($color:'#000000', $rotation:0) {
     background-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100">
       <path style="fill:'+$color+';"
             d="M0 50l50,50 50,-50 -10,-10 -40,40 -40,-40z" 
             transform="rotate('+$rotation+' 50 50 )"/>
     </svg>');
}

Change the SVG shape in the Mixin

So we can use our mixin to define arrows in a rainbow of colors and in all directions. But what if we want our shape to be ticker or thinner? Ohhh Yes! we can use a parameter for that too!

Here’s how I did:

@mixin arrow_icon($color:'#000000', $rotation:0, $tickness:10) {
     background-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100">
       <path style="fill:'+$color+';"
             d="M0 50l50,50 50,-50 -'+$tickness+', -'+$tickness+' -'+(50 - $tickness)+','+(50 - $tickness)+' -'+(50 - $tickness)+',-'+(50 - $tickness)+'z"
             transform="rotate('+$rotation+' 50 50 )"/>
     </svg>');
}

That’s it! It’s not rocket science I know 🙂 but I had a lot of fun with it. Hope it was funny for you too.

Have a nice day!

Pubblica Amministrazione? È Amore

In questi giorni mi sto dedicando a intrattenere rapporti con un ente della PA. L’esperienza si fa sempre più interessante e ricca di spunti do riflessione.
Il primo fatto inconfutabile è che la PA ti vuole bene, di un amore viscerale, quasi possessivo. Non ci sta ad un rapporto occasionale. Non si accontenta dell’avventura di un singolo appuntamento, no. Esige il massimo dell’attenzione al punto di indurti quasi a non fare altro che dedicarti a lei. Non è commovente? Che importa se hai lavoro, famiglia o altri interessi? Devi stare con lei.
Che ci volete fare… è fatta così.

La seconda cosa importante è che un ente non si fida di quello che dicono altri enti… ti vuole conoscere di persona e da capo. Quindi per uscire con la PA bisogna sempre avere le carte in regola. Tutto in più copie… se vuoi ottenere qualcosa da lei.

Ciò che conta è che alla fine il rapporto dà grandi soddisfazioni. Oggi per esempio ho parlato con ben 2 persone e, dopo aver ricevuto un ulteriore appuntamento, mi hanno dato i compiti da fare a casa: la PA non è mai sazia do lettere d’amore. Che volete farci…

Per finire bisogna essere cavalieri con la PA e, qualunque cosa accada, a qualunque appuntamento, bisogna che paghiamo noi. E CHE C… I VOLETE FARE…

A quasi un mese dall’incidente

ho aumentato notevolmente il numero di passi quotidiano, ma sono ancora sui 115. Sogno la bici. Ho preso anche un supporto per lo smartphone molto cool che mi aiuterà a misurare i miei progressi anche sui pedali.

Intanto le spalle fanno male e mi assalgono pensieri da scacciare, probabilmente alimentati dall’insonnia.

Nel condominio ho raccolto più della metà dei consensi per realizzare la rimessa delle bici. Mi ha fatto bene ricevere l’entusiasmo di alcuni vicini. Un paio di persone mi hanno addirittura ringraziato. Domani tento con qualche altra porta poi sento l’amministratore.

Pasquale ha avuto un’idea geniale:fare del compost per il giardino condominiale.  Che grande! Ma se promuovessimo un riciclo dell’umido ? Una raccolta differenziata ‘dal basso’?

Penso che dovrei riprendere con il progetto… solo che ci sono troppe cose in ballo. Intanto dovrei rinnovare il dominio… va bhe domani.

Primi passi da orticultore da balcone

Finalmente ho fatto posto nel mio balcone ad una mini area attrezzata ad orto. L’approccio è molto pratico: dopo aver letto ancora veramente poco ho voluto subito sperimentare per iniziare ad accumulare esperienza e sperare in un minimo di successo.

20130825_163136[1]

Per iniziare voglio subito cimentarmi in qualcosa di non banale: la semina.

Sono andato presso un negozio di bricolage e ho preso:

  • 40 litri di terra
  • Una confezione di bustine di concime solubile (1 bustina per 6l di acqua)
  • 3 bustine piccole di semi della Olter. Siamo a fine agosto quindi ho scelto qualcosa che potesse essere seminato ancora in questo momento: pomodori, cipolla e lattuga. Queste bustine riportano anche i mesi ideali per la semina.

Ho preso anche un vaso (alto più di 30cm come consigliato) e relativo sottovaso e ho posizionato tutto in alto per lavorare senza dover chinarmi a terra (sono volenteroso ma per ora voglio stare comodo).

In giro ho trovato diverse tabelle per i tempi di semina delle diverse specie, ma penso di dover leggere ancora molto su come gestire un semenzaio.

Ad esempio, finora ho capito che in ogni caso le caratteristiche termiche di un orto in vaso da balcone possono variare anche molto da quelle dei campi tradizionali (c’è da considerare la cosiddetta “inerzia termica del terreno” per esempio: un vaso cambia temperatura più rapidamente di un campo).

Inoltre, visto il numero di piantine, forse si può anche considerare di creare semenzai “indoor”… oppure no? C’è da approfondire.

Per farla breve ho messo i primi 20 litri di terra in una busta di quelle grandi da supermercato e l’ho sbriciolata per bene. Ho disciolto la prima bustina di concime nei primi 6 litri di acqua e ho versato tutto nella terra (forse eccessivo… ma ho pensato che i semi abbiano bisogno di nutrimento, no?)

Ho mescolato tutto e finalmente ho messo la terra in piano. Poi in una porzione ho sparpagliato alcuni semi di lattuga, avendo cura di ricoprirli solo poco (sulla bustina c’è scritto 0,3 cm). Le piantine dovrebbero crescere grazie ad una costante esposizione al sole e ad una temperatura di circa 20 gradi.

Cresceranno? Sarà stata sufficiente l’applicazione delle notizie riportate sulla bustina? Lo scoprirò … Per ora il solo fatto di averci provato mi dà una grandissima soddisfazione!