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
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(); } }