tardinha / silverstripe-lesscss
Simple wrapper for lessphp to integrate LESS in SilverStripe.
Installs: 23
Dependents: 0
Suggesters: 0
Security: 0
Stars: 2
Watchers: 2
Forks: 2
Open Issues: 2
Type:silverstripe-module
pkg:composer/tardinha/silverstripe-lesscss
Requires
- php: >=5.3.2
- leafo/lessphp: 0.4.0
- silverstripe/cms: >=2.4
- silverstripe/framework: >=2.4
This package is not auto-updated.
Last update: 2022-02-01 12:27:41 UTC
README
Simple wrapper for lessphp to integrate LESS in SilverStripe.
Thanks
I snagged all the good bits from Less by Ralph Slooten!
Features
- Uses lessphp
- Includes flushing option (?flush=1) to regenerate CSS stylesheets (ie. force undetected less changes with @import)
- Check all required *.css files for a *.less equivalent, so works transparently.
Requirements
- SilverStripe 2 or 3
- lessphp
- Webserver read & write permissions to the directories containing the *.less files to write compiled css files
Installation
Composer
composer require tardinha/silverstripe-less
Install via composer, run dev/build
Usage
In your Template.ss you can refer to your less files either by name (eg: stylesheet.less) or stylesheet.css (the parser will check to see if there is a less file for all css files).
<% require css(themes/mytheme/css/stylesheet.less) %>
or in your Page Controller you could:
Method 1
class Page_Controller extends ContentController {
public function init() {
parent::init();
if ( Director::isDev() ){
Requirements::css($this->ThemeDir() . '/css/stylesheet1.less');
Requirements::css($this->ThemeDir() . '/css/stylesheet2.less');
Requirements::css($this->ThemeDir() . '/css/stylesheet3.less');
} else {
/* combined.less simply includes a merged list of the above stylesheets
* in the same order as above:
* @import "stylesheet1";
* @import "stylesheet2";
* @import "stylesheet3";
*/
Requirements::css($this->ThemeDir() . '/css/combined.less');
}
}
}
Method 2
class Page_Controller extends ContentController {
public function init() {
parent::init();
/* The parser will find css/stylesheet[1-3].less files are parse those before combining */
$css[] = $this->ThemeDir() . '/css/stylesheet1.css';
$css[] = $this->ThemeDir() . '/css/stylesheet2.css';
$css[] = $this->ThemeDir() . '/css/stylesheet3.css';
Requirements::combine_files('combined.css', $css);
Requirements::process_combined_files();
}
}