Module: LightningCSS
- Defined in:
- lib/lightningcss.rb,
lib/lightningcss/errors.rb,
lib/lightningcss/result.rb,
lib/lightningcss/backend.rb,
lib/lightningcss/options.rb,
lib/lightningcss/version.rb,
lib/lightningcss/transformer.rb,
sig/lightningcss.rbs,
sig/lightningcss/types.rbs,
sig/lightningcss/errors.rbs,
sig/lightningcss/result.rbs,
sig/lightningcss/backend.rbs,
sig/lightningcss/options.rbs,
sig/lightningcss/version.rbs,
sig/lightningcss/transformer.rbs,
ext/lightningcss/lightningcss.c
Overview
Ruby bindings for Lightning CSS.
LightningCSS.transform(".a { color: red }", minify: true).code
#=> ".a{color:red}"
Every option is passed through to Lightning CSS as written, except scope, which narrows each
rule by a selector fragment so a stylesheet only applies where that fragment matches:
LightningCSS.transform(".title { color: red }", scope: "[data-scope-abc]").code
#=> ".title[data-scope-abc]{color:red}"
LightningCSS::Options is what the options are read by, and LightningCSS::Transformer holds a
set of them to reuse across many stylesheets.
Defined Under Namespace
Modules: Backend Classes: BundleError, Error, OptionError, Options, ParseError, Result, Transformer
Constant Summary collapse
- VERSION =
"0.1.1"
Class Method Summary collapse
-
.bundle(path, **options) ⇒ LightningCSS::Result
: (String, ?filename: String?, ?minify: bool, ?error_recovery: bool, ?targets: browsers?, ?css_modules: css_modules?, ?scope: String?) -> LightningCSS::Result.
-
.lightningcss_version ⇒ String
: () -> String.
-
.minify(code) ⇒ String
: (String, ?filename: String?, ?error_recovery: bool, ?targets: browsers?, ?css_modules: css_modules?, ?scope: String?) -> String.
-
.transform(code, **options) ⇒ LightningCSS::Result
: (String, ?filename: String?, ?minify: bool, ?error_recovery: bool, ?targets: browsers?, ?css_modules: css_modules?, ?scope: String?) -> LightningCSS::Result.
-
.transform_style_attribute(code, **options) ⇒ LightningCSS::Result
: (String, ?filename: String?, ?minify: bool, ?error_recovery: bool, ?targets: browsers?) -> LightningCSS::Result.
Class Method Details
.bundle(path, **options) ⇒ LightningCSS::Result
: (String, ?filename: String?, ?minify: bool, ?error_recovery: bool, ?targets: browsers?, ?css_modules: css_modules?, ?scope: String?) -> LightningCSS::Result
40 41 42 |
# File 'lib/lightningcss.rb', line 40 def self.bundle(path, **) Result.from_json(Backend.bundle(path.to_s, Options.serialize())) end |
.lightningcss_version ⇒ String
: () -> String
57 58 59 |
# File 'lib/lightningcss.rb', line 57 def self.lightningcss_version Backend.lightningcss_version end |
.minify(code) ⇒ String
: (String, ?filename: String?, ?error_recovery: bool, ?targets: browsers?, ?css_modules: css_modules?, ?scope: String?) -> String
52 53 54 |
# File 'lib/lightningcss.rb', line 52 def self.minify(code, **) transform(code, **, minify: true).code end |
.transform(code, **options) ⇒ LightningCSS::Result
: (String, ?filename: String?, ?minify: bool, ?error_recovery: bool, ?targets: browsers?, ?css_modules: css_modules?, ?scope: String?) -> LightningCSS::Result
35 36 37 |
# File 'lib/lightningcss.rb', line 35 def self.transform(code, **) Result.from_json(Backend.transform(code.to_s, Options.serialize())) end |
.transform_style_attribute(code, **options) ⇒ LightningCSS::Result
: (String, ?filename: String?, ?minify: bool, ?error_recovery: bool, ?targets: browsers?) -> LightningCSS::Result
45 46 47 48 49 |
# File 'lib/lightningcss.rb', line 45 def self.transform_style_attribute(code, **) serialized = Options.serialize(, allowed: Options::STYLE_ATTRIBUTE, subject: "a style attribute") Result.from_json(Backend.transform_style_attribute(code.to_s, serialized)) end |