#1 1. 3. 2010 19:30
- Mikulas Dite
- Nette guru

- Místo: Praha
- Registrovaný: 18. 11. 2009
- Příspěvky: 320
- Web
Addon WebLoader a LESS
O
Vylepšená verze WebLoaderu od Honzy Marka, obohacená o lessphp (http://github.com/leafo/lessphp, http://lesscss.org/) funkce pro kaskádové styly.
Download
Oficiální demo lessphp
http://leafo.net/lessphp/#demo
Filtry
- řádkové komenty –
// comment - promazání komentářů
- mixins – funkce
- proměnné
- přímé dědění
- komprese
- jmenné prostory
- a několik dalších vychytávek
Vytvoření komponenty
<?php
protected function createComponentCss()
{
$css = new CssLoader;
// cesta na disku ke zdroji
$css->sourcePath = WWW_DIR . "/css";
// cesta na webu ke zdroji (kvůli absolutizaci cest v css souboru)
$css->sourceUri = Environment::getVariable("baseUri") . "css";
// cesta na webu k cílovému adresáři
$css->tempUri = Environment::getVariable("baseUri") . "webtemp";
// cesta na disku k cílovému adresáři
$css->tempPath = WWW_DIR . "/webtemp";
//doporučené (a logické) pořadí, nepřehazovat
$css->filters[] = array(new OneLineCommentsFilter);
$css->filters[] = array(new RemoveCommentsFilter);
$css->filters[] = array(new MixinsFilter);
$css->filters[] = array(new VariablesFilter);
$css->filters[] = array(new NestingFilter);
$css->filters[] = array(new CompressFilter);
return $css;
}
?>
Použití v template
{control css 'screen.css'}, ale dokonce i {control css
'screen.css', 'print.css', 'extra.css'}
Ukázky
přímé dědění
.parent {
color: red;
.child {
color: blue;
}
}
se přepíše na
.parent {
color: red;
}
.parent .child {
color: blue;
}
proměnné
@hodnota: 50px;
.header {
font-size: @hodnota;
}
vznikne
.header {
font-size: 50px;
}
mixins
.mixin (@color, @width: 5px) {
background-color: @color;
border-left: @width black solid;
padding-left: @width;
}
.mixin_example {
.mixin(#DDD, 20px);
}
vygeneruje
.mixin_example {
background-color: #DDD;
border-left: 20px black solid;
padding-left: 20px;
}
komenty
.comments {
/*
* Multiline comment
*/
//one line comment
}
se přepíše na
.comments {
/*
* Multiline comment
*/
/* one line comment */
}
případně s filtrem na promazávání komentářů na
.comments {
}
Editoval Mikulas Dite (21. 3. 2010 20:09)
Offline
#2 2. 3. 2010 10:49
- Honza Kuchař
- Moderator

- Místo: Brno
- Registrovaný: 12. 8. 2007
- Příspěvky: 1285
- Web
Re: Addon WebLoader a LESS
Hezké. ;)
Nechceš to přidat do extras?
Editoval honzakuchar (4. 3. 2010 21:36)
Offline
#4 2. 3. 2010 12:51
- Mikulas Dite
- Nette guru

- Místo: Praha
- Registrovaný: 18. 11. 2009
- Příspěvky: 320
- Web
Re: Addon WebLoader a LESS
honzakuchar napsal(a):
Nechceš to přidat do extras.
Našel sem ještě drobné chybky v rozkladu dědění, až zmizí a trošku to přepíšu, tak snad.
Offline
#5 10. 3. 2010 8:45
Re: Addon WebLoader a LESS
Vývojově mnohem dál je tato verze LESS – je to kompletně napsané v PHP.:
A zde ještě vývojová verze.:
http://github.com/leafo/lessphp
Původní LESS oproti tomuhle již poněkud zastaral a navíc tohle v PHP se nám hodí víc. ;)
Offline
#6 10. 3. 2010 9:59
- Mikulas Dite
- Nette guru

- Místo: Praha
- Registrovaný: 18. 11. 2009
- Příspěvky: 320
- Web
Re: Addon WebLoader a LESS
Ej, super, dík! Když si chvilku najdu, takt to na webloader napojim.
Mimochodem, myslíte, že by stálo za to vytvořit browser filter? Něco na styl
~firefox color: #000000;
by se propagoval jenom do firefoxu, do ostatních by se smazal. Tohle by se cachovalo (počet cache souborů = počet filtovaných browserů).
Dá se napsat i něco na styl ~alpha co vloží tuhle část
jenom do prohlížečů co podporujou alfu (rgba, shade, atp.) a podobné.
Editoval Mikulas Dite (10. 3. 2010 10:02)
Offline
#8 10. 3. 2010 10:20
- Ondřej Mirtes
- Moderator

- Místo: Praha
- Registrovaný: 8. 1. 2009
- Příspěvky: 1357
- Web
Re: Addon WebLoader a LESS
IMHO by se to dalo zařídit pomocí spolehlivých CSS hacků.
IE6:
_height: 100px;
IE6 + IE7:
&height: 100px;
Pouze IE7:
&height: 100px;
_height: původní hodnota;
IE8:
.prvek_na_kterem_chci_aplikovat {
height /*\**/: 100px\9
}
Webkit (Safari + Chrome):
@media screen and (-webkit-min-device-pixel-ratio:0) {
/* uvnitř už se aplikují všechny styly jen na Webkit */
.prvek_na_kterem_chci_aplikovat {
height: 100px;
}
}
Bylo by hezké, kdyby LESS umělo tyhle fíčury: http://css3please.com/ :)
Editoval Ondřej Mirtes (10. 3. 2010 10:21)
Offline
#9 10. 3. 2010 10:31
- Mikulas Dite
- Nette guru

- Místo: Praha
- Registrovaný: 18. 11. 2009
- Příspěvky: 320
- Web
Re: Addon WebLoader a LESS
Ok, klidně by tohle mohl ten filtr vkládat, byl by to jeden cache soubor,
ale psalo by se to jenom jednou čistě (a všude stejně). Nerozumím zmínce
http://css3please.com/, asi
by bylo nejsnažší to udělat přes mixin, něco na styl mixin inline-css
funkce vložBorder() a tam to bude rozepsané s vendor
prefixy a hacky pro iečka.
Editoval Mikulas Dite (10. 3. 2010 10:38)
Offline
#10 10. 3. 2010 10:36
- Ondřej Mirtes
- Moderator

- Místo: Praha
- Registrovaný: 8. 1. 2009
- Příspěvky: 1357
- Web
Re: Addon WebLoader a LESS
No že kdyby někdo napsal nějakou vlastnost z CSS3, tak by se vygenerovala a rozepsala se všemi vendor prefixy a filtry pro IE :)
Offline
#11 10. 3. 2010 10:40
- Mikulas Dite
- Nette guru

- Místo: Praha
- Registrovaný: 18. 11. 2009
- Příspěvky: 320
- Web
Re: Addon WebLoader a LESS
Jasný, myslíš jako to rozepsat automaticky… Určitě ne rovnou do pLESS kódu, udělám na to nějaké předpřipravené mixins. Konec konců, tohle je všechno beta, takže se to může docela často měnit – přímo v kódu by se to pak editovalo hůř.
Offline
#12 10. 3. 2010 11:07
- jasir
- Nette guru

- Místo: Praha
- Registrovaný: 4. 12. 2008
- Příspěvky: 626
Re: Addon WebLoader a LESS
Tohle znáte? Nějakou dobu sleduji a přemýšlím, zda použít či ne…
Offline
#13 10. 3. 2010 11:23
- Mikulas Dite
- Nette guru

- Místo: Praha
- Registrovaný: 18. 11. 2009
- Příspěvky: 320
- Web
Re: Addon WebLoader a LESS
\\Pak je taky dobrá Rosemary, ale je to čuňácky napsaný. bigspaceship
Nejradši bych použil to co poslal jtousek, ale nějak to rozdělim
do WebLoader filtrů. Potom tam bude rychlý přidávat další fce. V tom
csscaffoldu je navíc asi jenom firelog, time a
flags. Sice skoro zbytečnosti, ale otevírá to prima
monosti, takže to tam asi přidám taky.
Editoval Mikulas Dite (10. 3. 2010 11:23)
Offline
#15 10. 3. 2010 17:18
- Mikulas Dite
- Nette guru

- Místo: Praha
- Registrovaný: 18. 11. 2009
- Příspěvky: 320
- Web
Re: Addon WebLoader a LESS
jtousek napsal(a): Vývojově mnohem dál je tato verze LESS – je to kompletně napsané v PHP.: http://leafo.net/lessphp/
Uf, původně sem myslel, že to svoje nahradim timhle, ale má to přes 1000 linek a funkce to volá přímo s referencí. Navíc to nezvládá filter tag (vůbec syntax key: value: foo) a chybí tam způsob na vkádání @variable do textů, což u ie filtrů nejde obejít. Vidim to tak, že radši rozšířim a vylepšim ty moje filtry. (A jsou mimochodem i rychlejší ;)
Offline
#16 10. 3. 2010 20:03
Re: Addon WebLoader a LESS
Mikulas Dite:
Vývojová verze 2.0 už filter v pohodě zvládá a záležitosti se string proměnnejma + mnoho dalších věcí jsou dávno opravené a funkční. Vážně si nemyslím, že bys mohl jen tak napsat něco lepšího. ;)
gawan:
Less má řádově víc funkcí než xcss.
jasir:
Znám, a opět platí: Less je lepší.
Ondřej Mirtes:
Naprosto jednoznačně vyřešit přes mixiny.
Editoval jtousek (10. 3. 2010 20:08)
Offline
#17 10. 3. 2010 20:42
- Mikulas Dite
- Nette guru

- Místo: Praha
- Registrovaný: 18. 11. 2009
- Příspěvky: 320
- Web
Re: Addon WebLoader a LESS
Popravdě, z tohohle repa jsem to stahoval a ani jedno z toho co sem psal tam nefunguje. (Ale přece jenom, radši to ověřim.)
Offline
#18 10. 3. 2010 21:04
Re: Addon WebLoader a LESS
OK zkusil jsem to sám, a máš pravdu, že filter nefunguje. Dám to autorovi na github jako issue. (Já filtry nepoužívám, jen vím, že byl dříve problém se závorkami v hodnotě – což už je ok)
//EDIT 12.3.2010: Autor již problém s filtrem pro IE odstranil a vše funguje.
Editoval jtousek (12. 3. 2010 8:54)
Offline
#19 16. 3. 2010 9:23
#20 16. 3. 2010 10:54
- Mikulas Dite
- Nette guru

- Místo: Praha
- Registrovaný: 18. 11. 2009
- Příspěvky: 320
- Web
Re: Addon WebLoader a LESS
Nó… Těžko říct, až to bude plně funkčí, tak je žádoucí mít output co nejkompresovanější a zaarchivovanej, takže cokoliv navíc je tam zbytečně. Pro testování css můžeš filter pro kompresi vypnout, zpětně dohledatelné to bude i tak v pohodě.
Offline
#21 16. 3. 2010 11:41
Re: Addon WebLoader a LESS
Mikulas Dite napsal(a):
Nó… Těžko říct, až to bude plně funkčí, tak je žádoucí mít output co nejkompresovanější a zaarchivovanej, takže cokoliv navíc je tam zbytečně. Pro testování css můžeš filter pro kompresi vypnout, zpětně dohledatelné to bude i tak v pohodě.
Tak potom to rozlišit podle módu. Na lokále to bude generovat všechny možné komentáře včetně řádků kódu a na produkčním to bude zkomprimované čisté css
Offline
#22 21. 3. 2010 20:12
- Mikulas Dite
- Nette guru

- Místo: Praha
- Registrovaný: 18. 11. 2009
- Příspěvky: 320
- Web
Re: Addon WebLoader a LESS
Přidal jsem originální lessphp, má plnou podporu cachování atd. a umí to co původní verze: github:lessphp.
A má předepsané mixiny tríčků z css3please.
Download
Offline
#23 12. 4. 2010 10:25
- Oggy
- Nette guru

- Místo: Kladno
- Registrovaný: 7. 4. 2009
- Příspěvky: 218
Re: Addon WebLoader a LESS
Můžu poprosit o návod.. je potřeba nyní registrovat filtry?
třídy OneLineComment atd nevidím..
kdy volat applyfilters..aby se aplikoval mixins? a co má tahle metoda za parametr? $s..
Offline
#24 12. 4. 2010 12:47
- Mikulas Dite
- Nette guru

- Místo: Praha
- Registrovaný: 18. 11. 2009
- Příspěvky: 320
- Web
Re: Addon WebLoader a LESS
Přiklonil sem se k phpless – filtry se tedy spouští automaticky (a zatím nejdou selektivně vypnout). API je z hlediska použití snad stejné jako u WebLoaderu.
Offline
#25 12. 4. 2010 12:52
- Oggy
- Nette guru

- Místo: Kladno
- Registrovaný: 7. 4. 2009
- Příspěvky: 218
Re: Addon WebLoader a LESS
jak tedy aplikovat styly z mixins? .. pokud jsem dal nějakému bloku třídu např. box_round a do svého css jsem definoval @topleft: 10px atd .. tak ten styl, kde jsou nadefinované proměné toho css je po generování webloaderem prázdný..
Offline
- Úvodní stránka
- » Doplňky, pluginy a komponenty
- » Addon WebLoader a LESS


