Preprocessore CSS
Da SCSS, Less e Stylus a CSS
Questo preprocessore CSS legge regole annidate, variabili e mixin, poi scrive il CSS piatto che il browser capisce. Quindi compili SCSS in CSS, o Less in CSS, oppure porti il CSS puro nell'altro senso. Il lavoro gira nel tuo browser, e non carichiamo nulla.
- GratisPrezzo
- Entrambi i sensiDirezioni
- NessunaRegistrazione
- NessunaCaricamenti
Preprocessore CSS
Converti SCSS, Less o Stylus in CSS puro, oppure riporta un foglio piatto all'annidamento
Pronto. Incolla un foglio di stile, oppure premi uno dei pulsanti di esempio.
Cosa fa un preprocessore CSS
Un foglio di stile con annidamento non è CSS valido. Il browser scarta l'intera regola e non dice nulla. Perciò questo preprocessore CSS appiattisce l'annidamento, sostituisce le variabili con i loro valori e scrive il CSS piatto che un browser può leggere.
Da un solo incolla tornano tre cose. Prima il CSS compilato stesso, pronto da incollare in un file. Poi una lista delle variabili e dei mixin trovati, con il valore che ognuno porta. Infine un pannello di note che nomina tutto ciò che il compilatore ha dovuto decidere da solo.
Quest'ultimo pannello conta più di quanto sembri. Un'ipotesi silenziosa dentro il CSS compilato è un layout rotto due schermate più avanti. Quindi ogni ipotesi viene stampata accanto all'output invece che sepolta dentro.
Il convertitore lavora anche al contrario. Poiché un file piatto è difficile da tenere in ordine, può raggruppare CSS normale di nuovo in SCSS o Less annidato, con i valori condivisi tirati fuori come variabili. Non installi nulla e non invii nulla.
Come un preprocessore compila in CSS
Il lavoro si svolge in tre passaggi. Prima il lettore trasforma il sorgente in una lista di regole, ognuna con un selettore, un blocco e una profondità. Poi un secondo passaggio unisce i selettori annidati ai loro genitori. Infine uno scrittore stampa le regole piatte in ordine.
Unire i selettori segue le regole dei selettori che il browser stesso usa. Una regola annidata una volta diventa un selettore discendente. Una regola scritta con una e commerciale tiene il genitore attaccato, ed è così che si costruiscono uno stato hover e una classe modificatrice.

Le variabili sono il secondo lavoro. Poiché SCSS e Less permettono entrambi che un nome stia per un valore, il compilatore cerca ogni nome che incontra e scrive il valore al suo posto. Le variabili Sass iniziano con un segno del dollaro, e quelle Less con una chiocciola, quindi il lettore le distingue dal primo carattere.
Lo scrittore non tocca mai un'API del browser e mai la rete. Quindi la pagina funziona offline. Funziona anche su un file che preferisci non incollare in un compilatore ospitato, come un foglio di stile che nomina un prodotto non annunciato.
SCSS, Less e Stylus fianco a fianco
I tre linguaggi concordano sull'idea e differiscono sulla punteggiatura. Quindi il compilatore legge tutti e tre e scrive un solo output.
Lo SCSS mantiene le graffe e i punti e virgola del CSS, ed è per questo che sembra CSS con funzioni in più. Il Less fa lo stesso, e permette anche una chiamata parziale a un mixin senza parentesi. Lo Stylus lascia cadere le graffe, i punti e virgola e spesso i due punti, e si affida all'indentazione invece.
Poiché le differenze sono piccole, una sola pagina può leggere tutti e tre. Il lettore decide quale linguaggio ha davanti guardando il file: un segno del dollaro punta allo SCSS, una chiocciola davanti a un nome punta al Less, e una graffa assente punta allo Stylus. Quando il sorgente è ambiguo, la pagina lo dice nel pannello delle note invece di indovinare.
L'output è lo stesso in ogni caso. Quindi il browser vede un solo foglio di stile piatto, e tu tieni il sorgente nel linguaggio che il tuo team già usa.
Perché unire i selettori è la parte difficile
Un compilatore che incolla i due selettori con uno spazio sbaglia quasi tutto l'annidamento. Poiché una regola annidata sotto un genitore diventa discendente solo quando non c'è la e commerciale, il lettore tiene traccia del genitore a ogni livello mentre scende.
Quindi ogni blocco conserva il selettore completo che stamperà. Una regola in cima parte con il proprio selettore. Poi una regola dentro di essa eredita quello e aggiunge il suo, separati da uno spazio. Una e commerciale sostituisce lo spazio del tutto, ed è così che lo stato hover di un genitore si attacca senza buco.
L'ordine delle regole stampate è il terzo caso. Poiché una regola più tarda di uguale peso vince, lo scrittore conserva l'ordine del sorgente a ogni livello. In questo modo la cascata sopravvive alla compilazione, e una regola che volevi vincente vince ancora.
Cosa compila pulito e cosa riceve una nota
Un compilatore si guadagna la fiducia nominando i propri limiti. Perciò il pannello delle note elenca ogni costruzione che il lettore ha gestito in un modo che dovresti controllare.

Le definizioni e le inclusioni dei mixin compilano, perché entrambi i linguaggi le definiscono nel sorgente che hai incollato. Le espressioni di guardia del Less compilano quando la condizione è un confronto semplice. Quindi un mixin con guardia inserisce il ramo che corrisponde.

L'interpolazione riceve una nota più spesso. Poiché un valore costruito da una variabile dentro una stringa ha bisogno del valore al momento della compilazione, il lettore può risolverlo solo quando la variabile è nello stesso file. Un valore che viene da un import che la pagina non ha resta come scritto, e la nota dice quale nome mancava.
Anche gli import stessi ricevono una nota. La pagina non può recuperare un altro file, dato che non tocca mai la rete. Quindi un at-import resta nell'output come un normale import CSS, e il pannello dice che il file non è stato letto. Questo tiene l'output onesto invece che silenziosamente sbagliato.
Il conteggio accanto all'output fa parte della stessa idea. Poiché una compilazione può cambiare la dimensione di un file in entrambi i sensi, il pannello riporta le regole scritte, le dichiarazioni che contengono e la dimensione dell'input e dell'output. Quindi un foglio di stile che è cresciuto dopo la compilazione si vede a colpo d'occhio e non dopo un deploy.
In questa pagina
- Lo strumento
- Cosa fa un preprocessore CSS
- Come usare il convertitore di preprocessore CSS
- Perché compilare nel browser
- Ottenere una compilazione pulita con qualsiasi preprocessore CSS
- Sette errori scivolosi con un preprocessore
- Domande sul preprocessore CSS
- Strumenti che vanno con questo
Continua
Come usare il convertitore di preprocessore CSS
Quattro passi, e nessuno ha bisogno di un account.
- 1
Incolla il tuo foglio di stile
Quindi copia il file intero e incollalo nel riquadro sinistro. Anche un file parziale funziona, quindi un solo componente con il suo annidamento basta per provare.
- 2
Scegli la direzione
Poi scegli il linguaggio di partenza. Per SCSS in CSS, prendi SCSS come input e CSS come output. Poiché la pagina legge tutti e tre, anche un file misto compila.
- 3
Leggi il pannello delle note
Poi controlla le note prima di incollare l'output da qualche parte. Un nome che il compilatore non ha potuto risolvere si corregge più facilmente qui che in un browser che mostra un riquadro vuoto.
- 4
Copia il CSS
Infine prendi l'output. Il pulsante copia mette l'intero foglio di stile nei tuoi appunti. Dopo di che, salvalo accanto al file sorgente e collegalo come colleghi qualsiasi altro foglio di stile.
Perché compilare nel browser
Cinque motivi per cui questo batte i modi abituali di arrivare a CSS puro.
Nessuna catena di build
Quindi salti l'installazione. Un compilatore in un progetto significa un gestore di pacchetti, uno script e un file di configurazione. Per un solo foglio di stile sono molti pezzi mobili.
Il tuo sorgente non esce mai
La compilazione gira nella scheda che hai già aperto. Perciò un foglio di stile sotto contratto resta sulla tua macchina. Nulla viene caricato e nulla viene registrato.
Entrambi i sensi
La maggior parte dei compilatori va solo in un senso. Poiché questa pagina raggruppa anche il CSS piatto in annidamento, aiuta quando erediti un foglio di stile senza file sorgente e vuoi rimetterlo in ordine.
Vedi le ipotesi
Poi c'è il pannello delle note. Uno strumento di build fallisce con un numero di riga e nulla più. Qui ogni ipotesi è nominata con parole chiare accanto all'output.
Nulla da lasciare acceso
Infine non c'è nessun processo di controllo. Nulla si ricostruisce quando salvi, e nulla si rompe quando torni un mese dopo. Quindi il preprocessore CSS resta qui finché ti serve.
Ottenere una compilazione pulita con qualsiasi preprocessore CSS
Sei abitudini che tengono l'output vicino a quello che ti aspetti.
- Tieni intero il sorgente Quindi incolla il file, non un frammento, quando una variabile è impostata in cima. Poiché il lettore cerca un nome dove è stato definito, un frammento a cui manca quella riga riceve una nota.
- Fai corrispondere il linguaggio al file Poi controlla la direzione rispetto al file che hai copiato. Un file Less letto come SCSS compila comunque, ma le regole della e commerciale si comportano diversamente e l'output può sorprenderti.
- Evita di mescolare i due Un file che contiene sia una variabile con il dollaro sia una con la chiocciola non è valido in nessuno dei due linguaggi. Quindi dividilo prima di incollarlo, e il pannello delle note resta zitto.
- Attento alla e commerciale La e commerciale significa il selettore genitore. Perciò una regola che ne contiene una dentro una media query si attacca al genitore fuori dalla query, cosa che raramente vuoi. Tuttavia, ogni preprocessore CSS la tratta allo stesso modo, quindi la regola viaggia tra i file.
- Dai un nome ai tuoi mixin Un mixin chiamato con un nome che il lettore trova si inserisce pulito. Quindi tieni i nomi dei mixin distinti dai nomi delle variabili, e la ricerca non avrà mai due candidati.
- Minifica alla fine Compila prima e minifica dopo, in quest'ordine. Poiché un minificatore toglie i commenti, eseguirlo prima butta via le note che spiegano l'output.
Sette errori scivolosi con un preprocessore
Ognuno di questi sembra innocuo nel sorgente e fa male nel browser.
Annidamento profondo
Cinque livelli di annidamento si leggono bene e compilano in un selettore che nessuno può sovrascrivere. Poiché ogni livello aggiunge peso al selettore, una regola più tarda con una sola classe perde. Quindi tieni l'annidamento a tre livelli.
Una variabile duplicata
Un nome impostato due volte nello stesso ambito vince con l'ultimo valore. Poi la prima metà del file sembra ignorare il cambiamento. Il pannello delle note nomina il vincitore così lo vedi.
Unità su un valore zero
Zero pixel e zero sono lo stesso numero in CSS. Poiché una variabile che contiene uno zero nudo è più facile da riusare, preferisci lo zero semplice e togli l'unità.
Output di un mixin che nessuno ha controllato
Un mixin che aggiunge un prefisso di browser scrive ogni riga in ogni regola che lo chiama. Quindi una chiamata dentro un ciclo moltiplica l'output in fretta. Controlla la dimensione compilata, non la dimensione del sorgente.
Interpolazione in un selettore
Costruire un nome di classe da una variabile funziona al momento della compilazione. Perciò il nome è incastrato nel CSS e non può cambiare a runtime. Un tema che ha bisogno di entrambi gli stati ha bisogno di due classi vere. Quindi un preprocessore CSS è il posto sbagliato per quel lavoro.
Importare un parziale due volte
Due import dello stesso parziale scrivono le sue regole due volte. Poi la seconda copia sovrascrive la prima, e una correzione in un punto sembra non fare nulla.
Dimenticare il sorgente
Il file compilato è quello che va in produzione, e non è quello che modifichi. Quindi tieni il sorgente nel repository accanto a lui, altrimenti la prossima modifica parte da un file piatto senza annidamento.
Domande sul preprocessore CSS
Questo preprocessore CSS è gratis?
Sì. Non c'è nessun account, nessun limite e nessun piano a pagamento. Quindi compili tutti i fogli di stile che vuoi.
Il mio foglio di stile viene inviato da qualche parte?
No. Poiché il lettore e lo scrittore girano entrambi nel tuo browser, il sorgente non lascia mai la tua macchina. Di conseguenza, un foglio di stile sotto contratto resta privato.
Può compilare SCSS in CSS?
Sì. Incolla lo SCSS, scegli SCSS come input e CSS come output. Poi l'annidamento si appiattisce, le variabili si risolvono e i mixin vengono inseriti.
Può compilare Less in CSS?
Sì. È la stessa pagina con Less scelto come input. Poiché i due linguaggi condividono l'idea dell'annidamento, cambia solo la punteggiatura delle variabili.
Legge lo Stylus?
Sì. Lo Stylus lascia cadere le graffe e i punti e virgola e si affida all'indentazione. Quindi il lettore segue l'indentazione quando non trova una graffa.
Può riportare il CSS a SCSS?
Sì. Poiché la stessa pagina lavora in entrambi i sensi, può raggruppare le regole piatte per i loro selettori condivisi in annidamento e tirare fuori i valori ripetuti come variabili.
Esegue i miei mixin?
Inserisce un mixin definito nel file che hai incollato. Un mixin che vive in un import che la pagina non può leggere resta come chiamata e riceve una nota. Quindi non si indovina nulla.
Cosa succede a un import?
Resta nell'output come un normale import CSS, e il pannello delle note dice che il file non è stato letto. Poiché la pagina non tocca mai la rete, non può recuperare l'altro file.
Capisce le variabili?
Sì. Una variabile Sass inizia con un segno del dollaro, e una variabile Less con una chiocciola. Quindi il lettore le distingue da quel primo carattere e scrive il valore al posto giusto.
Minifica l'output?
Può farlo. Scegliere minifica toglie i commenti e gli spazi superflui. Tuttavia, compila prima e minifica dopo, così le note sopravvivono abbastanza a lungo da essere lette.
L'output corrisponderà esattamente al mio strumento di build?
Corrisponde sulle funzioni comuni: annidamento, variabili, mixin, extends e guardie semplici. Una costruzione che il tuo strumento di build gestisce con un plugin qui potrebbe ricevere una nota invece.
Gestisce le media query dentro una regola?
Sì. Poiché le media query annidate vengono portate al livello superiore come le porta un preprocessore, l'output compilato conserva la stessa cascata.
Supporta la e commerciale?
Sì. Una regola scritta con essa tiene il genitore attaccato, ed è così che si costruisce uno stato hover o una classe modificatrice. Quindi il selettore compilato si legge come nel sorgente.
Posso incollare solo una parte di un file?
Sì, purché le variabili che usa siano nella parte che hai incollato. Un nome definito sopra il frammento copiato non si può risolvere, e la nota lo dice.
Scrive le source map?
No. Una source map punta al file originale attraverso un percorso che ha solo la tua build. Dato che questa pagina non ha nessun file a cui puntare, una mappa da qui sarebbe fuorviante.
Funziona offline?
Sì. Una volta caricata la pagina, non viene recuperato altro. Quindi il convertitore continua a funzionare su un portatile in una stanza senza segnale.
Conserva i miei commenti?
Conserva un commento di blocco per impostazione predefinita e può toglierlo quando scegli minifica. Quindi una nota di intestazione sopravvive, e una nota che contava solo mentre modificavi no.
Quanti livelli di annidamento può leggere?
Non c'è un tetto fisso, e il limite pratico lo metti tu. Un annidamento profondo compila bene e si legge male. Quindi tre livelli sono una buona abitudine.
Può gestire un file grande?
Sì. Poiché il lavoro è trattamento di testo semplice, un foglio di stile di qualche migliaio di righe si compila in molto meno di un secondo su un portatile normale.
Scrive proprietà personalizzate CSS?
Le legge e le scrive come dichiarazioni ordinarie. Quindi una proprietà personalizzata del sorgente sopravvive alla compilazione intatta, e una variabile di preprocessore può contenerne una.
E un mixin per i prefissi dei browser?
Viene inserito come qualsiasi altro mixin, il che scrive ogni riga con prefisso in ogni regola che lo chiama. Perciò controlla la dimensione compilata invece della dimensione del sorgente.
Verifica gli errori?
Segnala quello che non ha potuto risolvere invece di rifiutare tutto il file. Quindi ottieni un output utilizzabile più una lista, invece di un errore e nulla più.
Può confrontare i due sensi?
Sì. Compila un file in CSS e poi raggruppa di nuovo quel CSS, e una costruzione con perdita si tradisce da sola. Tutto ciò che non sopravvive al viaggio di andata e ritorno non stava facendo nulla.
Tocca i miei appunti da solo?
No. La pagina legge gli appunti solo quando incolli, e scrive solo quando premi copia. Quindi non viene preso né sostituito nulla senza un clic.
C'è un limite di dimensione?
Nessun limite rigido. Poiché il lavoro avviene nella tua scheda, il tetto è la tua macchina, e un foglio di stile normale sta molto sotto.
Funziona su un telefono?
Sì. I riquadri si impilano, e il pulsante copia sta sotto l'output. Quindi una compilazione veloce funziona dal telefono quando sei lontano dalla tua macchina.
Strumenti che vanno con questo
Quattro pagine a cui di solito porta lo stesso lavoro.
Minificatore CSS
Poi riduci il file compilato prima che vada online. Poiché minificare alla fine tiene le note leggibili, qui compili prima e lì minifichi dopo.
Apri lo strumento →Convertitore di colori CSS
Controlla anche un colore che hai digitato come variabile. Poi vedi la stessa tonalità in hex, RGB e HSL prima che entri nel foglio di stile.
Apri lo strumento →Minificatore HTML
Per il markup che accompagna il foglio di stile, questo toglie i commenti e gli spazi superflui. Quindi entrambi i file escono più ordinati.
Apri lo strumento →Convertitore da PX a REM
Poiché una variabile di preprocessore spesso contiene una dimensione di carattere, questo converte i pixel in rem. Quindi la scala resta coerente dopo la compilazione.
Apri lo strumento →
Compila adesso un foglio di stile
Incolla lo SCSS o il Less, leggi le note e portati via il CSS piatto. Nulla esce dal tuo browser, quindi un foglio di stile sotto contratto resta tuo. Tutto il lavoro sta in un solo incolla.