pax_global_header00006660000000000000000000000064135571214510014516gustar00rootroot0000000000000052 comment=7c3750d15eb977983d760b24202a69c21302c19a sass-spec-libsass-3.6.3/000077500000000000000000000000001355712145100150665ustar00rootroot00000000000000sass-spec-libsass-3.6.3/.gitignore000066400000000000000000000000511355712145100170520ustar00rootroot00000000000000tmp .sass-cache .DS_Store Gemfile.*.lock sass-spec-libsass-3.6.3/.mailmap000066400000000000000000000000631355712145100165060ustar00rootroot00000000000000Michał Gołębiowski-Owczarek sass-spec-libsass-3.6.3/.ruby-version000066400000000000000000000000051355712145100175260ustar00rootroot000000000000002.3.1sass-spec-libsass-3.6.3/.travis.yml000066400000000000000000000026221355712145100172010ustar00rootroot00000000000000language: ruby # Only building master means that we don't run two builds for each pull request. branches: only: - master # Feature branches beginning with "feature." - "/^feature\\..*/" matrix: fast_finish: true include: - name: "LibSass" env: - IMPL=libsass - COMMAND="../sassc/bin/sassc" - SASS_LIBSASS_PATH=$TRAVIS_BUILD_DIR/../libsass - SASS_SASSC_PATH=$TRAVIS_BUILD_DIR/../sassc - SASS_SPEC_PATH=~$TRAVIS_BUILD_DIR/sass-spec before_script: - git clone https://github.com/sass/libsass.git $SASS_LIBSASS_PATH - (cd $SASS_LIBSASS_PATH; git checkout $GITISH) - git clone https://github.com/sass/sassc.git $SASS_SASSC_PATH - (cd $SASS_SASSC_PATH; git checkout $GITISH) - make -C $SASS_SASSC_PATH script: bundle exec sass-spec.rb --impl $IMPL -c $COMMAND; - name: "Dart Sass" env: IMPL=dart-sass before_script: - curl -o dart.zip "https://storage.googleapis.com/dart-archive/channels/stable/release/latest/sdk/dartsdk-linux-x64-release.zip" - unzip dart.zip - export PATH="$PATH:`pwd`/dart-sdk/bin" - git clone https://github.com/sass/dart-sass.git ../dart-sass --depth 1 - (cd ../dart-sass; pub get) script: bundle exec sass-spec.rb --dart ../dart-sass before_install: - if ./tools/skipped-for-impl.sh; then exit 0; fi - rm Gemfile.lock sass-spec-libsass-3.6.3/CODE_OF_CONDUCT.md000066400000000000000000000010311355712145100176600ustar00rootroot00000000000000Sass is more than a technology; Sass is driven by the community of individuals that power its development and use every day. As a community, we want to embrace the very differences that have made our collaboration so powerful, and work together to provide the best environment for learning, growing, and sharing of ideas. It is imperative that we keep Sass a fun, welcoming, challenging, and fair place to play. [The full community guidelines can be found on the Sass website.][link] [link]: https://sass-lang.com/community-guidelines sass-spec-libsass-3.6.3/Gemfile000066400000000000000000000002651355712145100163640ustar00rootroot00000000000000source 'https://rubygems.org' gem "minitest", "~> 5.8" gem "command_line_reporter", '~> 3.0' gem "ruby-terminfo", '~> 0.1.1' gem "diffy", '~> 3.1' gem "hrx", '~> 1.0' gem 'rspec' sass-spec-libsass-3.6.3/Gemfile.lock000066400000000000000000000014711355712145100173130ustar00rootroot00000000000000GEM remote: https://rubygems.org/ specs: colored (1.2) command_line_reporter (3.3.6) colored (>= 1.2) diff-lcs (1.3) diffy (3.3.0) hrx (1.0.0) linked-list (~> 0.0.13) linked-list (0.0.13) minitest (5.11.3) rspec (3.8.0) rspec-core (~> 3.8.0) rspec-expectations (~> 3.8.0) rspec-mocks (~> 3.8.0) rspec-core (3.8.2) rspec-support (~> 3.8.0) rspec-expectations (3.8.4) diff-lcs (>= 1.2.0, < 2.0) rspec-support (~> 3.8.0) rspec-mocks (3.8.1) diff-lcs (>= 1.2.0, < 2.0) rspec-support (~> 3.8.0) rspec-support (3.8.2) ruby-terminfo (0.1.1) PLATFORMS ruby DEPENDENCIES command_line_reporter (~> 3.0) diffy (~> 3.1) hrx (~> 1.0) minitest (~> 5.8) rspec ruby-terminfo (~> 0.1.1) BUNDLED WITH 2.0.2 sass-spec-libsass-3.6.3/LICENSE000066400000000000000000000021001355712145100160640ustar00rootroot00000000000000The MIT License (MIT) Copyright (c) 2007-2014 The Sass Authors Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. sass-spec-libsass-3.6.3/README.md000066400000000000000000000244651355712145100163600ustar00rootroot00000000000000# sass-spec ### A cross-implementation [Sass][] test suite * [Running Specs](#running-specs) * [Dart Sass](#dart-sass) * [LibSass](#libsass) * [Spec Structure](#spec-structure) * [HRX](#hrx) * [Specifying Warnings](#specifying-warnings) * [Implementation-Specific Expectations](#implementation-specific-expectations) * [Options](#options) * [`:todo`](#todo) * [`:warning_todo`](#warning_todo) * [`:ignore_for`](#ignore_for) * [Spec Style](#spec-style) * [Interactive Mode](#interactive-mode) [Sass]: https://sass-lang.com [![Build Status](https://travis-ci.org/sass/sass-spec.svg)](https://travis-ci.org/sass/sass-spec) `sass-spec` is the official Sass test suite. It's used by all major Sass implementations to ensure that they correctly implement the language. ## Running Specs Before running specs, you'll need to install [Ruby][] and [Bundler][]. The spec runner is written in Ruby, so it's necessary no matter which implementation you're testing. Then, from the root of this repo, run `bundle install`. [Ruby]: https://www.ruby-lang.org/en/ [Bundler]: http://bundler.io/ From there, it depends which implementation you're testing: ### Dart Sass To run specs against [Dart Sass][], the reference implementation of Sass that's used for [the `sass` package][] on npm, you'll first need to install [Dart][]. Then run: [Dart Sass]: https://sass-lang.com/dart-sass [the `sass` package]: https://npmjs.com/package/sass [Dart]: https://www.dartlang.org/ ```sh # If you already have a clone of the Dart Sass repo, you can use that instead. git clone https://github.com/sass/dart-sass (cd dart-sass; pub get) export DART_SASS_PATH=`pwd`/dart-sass bundle exec ./sass-spec.rb --dart $DART_SASS_PATH ``` ### LibSass To run specs against [LibSass][], the C++ Sass implementation that's used for [Node Sass][] and other languages' Sass wrappers, you'll need to be able to [build LibSass][]. Once you have all the build dependencies: [LibSass]: https://sass-lang.com/libsass [Node Sass]: https://npmjs.com/package/node-sass [build LibSass]: https://github.com/sass/libsass/blob/master/docs/build.md ```sh # If you already have a clone of the LibSass repo, you can use that instead. git clone https://github.com/sass/libsass (cd libsass; ./script/bootstrap; make sassc) export SASSC_PATH=`pwd`/libsass/sassc/bin/sassc bundle exec ./sass-spec.rb --impl libsass -c $SASSC_PATH ``` ## Spec Structure Each spec is defined by a directory with an `input.scss` or `input.sass` file and either: * An `output.css` file, in which case the spec asserts that the Sass implementation compiles the input to the output. These specs are known as "success specs". * An `error` file, in which case the spec asserts that the Sass implementation prints the error message to standard error and exits with a non-zero status code when it compiles the input. These specs are known as "error specs". These files may also have [variants that are specific to individual implementations][]. [variants that are specific to individual implementations]: #implementation-specific-expectations The path to the spec serves as the spec's name, which should tersely describe what it's testing. Additional explanation, if necessary, is included in a silent comment in the input file. Specs may also contain additional files that are used by the input file, as well as various other features which are detailed below. ### HRX Most specs are stored in [HRX files][], which are human-readable plain-text archives that define a virtual filesystem. This format makes it easy for code reviewers to see the context of specs they're reviewing. The spec runner treats each HRX file as a directory with the same name as the file, minus `.hrx`. For example: [HRX files]: https://github.com/google/hrx#human-readable-archive-hrx ```hrx <===> input.scss ul { margin-left: 1em; li { list-style-type: none; } } <===> output.css ul { margin-left: 1em; } ul li { list-style-type: none; } ``` HRX archives can also contain directories. This allows us to write multiple specs for the same feature in a single file rather than spreading them out across hundreds of separate tiny files. By convention, we include an HRX comment with 80 `=` characters between each spec to help keep them visually separate. For example: ```hrx <===> unbracketed/input.scss a {b: is-bracketed(foo bar)} <===> unbracketed/output.scss a {b: false} <===> ================================================================================ <===> bracketed/input.scss a {b: is-bracketed([foo bar])} <===> bracketed/output.scss a {b: true} ``` Each HRX archive shouldn't be much longer than 500 lines. Once one gets too long, its subdirectories should be split out into separate archives beneath a physical directory. Conversely, if a given directory contains many small HRX archives, they should be merged together into one larger file. This helps ensure that the repo remains easy to navigate. The only specs that *aren't* written in HRX format are those that include invalid UTF-8 byte sequences. The HRX format is itself written in UTF-8, so it's unable to represent the files in these specs. ### Specifying Warnings By default, Sass implementations are expected to emit nothing on standard error when executing a success spec. However, if a `warning` file is added to the spec directory, the spec will assert that the Sass implementation prints that warning message to standard error as well as compiling the output. This is used to test the behavior of the `@debug` and `@warn` rules, as well as various warnings (particularly deprecation warnings) emitted by the Sass implementation itself. Warnings can't be specified for error specs, since everything an implementation emits on standard error is considered part of the error message that's validated against `error`. ### Implementation-Specific Expectations Sometimes different Sass implementations produce different but equally-valid CSS outputs or error messages for the same input. To accommodate this, implementation-specific output, error, and warning files may be created by adding `-dart-sass` or `-libsass` after the file's name (but before its extension, in the case of `output.css`). When a spec is running for an implementation with an implementations-specific expectation, the normal expectation is ignored completely in favor of the implementation-specific one. It's even possible (although rare) for one implementation to expect an input file to produce an error while another expects it to compile successfully. ### Options Metadata for a spec and options for how it's run can be written in an `options.yml` file in the spec's directory. This file applies recursively to all specs within its directory, so it can be used to configure many specs at once. All options must begin with `:`. All options that are supported for new specs are listed below. A few additional legacy options exist that are no longer considered good style and will eventually be removed. #### `:todo` ```yaml --- :todo: - sass/libsass#2827 ``` This option indicates implementations that should add support for a spec, but haven't done so yet. When running specs for a given implementation, all specs marked as `:todo` for that implementation are skipped by default. This ensures that the build remains green while clearly marking which specs are expected to pass eventually. Implementations can be (and should be) specified as shorthand GitHub issue references rather than plain names. This makes it easy to track whether the implementation has fixed the issue, and to see which specs correspond to which issue. When marking an issue as `:todo` for an implementation, please either find an existing issue to reference or file a new one. If the `--run-todo` flag is passed to `sass-spec.rb`, specs marked as `:todo` for the current implementation will be run, and their failures will be reported. If the `--probe-todo` flag is passed to `sass-spec.rb`, specs marked as `:todo` for the current implementation will be run, but a failure will be reported *only if those specs pass*. This is used to determine which specs need to have `:todo` removed once a feature has been implemented. This can be used in combination with [`--interactive`](#interactive-mode) to automatically remove `:todo`s for these specs. #### `:warning_todo` ```yaml --- :warning_todo: - sass/libsass#2834 ``` This option works like [`:todo`](#todo), except instead of skipping the entire test for listed implementations it only skips validating [that spec's warnings](#specifying-warnings). The rest of the spec is run and verified as normal. This should not be used for error specs. #### `:ignore_for` ```yaml --- :ignore_for: - libsass ``` This option indicates implementations that are never expected to be compatible with a given spec. It's used for specs for old features that some but not all implementations have dropped support for. [which is deprecated]: http://sass.logdown.com/posts/7081811 ## Spec Style The specs in this repo accumulated haphazardly over the years from contributions from many different people, so there's not currently much by way of unified style or organization. However, all new specs should follow the [style guide](STYLE_GUIDE.md), and old specs should be migrated to be style-guide compliant whenever possible. ## Interactive Mode If you pass `--interactive` to `sass-spec.rb`, it will run in interactive mode. In this mode, whenever a spec would fail, the spec runner stops and provides the user with a prompt that allows them to inspect the failure and determine how to handle it. This makes it easy to add [implementation-specific expectations][] or mark specs as [`:todo`](#todo). For example: ``` In test case: spec/core_functions/color/hsla/four_args/alpha_percent Output does not match expectation. i. Show me the input. d. show diff. O. Update expected output and pass test. I. Migrate copy of test to pass on libsass. T. Mark spec as todo for libsass. G. Ignore test for libsass FOREVER. f. Mark as failed. X. Exit testing. ``` [implementation-specific expectations]: #implementation-specific-expectations Any option can also be applied to all future occurences of that type of failure by adding `!` after it. For example, if you want to mark *all* failing specs as `:todo` for the current implementation you'd type `I!`. ## Tests The unit tests for the spec runner are located in the `tests/` directory. To run these unit tests, run: ```sh bundle exec rspec tests/ ``` sass-spec-libsass-3.6.3/STYLE_GUIDE.md000066400000000000000000000661211355712145100172330ustar00rootroot00000000000000# Style Guide Having a consistent style across all specs helps make them easier for a reader to understand at a glance and easier for an author to focus on the behavior being tested rather than the details of how the test is written. This guide sets out the standard style that should be used for all new specs. Note that specs written before this style guide probably don't follow it exactly (or at all). If you're inspired to fix up old specs, you're very welcome to do so! Each guideline starts with one of these words: * **DO** guidelines describe practices that should always be followed. There will almost never be a valid reason to stray from them. * **DON'T** guidelines are the converse: things that are almost never a good idea. * **PREFER** guidelines are practices that you should follow. However, there may be circumstances where it makes sense to do otherwise. Just make sure you understand the full implications of ignoring the guideline when you do. * **AVOID** guidelines are the dual to "prefer": stuff you shouldn't do but where there may be good reasons to on rare occasions. * **CONSIDER** guidelines are practices that you might or might not want to follow, depending on circumstances, precedents, and your own preference. That specs that are testing inputs that violate these guidelines are, of course, an exception. Thorough testing trumps style. * [Organization](#organization) * [DO write specs in HRX files](#do-write-specs-in-hrx-files) * [DO use as few HRX files as possible for a given feature](#do-use-as-few-hrx-files-as-possible-for-a-given-feature) * [DON'T have HRX files longer than 500 lines or so](#dont-have-hrx-files-longer-than-500-lines-or-so) * [DO organize specs by which part of the language they test](#do-organize-specs-by-which-part-of-the-language-they-test) * [DO use descriptive paths](#do-use-descriptive-paths) * [DO put error specs in a separate "error" directory](#do-put-error-specs-in-a-separate-error-directory) * [PREFER underscore-separated paths](#prefer-underscore-separated-paths) * [Testing](#testing) * [DO test only one thing per spec](#do-test-only-one-thing-per-spec) * [DO use type selectors as placeholders](#do-use-type-selectors-as-placeholders) * [DO use descriptive names for multiple placeholders](#do-use-descriptive-names-for-multiple-placeholders) * [DO use single-letter names for irrelevant placeholders](#do-use-single-letter-names-for-irrelevant-placeholders) * [DO use `pfx` for vendor prefixes](#do-use-pfx-for-vendor-prefixes) * [DO use style rules for expression-level tests](#do-use-style-rules-for-expression-level-tests) * [PREFER making imported files partials](#prefer-making-imported-files-partials) * [DO name single imported or used files "other"](#do-name-single-imported-or-used-files-other) * [PREFER referring to issues when marking specs as `:todo`](#prefer-referring-to-issues-when-marking-specs-as-todo) * [Documentation](#documentation) * [CONSIDER adding a comment explaining your spec](#consider-adding-a-comment-explaining-your-spec) * [CONSIDER adding README.md files to parent directories](#consider-adding-readme.md-files-to-parent-directories) * [DON'T write HRX comments](#dont-write-hrx-comments) * [Formatting](#formatting) * [DO use comment dividers to separate specs within an HRX file](#do-use-comment-dividers-to-separate-specs-within-an-hrx-file) * [DO order files consistently](#do-order-files-consistently) * [DO use Dart Sass's output as the default](#do-use-dart-sasss-output-as-the-default) * [DO end each file with a newline](#do-end-each-file-with-a-newline) * [DO use two spaces for indentation](#do-use-two-spaces-for-indentation) * [DO use one-line rules when they contain empty children](#do-use-one-line-rules-when-they-contain-empty-children) * [PREFER one-line rules when they contain a single child with no children](#prefer-one-line-rules-when-they-contain-a-single-child-with-no-children) * [DON'T use one-line rules when they contain more than one child](#dont-use-one-line-rules-when-they-contain-more-than-one-child) * [DON'T use one-line rules when they contain grandchildren](#dont-use-one-line-rules-when-they-contain-grandchildren) ## Organization ### DO write specs in HRX files
Example #### Good `nesting.hrx` ```hrx <===> single/input.scss a { b {c: d} } <===> single/output.css a b { c: d; } ``` #### Bad `nesting/single/input.scss` ```scss a { b {c: d} } ``` `nesting/single/output.css` ```css a b { c: d; } ```
All specs should be written in HRX files unless they contain invalid UTF-8 characters. HRX files make it easy for code reviewers to see the context of specs they're reviewing. ### DO use as few HRX files as possible for a given feature
Example #### Good `nesting.hrx` ```hrx <===> single/input.scss a { b {c: d} } <===> single/output.css a b { c: d; } <===> ================================================================================ <===> double/input.scss a { b, c {d: e} } <===> double/output.css a b, a c { d: e; } ``` #### Bad `nesting/single.hrx` ```hrx <===> input.scss a { b {c: d} } <===> output.css a b { c: d; } ``` `nesting/double.hrx` ```hrx <===> input.scss a { b, c {d: e} } <===> output.css a b, a c { d: e; } ```
Combining specs into as few HRX files as possible helps keep the repo clean and easy to navigate, make it easier to see connections between related specs, and encourages the creation of more smaller specs. Note that specs *should not* be combined for unrelated features, and that HRX files should be split apart if they become too large (see below). ### DON'T have HRX files longer than 500 lines or so Very large HRX files can be as difficult to navigate as hundreds of tiny files. Once an HRX file gets larger than about 500 lines, it's probably time to split it into multiple files. To do so: * Create a directory with the same name as the HRX files. * Take all the top-level subdirectories in the HRX file and make them their own HRX files. * If this creates too many small HRX files, consider combining some related files back into more coarse-grained sub-divisions. ### DO organize specs by which part of the language they test
Example #### Good `css/directives/keyframes.hrx` ```hrx <===> bubble/empty/input.scss // Regression test for sass/dart-sass#611. a { @keyframes {/**/} } <===> bubble/empty/output.css @keyframes { /**/ } ``` #### Bad `regression/dart_sass_611.hrx` ```hrx <===> input.scss a { @keyframes {/**/} } <===> output.css @keyframes { /**/ } ```
Specs should be organized into hierarchical directories based on what part of the language they test, rather than other factors like how the test came to exist, which implementations support it, and so on. If a spec covers the intersection of multiple features, it can go in any of those features' locations, based on which the spec writer feels most clearly communicates the spec's meaning. The following directories should be used for their corresponding language features: * `spec/css/` is for plain CSS features, including CSS at-rules like `@media` and plain-CSS selector syntax. * `spec/core_functions/` is for built-in Sass functions. These functions should go in directories whose names correspond to the modules in [the module system proposal][]. For example, specs for the `rgb()` function go in `spec/core_functions/color/rgb/`. [the module system proposal]: https://github.com/sass/language/blob/master/accepted/module-system.md#built-in-modules-1 * `spec/directives` is for Sass's at-rules like `@extend` and `@import`. * `spec/values/` is for SassScript value types. ### DO use descriptive paths
Example #### Good `css/keyframes.hrx` ```hrx <===> bubble/empty/input.scss // Regression test for sass/dart-sass#611. a { @keyframes {/**/} } <===> bubble/empty/output.css @keyframes { /**/ } ``` #### Bad `basic/edge_case.hrx` ```hrx <===> input.scss a { @keyframes {/**/} } <===> output.css @keyframes { /**/ } ```
The path to a spec, both inside and outside its HRX file, is the first place a reader will look to try to understand [exactly what it's testing][]. Being as descriptive as possible (without being too verbose) in your choice of names will make this understanding much easier. Good rules of thumb include: [exactly what it's testing]: #do-test-only-one-thing-per-spec * Use noun phrases (like "keyframes") or adjectives (like "empty") that describe the feature being tested or the context or state it's in. * Avoid placeholder names like "basic" or "simple". Sometimes it's best to describe *how* it's basic, like "empty" or "one_child". Other times, you can just forego the "basic" directory entirely and put your specs beneath the feature itself. If you can't fully and tersely describe a spec with its name alone, [add a comment][] to the beginning of the Sass file. [add a comment]: #consider-adding-a-comment-explaining-your-spec ### DO put error specs in a separate "error" directory
Example #### Good ```hrx <===> single_value/input.scss a { --b: c; } <===> single_value/output.css a { --b: c; } <===> ================================================================================ <===> error/empty/input.scss // CSS requires at least one token in a custom property. .empty { --property:; } <===> error/empty/error Error: Expected token. , 3 | --property:; | ^ ' /sass/spec/css/custom_properties/error/empty/input.scss 3:14 root stylesheet ``` #### Bad ```hrx <===> single_value/input.scss a { --b: c; } <===> single_value/output.css a { --b: c; } <===> ================================================================================ <===> empty/input.scss // CSS requires at least one token in a custom property. .empty { --property:; } <===> empty/error Error: Expected token. , 3 | --property:; | ^ ' /sass/spec/css/custom_properties/error/empty/input.scss 3:14 root stylesheet ```
All error specs for a given feature should go in an `error` directory (which is often its own HRX file) directly beneath the root directory for the feature being tested. They should *not* be intermingled with the feature's success case specs. This helps keep the success specs focused on demonstrating the expected behavior of the feature, while the error tests can cover all the disallowed edge cases without getting in the way. ### PREFER underscore-separated paths
Example #### Good `css/min_max.hrx` ```hrx <===> plain_css/nested_min_max/input.scss a { b: min(max(1px, 2px)) max(min(1px, 2px)); } <===> plain_css/nested_min_max/output.css a { b: min(max(1px, 2px)) max(min(1px, 2px)); } ``` L#### Bad `css/minMax.hrx` ```hrx <===> plain-css/nested-min-max/input.scss a { b: min(max(1px, 2px)) max(min(1px, 2px)); } <===> plain-css/nested-min-max/output.css a { b: min(max(1px, 2px)) max(min(1px, 2px)); } ```
Path names should be underscore-separated rather than hyphenated, space-separated, or camel-cased. The only exception is when the path is describing an existing Sass or CSS identifier that contains hyphens, such as `font-face` or `scale-color`. ## Testing ### DO test only one thing per spec
Example #### Good ```hrx <===> transparent/input.scss a {b: hsl(180, 60%, 50%, 0)} <===> transparent/output.css a { b: rgba(51, 204, 204, 0); } <===> ================================================================================ <===> opaque/input.scss a {b: hsl(180, 60%, 50%, 1)} <===> opaque/output.css a { b: #33cccc; } ``` #### Bad ```hrx <===> input.scss a { transparent: hsl(180, 60%, 50%, 0); opaque: hsl(180, 60%, 50%, 1); } <===> output.css a { transparent: hsl(180, 60%, 50%, 1); opaque: #33cccc; } ```
Each individual spec should focus on exactly one assertion of the behavior in question. It's worth a bit of extra verbosity to ensure that it's always clear exactly what each spec is testing. Otherwise, it's extremely difficult to refactor specs because you don't know which of the dozen behaviors might not be tested anywhere else. It also ensures that an implementation can mark an individual assertion as `:todo` without also ceasing to test a bunch of unrelated behavior. ### DO use type selectors as placeholders
Example #### Good ```hrx <===> transparent/input.scss a {b: hsl(180, 60%, 50%, 0)} <===> transparent/output.css a { b: rgba(51, 204, 204, 0); } ``` #### Bad ```hrx <===> transparent/input.scss .a {b: hsl(180, 60%, 50%, 0)} <===> transparent/output.css .a { b: rgba(51, 204, 204, 0); } ```
When you need a style rule as context for something else, [like a test for an expression][], the kind of selector you use for it doesn't matter. It's just there as a placeholder to make the style rule valid. In that case, use a type selector like `a` to avoid any unnecessary punctuation. [like a test for an expression]: #do-use-style-rules-for-expression-level-tests ### DO use descriptive names for multiple placeholders
Example #### Good ```hrx <===> input.scss extendee {a: b} extender { @extend extendee; } <===> output.css extendee, extender { a: b; } ``` #### Bad ``` <===> input.scss a {b: c} d { @extend a; } <===> output.css a, d { b: c; } ```
If you have more than one placeholder selector (or more than one placeholder property, etc) in the same test, give them explicit names to help make it clear how the input maps to the output. These names should describe the role of the placeholders (or their associated rules), or at least their original locations. ### DO use single-letter names for irrelevant placeholders
Example #### Good ```hrx <===> input.scss a {b: c} <===> output.css a { b: c; } ``` #### Bad ```hrx <===> input.scss @function global-function() {@return null} global-function-exists { result: function-exists(global-function); } <===> output.css global-function-exists { result: true; } ```
If your placeholder identifiers *aren't* [repeated][], use single-letter names in alphabetical order for them. The purpose of the spec should already be communicated by [its path][], and it should only be testing [one thing][], so there should be no need to add extra description to a single selector or property name. [repeated]: #do-use-descriptive-names-for-multiple-placeholders [its path]: #do-use-descriptive-paths [one thing]: #do-test-only-one-thing-per-spec ### DO use `pfx` for vendor prefixes
Example #### Good ```hrx <===> input.scss a {b: is-superselector(":-pfx-matches(c d)", "c d")} <===> output.css a { b: true; } ``` #### Bad ```hrx <===> input.scss a {b: is-superselector(":-webkit-matches(c d)", "c d")} <===> output.css a { b: true; } ```
There are a few situation in which Sass specifically parses vendor prefixes. In these cases, *all* vendor prefixes should be treated equivalently, whether they're from a real browser or not. To test this, use the non-existent vendor prefix `pfx`. If multiple different vendor prefixes are needed, index them by letter, as `-pfxa-`, `-pfxb`, and so on. ### DO use style rules for expression-level tests
Example #### Good ```hrx <===> transparent/input.scss a {b: hsl(180, 60%, 50%, 0)} <===> transparent/output.css a { b: rgba(51, 204, 204, 0); } ``` #### Bad ```hrx <===> transparent/input.scss @debug hsl(180, 60%, 50%, 0); <===> transparent/output.css <===> transparent/warning /spec/core_functions/hsl/transparent/input.scss:1 Debug: rgba(51, 204, 204, 0) ```
When you're testing something at the expression level, like a function or an arithmetic operation, write the expression as the right-hand side of a declaration in a style rule. This will produce as little visual noise as possible without tying your spec to the implementation-specific formatting of `@warn` or `@debug`. ### PREFER making imported files partials
Example #### Good ```hrx <===> member/variable/input.scss @import "other"; a {b: $c} <===> member/variable/_other.scss $c: d; <===> member/variable/output.scss a { b: d; } ``` #### Bad ```hrx <===> member/variable/input.scss @import "other"; a {b: $c} <===> member/variable/other.scss $c: d; <===> member/variable/output.scss a { b: d; } ```
When writing a spec with multiple files, make the files (other than `input.scss` or `input.sass`) partials unless there's a concrete reason not to. This helps make it clearer at a glance that they're additional input files, rather than expectation files. ### DO name single imported or used files "other"
Example #### Good ```hrx <===> member/variable/input.scss @import "other"; a {b: $c} <===> member/variable/_other.scss $c: d; <===> member/variable/output.scss a { b: d; } ``` #### Bad ```hrx <===> member/variable/input.scss @import "imported"; a {b: $c} <===> member/variable/_imported.scss $c: d; <===> member/variable/output.scss a { b: d; } ```
When a spec involves exactly two files, the file that's not `input.scss` should be named "other" (`_other.scss`, `_other.sass`, etc). ### PREFER referring to issues when marking specs as `:todo`
Example #### Good ```hrx <===> slash_slash_string/options.yml --- :todo: - sass/libsass#2840 <===> slash_slash_string/input.scss a {b: 1 / 2 / foo()} <===> slash_slash_string/output.css a { b: 1/2/foo(); } ``` #### Bad ```hrx <===> slash_slash_string/options.yml --- :todo: - libsass <===> slash_slash_string/input.scss a {b: 1 / 2 / foo()} <===> slash_slash_string/output.css a { b: 1/2/foo(); } ```
When [marking a spec as `:todo`][], use a reference to an issue in the implementation in question tracking the feature the spec tests. If there isn't an issue yet, create one. Make sure to also link that issue back to the specs for it! [marking a spec as `:todo`]: README.md#todo ## Documentation ### CONSIDER adding a comment explaining your spec
Example #### Good ``` <===> empty/input.scss // CSS requires at least one token in a custom property. .empty { --property:; } <===> empty/error Error: Expected token. , 3 | --property:; | ^ ' /sass/spec/css/custom_properties/error/empty/input.scss 3:14 root stylesheet ```
If the details of what your spec is testing and why it produces the output it does wouldn't be clear to someone moderately familiar with Sass from [the spec's path][] and a casual reading of the spec's contents, it's a good idea to add a comment explaining in detail what's going on. This can also be useful for elucidating the stranger corners of the CSS spec or Sass's language semantics. [the spec's path]: #do-use-descriptive-paths Explanatory comments should always be silent Sass comments. Loud comments and HRX comments must not be used. ### DON'T write HRX comments
Example #### Bad ``` <===> CSS requires at least one token in a custom property. <===> empty/input.scss .empty { --property:; } <===> empty/error Error: Expected token. , 3 | --property:; | ^ ' /sass/spec/css/custom_properties/error/empty/input.scss 3:14 root stylesheet ```
HRX supports its own comment syntax, but that should never be used for specs. Instead [use Sass comments][] to document an individual file or spec and [`README.md` files][] to document entire directories. Sass comments provide more flexibility to provide documentation for specific portions of the test files. [use Sass comments]: #consider-adding-a-comment-explaining-your-spec [`README.md` files]: #consider-adding-readme-md-files-to-parent-directories ### CONSIDER adding README.md files to parent directories
Example #### Good ```hrx <===> color/literal/README.md When colors are written literally by the user, rather than being generated by a function, `inspect()` should return them in the same format the user wrote them. <===> ================================================================================ <===> color/literal/short_hex/input.scss a { $result: inspect(#00f); result: $result; type: type-of($result); } <===> color/literal/short_hex/output.css a { result: #00f; type: string; } <===> ================================================================================ <===> color/literal/long_hex/input.scss a { $result: inspect(#0000ff); result: $result; type: type-of($result); } <===> color/literal/long_hex/output.css a { result: #0000ff; type: string; } ```
Like [adding a comment][] to an individual spec, add a `README.md` file to a directory to explain something about all the specs that directory contains. There's not currently a way to render the Markdown, but it provides a consistent format that's easy to read in plain text. [adding a comment]: #consider-adding-a-comment-explaining-your-spec ## Formatting ### DO use comment dividers to separate specs within an HRX file
Example #### Good ```hrx <===> single/input.scss a { b {c: d} } <===> single/output.css a b { c: d; } <===> ================================================================================ <===> double/input.scss a { b, c {d: e} } <===> double/output.css a b, a c { d: e; } ``` #### Bad ```hrx <===> single/input.scss a { b {c: d} } <===> single/output.css a b { c: d; } <===> double/input.scss a { b, c {d: e} } <===> double/output.css a b, a c { d: e; } ```
Each subdirectory within an HRX file after the first should begin with [an HRX comment][] containing 80 `=` characters: [an HRX comment]: https://github.com/google/hrx/blob/master/README.md ```hrx <===> ================================================================================ ``` Because this is an HRX comment, it has no effect on the contents of the directory. It just serves to visually separate specs from one another. ### DO order files consistently
Example #### Good ```hrx <===> top_level/options.yml --- :warning_todo: - sass/libsass#2834 :ignore_for: - ruby-sass <===> top_level/input.scss $var: value !global; a {b: $var} <===> top_level/output.css a { b: value; } <===> top_level/warning DEPRECATION WARNING: As of Dart Sass 2.0.0, !global assignments won't be able to declare new variables. Consider adding `$var: null` at the top level. , 1 | $var: value !global; | ^^^^^^^^^^^^^^^^^^^ ' /sass/spec/variables/global/first_declaration/top_level/input.scss 1:1 root stylesheet ``` #### Bad ```hrx <===> top_level/output.css a { b: value; } <===> top_level/warning DEPRECATION WARNING: As of Dart Sass 2.0.0, !global assignments won't be able to declare new variables. Consider adding `$var: null` at the top level. , 1 | $var: value !global; | ^^^^^^^^^^^^^^^^^^^ ' /sass/spec/variables/global/first_declaration/top_level/input.scss 1:1 root stylesheet <===> top_level/options.yml --- :warning_todo: - sass/libsass#2834 :ignore_for: - ruby-sass <===> top_level/input.scss $var: value !global; a {b: $var} ``` k
To keep specs consistent, their constituent files should always be written in the following order: 1. `options.yml`. 2. `input.scss` or `input.sass`. 3. Any files imported or used by `input.scss` or `input.sass`. 4. `output.css` or `error` 5. `warning` If a spec has [implementation-specific expectations][], those expectations should go directly after the corresponding default expectation. [implementation-specific expectations]: README.md#implementation-specific-expectations ### DO use Dart Sass's output as the default
Example #### Good ```hrx <===> single_channel/input.scss a {b: complement(#f00)} <===> single_channel/output.css a { b: aqua; } <===> single_channel/output-libsass.css a { b: cyan; } ``` #### Bad ```hrx <===> single_channel/input.scss a {b: complement(#f00)} <===> single_channel/output.css a { b: cyan; } <===> single_channel/output-dart-sass.css a { b: aqua; } ```
Since Dart Sass is the reference implementation, its output should be used as `output.css`, and other implementations' outputs (if they differ) should be written as [implementation-specific expectations][]. ### DO end each file with a newline
Example #### Good ```hrx <===> single/input.scss a { b {c: d} } <===> single/output.css a b { c: d; } ``` #### Bad ```hrx <===> single/input.scss a { b {c: d} } <===> single/output.css a b { c: d; } ```
Unless the lack of a trailing newline is specifically being tested, all non-empty files should end in a trailing newline. For all but the last file in an HRX archive, this appears as a full blank line. ### DO use two spaces for indentation
Example #### Good ```hrx <===> single/input.scss a { b {c: d} } <===> single/output.css a b { c: d; } ``` #### Bad ```hrx <===> single/input.scss a { b {c: d} } <===> single/output.css a b { c: d; } ```
Always use two spaces for indentation unless you're explicitly testing behavior for other whitespace. ### DO use one-line rules when they contain empty children
Example #### Good ```hrx <===> empty/input.scss a {} <===> empty/output.css ``` #### Bad ```hrx <===> empty/input.scss a { } <===> empty/output.css ```
### PREFER one-line rules when they contain a single child with no children
Example #### Good ```hrx <===> single/input.scss a { b {c: d} } <===> single/output.css a b { c: d; } ``` #### Bad ```hrx <===> single/input.scss a { b { c: d; } } <===> single/output.css a b { c: d; } ```
When a rule contains a single child statement, such as a style rule that contains a single declaration or a `@function` that just returns a value, it should generally be written as a single line with no whitespace after `{` or before `}`. However, if this would produce too long of a line or otherwise make the rule difficult to read, it may be split onto multiple lines. ### DON'T use one-line rules when they contain more than one child
Example #### Good ```hrx <===> two_declarations/input.scss a { b: c; d: e; } <===> two_declarations/output.css a { b: c; d: e; } ``` #### Bad ```hrx <===> two_declarations/input.scss a {b: c; d: e} <===> two_declarations/output.css a { b: c; d: e; } ```
When a rule contains multiple child statements, each child must be written on its own line. Each child that doesn't take a block must be followed by a semicolon. ### DON'T use one-line rules when they contain grandchildren
Example #### Good ```hrx <===> single/input.scss a { b {c: d} } <===> single/output.css a b { c: d; } ``` #### Bad ```hrx <===> single/input.scss a {b {c: d}} <===> single/output.css a b { c: d; } ```
If a rule contains another rule which itself has children, the grandparent should never be written on a single line. sass-spec-libsass-3.6.3/benchmarks/000077500000000000000000000000001355712145100172035ustar00rootroot00000000000000sass-spec-libsass-3.6.3/benchmarks/empty.scss000066400000000000000000000000001355712145100212240ustar00rootroot00000000000000sass-spec-libsass-3.6.3/benchmarks/large_empty.scss000066400000000000000000461132001355712145100224170ustar00rootroot00000000000000 sass-spec-libsass-3.6.3/benchmarks/vanilla_css_huge.scss000066400000000000000000005125531355712145100234210ustar00rootroot00000000000000@charset "UTF-8"; /* Theme Name: Moovweb Time */ * { -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box; } /*! normalize.css v2.1.2 | MIT License | git.io/normalize */ /* ========================================================================== HTML5 display definitions ========================================================================== */ /** * Correct `block` display not defined in IE 8/9. */ article, aside, details, figcaption, figure, footer, header, hgroup, main, nav, section, summary { display: block; } /** * Correct `inline-block` display not defined in IE 8/9. */ audio, canvas, video { display: inline-block; } /** * Prevent modern browsers from displaying `audio` without controls. * Remove excess height in iOS 5 devices. */ audio:not([controls]) { display: none; height: 0; } /** * Address styling not present in IE 8/9. */ [hidden] { display: none; } /* ========================================================================== Base ========================================================================== */ /** * 1. Set default font family to sans-serif. * 2. Prevent iOS text size adjust after orientation change, without disabling * user zoom. */ html { font-family: sans-serif; /* 1 */ -ms-text-size-adjust: 100%; /* 2 */ -webkit-text-size-adjust: 100%; /* 2 */ } /** * Remove default margin. */ body { margin: 0; } /* ========================================================================== Links ========================================================================== */ /** * Address `outline` inconsistency between Chrome and other browsers. */ a:focus { outline: thin dotted; } /** * Improve readability when focused and also mouse hovered in all browsers. */ a:active, a:hover { outline: 0; } /* ========================================================================== Typography ========================================================================== */ /** * Address variable `h1` font-size and margin within `section` and `article` * contexts in Firefox 4+, Safari 5, and Chrome. */ h1 { font-size: 2em; margin: 0.67em 0; } /** * Address styling not present in IE 8/9, Safari 5, and Chrome. */ abbr[title] { border-bottom: 1px dotted; } /** * Address style set to `bolder` in Firefox 4+, Safari 5, and Chrome. */ b, strong { font-weight: bold; } /** * Address styling not present in Safari 5 and Chrome. */ dfn { font-style: italic; } /** * Address differences between Firefox and other browsers. */ hr { -moz-box-sizing: content-box; box-sizing: content-box; height: 0; } /** * Address styling not present in IE 8/9. */ mark { background: #ff0; color: #000; } /** * Correct font family set oddly in Safari 5 and Chrome. */ code, kbd, pre, samp { font-family: monospace, serif; font-size: 1em; } /** * Improve readability of pre-formatted text in all browsers. */ pre { white-space: pre-wrap; } /** * Set consistent quote types. */ q { quotes: "\201C" "\201D" "\2018" "\2019"; } /** * Address inconsistent and variable font size in all browsers. */ small { font-size: 80%; } /** * Prevent `sub` and `sup` affecting `line-height` in all browsers. */ sub, sup { font-size: 75%; line-height: 0; position: relative; vertical-align: baseline; } sup { top: -0.5em; } sub { bottom: -0.25em; } /* ========================================================================== Embedded content ========================================================================== */ /** * Remove border when inside `a` element in IE 8/9. */ img { border: 0; } /** * Correct overflow displayed oddly in IE 9. */ svg:not(:root) { overflow: hidden; } /* ========================================================================== Figures ========================================================================== */ /** * Address margin not present in IE 8/9 and Safari 5. */ figure { margin: 0; } /* ========================================================================== Forms ========================================================================== */ /** * Define consistent border, margin, and padding. */ fieldset { border: 1px solid #c0c0c0; margin: 0 2px; padding: 0.35em 0.625em 0.75em; } /** * 1. Correct `color` not being inherited in IE 8/9. * 2. Remove padding so people aren't caught out if they zero out fieldsets. */ legend { border: 0; /* 1 */ padding: 0; /* 2 */ } /** * 1. Correct font family not being inherited in all browsers. * 2. Correct font size not being inherited in all browsers. * 3. Address margins set differently in Firefox 4+, Safari 5, and Chrome. */ button, input, select, textarea { font-family: inherit; /* 1 */ font-size: 100%; /* 2 */ margin: 0; /* 3 */ } /** * Address Firefox 4+ setting `line-height` on `input` using `!important` in * the UA stylesheet. */ button, input { line-height: normal; } /** * Address inconsistent `text-transform` inheritance for `button` and `select`. * All other form control elements do not inherit `text-transform` values. * Correct `button` style inheritance in Chrome, Safari 5+, and IE 8+. * Correct `select` style inheritance in Firefox 4+ and Opera. */ button, select { text-transform: none; } /** * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio` * and `video` controls. * 2. Correct inability to style clickable `input` types in iOS. * 3. Improve usability and consistency of cursor style between image-type * `input` and others. */ button, html input[type="button"], input[type="reset"], input[type="submit"] { -webkit-appearance: button; /* 2 */ cursor: pointer; /* 3 */ } /** * Re-set default cursor for disabled elements. */ button[disabled], html input[disabled] { cursor: default; } /** * 1. Address box sizing set to `content-box` in IE 8/9. * 2. Remove excess padding in IE 8/9. */ input[type="checkbox"], input[type="radio"] { box-sizing: border-box; /* 1 */ padding: 0; /* 2 */ } /** * 1. Address `appearance` set to `searchfield` in Safari 5 and Chrome. * 2. Address `box-sizing` set to `border-box` in Safari 5 and Chrome * (include `-moz` to future-proof). */ input[type="search"] { -webkit-appearance: textfield; /* 1 */ -moz-box-sizing: content-box; -webkit-box-sizing: content-box; /* 2 */ box-sizing: content-box; } /** * Remove inner padding and search cancel button in Safari 5 and Chrome * on OS X. */ input[type="search"]::-webkit-search-cancel-button, input[type="search"]::-webkit-search-decoration { -webkit-appearance: none; } /** * Remove inner padding and border in Firefox 4+. */ button::-moz-focus-inner, input::-moz-focus-inner { border: 0; padding: 0; } /** * 1. Remove default vertical scrollbar in IE 8/9. * 2. Improve readability and alignment in all browsers. */ textarea { overflow: auto; /* 1 */ vertical-align: top; /* 2 */ } /* ========================================================================== Tables ========================================================================== */ /** * Remove most spacing between table cells. */ table { border-collapse: collapse; border-spacing: 0; } @font-face { font-family: 'icomoon'; src: url("styles/icons/fonts/icomoon.eot"); } @font-face { font-family: 'icomoon'; src: url(data:application/x-font-ttf;charset=utf-8;base64,AAEAAAALAIAAAwAwT1MvMg6xDSoAAAC8AAAAYGNtYXDgPPCKAAABHAAAAERnYXNwAAAAEAAAAWAAAAAIZ2x5Zu/7iQ0AAAFoAAAgyGhlYWQAklUPAAAiMAAAADZoaGVhB8ID2QAAImgAAAAkaG10eFoACloAACKMAAAAYGxvY2Fmel9MAAAi7AAAADJtYXhwACYBswAAIyAAAAAgbmFtZUQXtNYAACNAAAABOXBvc3QAAwAAAAAkfAAAACAAAwQAAZAABQAAApkCzAAAAI8CmQLMAAAB6wAzAQkAAAAAAAAAAAAAAAAAAAABEAAAAAAAAAAAAAAAAAAAAABAACDwAAPA/8D/wAPAAEAAAAAAAAAAAAAAAAAAAAAgAAAAAAACAAAAAwAAABQAAwABAAAAFAAEADAAAAAIAAgAAgAAACDgFPAA//8AAAAg4ADwAP///+EgAhAXAAEAAAAAAAAAAAABAAH//wAPAAEAAAAAAAAAAAACAAA3OQEAAAAADQAQAX0D6QH4ADIAWwCOALcAvgDLAQEBGQExATUBOQE9AUoAABM+Azc+AzMyHgIXHgEcAQcUDgIHDgMHDgMjIi4CJy4DNSY0JjY1MwYWBhYXHgMzMj4CNz4DNzQ2LgEnNC4CIyIOAgcOAxUzPgM3PgMzMh4CFx4BHAEHFA4CBw4DBw4DIyIuAicuAzUmNCY2NTMGFAYWFx4DMzI+Ajc+Azc0Ni4BJzQuAiMiDgIHDgMVNzMXNzMHIzczBzczFzczByMnByMlMzIeAhceAgYVDgMHFA4CBx4DFRYUFgYVDgMHFA4CByIOAgciBioBMSM3FzM6AT4BNT4CNDcmNiY0JzAuAisBBwczMj4CNTY0NjQ3JjYmNCc0LgEiKwEHBzM3IzcjBzMnMzcjIQcnIwczNxczNwczN7UCBAgHBgQLDA4GCQsMBwQDBQIEAwUBBAQHBgUDCQcLBAYICAYEAgYEBAMBAiUCAQECAQICBQQEAgcDBgEDAwQBAgIBAQIFAwYCBAQGAwMBBQIEZQIECAcGBAwLDgYJCwwHBAMFAgQDBQEEBAcGBQMJBwsDBggJBgQCBgQEAwECJQEBAgECAgUEBAIHBAUBAwMEAQICAQECBQMGAgQEBgMDAQUCBGMoBy4kRCl7IgEgIwQbIjMkBCYjATBGAwkFBgECAgIBAQEEAgMFAgUCAgcDBAICAQEBAwEDBAMFAQICBQMEAgYDBEEaGxACBAIEAgECAQECAgEDAgQCEQMLEwIFAgQDAwEBAQECAwIFAhMEqnAFbnJpB2thcQRu/XUhBS8aHxIFGiwVHxkBugcNDAkEBAcEAgIEBgQECgsNBwUKCAgDAwYGBAICAgIBAQEDAQIEBQYDBAgICgUFBwcFAgIDAgEBAgMCAgUHCQUEBwYFAgIDAgEBAgMCAgUHBwUHDQwJBAQHBAICBAYEBAoLDQcFCggIAwMGBgQCAgICAQEBAwECBAUGAwQICAoFBQcHBQICAwIBAQIDAgIFBwkFBAcGBQICAwIBAQIDAgIFBwcFPFZWd3dDQ0NDd0tLdwEDAwICBQUGAwMEBQQCAQMCAQEBAgIEAgEFBAYCAwQEBAICAwMDAQEBAQEBdy8BAQEBAgICAgECAgIBAQEBFy8BAQEBAQICAgIBAgMBAQEBARgYHC0cLRxJSXdaWlpadwAFAAP/wwP9A70AHgA9AFIAogCvAAABIiYGJgcmDgIHDgMVFB4CNxY+AjU0LgInNzQuAicOAwcOAxUUHgIXPgM3PgM1Aw4DFRQeAjcWPgI1NC4CJwMuAzU0PgI3PgM3LgM1ND4CNwYmBiYHLgM1ND4CNz4DNxcPAR4DFRQOAgcOAxUUHgIfAR4DFRQOAiclJxUnNSc1NzU3FTcVAeACAwQEAgIPFBYLBRQSDhEeKxsYJBkMCBIbEyQLFR8VBg0MCwQEBgMCChUfFQcMDAoEBgcDAQRpuopQUIq6aWm6ilBQirppWyU1IhEFDBMPDyMjHgwEBwYDAQICAQIGBQUDGikcDwQJDgsOICAeDoorJwYPDwkJEBQKBAYGAwMGBgIYCxQQCRctQioBY0EiQkIiQQFtAQEBAQECAQUCAwgQFxMQHhUMAQELEhsODhMUFA6qEikmFwEBAQYHBgQNDA4GESgkFwEBAgcGBQQOCwwEAaYBT4u5ami7iVEBAVGJu2hquYtPAfz3AQ4cIBQHFhQWBwsKBwIBBAoKDQcFBgcEBAEBAgEBAREeJBQKGRcWCQwNCAEBARkBBA8UHREUGhcQCQIIBwoEBwcIBAMSChEWGRIWLiIWAfQBQwFBAR8BQQFDASEAAAAABADdAHoDQwLjAAsAWwB6AJkAAAEjJyMHIwczBzMnMwUnLgMnPgM3PgMnNi4CJzM3IyIOAgcOAwceAzMyNjI2Mw4DFwYeAhcOAwcOAwceAzMyPgInNi4CJyciLgI3Jj4CNz4DMzIeAgcWDgIHDgMjEyIuAic+Azc+AzM6AxceAwcWDgIjA0NRASgBUAFSASoBU/7cHAUGBwMBAQMHBwUMGhMMAQENEBUGMDasECcmKBEOEQwEAQESIzIhAwcGBwMBBAECAQEFBgoDDScpLBIUFw8GAQEULEEtNFM2HQEBDBIaDWwZKBgNAQECAwgFBQ0QDwkYKBkOAQECAwkGBgwQDgkCIjQnFAEBEBgXCAwdFxMCBAQFAwQWIxULAQEQHi4cAdFRUShRUSUXAwYICwcGCwoIBAoWGiIXFyIaEQYhAwkRDgsbHR4OFy4kFgEBBAYICAUKDw0MBQEDCA4LCxkbGQsWKiETGiw3HBUgGxYLWx4sMRUIEBAPBwYJBgMeLTQVBg4PDwcFCQcE/r0PGiQWFR4TCwIEBQMBARAaGBkPEyAXDgAAAwC8AOgDRAKQADQAaQB+AAABFA4CDwEOAS4BJy4BDgEHDgEuAS8BLgM1ND4CMzQUNBQ1PgMXNh4CFx4DFQcUDgIPAQ4CJicuAgYHDgImLwEuAzU0PgI3FDQUNhU+AzceAxcyHgIVBw4BLgEnLgE0Njc+AhYXHgEUBgcDRAECAgIhAwgIBwQ2hIiENwMHCAgDIQICAgEBAgICIUpQViwsVlBKIQEDAgF5AQEDASADCAcIAx5GSEYeAwgHCAMgAQMBAQECAgIBFC4yNBsbNDIuFAIDAgGeCRgYGAkKCQkKCRgYGAkKCQkKAggCBQMEASMCBAEBBDAxAS8xAgQBAgQhAwIFAwQBBQIFAQECAQEcLx0RAQERHS8cAwIFAwN4AwQFAgMfBAIBAwIZGAEaFwQBAQQCIQEEAwYBAwMEAwIBAgEBARMaEwgBAQgTGhMFAgYBqAkKAQkKCBkYGAkKCAEKCAsWGhcKAAAAAQDdANsDIwK3AKEAAAEOAwcVFA4CBw4DBy4DJy4DJy4DNTQ+Ahc2FjYWNxY+AjcuAyciNDA0MTQ+ATI3FjYWMhcuAzU0PgIXNh4CMy4DNTQ+AjcyNjI2FzYWMhYzHgMXHgMXNCY8ATU0PgI3HgMXPgM3MjYyNhU2HgIVFA4CBz4DNxYyHgEVNAYwBjUDIQUNDg8IBAgMBxU/UFwzFCgnJhIDBwcHAwECAQECAwMCBAYHBwQPHx0cDRAcGBEFAQEDBAIBAgICAQ4WEAkCAwUCAgUGBQIHCgcEAgQHBAEBAgICAQICAgEECAkJBBMrLzEaARQiLRoMGBYVCQgREA8IAQEBAgIEAwEFCAkCAgkJCQECAwMCAQECcggRDg4FCxIlIyMQL0gzGgEBBAoOCgEEAwUBAgEDAQMBBAIDAQECAQIBAQUIDQcFDhYbEAIBAwIEAQEBAQEKFhweEgEFAgMBAQMCAwcUExcJCRARDwcDAgEBAQIGCAoIBRAdEw4BAQUCBQEbLSMSAQEDCwwJAwQHBwUBAQEBAwEFAQUMDwsEAQMFAQEBBAMDAQMDAQABAOcApgMZAocANwAAJSoBJiInDgMHDgMHIi4CNTA0OAExJj4CNz4DNy4DNTQ+AjMyHgIVFA4CIwIABgsMCwUQISUmFAUICQoEAwUEAwEBAwQBCA8PDgUYJxwPLUxmOjpmTC0tTGY69wEBDhcTDwUBAgIBAQIDBAMBAwQFBAIIERUbFA4iKC0YKUk3Hx82SSoqSTYfAAAAAAIAoQCdA18CxQA3AHkAAAEiLgInDgMHDgMHMCI4ATEiLgInND4CNz4DNy4DNTQ+AjMyHgIVFA4CIwUeAxceAxUOAyciLgInLgMnDgMjIi4CJxYyFjIzMj4CNz4DNTQuAiceAxUUDgIHAbUJEhERCA0aGxwPBAkICQQBAgUDAgEBAgMCBgwMCwUYJhwOK0tlOTlkSywsS2Q5AUIFCwwMBgIDAgEBAgQFAgQJCQgEDxwbGg0IERESCRozLyoTBAkJCAUfPTk1FhkmGg0BAgQCGSgdDw4cJhgBMwECAgEIDw0KBAECAQEBAgMEAgMFBAQCBg0PEwwOIigtGCpJNiAgNkkqKkk2IDkMEhAMBwIDBQQDAwQDAgECAQIBBAoMDwkBAwEBBw0UDAEBCREaEBIqLjMaCA8PDggOIykuGBgtKCMOAAAAAAQBMwCbAs0DIgApAD4AUwBoAAABNDY8ATU0LgIxMA4CFRwCFhUHFTM1Nx4DMTMwPgI3FxUzNScHIi4CNTQ+AjMyHgIVFA4CIzUiLgI1ND4CMzIeAhUUDgIjNSIuAjU0PgIzMh4CFRQOAiMCiQErNCsrNCsBREsOBAYFA8QDBQYEDktEiQgOCwYGCw4ICA4LBgYLDggIDgsGBgsOCAgOCwYGCw4ICA4LBgYLDggIDgsGBgsOCAHDAwYHBgNTelEoKFF6UwMGBwYDQ+V0Dg8XEAgIEBcPDnTlQ28HCg8ICA4LBgYLDggIDwoHcQYLDggIDwoHBwoPCAgOCwZxBgsOCAgOCwYGCw4ICA4LBgADASIBAwLOAqwAFAAtAGcAAAEUDgIjIi4CNTQ+AjMyHgIVBxEUDgIrASIuAjURND4COwEyHgIVBRUUDgIrASIuAj0BNC4CIyIOAh0BFA4CKwEiLgI1ETQ+AjsBMh4BFBU+AzMyHgIVAYoIDhMLCxIOCQkOEgsLEw4IAwIDBAJMAgQDAgIDBAJMAwMDAgFHAgMEAk4CBAMCAwkODA4TDAQCAwQCTAMEAwEBAwQDSgQFAQgSFBQLGikeEAJ4CxIPCAgPEgsLEw4ICA4TC13+8wMEAwEBAwQDAQ0CBAMCAgMEAli1AwQDAQEDBAOkChALBQkQFg2SAwQDAQEDBAMBDQIEAwIEBgcDBwoHAw0aKBsAAAEBVwB3ArEChwAGAAABIzcjAzMHArGVfM5ziTwBwMf+3e0AAAEBhgDMAnQCqABSAAABFRc2FjIWMx4CFBUHDgMHJxUUDgInByYiLgE9AScGLgI9ATQ+Ahc3NTQ+AjcWMh4BFzYeAhUHIhQOASMGIgYmBy4CIicOAxUCHEMCAgICAQEBAQQBAgMEAj8CAwQCTgIFAwIlAwQDAgIDBAMlDhsqGwoSEREIAgQCAQgBAgEBAQMCAwEFCwsKBQcKBAICNxsBAQECAgEEAQI9BAMEAQEB7wEFAwIBAQEFAwPtAQEDAwUCPwEFAgMBAR8dJxwNAQEEAgQBBAIFAj0DAgICAQEBAgECAQEBBwkIAAAHAP0AjAN7Ax0AIwA4AGsAtQDlAUsBmwAAAR4DOwEyPgI3PgE0Ji8BNTQuAiMiDgIdAQcOARQWFzcyHgIVFA4CIyIuAjU0PgIzBzcxPgM7ATIeAhc4AzEXOAMxHAEWFDEUDgIrASIuAjUwNDY0NTgDMRM4AzEeAjI3PgM3MD4CMTc+AjQnLgMvAS4DJyYiDgEPASIOAjEwDgIHBhQeARc4AzEeAxceAxcHMDoBNjE3OAMxPgImJy4DJy4DJy4BIgYPATgDMTAGHAExFB4CMzciDgIHOAMxOAMxBw4CFB0BOAMVFA4CIzgDMSEiLgInET4DOwEwMjgBMTI+Ajc4AjIxNzU8AzU0LgIrASIOAhURFB4CMyEyPgI9AS4DIwMXMR4DMzI4AjEzMh4CFTgDMRUUHgIzMjYyNjM3OAI2MTc+AzM0IjgBMTI+ATQ3NTQuAisBIg4CFTAiFDAxHAMdAQGJAQMEBAPQAwQEAwECAQEBOwoQFg0NFhAKOwEBAQJ3BgoIBAQICgYGCggEBAgKBkIFAQIDAwJkAgMDAgEFAQIDBANuAwQDAgGsAQICAwEEBwcGAgECAuUCAgEBAQIEBAMIAwYGBgQBAwQEAuQBAQIBAgMFAwEBAgEDBAQEAgIEAwQBNAEBARYEAwEBAgEDAgMCAQIDAgICBAMDAQcBAgMEA8EBAwICAR0BAQECBAQC/nwCBAMCAQEBAwMCTwEBBAICAQEJAgIEAn4GCQcFBQcJBgHQBgkHBQEBBAQClwgBAgMDAQFQAgQDAgIDBAICAgIBARYBAQEBAQIBAQECAQEFBwkGfQIEAwEBAkkCAwIBAQIDAgIEBQQCcxMNFhAKChAWDRB2AgQFBAK2BQcLBgULBwUFBwsFBgsHBYwKAQMCAQECAwEKAQEBAgMEAwICAwQDAgEBAf66AQEBAQEDBAQCAQIC5QIDAwMCAwcGBgMIAwQDAwEBAQIC5QIBAQMGCwgBAwICAQIDAwMCAgUEBQMfAQcBAgMDAgIDAwQBAQMCAgECAgMCGAEBAgMEAwJeAQEBAR0BAQICAXcBAgQEAQEDBAIB6wIDAwIBAgIBEggBAwIDAQIEAwIEBwoG/cwFCgcEBAcKBboDBAMCAWoQAQICAQIDBAN9AgQDAgECFgEBAQEBAQECAgMBhgYKBwQCAwQDAQECAgIBCgAEAAP/wwP9A70AFAApAF4AkwAAASIOAhUUHgIzMj4CNTQuAiMTDgEiJicuATQ2Nz4BMhYXHgEUBgc3Bw4BIiYnLgEiBgcOASImLwEuAzU0PgI3MDQwMjE+AzMyHgIXHgMVFA4CBzcHDgEiJicuASIGBw4BIiYvAS4DNTQ+Ajc4ATQwMT4DMzIeAhceAxUUDgIHAgBpuopQUIq6aWm6ilBQirppLQkYGBgJCgkJCgkYGBgJCgkJCpggAwgHCAMeRkhGHgMIBwgDIAEDAQEBAgICARQuMjQbGzQyLhQCAwIBAQEDAXghAwgIBwQ2hIiENwMHCAgDIQICAgEBAgICIUpQViwsVlBKIQEDAgEBAgICA71QirppabqKUFCKumlpuopQ/SsKCQoJCRgZFwoJCQkJChcZGAmXIAMDAgMYGRkYAwIDAyACAwQFAgIEBAMBARIbEgkJEhsSAQQDBQICBQQDAnkiAwMCAzEwMDECAwMDIgIDBAQDAgQDBAEBHS4eEBAeLh0CAwQEAgMEBAMCAAAAAgAD/8MD/QO9ABQAtgAAASIOAhUUHgIzMj4CNTQuAiMBDgMHFRQOAgcOAyMiLgInLgMnLgM1ND4CMzIWMhYzMj4CNy4DJyY8ATA1ND4CMzoCFjMuAzU0PgIzMh4CFy4DNTQ+Ajc+AzM6AR4BFx4DFx4DFzQmPAE1ND4CMzIeAhc+Azc2MjYyMTIeAhUUDgIHMj4CMzIeAhUwHAEGMQIAabqKUFCKumlpuopQUIq6aQEhBg4PEAYDCAsIFT9PXTIVKCclEgQHBgcDAQIBAQIDAwIEBgcHBA8fHRwNEBwYEQUBAQMEAgECAgIBDhYQCQIDBQICBQYFAgcKBwQCBAcEAQECAgIBAgICAQQICQkEEysvMRoBFCItGgwYFhUJCBEQDwgBAQECAgQDAQUICQICCQkJAQIDAwEBA71QirppabqKUFCKumlpuopQ/rUJEA8NBgoTJCQiES5JMhsFCQ8JAgMEBAIBAgICAgIDAwIBAQQJDAgEDxUcDwEBAQECAwMBAQkXGx8RAgQDAgIDAgEIExQWCggREBAGAQIBAQEBAQUJCQkEERwUDQICBAMEAhouIhMECg0IAgUGCAQBAQICBAIEDQ4MAwQEAgEDBAICAQIAAAAAAgAD/8MD/QO9ABQATAAAASIOAhUUHgIzMj4CNTQuAiMRKgEmIicOAwcOAwciLgInMDQ4ATE0PgI3PgM3LgM1ND4CMzIeAhUUDgIjAgBpuopQUIq6aWm6ilBQirppBgsMCwUQISUmFAUKCgoFAgIDBgYDBAQCBxAQDgUYJxsOLExmOzpmTCwsTGY6A71QirppabqKUFCKumlpuopQ/ToBAQ4XEw8FAQICAQECAwQDAQMEBQQCCBEVGxQOIigtGClJNx8fNkkqKkk2HwAAAwAA/8AEAAPAABQATACOAAABIg4CFRQeAjMyPgI1NC4CIwMOAyMwIjgBMSIuAic0PgI3PgM3LgM1ND4CMzIeAhUUDgIjIi4CJw4DBwUeAxUOAyciLgInLgMnDgMjIi4CJxYyFjIzMj4CNz4DNTQuAiceAxUUDgIHHgMXAgBqu4tQUIu7amq7i1BQi7tq/QQJCAkEAQIFAwIBAQIDAgYMDAsFGCYcDitLZTk5ZEssLEtkOQkSEREIDRobHA8CIgIDAgEBAgQFAgQJCQgEDxwbGg0IERESCRozLyoTBAkJCAUfPTk1FhkmGg0BAgQCGSgdDw4cJhgFCwwMBgPAUIu7amq7i1BQi7tqaruLUP1JAQEBAQECBAIDBQMEAgYNDxIMDiMoLBgqSTYgIDZJKipJNiABAgMCCQ8MCgRQAgMFBAMDBAMCAQIBAgEECgwPCQEDAQEHDRQMAQEJERoQEiouMxoIDw8OCA4jKS4YGC0oIw4MEhAMBwAAAAUAA//DA/0DvQAeADMAXQB8AJsAAAE4AzEUHgIzMj4CNTgDMTQuAiMiDgIVEyIOAhUUHgIzMj4CNTQuAiMTIzUnDgMxIzAuAicHFSM1NzwBJjQ1ND4CMTAeAhUUDgEUBxcVJzgDMRQeAjMyPgI1OAMxNC4CIyIOAhU1OAMxFB4CMzI+AjU4AzE0LgIjIg4CFQHZBgsOCAgOCwYGCw4ICA4LBidpuopQUIq6aWm6ilBQirppyEARAwgGBMQEBgcEEUBBASo0KyszKwEBAUHvBgsOCAgOCwYGCw4ICA4LBgYLDggIDgsGBgsOCAgOCwYB7AgOCwYGCw4ICA8KBwcKDwgB0VCKumlpuopQUIq6aWm6ilD82HoRDxYPBwcPFg8ReutDAwYHBgNTelEoKFF6UwMGBwYDQ+vnCA8KBwcKDwgIDgsGBgsOCOEIDgsGBgsOCAgOCwYGCw4IAAAAAAQAA//DA/0DvQAUAC0AQgB8AAABIg4CFRQeAjMyPgI1NC4CIwMUDgIrASIuAjURND4COwEyHgIVEQMiLgI1ND4CMzIeAhUUDgIjARwCBisBIi4CPQE0LgIjIg4CHQEUDgIrASImPAE1ETwCNjsBMh4BFBU+AzMyHgIdAQIAabqKUFCKumlpuopQUIq6aXgBAwQCSwIEAwICAwQCSwIEAwEyCxIOCQkOEgsLEw4ICA4TCwFyAwJOAgUDAwIHDgsOEgoEAwUGAkwDAQEDSgQFAQgRExQKGikcDwO9UIq6aWm6ilBQirppabqKUP1TAgQDAgIDBAIBCgMEAgICAgQD/vYBNAgPEgsLEw4ICA4TCwsSDwj+ygMDAgEBAgMDpAoQCwUJEBYNkgMDAgEBAgMDAQ0CBAMBBAYGAwcKBwMNGigbtQAAAAIABP/EA/wDvAAUABwAAAEiDgIVFB4CMzI+AjU0LgIjAzcjEzMHMwECAGm5ilBQirlpabmKUFCKuWlcPIlzznyV/vMDvFCKuWlpuYpQUIq5aWm5ilD8vusBIMD+tQAAAAIAA//DA/0DvQAUAGcAAAEiDgIVFB4CMzI+AjU0LgIjEwYUDgEHDgEqASMuAyMiDgIdATMyNjIWMx4CFBUHDgMrARUcAQ4BKwEiLgI9ASMiLgI9ATQ+ATI7ATU0PgIzMh4CFzIeAhUHAgBpuopQUIq6aWm6ilBQirppbAECAQEBAwIDAQULDAsECAoGAkcCAgICAQEBAQQBAgMEAkMCAwJOAgQDAiYDAwMBAQMDAyYOGykcCRISEAkCAwIBCAO9UIq6aWm6ilBQirppabqKUP6YAQIDAQEBAQECAQECBgoHIgEBAQICAgE9AwMDAu4CBgYEBAYGAu4CAwUDPgICASYcKBsOAQMDAwMDBAM8AAAACAAE/8QD/AO8ABQARwBcAKwA0AEAAWYBsAAAARQeAhc+AzU0LgIHJg4CFQc3Fj4CNTQwJjA1FDQUNBUnFDQUNBUuAiInByYOAgcVBxQ0FDQVMAYwFDEUHgIXEw4DFRQeAjcWPgI1NC4CJxc0PgI3FzYeAh0BMA4CJxQ0BjAVJgYiBjEHNBQmFDUHNAYmBicGLgI9ARQ2MjYVNC4CJwc0FDQUJwYmIiYjLwE1MD4CMTQyNhY1BzQ+AjceAx0BFx4BFAYHDgIiBycGJiImJyY0PgE/ATUTNz4BHgEXMh4CMx4DFx4BDgEnFDQUNBUHFCYGJhUuAzUUNDA2FTQUNBQ1FxQOAicFLgM1ETQ+AjcXNh4BFBcUDgIdAQc0FDYUNQ4CJgc0MDQwNQcmDgEUFREcATIWNwU0FDQUNRY+AjU0BiIGPQE0PgEyNTc0FDQWNRQ0FDQVNjI2MjceAx0BJzQOAjUOAwciBiYiJxQ0FDQVLgMnLgMnNBQ0FDUiLgE0Mz4DNRQ2MjYXNz4BMjYXMh4CHwEeAxcWFA4BDwEB5AQICgYGCggEBAgKBgYKCAQbbgMEAwIBBQECAwMCZAIDAwIBBQECAwQDN2m5ilBQirlpabmKUFCKuWlhAQMEAn0GCwkGAQIDAQEBAQICAgEWAwMDAQMFBAMBAQEBAgMCUAEBAwMCAQQMAgEBAgECmQgPFQwNFQ4IPgEBAQEBAwMEA9ADBAQDAQIBAgE9YwcBAwMEAgICAwIBAgMCAwECAQEDBBYBAQEDBAMCAd0GCQsG/jAGCwkGBgkLBn4CAwEBAgECBQEBAQMCAk8CAQEBAwIBhAIEAgEBAQECAgIfAQEDAwMCAgUFAnYCAgECBgcHBAEDAgIBAQQDBAICBAQEAwECAQEDBQMCAQIBAeQCBAQDAQQGBgYDCAMEBAIBAQECAuUC4gYKCAQBAQQICgYFDAYGAQEGBgwFfgEBAwEFAQICAgEBAQEBCgEBAQIBAgIDAQEBAgEEAQEJAQEBAQEBAgMDAwEBAVgBT4u4ami6iVEBAVGJumhquItPAdQEAwQBAQEBBQYLBYcEAQMBAQEBAQECAgIBAgEBARcBAwECAQEDAgUBfgECAgEDBAUCAQEBAgECAQEBAwEOCwMBAwEBAQEKDhURCQEBCREVDhJ0AQQDBQEDAQIBAQECAwEDAwUDA3QR/j0ZAQQBAQMDAQQCAwQDAgEFAwMBAQEBAQEGAQEBAQEBAQQDBAECAwEBAQEBAXkEDQkHAQEBBQsLBgIzBwkIAwEBAQMCBQECAQQCAgcTAQEBAQECAQEBAQEBAQEBBAQGAf4UAQQBAQEBAQEBAQECAgQCAQIBAXYCAQMCHAEBAQEBAQEBAQECAgEBAQQDBLmXAQMBAgEDAwUCAgECAgEBAQEBBAQFBAMBBAIEAQEBAQEBAwEECQoHAgEBAgMB5gEDAQIEAgUCCQIHBQgCAwIEAgPkAAAAAAEAAP/ABAADwAACAAATASEABAD8AAPA/AAAAAABAAAAAQAAZkMcdl8PPPUACwQAAAAAAM65iEkAAAAAzrmISQAA/8AEAAPAAAAACAACAAAAAAAAAAEAAAPA/8AAAAQAAAAAAAQAAAEAAAAAAAAAAAAAAAAAAAAYAAAAAAIAAAAEAAAQBAAAAwQAAN0EAAC8BAAA3QQAAOcEAAChBAABMwQAASIEAAFXBAABhgQAAP0EAAADBAAAAwQAAAMEAAAABAAAAwQAAAMEAAAEBAAAAwQAAAQEAAAAAAAAAAAKAcQCtgOIBDwFEgVeBgAGhgcOByAHlAlQChgLAgtoDCQM0g10DaQOLBBWEGQAAAABAAAAGAGxAA0AAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAADgCuAAEAAAAAAAEADgAAAAEAAAAAAAIADgBHAAEAAAAAAAMADgAkAAEAAAAAAAQADgBVAAEAAAAAAAUAFgAOAAEAAAAAAAYABwAyAAEAAAAAAAoAKABjAAMAAQQJAAEADgAAAAMAAQQJAAIADgBHAAMAAQQJAAMADgAkAAMAAQQJAAQADgBVAAMAAQQJAAUAFgAOAAMAAQQJAAYADgA5AAMAAQQJAAoAKABjAGkAYwBvAG0AbwBvAG4AVgBlAHIAcwBpAG8AbgAgADAALgAwAGkAYwBvAG0AbwBvAG5pY29tb29uAGkAYwBvAG0AbwBvAG4AUgBlAGcAdQBsAGEAcgBpAGMAbwBtAG8AbwBuAEcAZQBuAGUAcgBhAHQAZQBkACAAYgB5ACAASQBjAG8ATQBvAG8AbgAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA) format("truetype"), url(data:application/font-woff;charset=utf-8;base64,d09GRgABAAAAACToAAsAAAAAJJwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABPUy8yAAABCAAAAGAAAABgDrENKmNtYXAAAAFoAAAARAAAAETgPPCKZ2FzcAAAAawAAAAIAAAACAAAABBnbHlmAAABtAAAIMgAACDI7/uJDWhlYWQAACJ8AAAANgAAADYAklUPaGhlYQAAIrQAAAAkAAAAJAfCA9lobXR4AAAi2AAAAGAAAABgWgAKWmxvY2EAACM4AAAAMgAAADJmel9MbWF4cAAAI2wAAAAgAAAAIAAmAbNuYW1lAAAjjAAAATkAAAE5RBe01nBvc3QAACTIAAAAIAAAACAAAwAAAAMEAAGQAAUAAAKZAswAAACPApkCzAAAAesAMwEJAAAAAAAAAAAAAAAAAAAAARAAAAAAAAAAAAAAAAAAAAAAQAAg8AADwP/A/8ADwABAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAgAAAAMAAAAUAAMAAQAAABQABAAwAAAACAAIAAIAAAAg4BTwAP//AAAAIOAA8AD////hIAIQFwABAAAAAAAAAAAAAQAB//8ADwABAAAAAAAAAAAAAgAANzkBAAAAAA0AEAF9A+kB+AAyAFsAjgC3AL4AywEBARkBMQE1ATkBPQFKAAATPgM3PgMzMh4CFx4BHAEHFA4CBw4DBw4DIyIuAicuAzUmNCY2NTMGFgYWFx4DMzI+Ajc+Azc0Ni4BJzQuAiMiDgIHDgMVMz4DNz4DMzIeAhceARwBBxQOAgcOAwcOAyMiLgInLgM1JjQmNjUzBhQGFhceAzMyPgI3PgM3NDYuASc0LgIjIg4CBw4DFTczFzczByM3Mwc3Mxc3MwcjJwcjJTMyHgIXHgIGFQ4DBxQOAgceAxUWFBYGFQ4DBxQOAgciDgIHIgYqATEjNxczOgE+ATU+AjQ3JjYmNCcwLgIrAQcHMzI+AjU2NDY0NyY2JjQnNC4BIisBBwczNyM3IwczJzM3IyEHJyMHMzcXMzcHMze1AgQIBwYECwwOBgkLDAcEAwUCBAMFAQQEBwYFAwkHCwQGCAgGBAIGBAQDAQIlAgEBAgECAgUEBAIHAwYBAwMEAQICAQECBQMGAgQEBgMDAQUCBGUCBAgHBgQMCw4GCQsMBwQDBQIEAwUBBAQHBgUDCQcLAwYICQYEAgYEBAMBAiUBAQIBAgIFBAQCBwQFAQMDBAECAgEBAgUDBgIEBAYDAwEFAgRjKAcuJEQpeyIBICMEGyIzJAQmIwEwRgMJBQYBAgICAQEBBAIDBQIFAgIHAwQCAgEBAQMBAwQDBQECAgUDBAIGAwRBGhsQAgQCBAIBAgEBAgIBAwIEAhEDCxMCBQIEAwMBAQEBAgMCBQITBKpwBW5yaQdrYXEEbv11IQUvGh8SBRosFR8ZAboHDQwJBAQHBAICBAYEBAoLDQcFCggIAwMGBgQCAgICAQEBAwECBAUGAwQICAoFBQcHBQICAwIBAQIDAgIFBwkFBAcGBQICAwIBAQIDAgIFBwcFBw0MCQQEBwQCAgQGBAQKCw0HBQoICAMDBgYEAgICAgEBAQMBAgQFBgMECAgKBQUHBwUCAgMCAQECAwICBQcJBQQHBgUCAgMCAQECAwICBQcHBTxWVnd3Q0NDQ3dLS3cBAwMCAgUFBgMDBAUEAgEDAgEBAQICBAIBBQQGAgMEBAQCAgMDAwEBAQEBAXcvAQEBAQICAgIBAgICAQEBARcvAQEBAQECAgICAQIDAQEBAQEYGBwtHC0cSUl3WlpaWncABQAD/8MD/QO9AB4APQBSAKIArwAAASImBiYHJg4CBw4DFRQeAjcWPgI1NC4CJzc0LgInDgMHDgMVFB4CFz4DNz4DNQMOAxUUHgI3Fj4CNTQuAicDLgM1ND4CNz4DNy4DNTQ+AjcGJgYmBy4DNTQ+Ajc+AzcXDwEeAxUUDgIHDgMVFB4CHwEeAxUUDgInJScVJzUnNTc1NxU3FQHgAgMEBAICDxQWCwUUEg4RHisbGCQZDAgSGxMkCxUfFQYNDAsEBAYDAgoVHxUHDAwKBAYHAwEEabqKUFCKumlpuopQUIq6aVslNSIRBQwTDw8jIx4MBAcGAwECAgECBgUFAxopHA8ECQ4LDiAgHg6KKycGDw8JCRAUCgQGBgMDBgYCGAsUEAkXLUIqAWNBIkJCIkEBbQEBAQEBAgEFAgMIEBcTEB4VDAEBCxIbDg4TFBQOqhIpJhcBAQEGBwYEDQwOBhEoJBcBAQIHBgUEDgsMBAGmAU+LuWpou4lRAQFRibtoarmLTwH89wEOHCAUBxYUFgcLCgcCAQQKCg0HBQYHBAQBAQIBAQERHiQUChkXFgkMDQgBAQEZAQQPFB0RFBoXEAkCCAcKBAcHCAQDEgoRFhkSFi4iFgH0AUMBQQEfAUEBQwEhAAAAAAQA3QB6A0MC4wALAFsAegCZAAABIycjByMHMwczJzMFJy4DJz4DNz4DJzYuAiczNyMiDgIHDgMHHgMzMjYyNjMOAxcGHgIXDgMHDgMHHgMzMj4CJzYuAicnIi4CNyY+Ajc+AzMyHgIHFg4CBw4DIxMiLgInPgM3PgMzOgMXHgMHFg4CIwNDUQEoAVABUgEqAVP+3BwFBgcDAQEDBwcFDBoTDAEBDRAVBjA2rBAnJigRDhEMBAEBEiMyIQMHBgcDAQQBAgEBBQYKAw0nKSwSFBcPBgEBFCxBLTRTNh0BAQwSGg1sGSgYDQEBAgMIBQUNEA8JGCgZDgEBAgMJBgYMEA4JAiI0JxQBARAYFwgMHRcTAgQEBQMEFiMVCwEBEB4uHAHRUVEoUVElFwMGCAsHBgsKCAQKFhoiFxciGhEGIQMJEQ4LGx0eDhcuJBYBAQQGCAgFCg8NDAUBAwgOCwsZGxkLFiohExosNxwVIBsWC1seLDEVCBAQDwcGCQYDHi00FQYODw8HBQkHBP69DxokFhUeEwsCBAUDAQEQGhgZDxMgFw4AAAMAvADoA0QCkAA0AGkAfgAAARQOAg8BDgEuAScuAQ4BBw4BLgEvAS4DNTQ+AjM0FDQUNT4DFzYeAhceAxUHFA4CDwEOAiYnLgIGBw4CJi8BLgM1ND4CNxQ0FDYVPgM3HgMXMh4CFQcOAS4BJy4BNDY3PgIWFx4BFAYHA0QBAgICIQMICAcENoSIhDcDBwgIAyECAgIBAQICAiFKUFYsLFZQSiEBAwIBeQEBAwEgAwgHCAMeRkhGHgMIBwgDIAEDAQEBAgICARQuMjQbGzQyLhQCAwIBngkYGBgJCgkJCgkYGBgJCgkJCgIIAgUDBAEjAgQBAQQwMQEvMQIEAQIEIQMCBQMEAQUCBQEBAgEBHC8dEQEBER0vHAMCBQMDeAMEBQIDHwQCAQMCGRgBGhcEAQEEAiEBBAMGAQMDBAMCAQIBAQETGhMIAQEIExoTBQIGAagJCgEJCggZGBgJCggBCggLFhoXCgAAAAEA3QDbAyMCtwChAAABDgMHFRQOAgcOAwcuAycuAycuAzU0PgIXNhY2FjcWPgI3LgMnIjQwNDE0PgEyNxY2FjIXLgM1ND4CFzYeAjMuAzU0PgI3MjYyNhc2FjIWMx4DFx4DFzQmPAE1ND4CNx4DFz4DNzI2MjYVNh4CFRQOAgc+AzcWMh4BFTQGMAY1AyEFDQ4PCAQIDAcVP1BcMxQoJyYSAwcHBwMBAgEBAgMDAgQGBwcEDx8dHA0QHBgRBQEBAwQCAQICAgEOFhAJAgMFAgIFBgUCBwoHBAIEBwQBAQICAgECAgIBBAgJCQQTKy8xGgEUIi0aDBgWFQkIERAPCAEBAQICBAMBBQgJAgIJCQkBAgMDAgEBAnIIEQ4OBQsSJSMjEC9IMxoBAQQKDgoBBAMFAQIBAwEDAQQCAwEBAgECAQEFCA0HBQ4WGxACAQMCBAEBAQEBChYcHhIBBQIDAQEDAgMHFBMXCQkQEQ8HAwIBAQECBggKCAUQHRMOAQEFAgUBGy0jEgEBAwsMCQMEBwcFAQEBAQMBBQEFDA8LBAEDBQEBAQQDAwEDAwEAAQDnAKYDGQKHADcAACUqASYiJw4DBw4DByIuAjUwNDgBMSY+Ajc+AzcuAzU0PgIzMh4CFRQOAiMCAAYLDAsFECElJhQFCAkKBAMFBAMBAQMEAQgPDw4FGCccDy1MZjo6ZkwtLUxmOvcBAQ4XEw8FAQICAQECAwQDAQMEBQQCCBEVGxQOIigtGClJNx8fNkkqKkk2HwAAAAACAKEAnQNfAsUANwB5AAABIi4CJw4DBw4DBzAiOAExIi4CJzQ+Ajc+AzcuAzU0PgIzMh4CFRQOAiMFHgMXHgMVDgMnIi4CJy4DJw4DIyIuAicWMhYyMzI+Ajc+AzU0LgInHgMVFA4CBwG1CRIREQgNGhscDwQJCAkEAQIFAwIBAQIDAgYMDAsFGCYcDitLZTk5ZEssLEtkOQFCBQsMDAYCAwIBAQIEBQIECQkIBA8cGxoNCBEREgkaMy8qEwQJCQgFHz05NRYZJhoNAQIEAhkoHQ8OHCYYATMBAgIBCA8NCgQBAgEBAQIDBAIDBQQEAgYNDxMMDiIoLRgqSTYgIDZJKipJNiA5DBIQDAcCAwUEAwMEAwIBAgECAQQKDA8JAQMBAQcNFAwBAQkRGhASKi4zGggPDw4IDiMpLhgYLSgjDgAAAAAEATMAmwLNAyIAKQA+AFMAaAAAATQ2PAE1NC4CMTAOAhUcAhYVBxUzNTceAzEzMD4CNxcVMzUnByIuAjU0PgIzMh4CFRQOAiM1Ii4CNTQ+AjMyHgIVFA4CIzUiLgI1ND4CMzIeAhUUDgIjAokBKzQrKzQrAURLDgQGBQPEAwUGBA5LRIkIDgsGBgsOCAgOCwYGCw4ICA4LBgYLDggIDgsGBgsOCAgOCwYGCw4ICA4LBgYLDggBwwMGBwYDU3pRKChRelMDBgcGA0PldA4PFxAICBAXDw505UNvBwoPCAgOCwYGCw4ICA8KB3EGCw4ICA8KBwcKDwgIDgsGcQYLDggIDgsGBgsOCAgOCwYAAwEiAQMCzgKsABQALQBnAAABFA4CIyIuAjU0PgIzMh4CFQcRFA4CKwEiLgI1ETQ+AjsBMh4CFQUVFA4CKwEiLgI9ATQuAiMiDgIdARQOAisBIi4CNRE0PgI7ATIeARQVPgMzMh4CFQGKCA4TCwsSDgkJDhILCxMOCAMCAwQCTAIEAwICAwQCTAMDAwIBRwIDBAJOAgQDAgMJDgwOEwwEAgMEAkwDBAMBAQMEA0oEBQEIEhQUCxopHhACeAsSDwgIDxILCxMOCAgOEwtd/vMDBAMBAQMEAwENAgQDAgIDBAJYtQMEAwEBAwQDpAoQCwUJEBYNkgMEAwEBAwQDAQ0CBAMCBAYHAwcKBwMNGigbAAABAVcAdwKxAocABgAAASM3IwMzBwKxlXzOc4k8AcDH/t3tAAABAYYAzAJ0AqgAUgAAARUXNhYyFjMeAhQVBw4DBycVFA4CJwcmIi4BPQEnBi4CPQE0PgIXNzU0PgI3FjIeARc2HgIVByIUDgEjBiIGJgcuAiInDgMVAhxDAgICAgEBAQEEAQIDBAI/AgMEAk4CBQMCJQMEAwICAwQDJQ4bKhsKEhERCAIEAgEIAQIBAQEDAgMBBQsLCgUHCgQCAjcbAQEBAgIBBAECPQQDBAEBAe8BBQMCAQEBBQMD7QEBAwMFAj8BBQIDAQEfHSccDQEBBAIEAQQCBQI9AwICAgEBAQIBAgEBAQcJCAAABwD9AIwDewMdACMAOABrALUA5QFLAZsAAAEeAzsBMj4CNz4BNCYvATU0LgIjIg4CHQEHDgEUFhc3Mh4CFRQOAiMiLgI1ND4CMwc3MT4DOwEyHgIXOAMxFzgDMRwBFhQxFA4CKwEiLgI1MDQ2NDU4AzETOAMxHgIyNz4DNzA+AjE3PgI0Jy4DLwEuAycmIg4BDwEiDgIxMA4CBwYUHgEXOAMxHgMXHgMXBzA6ATYxNzgDMT4CJicuAycuAycuASIGDwE4AzEwBhwBMRQeAjM3Ig4CBzgDMTgDMQcOAhQdATgDFRQOAiM4AzEhIi4CJxE+AzsBMDI4ATEyPgI3OAIyMTc1PAM1NC4CKwEiDgIVERQeAjMhMj4CPQEuAyMDFzEeAzMyOAIxMzIeAhU4AzEVFB4CMzI2MjYzNzgCNjE3PgMzNCI4ATEyPgE0NzU0LgIrASIOAhUwIhQwMRwDHQEBiQEDBAQD0AMEBAMBAgEBATsKEBYNDRYQCjsBAQECdwYKCAQECAoGBgoIBAQICgZCBQECAwMCZAIDAwIBBQECAwQDbgMEAwIBrAECAgMBBAcHBgIBAgLlAgIBAQECBAQDCAMGBgYEAQMEBALkAQECAQIDBQMBAQIBAwQEBAICBAMEATQBAQEWBAMBAQIBAwIDAgECAwICAgQDAwEHAQIDBAPBAQMCAgEdAQEBAgQEAv58AgQDAgEBAQMDAk8BAQQCAgEBCQICBAJ+BgkHBQUHCQYB0AYJBwUBAQQEApcIAQIDAwEBUAIEAwICAwQCAgICAQEWAQEBAQECAQEBAgEBBQcJBn0CBAMBAQJJAgMCAQECAwICBAUEAnMTDRYQCgoQFg0QdgIEBQQCtgUHCwYFCwcFBQcLBQYLBwWMCgEDAgEBAgMBCgEBAQIDBAMCAgMEAwIBAQH+ugEBAQEBAwQEAgECAuUCAwMDAgMHBgYDCAMEAwMBAQECAuUCAQEDBgsIAQMCAgECAwMDAgIFBAUDHwEHAQIDAwICAwMEAQEDAgIBAgIDAhgBAQIDBAMCXgEBAQEdAQECAgF3AQIEBAEBAwQCAesCAwMCAQICARIIAQMCAwECBAMCBAcKBv3MBQoHBAQHCgW6AwQDAgFqEAECAgECAwQDfQIEAwIBAhYBAQEBAQEBAgIDAYYGCgcEAgMEAwEBAgICAQoABAAD/8MD/QO9ABQAKQBeAJMAAAEiDgIVFB4CMzI+AjU0LgIjEw4BIiYnLgE0Njc+ATIWFx4BFAYHNwcOASImJy4BIgYHDgEiJi8BLgM1ND4CNzA0MDIxPgMzMh4CFx4DFRQOAgc3Bw4BIiYnLgEiBgcOASImLwEuAzU0PgI3OAE0MDE+AzMyHgIXHgMVFA4CBwIAabqKUFCKumlpuopQUIq6aS0JGBgYCQoJCQoJGBgYCQoJCQqYIAMIBwgDHkZIRh4DCAcIAyABAwEBAQICAgEULjI0Gxs0Mi4UAgMCAQEBAwF4IQMICAcENoSIhDcDBwgIAyECAgIBAQICAiFKUFYsLFZQSiEBAwIBAQICAgO9UIq6aWm6ilBQirppabqKUP0rCgkKCQkYGRcKCQkJCQoXGRgJlyADAwIDGBkZGAMCAwMgAgMEBQICBAQDAQESGxIJCRIbEgEEAwUCAgUEAwJ5IgMDAgMxMDAxAgMDAyICAwQEAwIEAwQBAR0uHhAQHi4dAgMEBAIDBAQDAgAAAAIAA//DA/0DvQAUALYAAAEiDgIVFB4CMzI+AjU0LgIjAQ4DBxUUDgIHDgMjIi4CJy4DJy4DNTQ+AjMyFjIWMzI+AjcuAycmPAEwNTQ+AjM6AhYzLgM1ND4CMzIeAhcuAzU0PgI3PgMzOgEeARceAxceAxc0JjwBNTQ+AjMyHgIXPgM3NjI2MjEyHgIVFA4CBzI+AjMyHgIVMBwBBjECAGm6ilBQirppabqKUFCKumkBIQYODxAGAwgLCBU/T10yFSgnJRIEBwYHAwECAQECAwMCBAYHBwQPHx0cDRAcGBEFAQEDBAIBAgICAQ4WEAkCAwUCAgUGBQIHCgcEAgQHBAEBAgICAQICAgEECAkJBBMrLzEaARQiLRoMGBYVCQgREA8IAQEBAgIEAwEFCAkCAgkJCQECAwMBAQO9UIq6aWm6ilBQirppabqKUP61CRAPDQYKEyQkIhEuSTIbBQkPCQIDBAQCAQICAgICAwMCAQEECQwIBA8VHA8BAQEBAgMDAQEJFxsfEQIEAwICAwIBCBMUFgoIERAQBgECAQEBAQEFCQkJBBEcFA0CAgQDBAIaLiITBAoNCAIFBggEAQECAgQCBA0ODAMEBAIBAwQCAgECAAAAAAIAA//DA/0DvQAUAEwAAAEiDgIVFB4CMzI+AjU0LgIjESoBJiInDgMHDgMHIi4CJzA0OAExND4CNz4DNy4DNTQ+AjMyHgIVFA4CIwIAabqKUFCKumlpuopQUIq6aQYLDAsFECElJhQFCgoKBQICAwYGAwQEAgcQEA4FGCcbDixMZjs6ZkwsLExmOgO9UIq6aWm6ilBQirppabqKUP06AQEOFxMPBQECAgEBAgMEAwEDBAUEAggRFRsUDiIoLRgpSTcfHzZJKipJNh8AAAMAAP/ABAADwAAUAEwAjgAAASIOAhUUHgIzMj4CNTQuAiMDDgMjMCI4ATEiLgInND4CNz4DNy4DNTQ+AjMyHgIVFA4CIyIuAicOAwcFHgMVDgMnIi4CJy4DJw4DIyIuAicWMhYyMzI+Ajc+AzU0LgInHgMVFA4CBx4DFwIAaruLUFCLu2pqu4tQUIu7av0ECQgJBAECBQMCAQECAwIGDAwLBRgmHA4rS2U5OWRLLCxLZDkJEhERCA0aGxwPAiICAwIBAQIEBQIECQkIBA8cGxoNCBEREgkaMy8qEwQJCQgFHz05NRYZJhoNAQIEAhkoHQ8OHCYYBQsMDAYDwFCLu2pqu4tQUIu7amq7i1D9SQEBAQEBAgQCAwUDBAIGDQ8SDA4jKCwYKkk2ICA2SSoqSTYgAQIDAgkPDAoEUAIDBQQDAwQDAgECAQIBBAoMDwkBAwEBBw0UDAEBCREaEBIqLjMaCA8PDggOIykuGBgtKCMODBIQDAcAAAAFAAP/wwP9A70AHgAzAF0AfACbAAABOAMxFB4CMzI+AjU4AzE0LgIjIg4CFRMiDgIVFB4CMzI+AjU0LgIjEyM1Jw4DMSMwLgInBxUjNTc8ASY0NTQ+AjEwHgIVFA4BFAcXFSc4AzEUHgIzMj4CNTgDMTQuAiMiDgIVNTgDMRQeAjMyPgI1OAMxNC4CIyIOAhUB2QYLDggIDgsGBgsOCAgOCwYnabqKUFCKumlpuopQUIq6achAEQMIBgTEBAYHBBFAQQEqNCsrMysBAQFB7wYLDggIDgsGBgsOCAgOCwYGCw4ICA4LBgYLDggIDgsGAewIDgsGBgsOCAgPCgcHCg8IAdFQirppabqKUFCKumlpuopQ/Nh6EQ8WDwcHDxYPEXrrQwMGBwYDU3pRKChRelMDBgcGA0Pr5wgPCgcHCg8ICA4LBgYLDgjhCA4LBgYLDggIDgsGBgsOCAAAAAAEAAP/wwP9A70AFAAtAEIAfAAAASIOAhUUHgIzMj4CNTQuAiMDFA4CKwEiLgI1ETQ+AjsBMh4CFREDIi4CNTQ+AjMyHgIVFA4CIwEcAgYrASIuAj0BNC4CIyIOAh0BFA4CKwEiJjwBNRE8AjY7ATIeARQVPgMzMh4CHQECAGm6ilBQirppabqKUFCKuml4AQMEAksCBAMCAgMEAksCBAMBMgsSDgkJDhILCxMOCAgOEwsBcgMCTgIFAwMCBw4LDhIKBAMFBgJMAwEBA0oEBQEIERMUChopHA8DvVCKumlpuopQUIq6aWm6ilD9UwIEAwICAwQCAQoDBAICAgIEA/72ATQIDxILCxMOCAgOEwsLEg8I/soDAwIBAQIDA6QKEAsFCRAWDZIDAwIBAQIDAwENAgQDAQQGBgMHCgcDDRooG7UAAAACAAT/xAP8A7wAFAAcAAABIg4CFRQeAjMyPgI1NC4CIwM3IxMzBzMBAgBpuYpQUIq5aWm5ilBQirlpXDyJc858lf7zA7xQirlpabmKUFCKuWlpuYpQ/L7rASDA/rUAAAACAAP/wwP9A70AFABnAAABIg4CFRQeAjMyPgI1NC4CIxMGFA4BBw4BKgEjLgMjIg4CHQEzMjYyFjMeAhQVBw4DKwEVHAEOASsBIi4CPQEjIi4CPQE0PgEyOwE1ND4CMzIeAhcyHgIVBwIAabqKUFCKumlpuopQUIq6aWwBAgEBAQMCAwEFCwwLBAgKBgJHAgICAgEBAQEEAQIDBAJDAgMCTgIEAwImAwMDAQEDAwMmDhspHAkSEhAJAgMCAQgDvVCKumlpuopQUIq6aWm6ilD+mAECAwEBAQEBAgEBAgYKByIBAQECAgIBPQMDAwLuAgYGBAQGBgLuAgMFAz4CAgEmHCgbDgEDAwMDAwQDPAAAAAgABP/EA/wDvAAUAEcAXACsANABAAFmAbAAAAEUHgIXPgM1NC4CByYOAhUHNxY+AjU0MCYwNRQ0FDQVJxQ0FDQVLgIiJwcmDgIHFQcUNBQ0FTAGMBQxFB4CFxMOAxUUHgI3Fj4CNTQuAicXND4CNxc2HgIdATAOAicUNAYwFSYGIgYxBzQUJhQ1BzQGJgYnBi4CPQEUNjI2FTQuAicHNBQ0FCcGJiImIy8BNTA+AjE0MjYWNQc0PgI3HgMdARceARQGBw4CIgcnBiYiJicmND4BPwE1Ezc+AR4BFzIeAjMeAxceAQ4BJxQ0FDQVBxQmBiYVLgM1FDQwNhU0FDQUNRcUDgInBS4DNRE0PgI3FzYeARQXFA4CHQEHNBQ2FDUOAiYHNDA0MDUHJg4BFBURHAEyFjcFNBQ0FDUWPgI1NAYiBj0BND4BMjU3NBQ0FjUUNBQ0FTYyNjI3HgMdASc0DgI1DgMHIgYmIicUNBQ0FS4DJy4DJzQUNBQ1Ii4BNDM+AzUUNjI2Fzc+ATI2FzIeAh8BHgMXFhQOAQ8BAeQECAoGBgoIBAQICgYGCggEG24DBAMCAQUBAgMDAmQCAwMCAQUBAgMEAzdpuYpQUIq5aWm5ilBQirlpYQEDBAJ9BgsJBgECAwEBAQECAgIBFgMDAwEDBQQDAQEBAQIDAlABAQMDAgEEDAIBAQIBApkIDxUMDRUOCD4BAQEBAQMDBAPQAwQEAwECAQIBPWMHAQMDBAICAgMCAQIDAgMBAgEBAwQWAQEBAwQDAgHdBgkLBv4wBgsJBgYJCwZ+AgMBAQIBAgUBAQEDAgJPAgEBAQMCAYQCBAIBAQEBAgICHwEBAwMDAgIFBQJ2AgIBAgYHBwQBAwICAQEEAwQCAgQEBAMBAgEBAwUDAgECAQHkAgQEAwEEBgYGAwgDBAQCAQEBAgLlAuIGCggEAQEECAoGBQwGBgEBBgYMBX4BAQMBBQECAgIBAQEBAQoBAQECAQICAwEBAQIBBAEBCQEBAQEBAQIDAwMBAQFYAU+LuGpouolRAQFRibpoariLTwHUBAMEAQEBAQUGCwWHBAEDAQEBAQEBAgICAQIBAQEXAQMBAgEBAwIFAX4BAgIBAwQFAgEBAQIBAgEBAQMBDgsDAQMBAQEBCg4VEQkBAQkRFQ4SdAEEAwUBAwECAQEBAgMBAwMFAwN0Ef49GQEEAQEDAwEEAgMEAwIBBQMDAQEBAQEBBgEBAQEBAQEEAwQBAgMBAQEBAQF5BA0JBwEBAQULCwYCMwcJCAMBAQEDAgUBAgEEAgIHEwEBAQEBAgEBAQEBAQEBAQQEBgH+FAEEAQEBAQEBAQEBAgIEAgECAQF2AgEDAhwBAQEBAQEBAQEBAgIBAQEEAwS5lwEDAQIBAwMFAgIBAgIBAQEBAQQEBQQDAQQCBAEBAQEBAQMBBAkKBwIBAQIDAeYBAwECBAIFAgkCBwUIAgMCBAID5AAAAAABAAD/wAQAA8AAAgAAEwEhAAQA/AADwPwAAAAAAQAAAAEAAGZDHHZfDzz1AAsEAAAAAADOuYhJAAAAAM65iEkAAP/ABAADwAAAAAgAAgAAAAAAAAABAAADwP/AAAAEAAAAAAAEAAABAAAAAAAAAAAAAAAAAAAAGAAAAAACAAAABAAAEAQAAAMEAADdBAAAvAQAAN0EAADnBAAAoQQAATMEAAEiBAABVwQAAYYEAAD9BAAAAwQAAAMEAAADBAAAAAQAAAMEAAADBAAABAQAAAMEAAAEBAAAAAAAAAAACgHEArYDiAQ8BRIFXgYABoYHDgcgB5QJUAoYCwILaAwkDNINdA2kDiwQVhBkAAAAAQAAABgBsQANAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAA4ArgABAAAAAAABAA4AAAABAAAAAAACAA4ARwABAAAAAAADAA4AJAABAAAAAAAEAA4AVQABAAAAAAAFABYADgABAAAAAAAGAAcAMgABAAAAAAAKACgAYwADAAEECQABAA4AAAADAAEECQACAA4ARwADAAEECQADAA4AJAADAAEECQAEAA4AVQADAAEECQAFABYADgADAAEECQAGAA4AOQADAAEECQAKACgAYwBpAGMAbwBtAG8AbwBuAFYAZQByAHMAaQBvAG4AIAAwAC4AMABpAGMAbwBtAG8AbwBuaWNvbW9vbgBpAGMAbwBtAG8AbwBuAFIAZQBnAHUAbABhAHIAaQBjAG8AbQBvAG8AbgBHAGUAbgBlAHIAYQB0AGUAZAAgAGIAeQAgAEkAYwBvAE0AbwBvAG4AAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==) format("woff"); font-weight: normal; font-style: normal; } /* Use the following CSS code if you want to use data attributes for inserting your icons */ [data-icon]:before { font-family: 'icomoon'; content: attr(data-icon); speak: none; font-weight: normal; font-variant: normal; text-transform: none; line-height: 1; -webkit-font-smoothing: antialiased; } /* Use the following CSS code if you want to have a class per icon */ /* Instead of a list of all class selectors, you can use the generic selector below, but it's slower: [class*="icon-"] { */ .icon-googeplus:before, .icon-moovweblogo:before, .main-header-logo:before, .blog-logo:before, .icon-wifi:before, .icon-twitter:before, .icon-speechbubble:before, .icon-speech:before, .icon-rocket:before, .icon-linkedin:before, .icon-lightning:before, .icon-facebook:before, .icon-clipboard:before, .icon-round-wifi:before, .category-icon-news:before, .icon-round-twitter:before, .icon-round-speechbubble:before, .category-icon-oped:before, .icon-round-speech:before, .icon-round-rocket:before, .category-icon-launch:before, .icon-round-linkedin:before, .icon-round-lightning:before, .icon-round-facebook:before, .icon-round-clipboard:before, .icon-round-googleplus:before { font-family: 'icomoon'; speak: none; font-style: normal; font-weight: normal; font-variant: normal; text-transform: none; line-height: 1; -webkit-font-smoothing: antialiased; } .icon-moovweblogo:before, .main-header-logo:before, .blog-logo:before { content: "\e000"; } .icon-round-googleplus:before { content: "\e001"; } .icon-googeplus:before { content: "\e002"; } .icon-wifi:before { content: "\e003"; } .icon-twitter:before { content: "\e004"; } .icon-speechbubble:before { content: "\e005"; } .icon-speech:before { content: "\e006"; } .icon-rocket:before { content: "\e007"; } .icon-linkedin:before { content: "\e008"; } .icon-lightning:before { content: "\e009"; } .icon-facebook:before { content: "\e00a"; } .icon-clipboard:before { content: "\e00b"; } .icon-round-wifi:before, .category-icon-news:before { content: "\e00c"; } .icon-round-twitter:before { content: "\e00d"; } .icon-round-speechbubble:before, .category-icon-oped:before { content: "\e00e"; } .icon-round-speech:before { content: "\e00f"; } .icon-round-rocket:before, .category-icon-launch:before { content: "\e010"; } .icon-round-linkedin:before { content: "\e011"; } .icon-round-lightning:before { content: "\e012"; } .icon-round-facebook:before { content: "\e013"; } .icon-round-clipboard:before { content: "\e014"; } .visuallyhidden { border: 0; clip: rect(0 0 0 0); height: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute; width: 1px; } .visuallyhidden.focusable:active, .visuallyhidden.focusable:focus { clip: auto; height: auto; margin: 0; overflow: visible; position: static; width: auto; } .clearfix:before, .clearfix:after { content: " "; display: table; } .clearfix:after { clear: both; } .invisible { visibility: hidden; } .hide-text { text-indent: 100%; white-space: nowrap; overflow: hidden; } .round-button, .blog-share, .round-button-green, .home-banner-link-circle, .form-submit-button, .feature2-item:nth-of-type(2n) .feature2-item-link, .comment-form #submit, .panel-item:nth-of-type(2n) .panel-link { display: inline-block; padding: 10px 25px; background: #00ac4d; text-align: center; text-decoration: none; color: white; line-height: 20px; border-radius: 20px; margin: 6px 0 10px; text-transform: uppercase; font-size: 13px; letter-spacing: .18em; font-weight: 700; overflow: hidden; text-overflow: ellipsis; -webkit-transition: all 0.3s ease; -moz-transition: all 0.3s ease; transition: all 0.3s ease; } .round-button:visited, .blog-share:visited, .round-button:link, .blog-share:link, .round-button-green:visited, .home-banner-link-circle:visited, .form-submit-button:visited, .feature2-item:nth-of-type(2n) .feature2-item-link:visited, .comment-form #submit:visited, .panel-item:nth-of-type(2n) .panel-link:visited, .round-button-green:link, .home-banner-link-circle:link, .form-submit-button:link, .feature2-item:nth-of-type(2n) .feature2-item-link:link, .comment-form #submit:link, .panel-item:nth-of-type(2n) .panel-link:link { background: #00ac4d; text-decoration: none; color: white; } .round-button:hover, .blog-share:hover, .round-button-green:hover, .home-banner-link-circle:hover, .form-submit-button:hover, .feature2-item:nth-of-type(2n) .feature2-item-link:hover, .comment-form #submit:hover, .panel-item:nth-of-type(2n) .panel-link:hover { background: #00c658; } .round-button-cyan, .feature2-item:nth-of-type(4n) .feature2-item-link, .feature2-item-link, .panel-item:nth-of-type(4n) .panel-link, .panel-link { display: inline-block; padding: 10px 25px; background: #00b4ea; text-align: center; text-decoration: none; color: white; line-height: 20px; border-radius: 20px; margin: 6px 0 10px; text-transform: uppercase; font-size: 13px; letter-spacing: .18em; font-weight: 700; overflow: hidden; text-overflow: ellipsis; -webkit-transition: all 0.3s ease; -moz-transition: all 0.3s ease; transition: all 0.3s ease; } .round-button-cyan:visited, .feature2-item:nth-of-type(4n) .feature2-item-link:visited, .feature2-item-link:visited, .panel-item:nth-of-type(4n) .panel-link:visited, .panel-link:visited, .round-button-cyan:link, .feature2-item:nth-of-type(4n) .feature2-item-link:link, .feature2-item-link:link, .panel-item:nth-of-type(4n) .panel-link:link, .panel-link:link { background: #00b4ea; text-decoration: none; color: white; } .round-button-cyan:hover, .feature2-item:nth-of-type(4n) .feature2-item-link:hover, .feature2-item-link:hover, .panel-item:nth-of-type(4n) .panel-link:hover, .panel-link:hover { background: #04c5ff; } .round-button-blue, .feature2-item:nth-of-type(3n) .feature2-item-link, .panel-item:nth-of-type(3n) .panel-link { display: inline-block; padding: 10px 25px; background: #037bac; text-align: center; text-decoration: none; color: white; line-height: 20px; border-radius: 20px; margin: 6px 0 10px; text-transform: uppercase; font-size: 13px; letter-spacing: .18em; font-weight: 700; overflow: hidden; text-overflow: ellipsis; -webkit-transition: all 0.3s ease; -moz-transition: all 0.3s ease; transition: all 0.3s ease; } .round-button-blue:visited, .feature2-item:nth-of-type(3n) .feature2-item-link:visited, .panel-item:nth-of-type(3n) .panel-link:visited, .round-button-blue:link, .feature2-item:nth-of-type(3n) .feature2-item-link:link, .panel-item:nth-of-type(3n) .panel-link:link { background: #037bac; text-decoration: none; color: white; } .round-button-blue:hover, .feature2-item:nth-of-type(3n) .feature2-item-link:hover, .panel-item:nth-of-type(3n) .panel-link:hover { background: #038dc5; } .dark-links a, .blog-control a, .blog-title a, .blog-part-category a, .blog-category a, .dark-links a:link, .blog-control a:link, .blog-title a:link, .blog-part-category a:link, .blog-category a:link, .dark-links a:visited, .blog-control a:visited, .blog-title a:visited, .blog-part-category a:visited, .blog-category a:visited { color: #4c4c4c; } .dark-links a:hover, .blog-control a:hover, .blog-title a:hover, .blog-part-category a:hover, .blog-category a:hover, .dark-links a:active, .blog-control a:active, .blog-title a:active, .blog-part-category a:active, .blog-category a:active { color: #7f7f7f; } .m-gray-links a, .blog-subtitle a, .m-gray-links a:link, .blog-subtitle a:link, .m-gray-links a:visited, .blog-subtitle a:visited { color: #747474; } .m-gray-links a:hover, .blog-subtitle a:hover, .m-gray-links a:active, .blog-subtitle a:active { color: #a7a7a7; } .green { color: #00ac4d; } .blue { color: #0097d5; } .cyan { color: #00b4ea; } .greenlink, .event-upcoming-link { color: #00ac4d; -webkit-transition: all 300 ease; -moz-transition: all 300 ease; transition: all 300 ease; } .greenlink:link, .event-upcoming-link:link, .greenlink:visited, .event-upcoming-link:visited { color: #00ac4d; } .greenlink:hover, .event-upcoming-link:hover, .greenlink:active, .event-upcoming-link:active { color: #00df64; } .circle-link { color: #00ac4d; text-transform: uppercase; letter-spacing: 0.1em; -webkit-transition: all 0.2s ease; -moz-transition: all 0.2s ease; transition: all 0.2s ease; } .circle-link:link, .circle-link:visited { color: #00ac4d; } .circle-link:hover { color: #00df64; } .circle-link:after { content: '\2022'; font-size: 50px; position: relative; top: 9px; left: 1px; } * { -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box; } body, html { height: 100%; } .main-heading { position: absolute; top: -100%; } .master-wrapper { min-height: 100%; margin-bottom: -245px; } .master-wrapper:after { content: " "; display: block; height: 245px; } body { font-family: 'Lato', sans-serif; font-weight: 300; font-size: 16px; line-height: 20px; color: #4c4c4c; letter-spacing: 0.05em; background: white; } p { line-height: 20px; margin: 0 0 15px; font-size: 14px; line-height: 20px; letter-spacing: .02em; } @media screen and (min-width: 960px) { p { font-size: 16px; line-height: 25px; margin: 0 0 20px; } } a, a:link, a:visited { color: #037bac; text-decoration: none; -webkit-transition: all 0.2s ease; -moz-transition: all 0.2s ease; transition: all 0.2s ease; } a:hover, a:active { color: #049fde; } a:hover .circle-link, a:active .circle-link { background: #049fde; } hr { display: block; height: 1px; border: 0; border-top: 1px solid #ccc; margin: 1em 0; padding: 0; } audio, canvas, img, video { vertical-align: middle; } fieldset { border: 0; margin: 0; padding: 0; } textarea { resize: vertical; } h1, .h1 { margin: 0 0 10px; font-size: 35px; line-height: 40px; font-weight: 700; letter-spacing: 0.02em; } @media screen and (min-width: 960px) { h1, .h1 { font-size: 36px; margin: 0 0 15px; } } h2, .h2 { margin: 0 0 10px; font-size: 30px; line-height: 35px; font-weight: 700; letter-spacing: 0.02em; } @media screen and (min-width: 960px) { h2, .h2 { font-size: 32px; } } h3, .h3 { margin: 0 0 10px; line-height: 30px; font-size: 20px; } @media screen and (min-width: 960px) { h3, .h3 { font-size: 22px; } } h4, .h4 { margin: 0 0 10px; line-height: 25px; font-size: 15px; } @media screen and (min-width: 960px) { h4, .h4 { font-size: 18px; } } h5, .h5 { margin: 0 0 10px; line-height: 20px; font-size: 13px; } @media screen and (min-width: 960px) { h5, .h5 { font-size: 15px; margin: 0 0 15px; } } h6, .h6 { margin: 0 0 10px; line-height: 20px; font-size: 12px; } @media screen and (min-width: 960px) { h6, .h6 { font-size: 13px; margin: 0 0 15px; } } blockquote, blockquote p { color: #747474; padding: 0; margin: 0 0 10px; font-size: 20px; line-height: 25px; font-weight: 700; letter-spacing: 0.05em; position: relative; } blockquote > p, blockquote p > p { text-indent: -.5em; } blockquote > p:before, blockquote p > p:before { content: "\201C"; position: relative; } blockquote > p:after, blockquote p > p:after { content: "\201D"; position: relative; left: 2px; } .blog-content img { display: block; margin: 20px auto; max-width: 100%; height: auto; } .blog-content audio, .blog-content video { max-width: 100%; } .alignright { float: right; display: inline; margin: 0 0 10px 15px; } .alignleft { float: left; display: inline; margin: 0 15px 10px 0; } ul, ol { margin: 0 0 15px; padding: 0 18px; } li { margin: 0 0 5px; font-size: 14px; } @media screen and (min-width: 960px) { li { font-size: 16px; } } b, strong { font-weight: 400; } .main-error { margin-top: 20px; font-size: 60px; line-height: 60px; } .map { position: relative; padding-bottom: 350px; /* 16:9 */ height: 0; } .map iframe { position: absolute; top: 0; left: 0; width: 100%; } .content-wrapper { *zoom: 1; max-width: 60em; margin-left: auto; margin-right: auto; max-width: 32.5em; padding: 10px; } .content-wrapper:before, .content-wrapper:after { content: " "; display: table; } .content-wrapper:after { clear: both; } @media screen and (min-width: 960px) { .content-wrapper { max-width: 60em; } } .content-item-description { font-size: 14px; line-height: 20px; font-weight: 300; letter-spacing: .06em; } @media screen and (min-width: 960px) { .content-item-description { font-size: 16px; line-height: 25px; } } .content-title { color: #037bac; font-weight: 400; text-transform: uppercase; } @media screen and (min-width: 960px) { .content-title { margin: 0 0 15px; line-height: 35px; font-size: 30px; } } .content-item-title { color: #037bac; text-transform: uppercase; margin: 0 0 5px; font-size: 17px; line-height: 25px; font-weight: 400; } @media screen and (min-width: 960px) { .content-item-title { font-size: 20px; } } .content-item-subtitle { color: #037bac; text-transform: uppercase; margin: 0 0 5px; font-size: 15px; line-height: 20px; font-weight: 300; } @media screen and (min-width: 960px) { .content-item-subtitle { font-size: 16px; } } .content-center-wrapper { padding: 20px 10px; font-size: 16px; } .content-center-wrapper p { font-size: 16px; } @media screen and (min-width: 960px) { .content-center-wrapper { font-size: 18px; display: block; float: left; margin-right: 3.22581%; width: 65.5914%; margin-left: 17.2043%; } .content-center-wrapper p { font-size: 18px; } .content-center-wrapper:last-child { margin-right: 0; } } .lt-ie9 .footer-gartner { display: none !important; } .lt-ie9 .blog-sidebar, .lt-ie9 .blog-meta, .lt-ie9 .blog-content-wrapper, .lt-ie9 .panel-item, .lt-ie9 .large-panel-item, .lt-ie9 .content1-item-imagewrapper, .lt-ie9 .customer-list-item, .lt-ie9 .content3-item-wrapper, .lt-ie9 .flexcontent3-item-wrapper, .lt-ie9 .date-item, .lt-ie9 .menu-header-menu-container, .lt-ie9 .content6-item-subwrapper, .lt-ie9 .content4-sideimagewrapper, .lt-ie9 .pressroom-column, .lt-ie9 .form2-content { margin-right: 0 !important; } .lt-ie9 .pricing-table { display: none !important; } .lt-ie9 .pricing-table-mobile { display: table !important; } .lt-ie9 .pricing-wrapper { padding-right: 60px; padding-left: 60px; } .lt-ie9 .content5-item { display: inline-block; margin-right: 0 !important; } .page-header { background: #f5f6f6; } .page-header-wrapper { *zoom: 1; max-width: 60em; margin-left: auto; margin-right: auto; max-width: 32.5em; padding: 30px 10px; } .page-header-wrapper:before, .page-header-wrapper:after { content: " "; display: table; } .page-header-wrapper:after { clear: both; } @media screen and (min-width: 960px) { .page-header-wrapper { max-width: 60em; } } @media screen and (min-width: 960px) { .page-header-wrapper { padding: 80px 10px; } } .page-heading { padding: 0 0 10px; text-align: center; border-bottom: 1px solid #4c4c4c; text-transform: uppercase; margin: 0 auto 15px; } @media screen and (min-width: 960px) { .page-heading { display: block; float: left; margin-right: 3.22581%; width: 65.5914%; margin-left: 17.2043%; } .page-heading:last-child { margin-right: 0; } } .page-description { text-align: center; font-size: 22px; line-height: 25px; font-weight: 300; margin: 0 auto; } @media screen and (min-width: 960px) { .page-description { display: block; float: left; margin-right: 3.22581%; width: 65.5914%; margin-left: 17.2043%; } .page-description:last-child { margin-right: 0; } } .page-content-wrapper { padding: 20px 0 0; } @media screen and (min-width: 960px) { .page-content-wrapper { padding: 30px 0 0; } } .page-column { display: block; float: left; margin-right: 10.34483%; width: 100%; } .page-column:last-child { margin-right: 0; } @media screen and (min-width: 960px) { .page-column { display: block; float: left; margin-right: 3.22581%; width: 48.3871%; } .page-column:last-child { margin-right: 0; } } .content-image-wrapper { *zoom: 1; max-width: 60em; margin-left: auto; margin-right: auto; max-width: 32.5em; padding: 0 10px; text-align: center; margin-bottom: 10px; } .content-image-wrapper:before, .content-image-wrapper:after { content: " "; display: table; } .content-image-wrapper:after { clear: both; } @media screen and (min-width: 960px) { .content-image-wrapper { max-width: 60em; } } @media screen and (min-width: 960px) { .content-image-wrapper { padding: 0 10px; } } .content-image { max-width: 100%; height: auto; } .image-retina { max-width: 50%; } .home-header { background: #f5f6f6; background-position: center bottom; background-repeat: no-repeat; } .home-header-wrapper { *zoom: 1; max-width: 60em; margin-left: auto; margin-right: auto; max-width: 32.5em; padding: 30px 10px; } .home-header-wrapper:before, .home-header-wrapper:after { content: " "; display: table; } .home-header-wrapper:after { clear: both; } @media screen and (min-width: 960px) { .home-header-wrapper { max-width: 60em; } } @media screen and (min-width: 960px) { .home-header-wrapper { padding: 100px 10px 80px; } } .home-heading { padding: 0 0 5px; text-align: center; text-transform: uppercase; font-size: 26px; letter-spacing: 0.05em; font-weight: 400; line-height: 35px; } .home-heading:after { content: ''; display: block; border-bottom: 1px solid #747474; max-width: 66%; margin: 0 auto; padding: 5px; } @media screen and (min-width: 960px) { .home-heading { display: block; float: left; margin-right: 3.22581%; width: 82.7957%; margin-left: 8.60215%; max-width: none; line-height: 45px; font-size: 36px; } .home-heading:last-child { margin-right: 0; } } .home-description { text-align: center; font-size: 16px; line-height: 25px; font-weight: 300; margin-bottom: 10px; letter-spacing: 0.05em; padding: 0 20px; } @media screen and (min-width: 960px) { .home-description { display: block; float: left; margin-right: 3.22581%; width: 65.5914%; margin-left: 17.2043%; padding: 0; max-width: none; font-size: 22px; line-height: 25px; margin-bottom: 20px; } .home-description:last-child { margin-right: 0; } } .home-link-wrapper { text-align: center; } @media screen and (min-width: 960px) { .home-link-wrapper { display: block; float: left; margin-right: 3.22581%; width: 82.7957%; margin-left: 8.60215%; } .home-link-wrapper:last-child { margin-right: 0; } } .home-headerbreak { display: inline; } @media screen and (min-width: 960px) { .home-headerbreak { display: block; } } .home-banner-link { font-size: 18px; } .home-banner-link-circle { line-height: 35px; padding: 0 40px; } .slider { *zoom: 1; display: block; } .slider:before, .slider:after { content: " "; display: table; } .slider:after { clear: both; } .slider--gray { background: #f5f6f6; } .slider--bordertop { border-top: 1px solid #dddddd; } .slider--borderbottom { border-bottom: 1px solid #dddddd; } .slider-heading { *zoom: 1; max-width: 60em; margin-left: auto; margin-right: auto; max-width: 32.5em; padding: 1px 10px; text-align: center; text-transform: uppercase; font-weight: 400; margin-bottom: 0; font-size: 25px; } .slider-heading:before, .slider-heading:after { content: " "; display: table; } .slider-heading:after { clear: both; } @media screen and (min-width: 960px) { .slider-heading { max-width: 60em; } } .slider-wrapper { *zoom: 1; max-width: 60em; margin-left: auto; margin-right: auto; max-width: 32.5em; padding: 10px 40px; position: relative; } .slider-wrapper:before, .slider-wrapper:after { content: " "; display: table; } .slider-wrapper:after { clear: both; } @media screen and (min-width: 960px) { .slider-wrapper { max-width: 60em; } } .slider-holder { overflow: hidden; } .slider-list { *zoom: 1; display: block; padding: 0; margin-bottom: 0; -webkit-transition: margin 0.3s ease; -moz-transition: margin 0.3s ease; transition: margin 0.3s ease; } .slider-list:before, .slider-list:after { content: " "; display: table; } .slider-list:after { clear: both; } .no-js .slider-item { display: block; float: left; margin-right: 14.28571%; width: 23.80952%; padding: 0; text-align: center; list-style: none; color: white; margin-bottom: 0; } .no-js .slider-item:last-child { margin-right: 0; } @media screen and (min-width: 960px) { .no-js .slider-item { display: block; float: left; margin-right: 3.22581%; width: 13.97849%; margin-bottom: 0; } .no-js .slider-item:last-child { margin-right: 0; } .no-js .slider-item:nth-child(6n) { margin-right: 0; } .no-js .slider-item:nth-child(6n+1) { clear: left; } } .js .slider-item { margin-right: 0; float: left; list-style: none; text-align: center; margin-bottom: 0; padding: 5px; } @media screen and (min-width: 960px) { .js .slider-item { margin-right: 0; margin-bottom: 0; } } @media screen and (max-width: 60em) { .slider-item:nth-child(3n) { margin-right: 0; } } .slider-next { position: absolute; right: 0; top: 50%; margin-top: -10px; width: 20px; height: 20px; border-radius: 50%; background: #00ac4d; display: block; text-indent: 100%; white-space: nowrap; overflow: hidden; } .slider-next:hover { background: #00df64; } .slider-next:before { content: '>'; position: absolute; left: -15px; font-size: 18px; top: -1px; color: white; } .slider-prev { position: absolute; left: 0; top: 50%; margin-top: -10px; width: 20px; height: 20px; border-radius: 50%; background: #00ac4d; display: block; text-indent: 100%; white-space: nowrap; overflow: hidden; } .slider-prev:hover { background: #00df64; } .slider-prev:before { content: '<'; position: absolute; left: -15px; font-size: 18px; top: -1px; color: white; } .slider-image { max-width: 100%; height: auto; } .form-wrapper { position: relative; min-height: 320px; } .form-items-wrapper { margin: 0 0 15px; } .form-input { display: block; font-size: 16px; padding: 5px .5em; margin: 0; border: 1px solid #b0b0b0; width: 100%; -webkit-transition: all 0.3s ease; -moz-transition: all 0.3s ease; transition: all 0.3s ease; } .form-label { display: block; width: 100%; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; line-height: 25px; text-transform: uppercase; } .form-item { *zoom: 1; margin: 0 0 5px; padding: 0 5px; } .form-item:before, .form-item:after { content: " "; display: table; } .form-item:after { clear: both; } .form-submit-wrapper { text-align: center; } .form-submit-button { padding: 10 40px; } .form--error { background: #FF9696; color: #522C31; border-color: #522C31; } .form-item[name="FirstName"] { width: 50%; float: left; } .form-item[name="LastName"] { width: 50%; float: left; } .form-item[name="State"] { width: 33.333%; float: left; } .form-item[name="Phone"] { width: 66.666%; float: left; } .form-thankyou { position: absolute; display: none; margin: 10px 0 0 5px; width: 100%; text-align: center; } .form-link-wrapper { text-align: center; } .form-link { line-height: 35px; padding: 0 30px; } .form-select { position: relative; } .form-select .form-input { background: transparent; border: 1px solid #b0b0b0; font-size: 16px; border-radius: 0; -webkit-appearance: none; -moz-appearance: none; appearance: none; text-indent: 0.01px; text-overflow: ''; z-index: 99; } .form-select .form--error { background: #FF9696; color: #522C31; border-color: #522C31; } .form-select:after { content: '\25BC'; position: absolute; right: 5px; top: 6px; color: #4c4c4c; pointer-events: none; } .form-inline-select { position: relative; margin: 10px 0; display: block; text-align: center; } .form-inline-select select { min-width: 100%; } @media screen and (min-width: 960px) { .form-inline-select { display: inline-block; margin: 10px 5px; } } .form2-wrapper { *zoom: 1; max-width: 60em; margin-left: auto; margin-right: auto; max-width: 32.5em; padding: 10px 10px 20px; } .form2-wrapper:before, .form2-wrapper:after { content: " "; display: table; } .form2-wrapper:after { clear: both; } @media screen and (min-width: 960px) { .form2-wrapper { max-width: 60em; } } @media screen and (min-width: 960px) { .form2-wrapper { padding: 30px 10px; } } .form2-content { display: block; float: left; margin-right: 10.34483%; width: 100%; } .form2-content:last-child { margin-right: 0; } @media screen and (min-width: 960px) { .form2-content { display: block; float: left; margin-right: 3.22581%; width: 48.3871%; } .form2-content:last-child { margin-right: 0; } } .form2-formwrapper { display: block; float: left; margin-right: 10.34483%; width: 100%; } .form2-formwrapper:last-child { margin-right: 0; } @media screen and (min-width: 960px) { .form2-formwrapper { display: block; float: left; margin-right: 3.22581%; width: 48.3871%; } .form2-formwrapper:last-child { margin-right: 0; } } .form2-text { margin-bottom: 20px; } .form2-title { color: #00b4ea; text-transform: uppercase; margin: 0 0 10px; font-size: 22px; } .form2-imagewrapper { text-align: center; margin-bottom: 20px; padding: 10px 5px 0 0; } @media screen and (min-width: 960px) { .form2-imagewrapper { margin-bottom: 30px; } } .form2-image { max-width: 100%; height: auto; box-shadow: 0 0 5px 0 rgba(0, 0, 0, 0.3); } .form2-speakers { margin-bottom: 20px; padding: 10px 0 10px 0; *zoom: 1; } .form2-speakers:before, .form2-speakers:after { content: " "; display: table; } .form2-speakers:after { clear: both; } .form2-speaker { float: left; width: 100%; border-bottom: 1px solid #dddddd; padding: 0 0 10px 0; *zoom: 1; } .form2-speaker:before, .form2-speaker:after { content: " "; display: table; } .form2-speaker:after { clear: both; } .form2-speaker-image-wrapper { width: 25%; padding-right: 20px; float: left; } .form2-speaker-image { max-width: 100%; border: 3px solid #dddddd; } .form2-speaker-name { font-weight: 400; padding: 20px 20px 0 20px; } .form2-speaker-title { font-weight: 300; display: block; font-style: italic; } .form-quote-wrapper { border: 1px solid rgba(3, 123, 172, 0.3); font-size: 18px; margin: 0 0 30px; font-style: italic; } .form-quote-wrapper p { padding: 20px 40px; font-size: 16px; margin-bottom: 0; } @media screen and (min-width: 960px) { .form-quote-wrapper p { font-size: 18px; padding: 30px 40px; } } .form-attritubtion { border-top: 1px solid rgba(3, 123, 172, 0.3); } .form-attritubtion p { font-weight: 400; color: #037bac; margin-bottom: 0; position: relative; padding: 10px 40px; } .form-attritubtion p:before { content: "—"; position: absolute; left: 15px; } .pressroom-wrapper { *zoom: 1; max-width: 60em; margin-left: auto; margin-right: auto; max-width: 32.5em; padding: 0 10px; } .pressroom-wrapper:before, .pressroom-wrapper:after { content: " "; display: table; } .pressroom-wrapper:after { clear: both; } @media screen and (min-width: 960px) { .pressroom-wrapper { max-width: 60em; } } .pressroom-header { *zoom: 1; display: block; margin-bottom: 10px; } .pressroom-header:before, .pressroom-header:after { content: " "; display: table; } .pressroom-header:after { clear: both; } @media screen and (min-width: 960px) { .pressroom-header { margin-bottom: 20px; } } .pressroom-title { color: #00b4ea; text-transform: uppercase; margin: 0; font-size: 20px; font-weight: 400; } .pressroom-item-title { text-transform: uppercase; margin: 0; font-size: 17px; color: #00b4ea; font-weight: 400; } .pressroom-item { *zoom: 1; display: block; margin-bottom: 25px; } .pressroom-item:before, .pressroom-item:after { content: " "; display: table; } .pressroom-item:after { clear: both; } .pressroom-itemsecond { *zoom: 1; display: block; margin-bottom: 40px; } .pressroom-itemsecond:before, .pressroom-itemsecond:after { content: " "; display: table; } .pressroom-itemsecond:after { clear: both; } .pressroom-image { max-width: 100%; height: auto; } .pressroom-side-wrapper { height: 40px; width: 80px; float: left; margin: 0 20px 20px 0; text-align: center; padding: 5px 0 0; } .pressroom-content-wrapper { margin: 0 0 0 100px; } .pressroom-text { margin-bottom: 5px; } .pressroom-readmore { color: #00ac4d; -webkit-transition: all 300 ease; -moz-transition: all 300 ease; transition: all 300 ease; } .pressroom-readmore:after { content: '\003E'; position: relative; top: 1px; } .pressroom-readmore:link, .pressroom-readmore:visited { color: #00ac4d; } .pressroom-readmore:hover, .pressroom-readmore:active { color: #00df64; } .pressroom-viewall-wrapper { *zoom: 1; display: block; text-align: center; } .pressroom-viewall-wrapper:before, .pressroom-viewall-wrapper:after { content: " "; display: table; } .pressroom-viewall-wrapper:after { clear: both; } @media screen and (min-width: 960px) { .pressroom-viewall-wrapper { text-align: left; } } @media screen and (min-width: 960px) { .pressroom-viewall { margin: 0 0 0 100px; } } .pressroom-column { display: block; float: left; margin-right: 10.34483%; width: 100%; padding: 0 0 20px; margin-bottom: 10px; border-bottom: 1px solid #dddddd; } .pressroom-column:last-child { margin-right: 0; } @media screen and (min-width: 960px) { .pressroom-column { display: block; float: left; margin-right: 3.22581%; width: 48.3871%; padding: 0 0 60px; border-bottom: 0; } .pressroom-column:last-child { margin-right: 0; } } .pressroom-column:last-of-type { border-bottom: 0; } .pressroom-datecircle { width: 66px; height: 66px; background: #dddddd; border-radius: 50%; margin: 0 auto; padding: 3px 0 0; } .pressroom-day { display: block; line-height: 20px; font-size: 22px; font-weight: 400; } .pressroom-month { display: block; font-size: 17px; line-height: 23px; text-transform: capitalize; } .pressroom-year { display: block; font-size: 11px; line-height: 15px; } .event-wrapper, .event-content-wrapper { *zoom: 1; max-width: 60em; margin-left: auto; margin-right: auto; max-width: 32.5em; padding: 0 10px; } .event-wrapper:before, .event-wrapper:after, .event-content-wrapper:before, .event-content-wrapper:after { content: " "; display: table; } .event-wrapper:after, .event-content-wrapper:after { clear: both; } @media screen and (min-width: 960px) { .event-wrapper, .event-content-wrapper { max-width: 60em; } } .event-webinarlist-wrapper, .event-content { *zoom: 1; display: block; border-bottom: 1px solid #dddddd; } .event-webinarlist-wrapper:before, .event-webinarlist-wrapper:after, .event-content:before, .event-content:after { content: " "; display: table; } .event-webinarlist-wrapper:after, .event-content:after { clear: both; } .event-upcoming-wrapper { display: block; float: left; margin-right: 10.34483%; width: 100%; } .event-upcoming-wrapper:last-child { margin-right: 0; } @media screen and (min-width: 960px) { .event-upcoming-wrapper { display: block; float: left; margin-right: 3.22581%; width: 31.1828%; margin-left: 8.60215%; } .event-upcoming-wrapper:last-child { margin-right: 0; } } .event-featured-wrapper { display: block; float: left; margin-right: 10.34483%; width: 100%; padding: 0 0 20px; margin-bottom: 20px; border-bottom: 1px solid #dddddd; } .event-featured-wrapper:last-child { margin-right: 0; } @media screen and (min-width: 960px) { .event-featured-wrapper { display: block; float: left; margin-right: 3.22581%; width: 48.3871%; } .event-featured-wrapper:last-child { margin-right: 0; } } .event-webinar-item { margin-bottom: 0; padding: 0 0 20px; display: block; float: left; margin-right: 10.34483%; width: 72.41379%; } .event-webinar-item:last-child { margin-right: 0; } @media screen and (min-width: 960px) { .event-webinar-item { display: block; float: left; margin-right: 3.22581%; width: 82.7957%; } .event-webinar-item:last-child { margin-right: 0; } } .event-webinar-image { display: block; float: left; margin-right: 10.34483%; width: 17.24138%; margin-bottom: 10px; text-align: center; } .event-webinar-image:last-child { margin-right: 0; } .event-webinar-image img { max-width: 100%; margin: 0 auto; } @media screen and (min-width: 960px) { .event-webinar-image { display: block; float: left; margin-right: 3.22581%; width: 13.97849%; } .event-webinar-image:last-child { margin-right: 0; } } .event-webinar-title { font-weight: 400; margin-bottom: 20px; margin-top: 20px; text-transform: uppercase; font-size: 25px; } .event-webinar-item-title { color: #037bac; text-transform: uppercase; margin: 0 0 5px; font-size: 20px; } .event-featured-title { text-transform: uppercase; margin: 0 0 20px; font-size: 20px; color: #00ac4d; text-align: center; } .event-featured-title:after { content: ''; display: block; width: 66%; margin: 5px auto 5px; border-bottom: 1px solid #00ac4d; } .event-featured-description { margin-bottom: 20px; } .event-featured-link-wrapper { text-align: center; } .event-featured-date { font-size: 25px; text-align: center; display: block; margin: 0 0 20px; } .event-featured-link { display: inline-block; padding: 10px 25px; background: #00ac4d; text-align: center; text-decoration: none; color: white; line-height: 20px; border-radius: 20px; margin: 6px 0 10px; text-transform: uppercase; font-size: 13px; letter-spacing: .18em; font-weight: 700; overflow: hidden; text-overflow: ellipsis; -webkit-transition: all 0.3s ease; -moz-transition: all 0.3s ease; transition: all 0.3s ease; line-height: 30px; padding: 0 20px; } .event-featured-link:visited, .event-featured-link:link { background: #00ac4d; text-decoration: none; color: white; } .event-featured-link:hover { background: #00c658; } .event-upcoming-date { text-transform: uppercase; } .event-upcoming-item { margin: 0 0 20px; } .event-upcoming-title { font-size: 20px; text-align: center; } .event-webinar-link { display: inline-block; padding: 10px 25px; background: #037bac; text-align: center; text-decoration: none; color: white; line-height: 20px; border-radius: 20px; margin: 6px 0 10px; text-transform: uppercase; font-size: 13px; letter-spacing: .18em; font-weight: 700; overflow: hidden; text-overflow: ellipsis; -webkit-transition: all 0.3s ease; -moz-transition: all 0.3s ease; transition: all 0.3s ease; line-height: 30px; padding: 0 20px; } .event-webinar-link:visited, .event-webinar-link:link { background: #037bac; text-decoration: none; color: white; } .event-webinar-link:hover { background: #038dc5; } .event-viewmore-wrapper { text-align: right; } .careers-benefits-wrapper { *zoom: 1; max-width: 60em; margin-left: auto; margin-right: auto; max-width: 32.5em; padding: 20px 10px 0; } .careers-benefits-wrapper:before, .careers-benefits-wrapper:after { content: " "; display: table; } .careers-benefits-wrapper:after { clear: both; } @media screen and (min-width: 960px) { .careers-benefits-wrapper { max-width: 60em; } } @media screen and (min-width: 960px) { .careers-benefits-wrapper { padding: 30px 10px 0; } } .careers-content { *zoom: 1; max-width: 60em; margin-left: auto; margin-right: auto; max-width: 32.5em; padding: 20px 10px; } .careers-content:before, .careers-content:after { content: " "; display: table; } .careers-content:after { clear: both; } @media screen and (min-width: 960px) { .careers-content { max-width: 60em; } } @media screen and (min-width: 960px) { .careers-content { padding: 40px 10px 20px; } .careers-content ul { padding-left: 0; } } .careers-video-wrapper { *zoom: 1; max-width: 60em; margin-left: auto; margin-right: auto; max-width: 32.5em; padding: 0 10px; } .careers-video-wrapper:before, .careers-video-wrapper:after { content: " "; display: table; } .careers-video-wrapper:after { clear: both; } @media screen and (min-width: 960px) { .careers-video-wrapper { max-width: 60em; } } @media screen and (min-width: 960px) { .careers-video-wrapper { margin-bottom: 10px; } } .careers-postions-wrapper { *zoom: 1; max-width: 60em; margin-left: auto; margin-right: auto; max-width: 32.5em; padding: 20px 10px; } .careers-postions-wrapper:before, .careers-postions-wrapper:after { content: " "; display: table; } .careers-postions-wrapper:after { clear: both; } @media screen and (min-width: 960px) { .careers-postions-wrapper { max-width: 60em; } } .careers-intro-wrapper { *zoom: 1; max-width: 60em; margin-left: auto; margin-right: auto; max-width: 32.5em; padding: 30px 10px 20px; border-bottom: 1px solid #dddddd; } .careers-intro-wrapper:before, .careers-intro-wrapper:after { content: " "; display: table; } .careers-intro-wrapper:after { clear: both; } @media screen and (min-width: 960px) { .careers-intro-wrapper { max-width: 60em; } } @media screen and (min-width: 960px) { .careers-main { display: block; float: left; margin-right: 3.22581%; width: 56.98925%; } .careers-main:last-child { margin-right: 0; } } @media screen and (min-width: 960px) { .careers-sub { padding: 0 0 0 40px; border-left: 1px solid #dddddd; display: block; float: left; margin-right: 3.22581%; width: 39.78495%; } .careers-sub:last-child { margin-right: 0; } } .careers-image-wrapper img { width: 100%; height: auto; } @media screen and (min-width: 960px) { .careers-image-wrapper { padding: 20px 0 0; } } .careers-intro-text, .careers-intro-text p { text-align: center; } @media screen and (min-width: 960px) { .careers-intro-text, .careers-intro-text p { display: block; float: left; margin-right: 3.22581%; width: 82.7957%; margin-left: 8.60215%; font-size: 20px; } .careers-intro-text:last-child, .careers-intro-text p:last-child { margin-right: 0; } } .careers-intro-link-wrapper { text-align: center; } .careers-positions { background: #f5f6f6; border-top: 1px solid #dddddd; border-bottom: 1px solid #dddddd; } .careers-intro-link { line-height: 35px; padding: 0 30px; } .careers-title { font-size: 25px; text-transform: uppercase; font-weight: 400; } .job-item { margin-bottom: 10px; *zoom: 1; display: block; } .job-item:before, .job-item:after { content: " "; display: table; } .job-item:after { clear: both; } @media screen and (min-width: 960px) { .job-item { margin-bottom: 15px; } } .job-title { font-size: 16px; } @media screen and (min-width: 960px) { .job-title { float: left; } } @media screen and (min-width: 960px) { .job-location { float: right; } } .horizontal-seperator { border-top: 1px solid #dddddd; *zoom: 1; max-width: 60em; margin-left: auto; margin-right: auto; max-width: 32.5em; } .horizontal-seperator:before, .horizontal-seperator:after { content: " "; display: table; } .horizontal-seperator:after { clear: both; } @media screen and (min-width: 960px) { .horizontal-seperator { max-width: 60em; } } .casestudy-metacontent-wrapper { *zoom: 1; max-width: 60em; margin-left: auto; margin-right: auto; max-width: 32.5em; padding: 0 10px; } .casestudy-metacontent-wrapper:before, .casestudy-metacontent-wrapper:after { content: " "; display: table; } .casestudy-metacontent-wrapper:after { clear: both; } @media screen and (min-width: 960px) { .casestudy-metacontent-wrapper { max-width: 60em; } } .casestudy-maincontent-wrapper { *zoom: 1; max-width: 60em; margin-left: auto; margin-right: auto; max-width: 32.5em; padding: 20px 10px; } .casestudy-maincontent-wrapper:before, .casestudy-maincontent-wrapper:after { content: " "; display: table; } .casestudy-maincontent-wrapper:after { clear: both; } @media screen and (min-width: 960px) { .casestudy-maincontent-wrapper { max-width: 60em; } } @media screen and (min-width: 960px) { .casestudy-maincontent-wrapper { padding: 20px 10px 30px; } } .casestudy-image-wrapper { display: block; float: left; margin-right: 10.34483%; width: 100%; margin-bottom: 10px; } .casestudy-image-wrapper:last-child { margin-right: 0; } @media screen and (min-width: 960px) { .casestudy-image-wrapper { display: block; float: left; margin-right: 3.22581%; width: 39.78495%; } .casestudy-image-wrapper:last-child { margin-right: 0; } } .casestudy-description { display: block; float: left; margin-right: 10.34483%; width: 100%; } .casestudy-description:last-child { margin-right: 0; } @media screen and (min-width: 960px) { .casestudy-description { display: block; float: left; margin-right: 3.22581%; width: 56.98925%; } .casestudy-description:last-child { margin-right: 0; } } .casestudy-quote-wrapper { display: block; float: left; margin-right: 10.34483%; width: 100%; } .casestudy-quote-wrapper:last-child { margin-right: 0; } @media screen and (min-width: 960px) { .casestudy-quote-wrapper { display: block; float: left; margin-right: 3.22581%; width: 39.78495%; } .casestudy-quote-wrapper:last-child { margin-right: 0; } } .casestudy-award-wrapper { display: block; float: left; margin-right: 10.34483%; width: 100%; } .casestudy-award-wrapper:last-child { margin-right: 0; } @media screen and (min-width: 960px) { .casestudy-award-wrapper { display: block; float: left; margin-right: 3.22581%; width: 56.98925%; } .casestudy-award-wrapper:last-child { margin-right: 0; } } .casestudy-metacontent { background: #f5f6f6; border-top: 1px solid #dddddd; border-bottom: 1px solid #dddddd; padding: 10px 0; } @media screen and (min-width: 960px) { .casestudy-metacontent { padding: 30px 0; } } .casestudy-meta-wrapper { *zoom: 1; margin-bottom: 20px; } .casestudy-meta-wrapper:before, .casestudy-meta-wrapper:after { content: " "; display: table; } .casestudy-meta-wrapper:after { clear: both; } .casestudy-description-wrapper { padding: 20px 0; border-top: 1px solid #dddddd; border-bottom: 1px solid #dddddd; } .casestudy-panel { display: block; float: left; margin-right: 10.34483%; width: 44.82759%; } .casestudy-panel:last-child { margin-right: 0; } @media screen and (min-width: 960px) { .casestudy-panel { display: block; float: left; margin-right: 5.66038%; width: 39.62264%; } .casestudy-panel:last-child { margin-right: 0; } } .casestudy-award-title { text-transform: uppercase; } .casestudy-award-subtitle { text-transform: none; display: block; font-weight: 300; font-size: 16px; } .casestudy-award-main { padding: 0 0 20px; margin-bottom: 20px; border-bottom: 1px solid #b0b0b0; } .casestudy-panel { background: white; box-shadow: 0 0 2px rgba(0, 0, 0, 0.3); text-align: center; padding: 10px 20px; } .casestudy-panel-link { line-height: 30px; padding: 0 30px; } .casestudy-panel-content { margin-bottom: 10px; font-size: 14px; font-weight: 400; line-height: 20px; } .casestudy-quote-wrapper { background: white; box-shadow: 0 0 2px rgba(0, 0, 0, 0.3); margin-bottom: 20px; } .casestudy-quote-text { padding: 20px; } .casestudy-quote-attribution { background: #037bac; padding: 20px; text-align: center; position: relative; } .casestudy-quote-attribution:after { content: ''; display: block; height: 0px; width: 0px; border-top: 15px solid white; border-left: 20px solid transparent; border-right: 20px solid transparent; position: absolute; top: 0; left: 50%; margin-left: -20px; } .casestudy-quote-name { color: white; font-size: 18px; font-weight: 400; display: block; margin-bottom: 5px; } .casestudy-quote-title { color: white; font-style: italic; display: block; } .casestudy-image-wrapper { text-align: center; } .casestudy-image { max-width: 100%; height: auto; } .customer-list-content { *zoom: 1; max-width: 60em; margin-left: auto; margin-right: auto; max-width: 32.5em; padding: 10px 10px; } .customer-list-content:before, .customer-list-content:after { content: " "; display: table; } .customer-list-content:after { clear: both; } @media screen and (min-width: 960px) { .customer-list-content { max-width: 60em; } } .customer-list { padding: 0; margin: 10px 0 0 0; font-size: 0; min-height: 135px; position: relative; *zoom: 1; } .customer-list:before, .customer-list:after { content: " "; display: table; } .customer-list:after { clear: both; } .customer-list-item { padding: 10px 5px; list-style: none; margin: 0; text-align: center; width: 50%; display: inline-block; } @media screen and (min-width: 960px) { .customer-list-item { width: 33%; text-align: left; vertical-align: top; } } .customer-filter { display: block; list-style: none; cursor: pointer; } .customer-filter:hover { color: #049fde; } @media screen and (min-width: 960px) { .customer-filter { padding: 0 15px; float: left; border-left: 1px solid #dddddd; } .customer-filter:first-child { padding-left: 0; border-left: 0; } } .customer-filter-wrapper { margin: 0; padding: 0; *zoom: 1; } .customer-filter-wrapper:before, .customer-filter-wrapper:after { content: " "; display: table; } .customer-filter-wrapper:after { clear: both; } .recording-video-wrapper { *zoom: 1; max-width: 60em; margin-left: auto; margin-right: auto; max-width: 32.5em; padding: 10px 10px 0; } .recording-video-wrapper:before, .recording-video-wrapper:after { content: " "; display: table; } .recording-video-wrapper:after { clear: both; } @media screen and (min-width: 960px) { .recording-video-wrapper { max-width: 60em; } } .recording-content-wrapper { *zoom: 1; max-width: 60em; margin-left: auto; margin-right: auto; max-width: 32.5em; padding: 20px 10px 10px; margin-bottom: 20px; } .recording-content-wrapper:before, .recording-content-wrapper:after { content: " "; display: table; } .recording-content-wrapper:after { clear: both; } @media screen and (min-width: 960px) { .recording-content-wrapper { max-width: 60em; } } @media screen and (min-width: 960px) { .recording-content-wrapper { padding: 30px 10px 10px; margin-bottom: 30px; } } .recording-slides-wrapper { *zoom: 1; max-width: 60em; margin-left: auto; margin-right: auto; max-width: 32.5em; padding: 0 10px; } .recording-slides-wrapper:before, .recording-slides-wrapper:after { content: " "; display: table; } .recording-slides-wrapper:after { clear: both; } @media screen and (min-width: 960px) { .recording-slides-wrapper { max-width: 60em; } } .recording-subcontent-wrapper { border-bottom: 1px solid #dddddd; padding: 0 0 10px; margin-bottom: 20px; } .recording-subcontent, .recording-description { display: block; float: left; margin-right: 10.34483%; width: 100%; } .recording-subcontent:last-child, .recording-description:last-child { margin-right: 0; } @media screen and (min-width: 960px) { .recording-subcontent, .recording-description { display: block; float: left; margin-right: 3.22581%; width: 48.3871%; } .recording-subcontent:last-child, .recording-description:last-child { margin-right: 0; } } .recording-title { font-size: 20px; font-weight: 400; color: #00b4ea; } .recording-slides-wrapper { text-align: center; } .recording-slide-link { line-height: 35px; padding: 0 30px; } .pricing-wrapper { *zoom: 1; max-width: 60em; margin-left: auto; margin-right: auto; max-width: 32.5em; padding: 20px 10px; } .pricing-wrapper:before, .pricing-wrapper:after { content: " "; display: table; } .pricing-wrapper:after { clear: both; } @media screen and (min-width: 960px) { .pricing-wrapper { max-width: 60em; } } .pricing-content { background: #f5f6f6; border-top: 1px solid #dddddd; border-bottom: 1px solid #dddddd; } .pricing-table { margin-bottom: 30px; display: none; } @media screen and (min-width: 960px) { .pricing-table { *zoom: 1; display: table; width: 100%; table-layout: fixed; } .pricing-table:before, .pricing-table:after { content: " "; display: table; } .pricing-table:after { clear: both; } } .pricing-table-mobile { *zoom: 1; display: table; width: 100%; table-layout: fixed; } .pricing-table-mobile:before, .pricing-table-mobile:after { content: " "; display: table; } .pricing-table-mobile:after { clear: both; } @media screen and (min-width: 960px) { .pricing-table-mobile { display: none; } } .pricing-feature { text-align: right; color: #037bac; font-weight: 400; padding: 10px 0; display: table-cell; padding-right: 3.22581%; width: 25.80645%; } .pricing-feature:last-child { width: 22.58065%; padding-right: 0; } .pricing-row:nth-of-type(4) .pricing-feature { padding: 40px 20px 10px; } .pricing-cell { background: white; border-left: 20px solid #f5f6f6; border-bottom: 1px solid #dddddd; text-align: center; display: table-cell; padding-right: 3.22581%; width: 25.80645%; padding: 10px; } .pricing-cell:last-child { width: 22.58065%; padding-right: 0; } .pricing-row:nth-of-type(3) .pricing-feature { padding: 30px 5px 10px; } .pricing-row:nth-of-type(4) .pricing-cell { padding: 40px 5px 10px; position: relative; } .pricing-row:nth-of-type(4) .pricing-cell:before { content: ' '; display: block; width: 100%; border-top: 1px solid #dddddd; position: absolute; left: 0; top: 30px; } @media screen and (min-width: 960px) { .pricing-row:nth-of-type(4) .pricing-cell:after { content: ' '; display: block; position: absolute; left: 50%; width: 0; top: 0; margin-left: -20px; border-top: 15px solid #00b4ea; border-left: 20px solid transparent; border-right: 20px solid transparent; } } @media screen and (min-width: 960px) { .pricing-row:nth-of-type(4) .pricing-cell:nth-of-type(3):after { content: ' '; display: block; position: absolute; left: 50%; width: 0; top: 0; margin-left: -20px; border-top: 15px solid #00ac4d; border-left: 20px solid transparent; border-right: 20px solid transparent; } } @media screen and (min-width: 960px) { .pricing-row:nth-of-type(4) .pricing-cell:nth-of-type(4):after { content: ' '; display: block; position: absolute; left: 50%; width: 0; top: 0; margin-left: -20px; border-top: 15px solid #00ac4d; border-left: 20px solid transparent; border-right: 20px solid transparent; } } .pricing-header-developer { padding: 15px 5px; border-left: 20px solid #f5f6f6; background: #009ecd; color: white; font-weight: 400; text-transform: uppercase; font-size: 18px; letter-spacing: 0.02; position: relative; } .pricing-header-starter { padding: 15px 5px; border-left: 20px solid #f5f6f6; background: #037bac; color: white; font-weight: 400; text-transform: uppercase; font-size: 18px; letter-spacing: 0.02; position: relative; } .pricing-header-enterprise { padding: 15px 5px; border-left: 20px solid #f5f6f6; background: #019543; color: white; font-weight: 400; text-transform: uppercase; font-size: 18px; letter-spacing: 0.02; position: relative; } .pricing-price-developer { padding: 15px 5px; border-left: 20px solid #f5f6f6; color: white; background: #00b4ea; color: white; font-weight: 300; position: relative; } .pricing-price-starter { padding: 15px 5px; border-left: 20px solid #f5f6f6; color: white; background: #0097d5; color: white; font-weight: 300; position: relative; } .pricing-price-enterprise { padding: 15px 5px; border-left: 20px solid #f5f6f6; color: white; background: #00ac4d; color: white; font-weight: 300; position: relative; } .pricing-smallprint-wrapper { *zoom: 1; display: block; } .pricing-smallprint-wrapper:before, .pricing-smallprint-wrapper:after { content: " "; display: table; } .pricing-smallprint-wrapper:after { clear: both; } .pricing-smallprint { display: block; float: left; margin-right: 10.34483%; width: 100%; margin-bottom: 20px; } .pricing-smallprint:last-child { margin-right: 0; } @media screen and (min-width: 960px) { .pricing-smallprint { display: block; float: left; margin-right: 3.22581%; width: 74.19355%; margin-left: 25.80645%; margin-bottom: 40px; } .pricing-smallprint:last-child { margin-right: 0; } } .pricing-smallprint p, .pricing-smallprint li { font-size: 13px; line-height: 15px; margin-bottom: 10px; } .pricing-link { padding: 0 10px; display: block; width: 100%; } @media screen and (min-width: 960px) { .pricing-link { display: table-cell; } } .pricing-calltoaction { line-height: 20px; padding: 10px 30px; margin-bottom: 20px; } .content1-wrapper { *zoom: 1; max-width: 60em; margin-left: auto; margin-right: auto; max-width: 32.5em; padding: 20px 10px; } .content1-wrapper:before, .content1-wrapper:after { content: " "; display: table; } .content1-wrapper:after { clear: both; } @media screen and (min-width: 960px) { .content1-wrapper { max-width: 60em; } } @media screen and (min-width: 960px) { .content1-wrapper { padding: 30px 10px; } } .content1-item { *zoom: 1; display: block; padding: 0 0 30px; margin: 0 0 30px; border-bottom: 1px solid #dddddd; } .content1-item:before, .content1-item:after { content: " "; display: table; } .content1-item:after { clear: both; } .content1-item:last-child { border-bottom: 0; margin-bottom: 0; padding: 0; } @media screen and (min-width: 960px) { .casestudy-individual .content1-item-content { display: block; float: left; margin-right: 3.22581%; width: 65.5914%; float: right; } .casestudy-individual .content1-item-content:last-child { margin-right: 0; } } @media screen and (min-width: 960px) { .casestudy-individual .content1-item-imagewrapper { display: block; float: left; margin-right: 3.22581%; width: 31.1828%; float: right; } .casestudy-individual .content1-item-imagewrapper:last-child { margin-right: 0; } } .casestudy-individual .content1-item-image img { max-width: 80%; } .content1-item-title { color: #00b4ea; text-transform: uppercase; margin: 0; font-size: 17px; line-height: 25px; font-weight: 400; } @media screen and (min-width: 960px) { .content1-item-title { font-size: 20px; line-height: 25px; } } .content1-item-subtitle { color: #00b4ea; text-transform: uppercase; margin: 0; font-size: 17px; font-weight: 300; } .content1-item-header { margin: 0 0 5px; } @media screen and (min-width: 960px) { .content1-item-content { display: block; float: left; margin-right: 3.22581%; width: 48.3871%; } .content1-item-content:last-child { margin-right: 0; } } @media screen and (min-width: 960px) { .content1-item:nth-of-type(2n) .content1-item-content { display: block; float: left; margin-right: 3.22581%; width: 48.3871%; margin-right: 0; float: right; } .content1-item:nth-of-type(2n) .content1-item-content:last-child { margin-right: 0; } } .content1-item-imagewrapper { text-align: center; } @media screen and (min-width: 960px) { .content1-item-imagewrapper { display: block; float: left; margin-right: 3.22581%; width: 48.3871%; } .content1-item-imagewrapper:last-child { margin-right: 0; } } .content1-item-image, .content1-item-image img { max-width: 100%; height: auto; margin: 0 auto; } .content1-item-description { font-size: 14px; line-height: 20px; font-weight: 300; letter-spacing: .06em; } @media screen and (min-width: 960px) { .content1-item-description { font-size: 16px; line-height: 25px; } } .content2-wrapper { *zoom: 1; max-width: 60em; margin-left: auto; margin-right: auto; max-width: 32.5em; padding: 20px 10px; } .content2-wrapper:before, .content2-wrapper:after { content: " "; display: table; } .content2-wrapper:after { clear: both; } @media screen and (min-width: 960px) { .content2-wrapper { max-width: 60em; } } @media screen and (min-width: 960px) { .content2-wrapper { padding: 30px 10px; } } .content2-item { *zoom: 1; display: block; margin: 0 0 15px; } .content2-item:before, .content2-item:after { content: " "; display: table; } .content2-item:after { clear: both; } .content2-item:last-child { margin-bottom: 0; padding: 0; } @media screen and (min-width: 960px) { .content2-item-wrapper { display: block; float: left; margin-right: 3.22581%; width: 100%; } .content2-item-wrapper:last-child { margin-right: 0; } } .content2-item-title { color: #00b4ea; text-transform: uppercase; margin: 0 0 5px; font-size: 17px; line-height: 25px; font-weight: 400; } @media screen and (min-width: 960px) { .content2-item-title { font-size: 20px; } } .content2-item-subtitle { color: #00b4ea; text-transform: uppercase; margin: 0; font-size: 17px; font-weight: 300; } .content2-item-description { font-size: 14px; line-height: 20px; font-weight: 300; letter-spacing: .06em; } @media screen and (min-width: 960px) { .content2-item-description { font-size: 16px; line-height: 25px; } } .content2-item-link { font-weight: 400; text-transform: uppercase; font-size: 18px; display: inline-block; margin-bottom: 15px; } .content2-item-link:after { content: " >"; } .content3-wrapper { *zoom: 1; max-width: 60em; margin-left: auto; margin-right: auto; max-width: 32.5em; padding: 20px 10px 0; } .content3-wrapper:before, .content3-wrapper:after { content: " "; display: table; } .content3-wrapper:after { clear: both; } @media screen and (min-width: 960px) { .content3-wrapper { max-width: 60em; } } @media screen and (min-width: 960px) { .content3-wrapper { padding: 30px 10px 0; } } .content3-item { *zoom: 1; display: block; margin: 0 0 15px; } .content3-item:before, .content3-item:after { content: " "; display: table; } .content3-item:after { clear: both; } .content3-item-date { display: block; float: left; margin-right: 10.34483%; width: 17.24138%; } .content3-item-date:last-child { margin-right: 0; } @media screen and (min-width: 960px) { .content3-item-date { display: block; float: left; margin-right: 3.22581%; width: 22.58065%; } .content3-item-date:last-child { margin-right: 0; } } @media screen and (min-width: 960px) { .content3-item-wrapper { display: block; float: left; margin-right: 3.22581%; width: 74.19355%; margin-bottom: 20px; } .content3-item-wrapper:last-child { margin-right: 0; } } @media screen and (min-width: 960px) { .content3-subitem-wrapper { display: block; float: left; margin-right: 3.22581%; width: 22.58065%; margin-bottom: 10px; } .content3-subitem-wrapper:last-child { margin-right: 0; } } .content3-image { max-width: 100%; height: auto; margin-bottom: 20px; box-shadow: 0 0 5px 0 rgba(0, 0, 0, 0.3); } .content3-item-title { color: #00b4ea; text-transform: uppercase; margin: 0 0 5px; font-size: 20px; } .content3-item-subtitle { color: #00b4ea; text-transform: uppercase; margin: 0; font-size: 17px; font-weight: 300; } .content3-item-description { font-size: 14px; line-height: 20px; font-weight: 300; letter-spacing: .06em; } @media screen and (min-width: 960px) { .content3-item-description { font-size: 16px; line-height: 25px; } } .content3-item-link { font-weight: 400; text-transform: uppercase; font-size: 18px; display: inline-block; margin-bottom: 15px; } .content3-item-link:after { content: " >"; } .flexcontent3-wrapper { *zoom: 1; max-width: 60em; margin-left: auto; margin-right: auto; max-width: 32.5em; padding: 10px 10px; border-bottom: 1px solid #dddddd; } .flexcontent3-wrapper:before, .flexcontent3-wrapper:after { content: " "; display: table; } .flexcontent3-wrapper:after { clear: both; } @media screen and (min-width: 960px) { .flexcontent3-wrapper { max-width: 60em; } } @media screen and (min-width: 960px) { .flexcontent3-wrapper { padding: 20px 10px; } } .flexcontent3-item { *zoom: 1; display: block; } .flexcontent3-item:before, .flexcontent3-item:after { content: " "; display: table; } .flexcontent3-item:after { clear: both; } .flexcontent3-item-wrapper { margin-bottom: 10px; } @media screen and (min-width: 960px) { .flexcontent3-item-wrapper { margin-bottom: 15px; display: block; float: left; margin-right: 3.22581%; width: 74.19355%; } .flexcontent3-item-wrapper:last-child { margin-right: 0; } } .flexcontent3-item-subwrapper { margin-bottom: 10px; } @media screen and (min-width: 960px) { .flexcontent3-item-subwrapper { margin-bottom: 15px; display: block; float: left; margin-right: 3.22581%; width: 22.58065%; } .flexcontent3-item-subwrapper:last-child { margin-right: 0; } } .flexcontent3-header { margin-bottom: 10px; } @media screen and (min-width: 960px) { .flexcontent3-header { margin-bottom: 15px; } } .flexcontent3-image-wrapper { margin-bottom: 10px; text-align: center; } @media screen and (min-width: 960px) { .flexcontent3-image-wrapper { margin-bottom: 15px; } } .flexcontent3-image { max-width: 100%; } .flexcontent3-item-title { color: #00b4ea; text-transform: uppercase; margin: 0 0 5px; font-size: 17px; line-height: 25px; font-weight: 400; } @media screen and (min-width: 960px) { .flexcontent3-item-title { font-size: 20px; } } .flexcontent3-item-subtitle { color: #00b4ea; text-transform: uppercase; margin: 0 0 5px; font-size: 15px; line-height: 20px; font-weight: 300; } @media screen and (min-width: 960px) { .flexcontent3-item-subtitle { font-size: 16px; } } .flexcontent-subwrapper-title { font-weight: 400; margin-bottom: 5px; display: block; } .flexcontent3-person-name { font-weight: 400; font-size: 14px; } .flexcontent3-person-title { font-weight: 300; font-style: italic; } .flexcontent3-person-image { width: 104px; height: auto; border: 2px solid #dddddd; } .flexcontent3-person-image-wrapper { width: 50%; padding: 0 5px 0 0; float: left; } .flexcontent3-person-image-wrapper:nth-child(2n) { padding: 0 0 0 5px; } .flexcontent3-person-image-container { *zoom: 1; margin-bottom: 5px; } .flexcontent3-person-image-container:before, .flexcontent3-person-image-container:after { content: " "; display: table; } .flexcontent3-person-image-container:after { clear: both; } @media screen and (min-width: 960px) { .content4-wordswrapper { display: block; float: left; margin-right: 3.22581%; width: 65.5914%; } .content4-wordswrapper:last-child { margin-right: 0; } } .content4-wrapper { padding: 20px 10px; } .content4-sideimagewrapper { display: none; } @media screen and (min-width: 960px) { .content4-sideimagewrapper { display: block; float: left; margin-right: 3.22581%; width: 31.1828%; margin-bottom: 10px; } .content4-sideimagewrapper:last-child { margin-right: 0; } } .content5-wrapper { padding: 20px 10px; } .content5-item { margin-bottom: 10px; } @media screen and (min-width: 960px) { .content5-item { display: block; float: left; margin-right: 3.22581%; width: 48.3871%; margin-bottom: 20px; } .content5-item:last-child { margin-right: 0; } .content5-item:nth-child(2n) { margin-right: 0; } } .content5-item-title { font-size: 16px; line-height: 20px; font-weight: 400; color: #037bac; text-transform: uppercase; } .content5-item-title:after { content: ' '; display: block; width: 100%; border-bottom: 1px solid #037bac; margin: 5px 0; max-width: 66%; } @media screen and (min-width: 960px) { .content5-item-title { font-size: 18px; } } .content6-item-wrapper { padding: 10px 0; } @media screen and (min-width: 960px) { .content6-item-wrapper { display: block; float: left; margin-right: 3.22581%; width: 65.5914%; padding: 20px 0; } .content6-item-wrapper:last-child { margin-right: 0; } } .content6-item { padding: 10px 0; } .content6-item-subwrapper { text-align: center; } @media screen and (min-width: 960px) { .content6-item-subwrapper { display: block; float: left; margin-right: 3.22581%; width: 31.1828%; margin-bottom: 10px; } .content6-item-subwrapper:last-child { margin-right: 0; } } .content6-image { max-width: 75%; max-height: 240px; } @media screen and (min-width: 960px) { .content6-image { max-height: 320px; } } .menu-skybox-container { *zoom: 1; display: block; } .menu-skybox-container:before, .menu-skybox-container:after { content: " "; display: table; } .menu-skybox-container:after { clear: both; } .main-skybox-navlist { *zoom: 1; max-width: 60em; margin-left: auto; margin-right: auto; max-width: 32.5em; padding: 0 5px; background: white; padding: 0; text-align: center; margin-bottom: 0; } .main-skybox-navlist:before, .main-skybox-navlist:after { content: " "; display: table; } .main-skybox-navlist:after { clear: both; } @media screen and (min-width: 960px) { .main-skybox-navlist { max-width: 60em; } } @media screen and (min-width: 960px) { .main-skybox-navlist { text-align: right; padding: 0 10px; } } .main-skybox-navlist .menu-item { display: inline-block; list-style: none; padding: 5px 2px 0; font-size: 14px; line-height: 20px; } @media screen and (min-width: 960px) { .main-skybox-navlist .menu-item { padding: 10px 0 0 10px; } } .main-header { background: #037bac; z-index: 9999; position: fixed; width: 100%; top: 0; left: 0; } @media screen and (min-width: 960px) { .main-header-wrapper { *zoom: 1; max-width: 60em; margin-left: auto; margin-right: auto; max-width: 32.5em; padding: 0 10px; } .main-header-wrapper:before, .main-header-wrapper:after { content: " "; display: table; } .main-header-wrapper:after { clear: both; } } @media screen and (min-width: 960px) and (min-width: 960px) { .main-header-wrapper { max-width: 60em; } } .main-header-logo-wrapper { width: 50%; float: left; padding: 0 5px; } @media screen and (min-width: 960px) { .main-header-logo-wrapper { width: auto; } } .main-header-logo-link { display: block; } .main-header-toggle-wrapper { width: 50%; float: left; padding: 0 10px 0 0; text-align: right; } @media screen and (min-width: 960px) { .main-header-toggle-wrapper { display: none; } } .main-header-subcontent { *zoom: 1; height: 50px; overflow: hidden; } .main-header-subcontent:before, .main-header-subcontent:after { content: " "; display: table; } .main-header-subcontent:after { clear: both; } @media screen and (min-width: 960px) { .main-header-subcontent { display: block; float: left; margin-right: 3.22581%; width: 22.58065%; } .main-header-subcontent:last-child { margin-right: 0; } } .main-header-toggle { color: white; display: inline-block; line-height: 50px; } .main-header-toggle:link, .main-header-toggle:visited { color: white; } .main-header-logo:before { display: inline-block; font-size: 164px; line-height: 50px; color: white; } @media screen and (min-width: 960px) { .menu-header-menu-container { display: block; float: left; margin-right: 3.22581%; width: 74.19355%; } .menu-header-menu-container:last-child { margin-right: 0; } } .main-header-navlist { padding: 0; text-align: center; margin-bottom: 0; position: absolute; width: 100%; z-index: 9999; display: none; -webkit-transition: max-height 0.6s ease-out; -moz-transition: max-height 0.6s ease-out; transition: max-height 0.6s ease-out; } @media screen and (min-width: 960px) { .main-header-navlist { text-align: right; height: 50px; position: static; width: auto; display: block !important; } } .main-header-navlist .sub-menu { margin-bottom: 0; padding: 0; background: #024561; min-width: 100%; display: none; -webkit-transition: background 0.3s ease-out; -moz-transition: background 0.3s ease-out; transition: background 0.3s ease-out; } .main-header-navlist .sub-menu:before, .main-header-navlist .sub-menu:after { content: " "; display: table; } .main-header-navlist .sub-menu:after { clear: both; } @media screen and (min-width: 960px) { .main-header-navlist .sub-menu { position: absolute; display: none !important; z-index: 9999; } } @media screen and (min-width: 960px) { .main-header-navlist > .menu-item:hover > .sub-menu { display: block !important; } } .main-header-navlist .sub-menu > .menu-item { background: #02577a; width: 50%; float: left; font-size: 14px; } @media screen and (min-width: 960px) { .main-header-navlist .sub-menu > .menu-item { width: auto; float: none; display: block; text-align: left; min-width: 160px; } } .main-header-navlist .sub-menu .menu-item a { display: block; padding: 10px 5px; color: white; background: #02577a; box-shadow: inset 0 0 1px 0 #024561; } .main-header-navlist .sub-menu .menu-item a:link, .main-header-navlist .sub-menu .menu-item a:visited { color: white; background: #02577a; } .main-header-navlist .sub-menu .menu-item a:hover { background: #037bac; } .main-header-navlist .sub-menu .menu-item a:active { background: #024561; } @media screen and (min-width: 960px) { .main-header-navlist .sub-menu .menu-item a { padding: 10px 15px; } } .main-header-navlist .menu-item { background: #036993; list-style: none; margin-bottom: 0; position: relative; } .main-header-navlist .menu-item a { display: block; padding: 10px 5px; color: white; background: #036993; box-shadow: inset 0 0 1px 0 #024561; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } .main-header-navlist .menu-item a:link, .main-header-navlist .menu-item a:visited { color: white; background: #036993; } .main-header-navlist .menu-item a:hover { background: #037bac; } .main-header-navlist .menu-item a:active { background: #02577a; } @media screen and (min-width: 960px) { .main-header-navlist .menu-item { background: none; display: inline-block; text-align: center; } .main-header-navlist .menu-item a { display: block; background: none; box-shadow: none; padding: 15px 8px; } .main-header-navlist .menu-item a:link, .main-header-navlist .menu-item a:visited { background: none; } .main-header-navlist .menu-item a:hover { background: #038dc5; } .main-header-navlist .menu-item a:active { background: #02577a; } } .main-header-navlist > .menu-item:last-child a { display: inline-block; padding: 10px 25px; background: #00ac4d; text-align: center; text-decoration: none; color: white; line-height: 20px; border-radius: 20px; margin: 6px 0 10px; text-transform: uppercase; font-size: 13px; letter-spacing: .18em; font-weight: 700; overflow: hidden; text-overflow: ellipsis; -webkit-transition: all 0.3s ease; -moz-transition: all 0.3s ease; transition: all 0.3s ease; padding: 0 15px; line-height: 30px; text-transform: none; font-weight: 300; margin-right: 0; margin-left: 0; } .main-header-navlist > .menu-item:last-child a:visited, .main-header-navlist > .menu-item:last-child a:link { background: #00ac4d; text-decoration: none; color: white; } .main-header-navlist > .menu-item:last-child a:hover { background: #00c658; } .main-header.mw-new-new { background: #fff; } .main-header.mw-new-new .main-header-subcontent { height: auto; } .main-header.mw-new-new .main-header-logo-wrapper { padding: 15px 0 15px 5px; } .main-header.mw-new-new .main-header-logo-wrapper .main-header-logo { background: url(styles/logo.png) no-repeat; width: 164px; height: 20px; display: block; } .main-header.mw-new-new .main-header-logo-wrapper .main-header-logo:before { display: none; font-size: initial; line-height: initial; } .main-header.mw-new-new .main-header-navlist > .menu-item { border-bottom: 1px solid #ccc; background: #fff; } .main-header.mw-new-new .main-header-navlist > .menu-item > a { background: #fff; color: #000; box-shadow: none; font-weight: 400; } .main-header.mw-new-new .main-header-navlist > .menu-item:first-child { border-top: 1px solid #ccc; } .main-header.mw-new-new .main-header-navlist > .menu-item:last-child > a { background: #cc3; padding: .75rem 1.25rem; line-height: initial; letter-spacing: initial; border-radius: 0; font-weight: 700; text-transform: uppercase; font-size: .875rem; margin: 5px 0 0 0; } .main-header.mw-new-new .main-header-toggle-wrapper > a { color: #000; font-weight: 400; } @media screen and (min-width: 960px) { .main-header.mw-new-new { line-height: initial; padding: 3rem 0 1.5rem; border-top: .5rem solid #09c; background: #fff; } .main-header.mw-new-new .main-header-wrapper { max-width: 74rem; padding: 0 3.5rem; position: relative; } .main-header.mw-new-new .menu-header-menu-container { float: right; margin-right: 0; display: inline; position: absolute; right: 0.5rem; top: -0.5rem; font-size: 1rem; line-height: 1; font-style: normal; overflow: visible; } .main-header.mw-new-new .main-header-logo-wrapper { padding: 0; } .main-header.mw-new-new .main-header-navlist { height: auto; line-height: 1em; } .main-header.mw-new-new .main-header-navlist > .menu-item { margin-right: 2.5rem; position: relative; vertical-align: middle; border: none; } .main-header.mw-new-new .main-header-navlist > .menu-item > a { color: #000; padding: 0; font-size: 1rem; font-weight: 400; } .main-header.mw-new-new .main-header-navlist > .menu-item > a:hover { background: none; } .main-header.mw-new-new .main-header-navlist > .menu-item:first-child { border: 0; } .main-header.mw-new-new .main-header-navlist > .menu-item:last-child a { margin: 0; } .main-header.mw-new-new .main-header-navlist > .menu-item:hover { background: none; } .main-header.mw-new-new .main-header-navlist > .menu-item > .sub-menu { left: -15px; padding-top: 1.45em; background: transparent; } } .features2 { *zoom: 1; display: block; } .features2:before, .features2:after { content: " "; display: table; } .features2:after { clear: both; } .features2-header { background-color: white; } .features2-heading { *zoom: 1; max-width: 60em; margin-left: auto; margin-right: auto; max-width: 32.5em; padding: 15px 10px; text-align: center; text-transform: uppercase; font-weight: 400; margin-bottom: 0; font-size: 25px; } .features2-heading:before, .features2-heading:after { content: " "; display: table; } .features2-heading:after { clear: both; } @media screen and (min-width: 960px) { .features2-heading { max-width: 60em; } } .features2-wrapper { *zoom: 1; max-width: 60em; margin-left: auto; margin-right: auto; max-width: 32.5em; padding: 25px 10px 15px; margin: 0 auto; } .features2-wrapper:before, .features2-wrapper:after { content: " "; display: table; } .features2-wrapper:after { clear: both; } @media screen and (min-width: 960px) { .features2-wrapper { max-width: 60em; } } .feature2-item { padding: 15px 25px; margin: 0 auto 20px; box-shadow: 0px 0px 3px rgba(0, 0, 0, 0.3); background: white; max-width: 350px; list-style: none; } .feature2-item:nth-of-type(2n) .feature2-item-heading, .feature2-item:nth-of-type(2n) .feature2-item-iconwrapper { color: #00ac4d; } .feature2-item:nth-of-type(2n) .feature2-item-link { line-height: 35px; min-width: 66%; } .feature2-item:nth-of-type(3n) .feature2-item-heading, .feature2-item:nth-of-type(3n) .feature2-item-iconwrapper { color: #037bac; } .feature2-item:nth-of-type(3n) .feature2-item-link { line-height: 35px; min-width: 66%; } .feature2-item:nth-of-type(4n) .feature2-item-heading, .feature2-item:nth-of-type(4n) .feature2-item-iconwrapper { color: #00b4ea; } .feature2-item:nth-of-type(4n) .feature2-item-link { line-height: 35px; min-width: 66%; } @media screen and (min-width: 960px) { .feature2-item { display: block; float: left; margin-right: 3.22581%; width: 48.3871%; max-width: none; } .feature2-item:last-child { margin-right: 0; } .feature2-item:nth-child(2n) { margin-right: 0; } .feature2-item:nth-child(2n+1) { clear: left; } } .feature2-item-heading { text-align: center; text-transform: uppercase; color: #00b4ea; margin: 0 0 5px; font-size: 20px; line-height: 25px; } .feature2-item-subheading { display: block; } .feature2-item-content { text-align: center; font-weight: 300; font-size: 18px; margin-bottom: 5px; } .feature2-item-link-wrapper { text-align: center; } .feature2-item-link { line-height: 35px; min-width: 66%; } .feature2-item-iconwrapper { text-align: center; font-size: 54px; margin: 0 0 10px; color: #00b4ea; } .main-footer { background: #037bac; } .main-footer-wrapper { *zoom: 1; max-width: 60em; margin-left: auto; margin-right: auto; max-width: 32.5em; padding: 20px 10px; *zoom: 1; display: block; } .main-footer-wrapper:before, .main-footer-wrapper:after { content: " "; display: table; } .main-footer-wrapper:after { clear: both; } @media screen and (min-width: 960px) { .main-footer-wrapper { max-width: 60em; } } .main-footer-wrapper:before, .main-footer-wrapper:after { content: " "; display: table; } .main-footer-wrapper:after { clear: both; } @media screen and (min-width: 960px) { .menu-footer-menu-container { display: block; float: right; margin-left: 3.22581%; width: 56.98925%; } .menu-footer-menu-container:last-child { margin-left: 0; } } @media screen and (min-width: 960px) { .main-footer-subcontent { display: block; float: right; margin-left: 3.22581%; width: 22.58065%; } .main-footer-subcontent:last-child { margin-left: 0; } } .main-footer-logo-wrapper { height: 45px; overflow: hidden; } .footer-gartner { background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAb0AAADgCAYAAACXSbjZAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAIGNIUk0AAG2YAABzjgAA+3UAAITUAAB6swAA/2cAADBbAAAQhVDPV6EAAClwSURBVHja7J3/VdvI18afcPjbr7YBVmmANQ2AaYCYBoJpIIEGwjENENIAmAZiaADbDcTQwBoaWOMG9P6h0Rd5GNkz0ow0kp/POT67SWxpNJq5z713fn2KogiOaYvPnvhvCGBH43fPAOYApgD+Ff8dgRBCCMnJJweiFwDoAjgU/21Zvv4DgEcAQwAzvkJCCCFViF4bwLkjoctiAuAGwC1fJSGEkDJErwOgD2C/wud4BXBB8SOEEOJK9EIA1wCOPHqeVwAn4NgfIYQQBVs5f3cG4MkzwQPiCTKPAO4Rjy0SQgghuSO9AMDAQ7HLivq+IJ71SQghhBiJXgBgDGC3Zs94Co71EUIIAbCt+b22ELxWzZ5vwUivEG3op4ln4BISQkgDIr0Q8fhdHQXvgKJXiDH0Z+VeIp5BSwghtY30AsSTQlwJXrLrSjqysHUvjucRsrl08b4LVJDxnSmAP4hne888Lec8Vc7hBry3QNTJZ8TL4bIYId6py/jdrRO9e9gbw3sWL+1RvMT5mugyRLyrSwfmawBPwWULhGwaHdH3v2p+f1+yT8lGF3PPypmeOHgnyjmqqH4fxf9PEGfSbNEDcAz9SZKqdzfUEcBV6c0+gB8FH2QB4KcoUBFPKlH/Uw0B5MQVezC9SeoSHVwbiIiOzbpwVE5bs98fAHwvMUINEA9z7VgWvY54d7aCqztRL5mOS9Y6vbYFwbsE8LdoPEVfzFwI2YGI/iYUPEKIsFVPCsF7BfBLRA9/Afgkff4S/3YnhC6hJWzfE+Jsky26AF4UgjdBvH3jnqKMn8TfnwuRk6O/J3HdMhhA76AAE/oictyVnI478W4+Z9TJYUadQLSDl5X1EkWR6jOO8vMSRVE747o2P90oit5S9+2VcM9N+5i0gz7ri5+SP23JBiT2x9QWBFEUnSmu9WbJlvUU/eU+iqLQ8Dqh+J2Ma9s3UNxzbPmabzmfIxC/e9GtF90XpMuTKERZjT4Q96TgUfT42axPoBCpQUH7EyhE5S2HOK2yp2/CYbfp8LsUvkFGfx9bvObYgm4EURRd6wjfVkbImYdnkX6cl5jamAP4hylNQjaOAZZnet8h3ne3iP2ZI571fSelOwcFUq/XUuruAMVnYQ7FddJp2RtxP9t1/NXyNc+ka95Z0o25GMs7lerlWk5Tbynyznnytq8VCB4hZDPp4OOMxhOL1z+RhG8f8ezCIsJse93wVCF8A0vXzhonvSt43VAKqp4tvzeIAOj7KqdFFr3znDf6QsEjhJREX3K4vzu4x3dxbdU9dcu4Kwnp1HIZp5Jo7CJ/pg6IZ2j2Ea8JlCeXHItosuh7SzsBXxy1j1vEk5jSTsv/or1tSYXznIl3ic1aBN4RdfU59We5ISYOwCO4PVfZhOKdfMb7ek/gfZHvf4jXOE0rLF8b8aw8uf3MU+Vi28mOQvYlMXHhcM8RzzxPDP2OuLdOuwkQp/ESHuBuYflQRGBJVHYG4MqwTkIR8PTwcXOQZyFOM6xeLK5zj3Tk+NNx276QnudU/N3SOr2kskxYIF6W0OQoL0Sc9j1G/oNyX4Wh/V2w8V9DP29/sMJotIUotLG8C8RU8ppN1um9GjRi1Wn34wK/DVKddseg7d6KNu9aWNqi03VhPnyQtB0bC5J163i6InrqIJ4yjgwjeAW3O4ekx5lsL5BW8ZJ6Z7prUdNrnMuwkYEoZ0uznEHqPXagXiO3ENf4Kb37vIvTy66T7LaSmtXylGO2ZpNn7PVy1onOko5eCbMp5ZlN/YxpvatmZI0jN6ieP2+bU00196Uddy3X4UvBWXq6jBVT5Qea9dxx3C9fSl6mdJ1jxuJbBTayL80QXfXdzor39yauFaz5nenszSdplm0ZddJV1clWSvnzrIi/QvPoCa/pBm6OUdoR136C/dlWKrrieX5oRBmjkuq4SGTVTrXZsWiDRfdrTRYjBxYju7GI7PcdtJ1xSW0nyS78Kzzmqjedb0tteFjCPR+lrI+O/WhJmYkySN+nBbOJN+kF4f8nIjybUVgo2dLfJdXJXKoTAO8TWfJ0oIeGpTU7wvDdwP7OAyp2hfHqOkzL9kQDazXoPQUpwdt38D6KCt8Z4okA+w7rYF+Utee4np8AfCtgaFyIHlLpqjLsz1xyOtZxLNnIWUn9YoblHUqO13z3UnxnTwjdiUMnQtaXYUl1onTiE9E7zHHBstS6LG/2EeUfkNsS9dhxcO1+Di/zvwo8sDzcO3pXu+LaRcYQrkpsOzcOhW+Qs46nDp/5cwVZiTzOc1U28ndGOVSidyHEZ1pCufYkZ6WKdwEbkZ6vja4Mb9Y297C7zx+Qb1HptKTnLXKf/RKiqDxC4mIhrw4uhG8fdjZFdmnE/vW0fK0KIhrV/VqOnOm8djYtuFXwKotekOMCMxCbXvs1q8EbTNc6VSV46UxF24N6W5R4r7LsT6AynBmkM2byWaFlMBf3VZWnStoVid6xytHeSnl2VTe4yOGnv6KRHEgNpSqOPDBcZTTIBfxnxyB66lUseInTNPCg3lxnCvYreKY9g/6R7r+jit7BKKM8VbeLifiUGaF3U///vwlJ25427rK9owPEEwN0xjAWIo3wR1EPgegkXeQbDzmH/W15fBO9urSdY6zf0zUsEKE/4P1AZdlwnuZoP7tCgG9BXBnOdUKWFpk/FZX3Ee/DNb6I3vcK7tnD8sSj26KiZztsD2ogfBPoLbwdIh4k7sD8DKoObUwh5LR7gPwTXo7E71e19fS2Srr8wuop4SPEC4I7MD9cs1+x6M0dX/9Tyc8TSvX/qJEhqNq5m2WUZ5MIJGf0Lt02tz3xBnwoQ5bwPQtPxTRdMUJ8AoRuBJk00rbjDpMVYRTlDnqzReeOnuki45mSaOwoZ7scrfg3k7RmstfgyKD9HMDsRPAdx9FekuV4zMgKzNAsziWHamRgw6oSPVXmYIrNIRA2N73H51Kkue1BlOUTsvD9Khiaz8XvHw1+EzpqpBPEqVNXhmmGasYxTtcY+ZkQmzyTTQ5XPJPJ5ux5d9hP2k/bwHHSScvmYV2E2jRCLM/qXlengfS+q2SRMvqbZN87+Jhd+3AYwhZ1LlP4jmEnFz2C2USZPQfPlJxZ1TRPfJ3gpTnB+tl3qwyZ/PcmAnpRwJGZw2yc98iBoTsVfWG+QXZgIInIuvWXoQdRnur+4YY4KAMRXOxI7faD07rlSeh76FklzmF3jc2wwmd5QLWTY1w+l2lEc2H4/XbG33cNrvGK5U178xoxk0W9nYoci6ZwhuWZojoR7mdPn+VzQ99RB/EY9hPet8lL97m9rHa7ndN7C0FMqGoh7aKhgpdHwBLnw8ZeiMeOy6niBvpT9g8tOVqTDRS8nhTVTSw4LST/uzhVOKKtFQ7mxbo2m3f2JkXv/VieUOFNhVIdBRWV8SeamZJ6zZmhmCNONRfdwswkkrIV5c8sRKimnGxYn+5JTlHeg05HFT/HCNWsaXQRpeo8h+oYpLWi9wqz6a1tyw/X8bzyQ8QprT2YTSqomhs0kyJGZW6hLZgsU7i39MxByf3zGZu165JK8A6wWeOYdaUlovM+3peMzdaJ3sxQ9Fqi89vqFKYHZIZwvwtGKELrHuq53qXJRqvIc00LesGh4ff3KzICRRlic0gfcJqOcqcgVXIB9fBAR/TDPSwfgtsSuvAVK2YbbxcwBF3Yy3Xf5ogMXYleALO1UU0UBt8psttFUc+9XZM6KuqUPqL5BIhn/R1JEZ7LY3ZIcUaSboSIlxD1Ug7fN6ETH6L1rQJG5LCBldlDfODq1wY8S5O91HmF9/6rRqJHVjsvTwrBO7AgeFXXfbBh73KGeEnN31g+U1B5RuaWpJwmHDWsYw0Qp1lbtAeENJq+cPTTwxbPiHdQsuEsVm0X2xv6XueIJx6dSsJ3rxK9GcwX7gJmu1L4LnhfaQsI2YjoTh6/a+rmDZvKrSR8S2dkpndkyRPt9RoQSncpeIRsTHSXnnm9EMbxBMVT5ukxUJ9s4uOGvu9bLKc6/3e8XHqd3u8cxj85x+tLTSsmgN1zyCYr7rML0gT+ZRXULrobKPqfy71oq+7r+3ztAOJxvmTMdkcEOMO06A1hvl4P4qJd1HO2Uxf5x/DSpxWsi5I7G+xxNY0Zq6A2nEG9Z+Yl7O2UkzBVOLrzCp45YHtdeva7VDB3DGC4pQgJ8zBAPQdP84xJXiKewfcF8ZKNUY6GSDZH9P5CfA5c2Z/RBr+jEPGsvStFdLfnQPCgELiq7GGborfEoxR8fDhl4Qr5jsVI0px1M+4maYhFqsOYenB7IE0SPZNJX11WWal0EU9W2Zf67jnyHe9kwsQz0Zt48D6i1KdTwf3Tzt+OSvTmyL/gPFkTUZeIz/QFFDkepg3SJEyiqFNWV2lcI56bkB6yeBZi97OE+6ejqqrWMe8xylsZ6XZU5+ldId/yhbTwNdG7vc35uxD5Tu0m/mIyPrtv2cNtI153FPA1/I9A2J1v0t9fwt7aO9N2UZWj28nZTjcGlejNUezw1Jbwtu7RrMXr85y/G2xIW+psUL8ZwmwYwJZIdYVxP0K8c9Am1fkqp3KM5XRmcp7aRcllSWcAdioQvjaWJyKO2Dz0RC/p1A8Fr32EeHq3zUkuIeL1FoOKOlcewduU6cP7GxR9zGE2W7kFxXZIhpxhOXXXEp58f4PtVxvx+F16bP6h5OguzQzLWbKyU9vHkvDPPHhH6XFFL7au3FrxbyeI8+FF+Yp4UegT4px7x6Dzt4V3e433E3J/oJpTD0yMS4DN3OVFZzJT0JAMgGkUsSuis27OSOYq499/WBBUU3rinskEhSfRP8osQyDKkB6/+4V4VvW84ixAOjJHye9FVY6qHcS0Pa/CMVqKxrfWFPYE+WZzZnX6b8I7/S/VWcbS5ynVmf4I7/Yb7C/4NPWCvmoIX4BmbVptmh45Sjk3XeHgdES9JY7Lf2jG5I4Z4jEjE5LU/5NoJ+GKdtRFnBb9VyNbsC+u6dqoBKn3OxWe+yHiPWt7JZUhS/BOUWxYxhbpM/l2UF4KuiMFA76cpflhyUDJpO+5ANafnD5FPPNJbmC2qHLngiQVYRI1/hCdeyhe5jzlTRyKCm7ShtV5dh/ZEU7KN82OUGeukO+8xd2UUVpgORXXztmGdoSTeOzQyx8IoT4QwtdOOUcHQqTvEacXXUZb8g4rp8g/0cw2U8QpvcRR6Yu6cU3aIZ/An1NWRpLT1yv5XR3LZdnSfIkHFiO+OkcyaaP+WxjvR2H8jtC8ExpGIFiTDSm6BV9LGMjkU6QNLeBuHKct2vh3vJ+/ORJ18EOI4BfRP3oO67yL5dnQ5x4JnirKsj17Nyua2fcwykv04zVDnFFyvfzWFb208L2iWVyA6ETDZHXf8CFdm5wF58rDPxb3uJX6z4VoI4FoLw+Sd22TAMuT2B5Qzvo7U26xPB/C5cYdcp08e+gEXEhBw1lJ972W+setieglnfsf+LHK36ZR/0W7Xbpj0LQI8rZi4XMteGkbkGaM93PpbjK+Y5PzVCScnHDuK98lQ3/t0LDvZNzXp/4hR3vtEgQvnQL/n3O0ZXihuehc56hPuvMS2TPfEqP+DKLbYIlfwleW4AEfJ94kUd5lKroIHd7/TDJic4/bw0hyqL86iHDOsDxh7pfHDmVajJMlPG2H7eSbFP1e5BW9dIP7B/EO1j6ywPvG0Ov2ykyE3KXw3aH4uscq+YJmjum6EL69Ep2ECYC/SxK8JKJrS4b9BPGYXhvvs05dlKeL5fHOqxq0B9mhvoK9Ma2+VAdLht1DhpIT4EL4AsSp3itJC5YyAlsFbjATF/vskfi9iij0b5htDJ0In4vU7aWopynqyxT2JjM1KT2eVVf/wHw5g2k7PxXvpKxoZyjuK49PjYRDN8B7Cs+FIB1LbWheg7agcqiTdZV5I+JQ/P6HJHgHNaiT75JWtIQzZWONZwfxkpmv67Ig2xYeJBG/C9EReyh38fir6HhXBYUlaaA98RKKPoPLQyqrNOZ98KR5nbZ0gXic61y0qZaltn4lIsoqDNwXvK+nPZSM2bVoF6eO2nxHMvxV7UTzL8wmiiR2ZYz3MaZkXeWteJ869RVmtKW6CF5CEnV9lRyBM1EfNwZ2PMksnOPj8rdX0V4/XOtTFEUuHqwtGn8HbtbiTYTQ/XYYQXVTz6BrsJ5TAjxTdFqdbXgekZ2X74nIGgWvU5RQ1M8x9LdZS9YO/c4ol4kRuylgWHXfQx4Dt4oe3tdymjhUz6m2XvR92qjjEOrt9V6FQXPR5gLEmxr4wAT51t0FKccg6x3PsbyG9VD8LsuO3gmHoyzB66TKl7ce0vZ1kGFbX4WtmIo+OEvV4d6aOllbL65ET1VZbWGw26LQ68QwvWh3lHr4UQUNvS06+16GYZyJstbF23L1jlWMQFTCEYp29Zfi3/+ItuRz3QV4H4+ZOc5odODPhgZFjX1HOB/7BctwUUH7sCl6SRs6F1GejUzIHTQyfmWJHiGEFHESfNm6zlb03xYGXzfytzWMY+s92MyCJJHfsWEmZCHq5BEGKX+KHiGE+BE1h1gevtjULFI6i3CocDpmRbILFD1CCCEbwxargBBCCEWPEEIIoegRQgghFD1CCCGEokcIIYRQ9AghhBCKHiGEEELRI4QQQih6hBBCCEWPEEIIoegRQgih6BFCCCEUPUIIIYSiRwghhFD0CCGEEJ/YBjBmNRBCLHKg+DvaGeIFnyKeIksIsWxXFH9HO0N8YELRI4RQ9MgmsADwD8f0CCGEbAIXAGaM9AghjPRI05lAjDVT9AghFD3SZBYA/gEwA7hkgRBCSLM5SQSPokcIIaTJPAAYpv+C6U1CiG2Y3iQ+sADwN4B5+i8Z6RFCCGkiJ7LgUfQIIYQ0kQ9pzQSmNwkhtmF6k1SJMq3JSI8QQkgTOckSPCDecPqSdUQIcQztDCmDf5GR1kz4xOwmIYSQTYHpTUIIIRQ9QgghhKJHCCGEUPQIIYQQih4hhBBC0SOEEEIoeoQQQghFjxBCCKHoEUIIIRQ9QgghhKJHCCGEokcIIYQ0le2S7tMR/z3M+Pc/iI+CmGLFkRCEEEKIb6IXCpE7BtAGsGP4+wWAEYBHxEdEzPiaCCGE2MBmerMH4AnxeUY3AI5yCB4AtMRvr8S1xuLapBlEqU9f8e9n0nfWfYKKnqNrUMY3vnZi0F6Ix6IXCMP1JoRu10EZ98W1Xyh+G8HQ8Pudisp57PCZCCGOKJLe7AIYiMgsi1fEqco/eB+vm0rfaQvxbAPYE0ZMFSHuCPE7RXwc/Iyvr5HMADwbOFDHFYlK1+C7v/laCamv6AVC7I5WCN0V9MfjEhEcSUJ4KiK7liLyewLwHcAtX2EjuRFtyLb42BS8luZ3F4z0CPEH0/RmG3GaUSV4E8SzM/8G8LNgJDYVovY3gEthONK0hGHs8xU2EhORaFUgfCapTTpmhNRU9HqIJ5W0FJ7sMYADKVqzwRzAhRC/O8W//wBwzdfYOGaIU5wuRMhWpGcStRJCaiZ6PdF5ZcF7EII0dFzOOeJxvGNF1PcNnODSREzEolNiudrQT22+4uMYNiHEc9HrZhigcwBfUO5i8qGIKBcKA9nh62wUJo7UjhCjMjh19AyEEA9Er4140oqq4/+sqMzTDOEboLo1W8Q+M5ilOE9LKlfXUbRKCKlY9AIA9/iYyjlF9YPzKuHbASe2NA0T0eiWUJ429DdcYGqTkJqJXl/RwS/hz2y0KeJJLmm+Id4GjTSDocF3y0hxMrVJSENFryMEJM2DQmSq5ifipRKyWJNmMINfszhNokmmNgmpkejJ43gLxLMnfeS79OevjPYahS8pzjaY2iSkkaLXU3TuE/h75M8UH9fwnfPVNoahwXd3HTo8TG0S0lDRk9ODkxp04psSPX5SLjOYpThdvfuOwXev+NoI8ZNtjSjvogbPMUKcUkrKnkxqmPIVNwKTvThdLKcJob8B9jPcbIbehnpJzhT1PHg5zIjKRx6WtWl1r/Me6v58AdQT20bbCoMhR3mjmjzkCPF4XsKxA9ELhce/l6rQUIhsMqFmLu776FHdJeX+nIpYAmHIJ1Id/hH/9amxDw1Eb1c8m83ym0SPNxbvmRzEvE5w63DwcpB6piPN5/ktnqfsttgW5ewg3uC+7nUvv4NDzXaV1oFp6hl9FvDTjODt/VmiKEo+YfSRburfff/0pLKPLV03iKLoLIqilygf91EUdSqoj0DUyVOBcvcclCtN3+B3Js9hu9wm9w4L3CeMoug6iqK3qBhjy22ur3nfrHbYL/BMb1EUDcR1XPeZrqi7Iqzq71GBeizy6Yg6tEHyPkLLZRxrtuusNqb7fOP0D8+kf3ypkeAlBqOf+vQsiEbfggFyZYhWfc4slvvFsvOTV/TODA2PzXaly1PBtmabcRRF7QpFr2uxHb45csIg6mjsoO7DikXPxXOlsSl+eUWvY9jGxttSOlBOKdWJmcXxxw7iZRuqEDk5GHcmwn05vP6ckRbZF9//Jco5d5SWGWSkLZI0zFRR7iCVspVTTzsizTRB+Xut5k1xHllMcbpObbYR73y046DO9kW6+hLlj81f4+Na3yIkx4kdwu7yqZ4oa8tB3T+JslZhS23Xv4qvon9coJptKXu5+lzK05Rp1yzSc5UmTXs1nchOWvTJQXqgl+HxjA0jtSQt+pLhbbcrivSqSnG6TG32ovIokiI0jfQGjp/l2tK7vS6p7nslRnpBgSGNqtpXnkgvb98Zb6W8TTkqmGLzGCg8h2cRBZ0YTkyZC+9HdRDurvAC25Y9npYUkR4i3qN0aFjuW1HuU6ncLcRnKrYrej8mXt2hpYFxV7M283mpxbzyMdxvyt6XJpS54BuKL00pIxJKt9tOSRNwngzabB3bV5KJy913tjIMxAibR0/RWX8B+MeCA3AhxOdZISCBhXLLDeBOlLvoe0zE79kT4TMR766F+7lKbZYteGln696xMfpRYvouKNBnvpVc9wPH1w8cpslN2te4pOfMTVakt2lRnspzOMXHLc6KMF0hfEU8u2uF4NncQWcuBPTOgWCbMoP+QvWWBeEziRaHBdqaLs+Ix1aTzyLHNfYdGuBBjmd4zXmvnZzvN1T0GVMmOd6DazEaF7jHQvFMRYTPpcCfo+j4a8a4RWeDxvACxVjYmeP7PVkao3hS5NVd1tXYwizJImN6prM4BwXfk+3ZokGO2Yz3a8Zk2znH0LoOxvRWjcX0Voz5hDlnSr84GjtSjWVfrxnPTp7hxcL4WBljk2+ivG0HbSvPcjfdMb3Cy3myptKGGyR6g5KFI2lMbwUnDvUtTZc3FYKXgo27qOiFhh3b9oSmIpNmTAzIk2GbCA0nMLwZTDzIK3pvhg5kO8ckDBNb1c257i6Iyl1+YmpL8kwECgzb1n2Odx9Ebp2RLEdoIPpkJ/U5S5azZXm0myJ4bUWFBVF5a+l0Fl7qRAxvJToqnYLedlHRM51RmTdrYdLJgxz15mom3MDQ+LkSvbwzfduG3ryJqJpGYUUyPkXWKLqMXIvMau7nENeyRO9F99m2oJ65uSmcKyaczEu6908pd75vMMNLzmv/RHnbH42k8b0dMTGgTEzGxPKcsRdg/VZZCQ+abaZvcL0iY7In4ho6uDx0+SDn3IApzNZ8fTYYSzUZ87pEsbVnQ7g/jq2D9dukyfMUbgvc70LUCzxoX/I8hn90n20ro9FtAiGWZ2s+o/xT4S8UjVKHM8lJuaq43GUf5TQ0+G6eyQ4mv/mtOeFIxzi9WjKUJwbOq4t3d1nQjpi057aBwTeZqHJhqZ1eOuwH54bv5NZS338w+P6pY1tgPHFvC5vLaYGOZjNqSs9G/Ir1MyJ7iihvXnK5Z1K0t4tylzDMoD+LcydH2UyiQx0B1jVOtmbdzqE/89h2lP5qQTDmKDaDsKgjYzNCu0D+GarrnPajEt9Jmu8GTlXPoR24y/OuNln0elK0dFtROa4MO6dskG8qKvdNyR4dCjy3SdkC2E9t6hjcZ9hdH3uraWxtLO2Q72vLIbRFB/rT3O9gf6jAxRZw3QrvP4N+6jeP06kr5LmWlG2q6IVYzu8PKyzL0DDKOJKM7qyico8ko9qpuN7WGT0XxuS35vV0DK6LTIPuNY8t3tOWE/bHYpkOHdSZqSNge66E7jO9OnLoTerp2MH9c8+/2FTR6+QwXq6YYzmV0zEo92PF9Zj2xpNz7MpiBv0U5y70B9RtL0g/zFGXLt6PLadgFQuLTtjcYX9fJRBTD5w0HXSzEa6GbebQH9uz7RAXEvJNFb29EgxOXuPUWpEO8G27OFl02yXf3ySq6Fr+nm5qU6dObIpFmin0dwsJLN3PR3QdnmGJfaUIJv3MpY3QDRb2Ld+3UOS6pei4+2g+6UbzjOpPCX/U7KShZ0ZmVCBKKtt71hnX60J/7OfGYod3+R6nOfpE09jJ2Q+riLptirjrgwNGDspsU2yVbGMzT1NId/CZB+WZKSLR4ZqG8+xhucMK7v8MvV3lkxTnqvetO/aw0BTc0KA9jkto666N0sjDvm4SwU5L7CtF2PMk8p6JvtDSbF826qCwkG+nLpQueAfNPmmh5VG0ZNIh0oZp7kldpkUnrOD+N9Aft+hi9ayzruUIMzRoj1VnWD43tK+3HfRDG32lDMqw4VPNthtYvF8htjIuFNa0gYeId75IPmcN66g7nom1D+I7NPju4RrB001t/gZpGosa9ZU62uc9S9exJnozRwWsQvR+pD7HNWowE0OvaA6StF3dVO/Rirq1ndok9WJao7L6ZMNGJd+vsN1LRE9eE9Opseitq6CQ/btx2JjF2XUQWRJCPGMrQ63LXnNli88a3puvHl3A5pgbEyFSRXQdMLVJSN2jTiPRm+JjTrtbwxcgR6h/XITHjkgPcM+a2NgcMoNZilNHCFU0ObX5H413bRjVsN68aV9bK7zl45o12gAfZxGNatoBs0Tv2cNO6ks5iqQ4dR08V4I3AfCp4s/PhorZVPN7OyWUpewZuu2S7K7N91Cq6P1WeMRBjRp3RyEQWVFdlXtGFmmccw/FZscTJ8NEkI6lutc1eKb7Ss5AqmbuiQNn89r/efA8Cbt1axBypCenOM9r9CynBgZq5pl4yGV41PCWdjwod9ujFMYM+inO7op2gxWO0ihHmXzxyDeZZw/eg81r60ZNrudmmAQMI18ag7z35q3057OaNOoQH8dqhpovYMcD4TvUbNS+zbLt5OyMrtCNxNLH6XQdRJJpJprlCUFcOkSmGQDb2Ly2ST/revBMrz41Bln0rhSdsV/DKG+ypqH7LB6vyE7JTEvspHnEumpvbmhY9jbcpTZNDVQHxBW678ClQNi89twgej324JlGPjWGbYVHdIf4BO90tHcFf2c9hoqI9MbwJRyjukNkQyznxUdrOm96yzifxHriQVuYQX+rJxMjVOTImUcA3zSNk4s2eAbgrzXf+bfC9l8GvxFvVqETcfcc1EUP+ktidBlptvMj2Nv3Uu4/PmzkXTjSAz6estsCcO1xg+5LDUrnrCXZU6py0s6pooPqRjO7qG48SO7Ivqxf043IdsQz2I4g83q5iXGy7ZRcYXmXItWnrjswmUR6i5z90ZaNqqqdu7q/yXyPoU+NYSvDW/4l/d1X+LluryNFpSrRzuKqwEu0LR4JOuvAbjwp96mnDdukHLaPEcpysHQP27TtXOoau01YcK/bLvYNnCHdSNvFpLMp9MfKvlp2js+gv/xC99zJSkUvEQ7ZMxrAr8H2AMC99HcTg9TEUHrGswqivZ7UIXTKPpIa+9cK3ktHavQP8Gd6/gx2j12ycZq2rmgeWTS4XU3DlGdWah0xcVyuLYlEG27nRNwafPfekn0zfaYr3xrC1grv9EThFduqOBvcKzz174Ye+E/p+cqMmgJF49FtIBclpC9MIgjfGvaNxWsNLV1D1yu3YXDbwkm1bTjrzMjAGWqJ+gsK9u972B/Lk/udbtp2B/GZjUWeKTR8pomPDtXWmo4qpzl3LVScDQYKL/Y8h0d+pYj22iU9Q1+K8u4MoqVbRbTXKanccmrDx4Y9tHgtWwKq65C1RB/LG/G1xe91DNPCR0/csUjosgvgKac9aAN4gfu1tLLjrvNMY+TLDHVEfZg804WPjWBLo6NOPBO+AT6O4z0g3zZKqmhvUMKzdbE8o29hGKWqjGgZUbgqtfHdw3Y9g50Up43UZlqIdWe4toTY3sPs5PNrxMtxdD3xn9isI6puYTbLeEfUZ1+zb4XCfpi8g6JcGLb1RMxNn+nR8Jke4GnafFvjO1+EyO0qhO8E5S1IDkSnlgXvGR9TsaaNppt6vl1xnxNHz9HGx9TTSQ7jMxQN60iKEA4cGbJAEUFcwt9TK0xOVLcRGehwIgyOrvE4Ep9nYUAepXcbIJ552YH5vo7PvnrijvkO9Ub0q0hmuT6I9i5PwU/WfB5V9Ewnhs/Ukp7pUdGPD3O2q8SJP/G2BURRpPMJoih6ij7yFkXRmeY1inzaGfd/EmUrev1QPEuagaPnsHkf1XuxVSfr6n+c81pp+g7bTBgVJ3RQrm5UPW+Gz9bXvK7N99nRvGeedngW+U2e+up5UvY3YS9Myz8uq41taWrjXEQQE4XHcCUigI4jXe4LL2ZX4anaimpm4lrp8b2vwisPLT1HTxEpFY1S5+L3C0tjEVm5fDnSfxYZAJ8pmuJ8hpsZqUO4WQtm4oUfYLM3w/6JeAy97Hr/5Th1e+pB3X6H56fQbxl8NxE+1YvbFyHyGPbW8/UQDwb/yMgX207jTVcISJHZkaGolxuF4B1YKrcs2KZjESa5/Ge4S6G6SHFW8VtfDVQieFOQk5KF76SEPlOl8C1Q7c5WTkQvreSHUE/B3ke80PUF8bhY19DodoWhfRNGRzVT6FxEGS4a0FAhIEn++w1m08m7iCci/KvIi98B+MfiM0zF9Z4VYxEvOco9EOWWx08nNRK85H1W8VtdA3UM/SnnRXmm4CmF6FcJ9zlFeZs3lN2u0m1rWIeXvp3zdyNhZM8RT2GXB+Z3EM9OTGYovop0ylRhMEPxWTdgOhGNdOa4TqYA/haG/0gSv+SZFuJ7I8NnSQZ4XTSOmWh4fSzPDFWVW34PgRDFVeW+QP0OGp1Bfy9OuRPPSijfUPSjAdweMPpLvL85iMqJfxTvwPaMy2RWdtnRzzDDhrFtAbAx4ByIwcU3RwOjYzGojQo+HYMB1nWDu30HE0xWTTy5t1T/A8sTOsqayFJk0sJZjduai3fXtIksZdixsaLu+w4nspTZrlzYhdImsnyKosimhnZFaN0t6DUle1BeeZKOaYsURRdmizMnIk07rMgTCkU03jGMdp5T5bYd8aTHRx/hfi1PCPNxjhtUN9Ejb1tz+e46+HiMlAqb71P3vdk+ISIQdX+eI0OQ2K2bjHrQrccLj2yBbM9+i/q2bc96AD6X0cZsi57ceTuI1xElab+dFZU5x/samBH8JRTPlrUz/X8Zqc+qSVKYh2vKPWUazKu21hHGoA31+PhMfP6INsd356bPJDYsq/59t1tZz5X8v4rEFjw2yS64FD1CCCHEK7ZYBYQQQih6hBBCCEWPEEIIoegRQgghFD1CCCGEokcIIYRQ9AghhBCKHiGEEELRI4QQQih6hBBCCEWPEEIIRY8QQgih6BFCCCEUPUIIIYSiRwghhPjENuJDKgmpgjniwyllQqgP7CSEkEJ8iniKLKmOCYADxd/3Afxg9RBCLLNgepMQQsimcEHRI4QQsglMAPyk6BFCCNkETgDO3iSEENJ8LgHMKHqEEEKazjOAi+QPFD1CCCFN5iT9B4oeIYSQpvIL0lpgih4hhJAm8opUWpOiRwghpMmcIN71iaJHCCGk0dwBGKn+gaJHCCGkSSwAfM/6R4oeIYSQJqFMa1L0CCGENI0HAMNVX6DoEUIIaQILSGvyKHqEEEKaygVWpDUpeoQQQprCBMBPnS9S9AghhNQZrbQmRY8QQkgT+AlxggJFjxBCSJNZOkGBokcIIaTJnJj+gKJHCCGkjlxCOkGBokcIIaSJvAK4yvNDih4hhJC6sXKrMYoeIYSQpvALGScoUPQIIYQ0CeXBsBQ9QgghTeQ7cqY1KXqEEELqxNoTFCh6hBBCmoDRVmMUPUIIIXWmcFqTokcIIaQOTADc2roYRY8QQoivWEtrUvQIIYT4zgUMTlCg6BFCCKkrz9A8GNaE/x8AFI8snuCl8V0AAAAASUVORK5CYII=); background-size: contain; background-position: top center; background-repeat: no-repeat; display: none; height: 80px; width: 100%; margin-bottom: 20px; } @media screen and (min-width: 960px) { .footer-gartner { display: block; float: right; margin-left: 3.22581%; width: 13.97849%; height: 160px; margin-bottom: 0; } .footer-gartner:last-child { margin-left: 0; } } .main-footer-header { background: #037bac; } .main-footer-headerwrapper { *zoom: 1; max-width: 60em; margin-left: auto; margin-right: auto; max-width: 32.5em; padding: 3px 10px 0; overflow: hidden; height: 40px; } .main-footer-headerwrapper:before, .main-footer-headerwrapper:after { content: " "; display: table; } .main-footer-headerwrapper:after { clear: both; } @media screen and (min-width: 960px) { .main-footer-headerwrapper { max-width: 60em; } } .main-footer-headerlogo { color: white; } .main-footer-headerlogo:before { font-size: 156px; display: inline-block; line-height: 30px; } .main-footer-navlist .menu-item { padding: 0; margin: 0 0 5px; list-style: none; } .main-footer-navlist .menu-item > a, .main-footer-navlist .menu-item > a:visited, .main-footer-navlist .menu-item > a:link { color: white; font-weight: 300; } .main-footer-navlist .menu-item > a:hover, .main-footer-navlist .menu-item > a:active { opacity: .6; } .main-footer-navlist > .menu-item { margin: 0 0 15px; float: right; width: 50%; } @media screen and (min-width: 960px) { .main-footer-navlist > .menu-item { float: none; display: inline-block; width: auto; padding: 0 0 0 30px; position: relative; } } .main-footer-navlist > .menu-item > a, .main-footer-navlist > .menu-item > a:visited, .main-footer-navlist > .menu-item > a:link { text-transform: uppercase; color: white; font-weight: 400; margin-bottom: 10px; cursor: default; } .main-footer-navlist > .menu-item > a:hover, .main-footer-navlist > .menu-item a:active { color: white; opacity: 1; } .main-footer-navlist > .menu-item:nth-child(1) { float: left; } @media screen and (min-width: 960px) { .main-footer-navlist > .menu-item:nth-child(1) { float: none; } } .main-footer-navlist, .main-footer-navlist .sub-menu { padding: 0; margin: 0; list-style: none; } .main-footer-navlist { margin-bottom: 25px; *zoom: 1; } .main-footer-navlist:before, .main-footer-navlist:after { content: " "; display: table; } .main-footer-navlist:after { clear: both; } @media screen and (min-width: 960px) { .main-footer-navlist { text-align: right; min-height: 160px; } } @media screen and (min-width: 960px) { .main-footer-navlist .sub-menu { position: absolute; top: 30px; } } .main-footer-navlist .sub-menu .menu-item { font-size: 14px; text-align: left; } .main-footer-address { margin: 0 0 10px; text-align: center; } @media screen and (min-width: 960px) { .main-footer-address { text-align: left; } } .main-footer-addressstreet { color: white; margin: 0; font-weight: 300; font-size: 9px; line-height: 15px; } @media screen and (min-width: 960px) { .main-footer-addressstreet { font-size: 12px; line-height: 20px; } } .main-footer-content { *zoom: 1; display: block; } .main-footer-content:before, .main-footer-content:after { content: " "; display: table; } .main-footer-content:after { clear: both; } .main-footer-copyright { font-size: 9px; letter-spacing: .1em; line-height: 15px; text-align: center; color: white; } @media screen and (min-width: 960px) { .main-footer-copyright { *zoom: 1; display: block; font-size: 12px; line-height: 20px; } .main-footer-copyright:before, .main-footer-copyright:after { content: " "; display: table; } .main-footer-copyright:after { clear: both; } } .main-footer-copyright a, .main-footer-copyright a:visited, .main-footer-copyright a:link { color: white; font-weight: 300; } .main-footer-copyright a:hover, .main-footer-copyright a:active { opacity: .6; } .main-footer-sociallist { padding: 0; margin: 0 0 10px; text-align: center; } @media screen and (min-width: 960px) { .main-footer-sociallist { text-align: left; margin: 0 0 15px; } } .main-footer-social-item { list-style: none; display: inline-block; font-size: 25px; } @media screen and (min-width: 960px) { .main-footer-social-item { font-size: 30px; margin: 0 5px 0 0; } } .main-footer-social-item > a, .main-footer-social-item > a:visited, .main-footer-social-item > a:link { color: white; } .main-footer-social-item > a:hover, .main-footer-social-item > a:active { opacity: .6; } .footer-sociallink { display: block; } .blog-mainheader { width: 100%; background: #00b4ea; } .blog-mainheader-wrapper { *zoom: 1; max-width: 60em; margin-left: auto; margin-right: auto; max-width: 32.5em; padding: 0 10px; overflow: hidden; } .blog-mainheader-wrapper:before, .blog-mainheader-wrapper:after { content: " "; display: table; } .blog-mainheader-wrapper:after { clear: both; } @media screen and (min-width: 960px) { .blog-mainheader-wrapper { max-width: 60em; } } .blog-category-wrapper { padding: 20px 0 0; text-transform: capitalize; } @media screen and (min-width: 960px) { .blog-category-wrapper { padding: 0 0 20px; } } .blog-logo { display: block; float: left; margin-right: 10.34483%; width: 44.82759%; display: block; font-style: italic; text-transform: uppercase; color: white; font-size: 12px; font-weight: 700; letter-spacing: 0.2em; text-align: left; } .blog-logo:last-child { margin-right: 0; } .blog-logo:visited, .blog-logo:link { color: white; } .blog-logo:before { display: block; font-size: 184px; line-height: 50px; text-shadow: 1px 1px 1px rgba(0, 0, 0, 0.3); } @media screen and (min-width: 960px) { .blog-logo { display: block; float: left; margin-right: 3.22581%; width: 31.1828%; } .blog-logo:last-child { margin-right: 0; } } .blog-companysitewrapper { display: block; float: left; margin-right: 10.34483%; width: 44.82759%; text-align: right; } .blog-companysitewrapper:last-child { margin-right: 0; } @media screen and (min-width: 960px) { .blog-companysitewrapper { display: block; float: left; margin-right: 3.22581%; width: 22.58065%; margin-left: 43.01075%; text-align: left; } .blog-companysitewrapper:last-child { margin-right: 0; } } .blog-companysite, .blog-companysite:link, .blog-companysite:visited { color: white; text-transform: uppercase; line-height: 50px; font-size: 12px; } @media screen and (min-width: 960px) { .blog-companysite, .blog-companysite:link, .blog-companysite:visited { font-size: 16px; } } .blog-wrapper { *zoom: 1; max-width: 60em; margin-left: auto; margin-right: auto; max-width: 32.5em; padding: 30px 10px; position: relative; } .blog-wrapper:before, .blog-wrapper:after { content: " "; display: table; } .blog-wrapper:after { clear: both; } @media screen and (min-width: 960px) { .blog-wrapper { max-width: 60em; } } @media screen and (min-width: 960px) { .blog-wrapper { padding: 120px 10px 0; } } .blog-main-content { display: block; float: left; margin-right: 10.34483%; width: 100%; } .blog-main-content:last-child { margin-right: 0; } @media screen and (min-width: 960px) { .blog-main-content { display: block; float: left; margin-right: 3.22581%; width: 74.19355%; padding: 0 10px 0 0; } .blog-main-content:last-child { margin-right: 0; } } .blog-mainfooter { width: 100%; padding: 10px 10px; background: #00b4ea; height: 60px; } .blog-mainfootercontent { *zoom: 1; max-width: 60em; margin-left: auto; margin-right: auto; max-width: 32.5em; text-align: center; margin-bottom: 0; font-size: 9px; line-height: 20px; color: white; } .blog-mainfootercontent:before, .blog-mainfootercontent:after { content: " "; display: table; } .blog-mainfootercontent:after { clear: both; } @media screen and (min-width: 960px) { .blog-mainfootercontent { max-width: 60em; } } .blog-mainfootercontent a, .blog-mainfootercontent a:link, .blog-mainfootercontent a:visited { color: white; } .blog-mainfootercontent a:hover, .blog-mainfootercontent a:active { opacity: .8; } .blog-controls { *zoom: 1; max-width: 60em; margin-left: auto; margin-right: auto; max-width: 32.5em; margin-bottom: 10px; padding: 0 10px; } .blog-controls:before, .blog-controls:after { content: " "; display: table; } .blog-controls:after { clear: both; } @media screen and (min-width: 960px) { .blog-controls { max-width: 60em; } } .blog-controllist { padding: 0 10px; margin: 0; display: block; float: left; margin-right: 10.34483%; width: 100%; } .blog-controllist:last-child { margin-right: 0; } @media screen and (min-width: 960px) { .blog-controllist { display: block; float: left; margin-right: 3.22581%; width: 56.98925%; margin-left: 17.2043%; padding: 0 15px 0 0; } .blog-controllist:last-child { margin-right: 0; } } .blog-control { display: block; float: left; margin-right: 10.34483%; width: 44.82759%; padding: 0; font-size: 12px; } .blog-control:last-child { margin-right: 0; } .blog-control:nth-of-type(2) { text-align: right; } .blog-control a, .blog-control a:link, .blog-control a:visited { line-height: 45px; text-transform: uppercase; } @media screen and (min-width: 960px) { .blog-control { display: block; float: left; margin-right: 5.66038%; width: 39.62264%; font-size: 14px; } .blog-control:last-child { margin-right: 0; } .blog-control:nth-of-type(2) { text-align: right; display: block; float: left; margin-right: 5.66038%; width: 54.71698%; } .blog-control:nth-of-type(2):last-child { margin-right: 0; } } .blog-sidebar { display: none; } @media screen and (min-width: 960px) { .blog-sidebar { display: block; float: left; margin-right: 3.22581%; width: 22.58065%; } .blog-sidebar:last-child { margin-right: 0; } } .blog-headerimage { height: auto; margin: 0 auto 10px; } .blog-share { margin-top: 8px; float: right; } @media screen and (min-width: 960px) { .blog-share { float: left; } } .blog-share-wrapper { display: block; float: left; margin-right: 10.34483%; width: 44.82759%; line-height: 45px; text-align: right; padding: 0; margin-bottom: 0; } .blog-share-wrapper:last-child { margin-right: 0; } @media screen and (min-width: 960px) { .blog-share-wrapper { display: block; float: left; margin-right: 23.07692%; width: 100%; line-height: 30px; text-align: left; text-align: center; } .blog-share-wrapper:last-child { margin-right: 0; } } .blog-share-icon { font-size: 26px; margin: 0; display: inline-block; list-style: none; } .blog-share-icon a { display: block; } @media screen and (min-width: 960px) { .blog-share-icon { font-size: 28px; } } .blog-part { *zoom: 1; display: block; margin-bottom: 20px; } .blog-part:before, .blog-part:after { content: " "; display: table; } .blog-part:after { clear: both; } .blog-part:last-child { margin-bottom: 0; } @media screen and (min-width: 960px) { .blog-part { margin-bottom: 60px; } } .blog-header { *zoom: 1; display: block; } .blog-header:before, .blog-header:after { content: " "; display: table; } .blog-header:after { clear: both; } @media screen and (min-width: 960px) { .blog-header { margin-bottom: 10px; } } .blog-subtitle { color: #747474; font-weight: 400; } .blog-headerimage { max-width: 100%; display: block; margin: 0 auto 10px; } .blog-content, .blog-excerpt { *zoom: 1; display: block; margin: 0 0 10px; } .blog-content:before, .blog-content:after, .blog-excerpt:before, .blog-excerpt:after { content: " "; display: table; } .blog-content:after, .blog-excerpt:after { clear: both; } @media screen and (min-width: 960px) { .blog-content-wrapper { display: block; float: left; margin-right: 4.34783%; width: 76.81159%; } .blog-content-wrapper:last-child { margin-right: 0; } } .blog-meta { display: block; float: left; margin-right: 10.34483%; width: 100%; padding: 15px 0 10px; border-bottom: 1px solid #dddddd; margin: 0 0 10px; } .blog-meta:last-child { margin-right: 0; } @media screen and (min-width: 960px) { .blog-meta { display: block; float: left; margin-right: 4.34783%; width: 18.84058%; padding: 0 0 10px; border-bottom: 0; } .blog-meta:last-child { margin-right: 0; } } .blog-date { display: block; float: left; margin-right: 10.34483%; width: 44.82759%; line-height: 45px; font-size: 14px; text-transform: uppercase; letter-spacing: 0.1em; margin-bottom: 0; } .blog-date:last-child { margin-right: 0; } @media screen and (min-width: 960px) { .blog-date { display: block; float: left; margin-right: 23.07692%; width: 100%; line-height: 40px; text-align: center; font-size: 16px; } .blog-date:last-child { margin-right: 0; } } .blog-author-imagewrapper { text-align: center; } .blog-author-imagewrapper img { height: 68px; width: 68px; background: lightgray; border-radius: 34px; border: 4px solid white; box-shadow: 1px 1px 2px rgba(0, 0, 0, 0.3); margin: 0 auto 10px; } .blog-readmore { text-transform: uppercase; font-weight: 700; margin: 0 0 10px; } @media screen and (min-width: 960px) { .blog-readmore { font-size: 14px; } } .blog-part-footer { *zoom: 1; display: block; padding: 10px 0; border-bottom: 1px solid #dddddd; } .blog-part-footer:before, .blog-part-footer:after { content: " "; display: table; } .blog-part-footer:after { clear: both; } .blog-author-image { height: 68px; width: 68px; background: lightgray; border-radius: 34px; border: 4px solid white; box-shadow: 1px 1px 2px rgba(0, 0, 0, 0.3); margin: 0 auto 10px; } .blog-author-title { letter-spacing: 0.05em; text-align: center; } .blog-author { *zoom: 1; display: block; padding: 0 0 5px; border-bottom: 1px solid #b0b0b0; margin: 0 0 5px; display: none; } .blog-author:before, .blog-author:after { content: " "; display: table; } .blog-author:after { clear: both; } @media screen and (min-width: 960px) { .blog-author { display: block; float: left; margin-right: 23.07692%; width: 100%; border-bottom: 0; } .blog-author:last-child { margin-right: 0; } } .blog-author-name { color: #00ac4d; text-transform: uppercase; font-size: 14px; letter-spacing: 0.1em; text-align: center; line-height: 20px; margin: 0; } .blog-author-title { margin: 0; } .blog-part-categories, .blog-single-categories { display: block; float: left; margin-right: 10.34483%; width: 44.82759%; margin-bottom: 5px; margin-top: 5px; padding: 0; text-align: right; } .blog-part-categories:last-child, .blog-single-categories:last-child { margin-right: 0; } @media screen and (min-width: 960px) { .blog-part-categories, .blog-single-categories { display: block; float: left; margin-right: 4.91803%; width: 73.77049%; } .blog-part-categories:last-child, .blog-single-categories:last-child { margin-right: 0; } } .cat-item { text-transform: capitalize; list-style: none; } .blog-single-categories { text-align: left; } @media screen and (min-width: 960px) { .blog-single-categories { display: block; float: left; margin-right: 6.66667%; width: 100%; } .blog-single-categories:last-child { margin-right: 0; } } .blog-readmorewrap { display: block; float: left; margin-right: 10.34483%; width: 44.82759%; margin-bottom: 5px; margin-top: 5px; } .blog-readmorewrap:last-child { margin-right: 0; } @media screen and (min-width: 960px) { .blog-readmorewrap { display: block; float: left; margin-right: 4.91803%; width: 21.31148%; } .blog-readmorewrap:last-child { margin-right: 0; } } .blog-part-category { display: inline-block; list-style: none; font-size: 12px; text-transform: uppercase; letter-spacing: 0.1em; margin: 0 15px 0 0; } @media screen and (min-width: 960px) { .blog-part-category { font-size: 14px; } } .blog-categorieslist { padding: 0; margin: 0 0 50px; } .blog-category { list-style: none; } .blog-comments { background: #efecec; border-top: 1px solid #d8d0d0; padding: 10px; } .blog-comments-wrapper { *zoom: 1; max-width: 60em; margin-left: auto; margin-right: auto; max-width: 32.5em; } .blog-comments-wrapper:before, .blog-comments-wrapper:after { content: " "; display: table; } .blog-comments-wrapper:after { clear: both; } @media screen and (min-width: 960px) { .blog-comments-wrapper { max-width: 60em; } } .blog-comments-content { display: block; float: left; margin-right: 10.34483%; width: 100%; padding: 10px 0 0 0; } .blog-comments-content:last-child { margin-right: 0; } @media screen and (min-width: 960px) { .blog-comments-content { display: block; float: left; margin-right: 3.22581%; width: 56.98925%; margin-left: 17.2043%; } .blog-comments-content:last-child { margin-right: 0; } } .blog-categoriestitle, .blog-tweetstitle, .blog-socialtitle { text-transform: uppercase; font-size: 16px; letter-spacing: 0.12em; margin-bottom: 5px; } .blog-tweet { font-size: 13px; padding: 0 0 15px; margin: 0 0 15px; border-bottom: 1px solid #dddddd; } .blog-tweet:last-child { border-bottom: 0; } .blog-tweet .icon-twitter { color: #00acee; position: relative; top: 6px; font-size: 22px; } .blog-tweet-meta { *zoom: 1; } .blog-tweet-meta:before, .blog-tweet-meta:after { content: " "; display: table; } .blog-tweet-meta:after { clear: both; } .blog-tweet-who { font-size: 13px; float: left; margin: 0 0 5px; } .blog-tweet-author { padding: 0 5px 0 0; } .blog-tweet-time { padding: 0 0 0 5px; } .blog-tweet-content { font-size: 13px; margin: 0 0 5px 0; } .blog-tweet-when { color: #747474; font-size: 13px; margin: 0; float: right; } .blog-sociallist { margin: 0; padding: 0; } .blog-social-item { list-style: none; display: inline-block; margin: 0 1px 1px 0; font-size: 28px; } .blog-part-category a:before, .blog-category a:before { position: relative; margin-right: 5px; top: 6px; font-size: 24px; -webkit-transition: all 0.3s ease; -moz-transition: all 0.3s ease; transition: all 0.3s ease; } .blog-part-category a:hover:before, .blog-category a:hover:before { opacity: .7; } .category-icon-launch:before { color: #00b4ea; } .category-icon-oped:before { color: #058eb0; } .category-icon-news:before { color: #00ac4d; } .blog-social-twitter a:before { color: #00acee; -webkit-transition: all 0.3s ease; -moz-transition: all 0.3s ease; transition: all 0.3s ease; } .blog-social-twitter a:hover:before { color: #22c2ff; } .blog-social-linkedin a:before { color: #0e76a8; -webkit-transition: all 0.3s ease; -moz-transition: all 0.3s ease; transition: all 0.3s ease; } .blog-social-linkedin a:hover:before { color: #1297d7; } .blog-social-googleplus a:before { color: #de473d; -webkit-transition: all 0.3s ease; -moz-transition: all 0.3s ease; transition: all 0.3s ease; } .blog-social-googleplus a:hover:before { color: #e57069; } .blog-social-facebook a:before { color: #3b5998; -webkit-transition: all 0.3s ease; -moz-transition: all 0.3s ease; transition: all 0.3s ease; } .blog-social-facebook a:hover:before { color: #4c70ba; } .comment-form { *zoom: 1; margin: 0 0 30px; } .comment-form:before, .comment-form:after { content: " "; display: table; } .comment-form:after { clear: both; } .comment-form #submit { border: 0; line-height: 35px; float: right; padding: 0 20px; } .comment-form-comment label { display: block; font-size: 21px; margin: 0 0 10px; } .comment-form-comment textarea { width: 100%; padding: 10px; } .comment-form-url, .comment-form-email, .comment-form-author { margin: 0 0 5px; } .comment-form-url label, .comment-form-email label, .comment-form-author label { display: block; margin: 0 0 5px; } .comment-form-url input, .comment-form-email input, .comment-form-author input { line-height: 30px; padding: 0 5px; } .comment-form-url .required, .comment-form-email .required, .comment-form-author .required { display: none; } .comment-author { font-style: normal; font-weight: 700; } .comment { margin: 0 0 30px; *zoom: 1; } .comment:before, .comment:after { content: " "; display: table; } .comment:after { clear: both; } .comment .avatar { float: left; margin: 0 10px 0 0; border: 4px solid white; } .comment-content { margin: 0 0 0 74px; } .comment-edit-link { font-size: 12px; margin: 0 0 0 2px; } .wp-caption { margin: 0 0 15px; max-width: 100%; } .wp-caption img { margin: 0 0 15px; max-width: 100%; height: auto; } .wp-caption .wp-caption-text { margin: 10px 0; } .videowrapper { position: relative; padding-bottom: 56.25%; /* 16:9 */ height: 0; } .videowrapper iframe { position: absolute; top: 0; left: 0; width: 100%; height: 100% !important; } .videowrapper4x3 { position: relative; padding-bottom: 56.25%; /* 16:9 */ padding-top: 25px; height: 0; } .videowrapper4x3 iframe { position: absolute; top: 0; left: 0; width: 100%; height: 100%; } .bannerheader { background: #f5f6f6; background-position: center bottom; background-repeat: no-repeat; } .bannerheader--blue { background-color: #00b4ea; color: white; } .bannerheader--blue .bannerheader-wrapper { padding: 80px 10px 30px 10px; } @media screen and (min-width: 960px) { .bannerheader--blue .bannerheader-wrapper { padding: 180px 10px 80px; } } .bannerheader--blue .bannerheader-heading:after { content: ''; display: block; max-width: 75%; margin: 0 auto; border-bottom: 1px solid white; padding: 5px; } .bannerheader--cover { background-size: cover; } @media screen and (min-width: 960px) { .bannerheader--small .bannerheader-wrapper { padding: 150px 10px 40px; } } .bannerheader-wrapper { *zoom: 1; max-width: 60em; margin-left: auto; margin-right: auto; max-width: 32.5em; padding: 80px 10px; } .bannerheader-wrapper:before, .bannerheader-wrapper:after { content: " "; display: table; } .bannerheader-wrapper:after { clear: both; } @media screen and (min-width: 960px) { .bannerheader-wrapper { max-width: 60em; } } @media screen and (min-width: 960px) { .bannerheader-wrapper { padding: 130px 10px 60px; } } .bannerheader-heading { text-align: center; text-transform: uppercase; font-size: 20px; letter-spacing: 0.05em; font-weight: 400; line-height: 30px; } .bannerheader-heading:after { content: ''; display: block; border-bottom: 1px solid #747474; max-width: 66%; margin: 0 auto; padding: 5px; } @media screen and (min-width: 960px) { .bannerheader-heading { display: block; float: left; margin-right: 3.22581%; width: 82.7957%; margin-left: 8.60215%; padding: 0 0 5px; max-width: none; line-height: 45px; font-size: 36px; } .bannerheader-heading:last-child { margin-right: 0; } } .bannerheader-description { text-align: center; font-size: 16px; line-height: 25px; font-weight: 300; margin-bottom: 10px; letter-spacing: 0.05em; padding: 0 20px; } @media screen and (min-width: 960px) { .bannerheader-description { display: block; float: left; margin-right: 3.22581%; width: 65.5914%; margin-left: 17.2043%; padding: 0; max-width: none; font-size: 22px; line-height: 25px; margin-bottom: 20px; } .bannerheader-description:last-child { margin-right: 0; } } .bannerheader-link-wrapper { text-align: center; margin-top: 6px; margin-bottom: 11px; } @media screen and (min-width: 960px) { .bannerheader-link-wrapper { display: block; float: left; margin-right: 3.22581%; width: 82.7957%; margin-left: 8.60215%; } .bannerheader-link-wrapper:last-child { margin-right: 0; } } .bannerheader-link-wrapper a { margin: 6px 0 11px 0; color: white; border-radius: 20px; background: #CB8E00; text-transform: uppercase; font-size: 13px; letter-spacing: .18em; font-weight: 700; } .bannerheader-link-wrapper a:hover { background: #FFB300; } .bannerheader-mobilebreak { display: inline; } @media screen and (min-width: 960px) { .bannerheader-mobilebreak { display: block; } } .bannerheader-link { padding: 10px 40px; } .sectionheader-wrapper { *zoom: 1; max-width: 60em; margin-left: auto; margin-right: auto; max-width: 32.5em; padding: 0 10px; } .sectionheader-wrapper:before, .sectionheader-wrapper:after { content: " "; display: table; } .sectionheader-wrapper:after { clear: both; } @media screen and (min-width: 960px) { .sectionheader-wrapper { max-width: 60em; } } .sectionheader { background: #f5f6f6; } .sectionheader--white { background: white; } .sectionheader--bordertop { border-top: 1px solid #dddddd; } .sectionheader--borderbottom { border-bottom: 1px solid #dddddd; } .sectionheader-heading { padding: 15px 0; text-align: center; text-transform: uppercase; font-weight: 300; margin-bottom: 0; font-size: 16px; line-height: 30px; } @media screen and (min-width: 960px) { .sectionheader-heading { font-size: 25px; line-height: 35px; } } .calltoaction-wrapper { *zoom: 1; max-width: 60em; margin-left: auto; margin-right: auto; max-width: 32.5em; padding: 15px 10px; text-align: center; } .calltoaction-wrapper:before, .calltoaction-wrapper:after { content: " "; display: table; } .calltoaction-wrapper:after { clear: both; } @media screen and (min-width: 960px) { .calltoaction-wrapper { max-width: 60em; } } .calltoaction { background: #f5f6f6; } .calltoaction--white { background: white; } .calltoaction--bordertop { border-top: 1px solid #dddddd; } .calltoaction--borderbottom { border-bottom: 1px solid #dddddd; } .calltoaction-link { margin: 0; } .panel { *zoom: 1; display: block; background: #f5f6f6; } .panel:before, .panel:after { content: " "; display: table; } .panel:after { clear: both; } .panel--bordertop { border-top: 1px solid #dddddd; } .panel--borderbottom { border-bottom: 1px solid #dddddd; } .panel-wrapper { *zoom: 1; max-width: 60em; margin-left: auto; margin-right: auto; max-width: 32.5em; padding: 25px 10px 5px; margin: 0 auto; } .panel-wrapper:before, .panel-wrapper:after { content: " "; display: table; } .panel-wrapper:after { clear: both; } @media screen and (min-width: 960px) { .panel-wrapper { max-width: 60em; } } .panel-item { padding: 20px 15px 10px; margin: 0 auto 20px; background: white; max-width: 350px; list-style: none; } .panel-item:nth-of-type(2n) .panel-heading, .panel-item:nth-of-type(2n) .panel-iconwrapper { color: #00ac4d; } .panel-item:nth-of-type(2n) .panel-heading:after, .panel-item:nth-of-type(2n) .panel-iconwrapper:after { border-color: #00ac4d; } .panel-item:nth-of-type(2n) .panel-link { line-height: 35px; min-width: 66%; } .panel-item:nth-of-type(3n) .panel-heading, .panel-item:nth-of-type(3n) .panel-iconwrapper { color: #037bac; } .panel-item:nth-of-type(3n) .panel-heading:after, .panel-item:nth-of-type(3n) .panel-iconwrapper:after { border-color: #037bac; } .panel-item:nth-of-type(3n) .panel-link { line-height: 35px; min-width: 66%; } .panel-item:nth-of-type(4n) .panel-heading, .panel-item:nth-of-type(4n) .panel-iconwrapper { color: #00b4ea; } .panel-item:nth-of-type(4n) .panel-heading:after, .panel-item:nth-of-type(4n) .panel-iconwrapper:after { border-color: #00b4ea; } .panel-item:nth-of-type(4n) .panel-link { line-height: 35px; min-width: 66%; } @media screen and (min-width: 960px) { .panel-item { display: block; float: left; margin-right: 3.22581%; width: 31.1828%; max-width: none; } .panel-item:last-child { margin-right: 0; } .panel-item:nth-child(3n) { margin-right: 0; } .panel-item:nth-child(3n+1) { clear: left; } } .panel-heading { text-align: center; text-transform: uppercase; color: #00b4ea; margin: 0 0 10px; font-size: 17px; line-height: 25px; font-weight: 400; } .panel-heading:after { content: ''; display: block; width: 66%; margin: 5px auto 0; border-bottom: 1px solid #00b4ea; } .panel-subheading { display: block; } .panel-content { text-align: center; font-weight: 300; font-size: 15px; margin-bottom: 15px; } .panel-link-wrapper { text-align: center; } .panel-link { min-width: 66%; } .panel-iconwrapper { text-align: center; font-size: 54px; margin: 0 0 10px; color: #00b4ea; } .panel-image { max-width: 100%; max-height: 54px; } .large-panel { *zoom: 1; display: block; } .large-panel:before, .large-panel:after { content: " "; display: table; } .large-panel:after { clear: both; } .large-panel-wrapper { *zoom: 1; max-width: 60em; margin-left: auto; margin-right: auto; max-width: 32.5em; padding: 25px 10px 5px; margin: 0 auto; } .large-panel-wrapper:before, .large-panel-wrapper:after { content: " "; display: table; } .large-panel-wrapper:after { clear: both; } @media screen and (min-width: 960px) { .large-panel-wrapper { max-width: 60em; } } .large-panel-item { padding: 20px 15px 10px; margin: 0 auto 20px; max-width: 350px; list-style: none; } @media screen and (min-width: 960px) { .large-panel-item { display: block; float: left; margin-right: 3.22581%; width: 48.3871%; max-width: none; } .large-panel-item:last-child { margin-right: 0; } .large-panel-item:nth-child(2n) { margin-right: 0; } .large-panel-item:nth-child(2n+1) { clear: left; } } .large-panel-heading { text-align: center; text-transform: uppercase; color: #037bac; margin: 0 0 10px; font-size: 17px; line-height: 25px; font-weight: 400; } .large-panel-heading:after { content: ''; display: block; width: 66%; margin: 5px auto 0; border-bottom: 1px solid #037bac; } .large-panel-subheading { display: block; } .large-panel-content { text-align: center; font-weight: 300; font-size: 15px; margin-bottom: 15px; } .large-panel-link-wrapper { text-align: center; } .large-panel-link { min-width: 66%; } .large-panel-iconwrapper { text-align: center; font-size: 54px; margin: 0 0 15px; color: #00b4ea; } .large-panel-image { max-width: 100%; max-height: 74px; } .stack { background-color: #f5f6f6; border-top: 1px solid #dddddd; border-bottom: 1px solid #dddddd; } .stack-wrapper { *zoom: 1; max-width: 60em; margin-left: auto; margin-right: auto; max-width: 32.5em; padding: 25px 10px 5px; margin: 0 auto; text-align: center; } .stack-wrapper:before, .stack-wrapper:after { content: " "; display: table; } .stack-wrapper:after { clear: both; } @media screen and (min-width: 960px) { .stack-wrapper { max-width: 60em; } } .stack-list-wrapper { display: block; float: left; margin-right: 10.34483%; width: 100%; } .stack-list-wrapper:last-child { margin-right: 0; } @media screen and (min-width: 960px) { .stack-list-wrapper { display: block; float: left; margin-right: 3.22581%; width: 31.1828%; } .stack-list-wrapper:last-child { margin-right: 0; } } .stack-title { color: #037bac; text-transform: uppercase; margin: 0 0 5px; font-size: 17px; line-height: 25px; font-weight: 400; } @media screen and (min-width: 960px) { .stack-title { font-size: 20px; } } .stack-description p { margin: 0; } .stack-list { padding: 0; *zoom: 1; } .stack-list:before, .stack-list:after { content: " "; display: table; } .stack-list:after { clear: both; } .stack-link { *zoom: 1; -webkit-transition: opacity 0.3s ease; -moz-transition: opacity 0.3s ease; transition: opacity 0.3s ease; } .stack-link:before, .stack-link:after { content: " "; display: table; } .stack-link:after { clear: both; } .stack-link:hover img, .stack-link:active img { opacity: .6; } .stack-item { list-style: none; border-top: 1px solid #f5f6f6; border-bottom: 1px solid #f5f6f6; margin: 0; padding: 10px 5px; text-align: center; width: 33%; float: left; } .stack-image { max-width: 100%; display: block; margin: 0 auto; } .quote-wrapper { border: 1px solid #dddddd; margin: 20px 0; } .quote { padding: 0 10px; max-width: 50em; } .quote-content { padding: 20px 30px; } .quote-attribution { margin-bottom: 0; background: #f5f6f6; border-top: 1px solid #dddddd; font-weight: 400; margin-bottom: 0; position: relative; padding: 10px 30px; } .quote-attribution p { margin-bottom: 0; } .quote-attribution p:before { content: "—"; position: absolute; left: 15px; } .quote-content, .quote-content p { font-size: 16px; margin-bottom: 0; } @media screen and (min-width: 960px) { .quote-content, .quote-content p { font-size: 18px; } } .quote--blue .quote-wrapper { border: 1px solid rgba(3, 123, 172, 0.3); } .quote--blue .quote-attribution { color: white; background: #037bac; border-top: 1px solid rgba(3, 123, 172, 0.3); } .partners { background-color: #f5f6f6; border-top: 1px solid #dddddd; border-bottom: 1px solid #dddddd; min-height: 135px; } .partner-list { padding: 0; font-size: 0; min-height: 135px; position: relative; *zoom: 1; } .partner-list:before, .partner-list:after { content: " "; display: table; } .partner-list:after { clear: both; } .partner-list.fail:after { content: "No results found!"; display: block; position: absolute; width: 100%; top: 25px; left: 0; text-align: center; font-size: 25px; } .partner-link { *zoom: 1; } .partner-link:before, .partner-link:after { content: " "; display: table; } .partner-link:after { clear: both; } .partner-link:hover img, .partner-link:active img { opacity: .6; } .partner { list-style: none; border-top: 1px solid #f5f6f6; border-bottom: 1px solid #f5f6f6; margin: 0; padding: 10px 5px; text-align: center; width: 33%; display: inline-block; } @media screen and (min-width: 960px) { .partner { width: 12.5%; } } .partner-image { max-width: 100%; display: block; margin: 0 auto; -webkit-transition: opacity 0.3s ease; -moz-transition: opacity 0.3s ease; transition: opacity 0.3s ease; } .mwfilter { padding: 20px 0; } .filter-title { margin-right: 10px; } #grid .mix { opacity: 0; display: none; } .date-wrapper { *zoom: 1; max-width: 60em; margin-left: auto; margin-right: auto; max-width: 32.5em; padding: 30px 10px; } .date-wrapper:before, .date-wrapper:after { content: " "; display: table; } .date-wrapper:after { clear: both; } @media screen and (min-width: 960px) { .date-wrapper { max-width: 60em; } } .date-item { display: block; float: left; margin-right: 10.34483%; width: 100%; margin-bottom: 10px; } .date-item:last-child { margin-right: 0; } @media screen and (min-width: 960px) { .date-item { display: block; float: left; margin-right: 3.22581%; width: 48.3871%; } .date-item:last-child { margin-right: 0; } .date-item:nth-child(2n) { margin-right: 0; margin-bottom: 40px; } } .date-circle-wrapper { display: block; float: left; margin-right: 10.34483%; width: 17.24138%; } .date-circle-wrapper:last-child { margin-right: 0; } @media screen and (min-width: 960px) { .date-circle-wrapper { display: block; float: left; margin-right: 6.66667%; width: 28.88889%; } .date-circle-wrapper:last-child { margin-right: 0; } } .date-content-wrapper { display: block; float: left; margin-right: 10.34483%; width: 72.41379%; } .date-content-wrapper:last-child { margin-right: 0; } @media screen and (min-width: 960px) { .date-content-wrapper { display: block; float: left; margin-right: 6.66667%; width: 64.44444%; } .date-content-wrapper:last-child { margin-right: 0; } } .date-circle { background: #dddddd; width: 80px; height: 80px; border-radius: 40px; margin: 0 auto; display: block; text-align: center; padding-top: 8px; color: #4c4c4c; -webkit-transition: opacity 0.3s ease; -moz-transition: opacity 0.3s ease; transition: opacity 0.3s ease; } .date-circle:link, .date-circle:visited { color: #4c4c4c; } .date-circle:hover { opacity: .66; } .date-month, .date-day, .date-year { display: block; } .date-month { font-size: 20px; line-height: 20px; } .date-day { font-size: 24px; line-height: 25px; } .date-year { line-height: 20px; font-size: 14px; } .date-content p { font-size: 14px; } .date-title { font-size: 16px; line-height: 20px; font-weight: 300; margin-bottom: 0; } .date-link { display: block; } sass-spec-libsass-3.6.3/index.js000066400000000000000000000000541355712145100165320ustar00rootroot00000000000000module.exports = { dirname: __dirname, }; sass-spec-libsass-3.6.3/lib/000077500000000000000000000000001355712145100156345ustar00rootroot00000000000000sass-spec-libsass-3.6.3/lib/sass_spec.rb000066400000000000000000000006471355712145100201530ustar00rootroot00000000000000require 'rubygems/version' module SassSpec SPEC_DIR = File.expand_path('../../spec', __FILE__) LANGUAGE_VERSIONS = %w( 3.5 3.6 3.7 3.8 4.0 ) MIN_LANGUAGE_VERSION = Gem::Version.new(LANGUAGE_VERSIONS.first) MAX_LANGUAGE_VERSION = Gem::Version.new(LANGUAGE_VERSIONS.last) end require_relative 'sass_spec/test_case_metadata' require_relative 'sass_spec/cli' require_relative 'sass_spec/runner' sass-spec-libsass-3.6.3/lib/sass_spec/000077500000000000000000000000001355712145100176175ustar00rootroot00000000000000sass-spec-libsass-3.6.3/lib/sass_spec/annotate.rb000066400000000000000000000001151355712145100217520ustar00rootroot00000000000000module SassSpec module Annotate end end require_relative "annotate/cli" sass-spec-libsass-3.6.3/lib/sass_spec/annotate/000077500000000000000000000000001355712145100214305ustar00rootroot00000000000000sass-spec-libsass-3.6.3/lib/sass_spec/annotate/cli.rb000066400000000000000000000175621355712145100225370ustar00rootroot00000000000000# encoding: utf-8 require 'set' require 'yaml' require 'command_line_reporter' require_relative 'directory' class SassSpec::Annotate::CLI include CommandLineReporter def self.assert_legal_version(version) if version && !SassSpec::LANGUAGE_VERSIONS.include?(version) warn "Version #{version} is not valid. " + "Did you mean one of: #{SassSpec::LANGUAGE_VERSIONS.join(', ')}" return false end true end def self.assert_not_file!(string, expected) if File.exist?(string) || string.include?(File::SEPARATOR) warn "Expected #{expected} but got a file path. Did you forget the argument?" return false end true end def self.parse(args) runner_options = { } options = { } parser = OptionParser.new do |opts| opts.banner = < PID of the command, # :status => Process::Status of the command, # :stdout => the standard output of the command, # :stderr => the standard error of the command, # :timeout => whether the command was timed out, # } module CaptureWithTimeout def capture3_with_timeout(*cmd) spawn_opts = Hash === cmd.last ? cmd.pop.dup : {} opts = { :stdin_data => spawn_opts.delete(:stdin_data) || "", :binmode => spawn_opts.delete(:binmode) || false, :timeout => spawn_opts.delete(:timeout), :signal => spawn_opts.delete(:signal) || "TERM", :kill_after => spawn_opts.delete(:kill_after), } in_r, in_w = IO.pipe out_r, out_w = IO.pipe err_r, err_w = IO.pipe in_w.sync = true if opts[:binmode] in_w.binmode out_r.binmode err_r.binmode end spawn_opts[:in] = in_r spawn_opts[:out] = out_w spawn_opts[:err] = err_w result = { :pid => nil, :status => nil, :stdout => nil, :stderr => nil, :timeout => false, } out_reader = nil err_reader = nil wait_thr = nil begin Timeout.timeout(opts[:timeout]) do result[:pid] = spawn(*cmd, spawn_opts) wait_thr = Process.detach(result[:pid]) in_r.close out_w.close err_w.close out_reader = Thread.new { out_r.read } err_reader = Thread.new { err_r.read } in_w.write opts[:stdin_data] in_w.close result[:status] = wait_thr.value end rescue Timeout::Error result[:timeout] = true pid = spawn_opts[:pgroup] ? -result[:pid] : result[:pid] Process.kill(opts[:signal], pid) if opts[:kill_after] unless wait_thr.join(opts[:kill_after]) Process.kill("KILL", pid) end end ensure result[:status] = wait_thr.value if wait_thr result[:stdout] = out_reader.value if out_reader result[:stderr] = err_reader.value if err_reader out_r.close unless out_r.closed? err_r.close unless err_r.closed? end result end end sass-spec-libsass-3.6.3/lib/sass_spec/cli.rb000066400000000000000000000075631355712145100207260ustar00rootroot00000000000000require_relative 'engine_adapter' module SassSpec::CLI require 'optparse' def self.parse options = { engine_adapter: nil, spec_directory: nil, generate: false, tap: false, skip: false, verbose: false, filter: "", limit: -1, } OptionParser.new do |opts| opts.banner = "Usage: ./sass-spec.rb [options] [spec_directory...] Examples: Run `sassc --style compressed input.scss`: ./sass-spec.rb -c 'sass --style compressed' Run tests only in the spec/basic folder: ./sass-spec.rb spec/basic This script will search for all files under the spec (or specified) directory that are named input.scss. It will then run a specified binary and check that the output matches the expected output. If you want set up your own test suite, follow a similar hierarchy as described in the initial comment of this script for your test hierarchy. This command can also be used to annotate tests to control which tests are ran and when. For details: ./sass-spec.rb annotate -h Make sure the command you provide prints to stdout. " opts.on("-v", "--verbose", "Run verbosely") do options[:verbose] = true end opts.on("-t", "--tap", "Output TAP compatible report") do options[:tap] = true end opts.on("-c", "--command COMMAND", "Sets a specific binary to run") do |v| options[:engine_adapter] = ExecutableEngineAdapter.new(v) options[:engine_adapter].args = options[:cmd_args] end opts.on("--dart PATH", "Run Dart Sass, whose repo should be at the given path.") do |path| options[:engine_adapter] = DartEngineAdapter.new(path) options[:engine_adapter].args = options[:cmd_args] end opts.on("--cmd-args ARGS", "Pass ARGS to command or Dart Sass.") do |args| if (adapter = options[:engine_adapter]) && adapter.is_a?(DartEngineAdapter) adapter.args = args elsif (adapter = options[:engine_adapter]) && adapter.is_a?(ExecutableEngineAdapter) adapter.args = args else options[:cmd_args] = args end end opts.on("-g", "--generate", "Run test(s) and generate expected output file(s).") do options[:generate] = true end opts.on("--run-todo", "Run any tests marked as todo. Defaults to false.") do options[:run_todo] = true end opts.on("--probe-todo", "Run and report tests marked as todo that unexpectedly pass. Defaults to false.") do options[:probe_todo] = options[:run_todo] = true end opts.on("--impl NAME", "Sets the name of the implementation being tested. Defaults to 'sass'") do |name| options[:implementation] = name end opts.on("--filter PATTERN", "Run tests that match the pattern you provide") do |pattern| options[:filter] = pattern end opts.on("--limit NUMBER", "Limit the number of tests run to this positive integer.") do |limit| options[:limit] = limit.to_i end opts.on("--migrate-impl", "Copy tests that fail and make them pass for the current implementatino.") do options[:migrate_impl] = true end opts.on("--silent", "Don't show any logs") do options[:silent] = true end opts.on("--check-annotations", "Check if any test annotations are unecessary.") do options[:check_annotations] = true end opts.on("--interactive", "When a test fails, enter into a dialog for how to handle it.") do options[:interactive] = true end end.parse! raise "Must specify either --dart or --command." if options[:engine_adapter].nil? options[:spec_dirs_to_run] = ARGV.dup.map{|d| File.expand_path(d)} if ARGV.any? if options[:implementation] && options[:engine_adapter].respond_to?(:set_description) options[:engine_adapter].set_description(options[:implementation]) end options end end sass-spec-libsass-3.6.3/lib/sass_spec/directory.rb000066400000000000000000000143641355712145100221600ustar00rootroot00000000000000require 'fileutils' require 'hrx' require 'pathname' require_relative 'util' # A directory that may represent either a physical directory on disk or a # directory within an HRX::Archive. class SassSpec::Directory # A cache of parsed HRX files, indexed by their corresponding directory paths. def self._hrx_cache @hrx_cache ||= {} end # The directory's path, possibly including components within an HRX file. attr_reader :path # Returns whether this is a virtual HRX directory. def hrx? !!@archive end # Creates a Directory from a `path`, which may go into an HRX file. For # example, if `path` is `path/to/archive/subdir` and `path/to/archive.hrx` # exists, this will load `subdir` from within `path/to/archive.hrx`. def initialize(path) @path = Pathname.new(path) @path = @path.relative_path_from(Pathname.new(Dir.pwd)) if Pathname.new(path).absolute? # Always use forward slashes on Windows, because HRX requires them. @path = Pathname.new(@path.to_s.gsub(/\\/, '/')) if Gem.win_platform? raise ArgumentError.new("#{@path} must be relative.") if @path.absolute? return if Dir.exist?(@path) SassSpec::Util.each_directory(@path).with_index do |dir, i| archive_path = dir + ".hrx" if self.class._hrx_cache[dir] || File.exist?(archive_path) @parent_archive_path = archive_path @parent_archive = self.class._hrx_cache[dir] ||= HRX::Archive.load(archive_path) @path_in_parent = @path.each_filename.drop(i + 1).join("/") @archive = if @path_in_parent.empty? @parent_archive else @parent_archive.child_archive(@path_in_parent) end return end end raise "#{path} doesn't exist" end # Returns the parent as a SassSpec::Directory, or `nil` if this is the root # spec directory. def parent dirname = File.dirname(@path) dirname == "." ? nil : SassSpec::Directory.new(dirname) end # Returns a list of all paths in this directory that match `pattern`, relative # to the directory root. # # This includes files within HRX files in this directory. def glob(pattern) if hrx? @archive.glob(pattern).select {|e| e.is_a?(HRX::File)}.map(&:path) else recursive = pattern.include?("**") physical_pattern = recursive ? "{#{pattern},**/*.hrx}" : pattern Dir.glob(File.join(@path, physical_pattern), File::FNM_EXTGLOB).flat_map do |path| relative = Pathname.new(path).relative_path_from(@path).to_s next relative unless recursive && path.end_with?(".hrx") dir = path[0...-".hrx".length] relative_dir = relative[0...-".hrx".length] archive = self.class._hrx_cache[dir] ||= HRX::Archive.load(path) archive.glob(pattern).map {|inner| "#{relative_dir}/#{inner.path}"} end end end # Returns whether a file exists at `path` within this directory. def file?(path) if hrx? @archive[path].is_a?(HRX::File) else File.exist?(File.join(@path, path)) end end # Reads the file at `path` within this directory. def read(path) return @archive.read(path) if hrx? File.read(File.join(@path, path), binmode: true, encoding: "ASCII-8BIT") end # Writes `contents` to `path` within this directory. def write(path, contents) if hrx? @archive.write(path, contents, comment: :copy) _write! else File.write(File.join(@path, path), contents, binmode: true) end end # Deletes the file at `path` within this directory. # # If `if_exists` is `true`, don't throw an error if the file doesn't exist. def delete(path, if_exists: false) return if if_exists && !file?(path) if hrx? @archive.delete(path) _write! else File.unlink(File.join(@path, path)) end end # Renames the file at `old` to `new`. def rename(old, new) if hrx? unless old_file = @archive[old] raise "#@path/old doesn't exist" end @archive.add(HRX::File.new(new, old_file.contents, comment: old_file.comment), after: old_file) @archive.delete(old) _write! else File.rename(File.join(@path, old), File.join(@path, new)) end end # Deletes this directory and everything it contains. def delete_dir! if hrx? if @parent_archive.equal?(@archive) _delete_parent! else @parent_archive.delete(@path_in_parent, recursive: true) if @parent_archive.entries.empty? _delete_parent! else _write! end end else FileUtils.rm_rf(@path) end end # If this directory refers to an HRX file, runs a block with the archive's # directory and all its contents physically present on the filesystem next to # the archive. # # If this is a normal directory, runs the block with the filesystem as-is. def with_real_files return yield unless @archive files = @archive.entries.select {|entry| entry.is_a?(HRX::File)}.to_a if parent.hrx? && files.any? {|file| _reaches_out?(file)} return parent.with_real_files {yield} end outermost_new_dir = SassSpec::Util.each_directory(@path).find {|dir| !Dir.exist?(dir)} files.each do |file| path = File.join(@path, file.path) FileUtils.mkdir_p(File.dirname(path)) File.write(path, file.content) end yield ensure FileUtils.rm_rf(outermost_new_dir) if outermost_new_dir end # Returns an HRX representation of this directory. def to_hrx archive = HRX::Archive.new glob("**/*").each do |path| archive << HRX::File.new("#{self.path}/#{path}", read(path)) end archive.to_hrx end def inspect "#" end def to_s @path.to_s end private # Returns whether `file` contains enough `../` references to reach outside # this directory. def _reaches_out?(file) depth = file.path.count("/") file.content.scan(%r{(?:\.\./)+}).any? {|match| match.count("/") > depth} end # Writes `@parent_archive` to disk. def _write! @parent_archive.write!(@parent_archive_path) end # Deletes `@parent_archive` from disk and from the archive cache. def _delete_parent! File.unlink(@parent_archive_path) self.class._hrx_cache.delete(@parent_archive_path.sub(/\.hrx$/, '')) end end sass-spec-libsass-3.6.3/lib/sass_spec/engine_adapter.rb000066400000000000000000000062701355712145100231160ustar00rootroot00000000000000require 'open3' require_relative 'capture_with_timeout' class EngineAdapter def describe not_implemented end # Compile a Sass file and return the results # @return [css_output, std_error, status_code] def compile(sass_filename, precision) not_implemented end private def not_implemented raise RuntimeError, "Not yet implemented" end end class ExecutableEngineAdapter < EngineAdapter include CaptureWithTimeout attr_accessor :args def initialize(command, description = nil) @command = command @timeout = 90 @description = description || command @version = `#{@command} -v` end def set_description(description) @description = description end def describe @description end def compile(sass_filename, precision) command = File.absolute_path(@command) dirname, basename = File.split(sass_filename) result = capture3_with_timeout( command, "--precision", precision.to_s, "-t", "expanded", "-I", File.expand_path("../../../spec", __FILE__), *@args&.split(/\s+/), basename, binmode: true, timeout: @timeout, chdir: dirname) if result[:timeout] ["", "Execution timed out after #{@timeout}s", -1] else [result[:stdout], result[:stderr], result[:status].exitstatus] end end def to_s "#{@description} #{@version}" end end class DartEngineAdapter < EngineAdapter attr_accessor :args def initialize(path) @path = path Tempfile.open("dart-sass-spec") do |f| f.write(<<-DART) import "dart:convert"; import "dart:io"; import "#{File.absolute_path @path}/bin/sass.dart" as sass; main() async { await for (var line in new LineSplitter().bind(utf8.decoder.bind(stdin))) { if (line.startsWith("!cd ")) { Directory.current = line.substring("!cd ".length); continue; } try { await sass.main(line.split(" ").where((arg) => arg.isNotEmpty).toList()); } catch (error, stackTrace) { stderr.writeln("Unhandled exception:"); stderr.writeln(error); stderr.writeln(stackTrace); exitCode = 255; } stdout.add([0xFF]); stdout.write(exitCode); stdout.add([0xFF]); stderr.add([0xFF]); exitCode = 0; } } DART @stdin, @stdout, @stderr = Open3.popen3("dart --packages=#{@path}/.packages #{f.path}") @stdout.set_encoding 'binary' @stderr.set_encoding 'binary' end @version = `dart #{@path}/bin/sass.dart --version` end def describe "dart-sass" end def compile(sass_filename, precision) dirname, basename = File.split(sass_filename) @stdin.puts "!cd #{File.absolute_path(dirname)}" @stdin.puts("--no-color --no-unicode -I #{File.expand_path("../../../spec", __FILE__)} " + "#{@args} #{basename}") [next_chunk(@stdout), next_chunk(@stderr), next_chunk(@stdout).to_i] end def to_s "Dart Sass #{@version}" end private def next_chunk(io) result = io.gets("\xFF".force_encoding('binary')) return '' unless result return result[0...-1] end end sass-spec-libsass-3.6.3/lib/sass_spec/interactor.rb000066400000000000000000000037271355712145100223270ustar00rootroot00000000000000module SassSpec class Interactor class Choice < Struct.new(:shortcut, :message, :block) def run_block! block.call if block end end def initialize(id = nil) @choices = [] @choice = nil @id = id end def prompt(message) @prompt = message end def choice(shortcut, message, &block) @choices << Choice.new(shortcut, message, block) end def restart! @choice = nil end def display_choices!(memory) puts puts @prompt if @prompt @choices.each_with_index do |c, i| puts "#{c.shortcut}. #{c.message}" end if @id && memory puts "Note: If you end your choice with a ! then next time this happens,\n"+ "we'll use that option without prompting you.\n" end print "Please select an option > " end def run!(memory = nil) if @id && memory && memory[@id] @choices.detect{|c| c.shortcut == memory[@id]}.run_block! return memory[@id] end if @choices.size == 0 raise ArgumentError, "No choices to run." end @choice = nil until @choice display_choices!(memory) input = $stdin.gets.strip puts if input && input.end_with?("!") repeat = true input.slice!(-1) end @choice = input if (choice = @choices.find {|c| c.shortcut == @choice}) choice.run_block! # We run this in the loop so restart! can be invoked. else @choice = nil end end @choice # we return the shortcut so re-ordering choices doesn't change result ensure if @id && memory && repeat && @choice memory[@id] = @choice end end def self.interact interactor = new yield interactor interactor.run! end def self.interact_with_memory(memory, id) interactor = new(id) yield interactor interactor.run!(memory) end end end sass-spec-libsass-3.6.3/lib/sass_spec/runner.rb000066400000000000000000000051731355712145100214630ustar00rootroot00000000000000require 'minitest' require_relative 'test' require_relative 'test_case' require_relative 'directory' class SassSpec::Runner def initialize(options = {}) @options = options end def get_input_dirs (@options[:spec_dirs_to_run] || [SassSpec::SPEC_DIR]).map do |d| dir = # If the user passes a directory, use that. If it fails, they may have # passed a file *in* a directory, so try using the parent. If *that* # fails, raise the original error. begin SassSpec::Directory.new(d) rescue => e begin SassSpec::Directory.new(File.dirname(d)) rescue raise e end end end end def get_input_files get_input_dirs.flat_map do |dir| dir.glob("**/input.s[ac]ss").map {|f| File.join(dir.path, f)} end.uniq end def run unless @options[:silent] || @options[:tap] puts "Recursively searching under #{get_input_dirs.join(", ")} for test files to test #{@options[:engine_adapter]}." end test_cases = _get_cases SassSpec::Test.create_tests(test_cases, @options) minioptions = [] if @options[:verbose] minioptions.push '--verbose' end if @options[:tap] require 'minitap' Minitest.reporter = Minitap::TapY end result = Minitest.run(minioptions) if @options[:run_todo] passing = [] test_cases.each do |test_case| if test_case.todo? && test_case.result? passing << test_case.dir.to_s end end if !passing.empty? puts "The following tests pass but were marked as TODO for #{@options[:engine_adapter].describe}:" puts passing.join("\n") else puts "Note: All tests marked as TODO for #{@options[:engine_adapter].describe} are still failing." end end result end def impl @options[:engine_adapter].describe end def _get_cases cases = [] get_input_files().each do |filename| dir = SassSpec::Directory.new(File.dirname(filename)) metadata = SassSpec::TestCaseMetadata.new(dir) unless metadata.valid_for_impl?(impl) if @options[:verbose] warn "#{metadata.name} does not apply to #{impl}" end next end next unless filename.include?(@options[:filter] || "") test_case = SassSpec::TestCase.new(dir, @options[:engine_adapter].describe) # unless File.exist?(test_case.expected_path) # if @options[:verbose] # warn "Expected output file missing. Skipping #{test_case.name}." # end # next # end cases.push(test_case) end cases end end sass-spec-libsass-3.6.3/lib/sass_spec/test.rb000066400000000000000000000444171355712145100211350ustar00rootroot00000000000000require 'minitest' require 'thread' require 'fileutils' require 'yaml' require_relative "interactor" require_relative "util" # Holder to put and run test cases class SassSpec::Test < Minitest::Test def self.create_tests(test_cases, options = {}) test_cases[0..options[:limit]].each do |test_case| define_method("test__#{test_case.name}") do runner = SassSpecRunner.new(test_case, options) test_case.finalize(runner.run) self.assertions += runner.assertions end end end end class SassSpecRunner include MiniTest::Assertions attr_accessor :assertions @@interaction_memory = {} def initialize(test_case, options = {}) @assertions = 0 @test_case = test_case @options = options end def run if @test_case.todo? && !@options[:run_todo] skip "Skipped #{@test_case.name}" end unless @test_case.dir.hrx? @test_case.dir.glob("*").each {|p| assert_filename_length!(File.join(@test_case.dir.path, p))} end @output, @error, @status = @test_case.run(@options[:engine_adapter]) @output = @output.gsub(/\r\n/, "\n") @normalized_output = SassSpec::Util.normalize_output(@output) @error = SassSpec::Util.normalize_error(@error) if @options[:generate] overwrite_test! return true end # Allow checks to throw `:done` to indicate that no more checks need to be # performed. We throw rather than returning a boolean so that we can do # checks in nested functions without worrying about piping return values. catch :done do check_annotations! handle_conflicting_files! handle_missing_output! handle_unexpected_error! handle_unexpected_pass! handle_output_difference! # Run these checks last because `handle_stderr_difference!` can skip the # test if `@test_case.warning_todo?` is set, and we only want to check for # an unnecessary TODO if the test isn't skipped because of a TODO. handle_stderr_difference! handle_unnecessary_todo! end return true end private ## Failure handlers def check_annotations! return unless @options[:check_annotations] ignored_warning_impls = @test_case.metadata.warnings_ignored_for if ignored_warning_impls.any? && @error.empty? message = "No warning issued, but warnings are ignored for #{ignored_warning_impls.join(', ')}" choice = interact(:ignore_warning_nonexistant, :fail) do |i| i.prompt message i.choice('R', "Remove ignored status for #{ignored_warning_impls.join(', ')}") do change_options(remove_ignore_warning_for: ignored_warning_impls) end fail_or_exit_choice(i) end assert choice != :fail, message end todo_warning_impls = @test_case.metadata.all_warning_todos if todo_warning_impls.any? && @error.length == 0 message = "No warning issued, but warnings are pending for #{todo_warning_impls.join(', ')}" choice = interact(:todo_warning_nonexistant, :fail) do |i| i.prompt message i.choice('R', "Remove TODO status for #{todo_warning_impls.join(', ')}") do change_options(remove_warning_todo: todo_warning_impls) end fail_or_exit_choice(i) end assert choice != :fail, message end end def handle_conflicting_files! if @test_case.file?("error", impl: true) impl = true elsif @test_case.file?("error") impl = false else return end output_file_exists = @test_case.file?("output.css", impl: impl) warning_file_exists = @test_case.file?("warning", impl: impl) return unless output_file_exists || warning_file_exists choice = interact(:conflicting_files, :fail) do |i| i.prompt "Test has both error and success outputs." show_test_case_choice(i) show_output_choice(i) delete_choice(i) i.choice('S', 'Keep the success output.') do @test_case.delete("error", impl: :auto) throw :done end i.choice('E', 'Keep the error output.') do @test_case.delete("output.css") if output_file_exists @test_case.delete("warning") if warning_file_exists throw :done end migrate_warning_choice(i) unless warning_file_exists update_output_choice(i) fail_or_exit_choice(i) end assert choice != :fail, "Expected #{@test_case.expected_path} file does not exist" end def handle_missing_output! return if @test_case.should_fail? || @test_case.expected skip_test_case!("TODO test is failing") if probe_todo? choice = interact(:missing_output, :fail) do |i| i.prompt "Expected output file does not exist." show_test_case_choice(i) show_output_choice(i) delete_choice(i) update_output_choice(i) fail_or_exit_choice(i) end assert choice != :fail, "Expected output.css file does not exist" end def handle_unexpected_error! return if @status == 0 || @test_case.should_fail? if !@options[:interactive] && @options[:migrate_impl] migrate_impl! throw :done end skip_test_case!("TODO test is failing") if @test_case.todo? choice = interact(:unexpected_error, :fail) do |i| i.prompt "An unexpected compiler error was encountered." show_test_case_choice(i) i.choice('e', "Show me the error.") do display_text_block(@error) i.restart! end update_output_choice(i) migrate_impl_choice(i) todo_choice(i) ignore_choice(i) fail_or_exit_choice(i) end throw :done unless choice == :fail assert_equal 0, @status, "Command `#{@options[:engine_adapter]}` did not complete:\n\n#{@error}" end def handle_unexpected_pass! return unless @status == 0 && @test_case.should_fail? if !@options[:interactive] && @options[:migrate_impl] migrate_impl! throw :done end skip_test_case!("TODO test is failing") if probe_todo? choice = interact(:unexpected_pass, :fail) do |i| i.prompt "A failure was expected but it compiled instead." show_test_case_choice(i) i.choice('o', "Show me the output.") do display_text_block(@output) i.restart! end migrate_warning_choice(i) update_output_choice(i) migrate_impl_choice(i) todo_choice(i) fail_or_exit_choice(i) end throw :done unless choice == :fail refute_equal @status, 0, "Test case should fail, but it did not" end def handle_output_difference! return if @test_case.should_fail? || @normalized_output == @test_case.expected if !@options[:interactive] && @options[:migrate_impl] migrate_impl! throw :done end skip_test_case!("TODO test is failing") if probe_todo? interact(:output_difference, :fail) do |i| i.prompt "Output does not match expectation." show_test_case_choice(i) i.choice('d', "show diff.") do require 'diffy' display_text_block( Diffy::Diff.new("Expected\n" + @test_case.expected, "Actual\n" + @normalized_output).to_s(:color)) i.restart! end update_output_choice(i) migrate_impl_choice(i) todo_choice(i) ignore_choice(i) fail_or_exit_choice(i) end assert_equal @test_case.expected, @normalized_output, "expected did not match output" end def handle_unnecessary_todo! return if probe_todo? && !@options[:interactive] return unless @test_case.todo? || @test_case.warning_todo? interact(:unnecessary_todo, :fail) do |i| i.prompt "Test is passing but marked as TODO." show_test_case_choice(i) unless @output.empty? i.choice('o', "Show me the output.") do display_text_block(@output) i.restart! end end i.choice('R', "Remove TODO status for #{@test_case.impl}.") do change_options(remove_todo: [@test_case.impl], remove_warning_todo: [@test_case.impl]) throw :done end i.choice('f', "Mark as skipped.") do skip_test_case!("TODO test is passing") end i.choice('X', "Exit testing.") do raise Interrupt end end assert_equal @test_case.expected, @normalized_output, "expected did not match output" end def handle_stderr_difference! unless @test_case.should_fail? if @test_case.ignore_warning? return elsif @test_case.warning_todo? && !@options[:run_todo] skip_test_case! "Skipped warning check for #{@test_case.name}" end end error_msg = extract_error_message(@error) expected_error_msg = extract_error_message( @test_case.expected_error || @test_case.expected_warning) return if expected_error_msg == error_msg skip_test_case!("TODO test is failing") if probe_todo? message = if error_msg.empty? if @test_case.should_fail? "An error message was expected but wasn't produced." else "A warning was expected but wasn't produced." end elsif expected_error_msg.empty? "An unexpected warning was produced." else if @test_case.should_fail? "Error message doesn't match the expected error." else "Warning doesn't match the expected warning." end end type = @test_case.should_fail? ? :expected_error_different : :expected_warning_different interact(type, :fail) do |i| i.prompt(message) show_test_case_choice(i) unless error_msg.empty? i.choice('e', "Show #{@test_case.should_fail? ? 'error' : 'warning'}.") do display_text_block(error_msg) i.restart! end end i.choice('d', "Show diff.") do require 'diffy' display_text_block( Diffy::Diff.new("Expected\n#{expected_error_msg}", "Actual\n#{error_msg}").to_s(:color)) i.restart! end update_output_choice(i) migrate_impl_choice(i) todo_warning_choice(i) ignore_warning_choice(i) fail_or_exit_choice(i) end assert_equal expected_error_msg, error_msg, message end ## Interaction utilities # If the runner is running in interactive mode, runs the interaction defined # in the block and returns the result. Otherwise, just returns the default # value. def interact(prompt_id, default, &block) if @options[:interactive] print "\nIn test case: #{@test_case.name}" return SassSpec::Interactor.interact_with_memory(@@interaction_memory, prompt_id, &block) else return default end end def show_test_case_choice(i) i.choice('t', "Show me the test case.") do display_text_block(@test_case.dir.to_hrx) i.restart! end end def show_output_choice(i) if @status == 0 i.choice('o', "Show me the output generated.") do display_text_block(@output) i.restart! end if @error.length > 0 i.choice('e', "Show me the warning generated.") do display_text_block(@error) i.restart! end end else i.choice('e', "Show me the error generated.") do display_text_block(@error) i.restart! end end end def migrate_warning_choice(i) i.choice('W', "Migrate the error to a warning.") do @test_case.rename("error", "warning") throw :done end end def update_output_choice(i) i.choice('O', "Update expected output and pass test.") do overwrite_test! throw :done end end def migrate_impl_choice(i) i.choice('I', "Migrate copy of test to pass on #{@test_case.impl}.") do migrate_impl! || i.restart! throw :done end end def todo_choice(i) return if @test_case.todo? i.choice('T', "Mark spec as todo for #{@test_case.impl}.") do change_options(add_todo: [@test_case.impl]) throw :done end end def ignore_choice(i) i.choice('G', "Ignore test for #{@test_case.impl} FOREVER.") do change_options( add_ignore_for: [@test_case.impl], remove_warning_todo: [@test_case.impl], remove_todo: [@test_case.impl]) throw :done end end def delete_choice(i) i.choice('D', "Delete test.") do if delete_test! throw :done else i.restart! end end end def todo_warning_choice(i) return if @test_case.warning_todo? i.choice('T', "Mark warning as todo for #{@test_case.impl}.") do change_options(add_warning_todo: [@test_case.impl]) throw :done end end def ignore_warning_choice(i) i.choice('G', "Ignore warning for #{@test_case.impl}.") do change_options(add_ignore_warning_for: [@test_case.impl]) throw :done end end def fail_or_exit_choice(i) i.choice('f', "Mark as failed.") i.choice('X', "Exit testing.") do raise Interrupt end end # Deletes the current test case. # # In interactive mode, prompts the user and returns `false` if they decide not # to delete the test. def delete_test! result = interact(:delete_test, :proceed) do |i| files = @test_case.dir.glob("**/*") i.prompt("The following files will be removed:\n * " + files.join("\n * ")) i.choice('D', "Delete them.") do @test_case.dir.delete_dir! end i.choice('x', "I changed my mind.") {} end result == :proceed || result == "D" end # Adds separate outputs for the test that are compatible with the current # implementation. def migrate_impl! if @status == 0 if @test_case.expected != @normalized_output || @test_case.should_fail? @test_case.write("output.css", @output, impl: true) end if extract_error_message(@test_case.expected_warning) != extract_error_message(@error) @test_case.write("warning", @error, impl: true) end else actual_error = @test_case.expected_error && extract_error_message(@test_case.expected_error) if actual_error != extract_error_message(@error) @test_case.write("error", @error, impl: true) end end change_options(remove_warning_todo: [@test_case.impl], remove_todo: [@test_case.impl]) end ## Other utilities # Returns whether the current test case is marked as TODO, but is still being # run because --probe-todo was passed. These specs shouldn't produce errors # when they fail. def probe_todo? @options[:probe_todo] && (@test_case.todo? || @test_case.warning_todo?) end def skip_test_case!(reason = nil) msg = "Skipped #{@test_case.name}" if reason msg << ": #{reason}" else msg << "." end skip msg end ANSI_ESCAPES = /[\u001b\u009b][\[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-ORZcf-nqry=><]/ def display_text_block(text) if text.empty? puts "*" * 20 + " (empty) " + "*" * 20 return end delim = "*" * text.gsub(ANSI_ESCAPES, '').lines.map{|l| l.rstrip.size}.max puts delim puts text puts delim end def overwrite_test! if @status == 0 @test_case.write("output.css", @output, impl: :auto) @test_case.delete("error", if_exists: true, impl: :auto) if @error.empty? @test_case.delete("warning", if_exists: true, impl: :auto) else @test_case.write("warning", @error, impl: :auto) end else @test_case.write("error", @error, impl: :auto) @test_case.delete("output.css", if_exists: true, impl: :auto) @test_case.delete("warning", if_exists: true, impl: :auto) end change_options(remove_warning_todo: [@test_case.impl], remove_todo: [@test_case.impl]) end def change_options(new_options) existing_options = if @test_case.file?("options.yml") YAML.load(@test_case.read("options.yml")) else {} end existing_options = SassSpec::TestCaseMetadata.merge_options(existing_options, new_options) if existing_options.any? @test_case.write("options.yml", existing_options.to_yaml) else @test_case.delete("options.yml", if_exists: true) end end GEMFILE_PREFIX_LENGTH = 68 # When running sass-spec as a gem from github very long filenames can cause # installation issues. This checks that the paths in use will work. def assert_filename_length!(filename) name = relative_name = filename.to_s.sub(SassSpec::SPEC_DIR, "") assert false, "Filename #{name} must no more than #{256 - GEMFILE_PREFIX_LENGTH} characters long" if name.size > (256 - GEMFILE_PREFIX_LENGTH) if name.size <= 100 then prefix = "" else parts = name.split(/\//) newname = parts.pop nxt = "" loop do nxt = parts.pop break if newname.size + 1 + nxt.size > 100 newname = nxt + "/" + newname end prefix = (parts + [nxt]).join "/" name = newname assert false, "base name (#{name}) of #{relative_name} must no more than 100 characters long" if name.size > 100 assert false, "prefix (#{prefix}) of #{relative_name} must no more than #{155 - GEMFILE_PREFIX_LENGTH} characters long" if prefix.size > (155 - GEMFILE_PREFIX_LENGTH) end return nil end def extract_error_message(error) # We want to make sure dart-sass continues to generate correct stack traces # and text highlights, so we check its full error messages. if @options[:engine_adapter].describe == 'dart-sass' return clean_debug_path(error.rstrip) end error_message = "" consume_next_line = false error.each_line do |line| if consume_next_line next if line.strip == "" error_message += line break end if (line =~ /(DEPRECATION )?WARNING/) if line.rstrip.end_with?(":") error_message = line.rstrip + "\n" consume_next_line = true next else error_message = line break end end if (line =~ /Error:/) error_message = line break end end clean_debug_path(error_message.rstrip) end def clean_debug_path(error) error.gsub(/^.*?(input.scss:\d+ DEBUG:)/, '\1') .gsub(/\/+/, "/") .gsub(/^#{Regexp.quote(SassSpec::SPEC_DIR.gsub(/\\/, '\/'))}\//, "/sass/sass-spec/") .gsub(/^#{Regexp.quote(SassSpec::SPEC_DIR)}\//, "/sass/sass-spec/") .gsub(/(?:\/todo_|_todo\/)/, "/") .gsub(/\/libsass\-[a-z]+\-tests\//, "/") .gsub(/\/libsass\-[a-z]+\-issues/, "/libsass-issues") .strip end end sass-spec-libsass-3.6.3/lib/sass_spec/test_case.rb000066400000000000000000000144331355712145100221230ustar00rootroot00000000000000require 'pathname' require_relative 'util' # This represents a specific test case. class SassSpec::TestCase attr_reader :metadata, :dir, :impl # The path to the input file for this test case. # # Note that this file is not guaranteed to exist on disk, since this test case # may be loaded from an HRX file. attr_reader :input_path # The Sass or SCSS input for this test case. attr_reader :input # The normalized expected CSS output. This is `nil` if the test is expected to # fail, or if it's malformed and has no expectations. attr_reader :expected # The normalized expected warning text. This is `nil` if the test is expected # to fail, or if it's malformed and has no expectations. It's `""` if the test # is expected to succeed without warnings. attr_reader :expected_warning # The normalized expected error message. This is `nil` if the test is expected # to succeed, or if it's malformed and has no expectations. attr_reader :expected_error # Returns the test case for the given SassSpec::Directory and implementation # name. def initialize(dir, impl) @dir = dir @impl = impl @metadata = SassSpec::TestCaseMetadata.new(dir) @result = false input_files = @dir.glob("input.*") if input_files.empty? raise ArgumentError.new("No input file found in #{@dir}") elsif input_files.size > 1 raise ArgumentError.new("Multiple input files found in #{@dir}") end @input = @dir.read(input_files.first) # If there's an impl-specific output file, then this is a success test. # Otherwise, it's an error test if there's *any* error file, impl-specific # or otherwise. if !file?("output.css", impl: true) && file?("error", impl: :auto) @expected_error = SassSpec::Util.normalize_error(read("error", impl: :auto)) else if file?("output.css", impl: :auto) output = read("output.css", impl: :auto) # we seem to get CP850 otherwise # this provokes equal test to fail output = String.new(output).force_encoding('ASCII-8BIT') @expected = SassSpec::Util.normalize_output(output) end @expected_warning = if file?("warning", impl: :auto) SassSpec::Util.normalize_error(read("warning", impl: :auto)) else "" end end end def result? @result end def finalize(result) @result = result end def name @metadata.name end def should_fail? !!expected_error end def todo? @metadata.todo?(impl) end def warning_todo? @metadata.warning_todo?(impl) end def ignore? @metadata.ignore_for?(impl) end def ignore_warning? @metadata.ignore_warning_for?(impl) end # Returns whether a file exists at `path` within this test case's directory. # # If `impl` is `true`, this adds an implementation-specific suffix to the # path. If `impl` is false (the default), it does not. If `impl` is `:auto`, # it returns true if either the implementation-specific file or the base file # exists. def file?(path, impl: false) path = _path(path, impl) path && @dir.file?(path) end # Reads the file at `path` within this test case's directory. # # If `impl` is `true`, this adds an implementation-specific suffix to the # path. If `impl` is false (the default), it does not. If `impl` is `:auto`, # it returns the contents of implementation-specific file if it exists, or the # base file if *it* exists, or throws an error if neither exists. def read(path, impl: false) unless resolved_path = _path(path, impl) raise "#@dir/#{path} doesn't exist" end @dir.read(resolved_path) end # Writes `contents` to `path` within this test case's directory. # # If `impl` is `true`, this adds an implementation-specific suffix to the # path. If `impl` is false (the default), it does not. If `impl` is `:auto`, # it writes to the implementation-specific file if it exists, and the base # file otherwise. def write(path, contents, impl: false) @dir.write(_path(path, impl) || path, contents) end # Deletes the file at `path` within this test case's directory. # # If `if_exists` is `true`, don't throw an error if the file doesn't exist. # # If `impl` is `true`, this adds an implementation-specific suffix to the # path. If `impl` is false (the default), it does not. If `impl` is `:auto`, # it deletes the implementation-specific file if it exists, or the base file # if *it* exists, or throws an error if neither exists. def delete(path, if_exists: false, impl: false) unless resolved_path = _path(path, impl) return if if_exists raise "#@dir/#{path} doesn't exist" end @dir.delete(resolved_path, if_exists: if_exists) end # Renames the file at `old` to `new` within this test case's directory. # # If `impl` is `true`, this adds an implementation-specific suffix to both # paths. If `impl` is false (the default), it does not. If `impl` is `:auto`, # it renames the implementation-specific file if it exists to an # implementation-specific version of `new`, or the base file if *it* exists to # `new`, or throws an error if neither exist. def rename(old, new, impl: false) unless resolved_old = _path(old, impl) raise "#@dir/#{old} doesn't exist" end new = _path(new, true) if resolved_old.include?("-#{@impl}") @dir.rename(resolved_old, new) end # Invokes EngineAdapter#compile on this test case and returns the result. def run(engine_adapter) @dir.with_real_files do engine_adapter.compile( File.join(@dir.path, @dir.glob("input.*").first), @metadata.precision || 10) end end private # Returns the path of `path` within `dir`. # # If `impl` is `true`, this adds an implementation-specific suffix to the # path. If `impl` is false (the default), it does not. If `impl` is `:auto`, # it returns the implementation-specific file if it exists, or the base file # if *it* exists, or `nil` if neither exists. def _path(path, impl) return path unless impl extension = File.extname(path) path_without_extension = extension.empty? ? path : path[0...-extension.length] path_with_impl = "#{path_without_extension}-#{@impl}#{extension}" return path_with_impl if impl == true || @dir.file?(path_with_impl) return path if @dir.file?(path) end end sass-spec-libsass-3.6.3/lib/sass_spec/test_case_metadata.rb000066400000000000000000000075331355712145100237660ustar00rootroot00000000000000require 'pathname' require 'yaml' module SassSpec class TestCaseMetadata def self.cache @metadata_cache ||= {} end # If you change this, also change Annotate::CLI#annotate_path def self.merge_options(existing_opts, new_opts) existing_opts = existing_opts.dup new_opts.each do |key, value| if added_key = key[/^add_(.*)/, 1] added_key = added_key.to_sym (existing_opts[added_key] ||= []) .concat(value) .uniq! elsif removed_key = key[/^remove_((?:warning_)?todo)/, 1] removed_key = removed_key.to_sym (existing_opts[removed_key] ||= []) .delete_if {|name| value.include?(_normalize_todo(name))} existing_opts.delete(removed_key) if existing_opts[removed_key].empty? elsif removed_key = key[/^remove_(.*)/, 1] removed_key = removed_key.to_sym (existing_opts[removed_key] ||= []) .delete_if {|name| value.include?(name)} existing_opts.delete(removed_key) if existing_opts[removed_key].empty? elsif value.nil? existing_opts.delete(key) else existing_opts[key] = value end end existing_opts end ACCUMULATED_OPTIONS = [:todo, :warning_todo, :ignore_for, :ignore_warning_for, :only_on, :warning_only_on] attr_reader :options # The name of the test. # # This is a standardized format of the test's directory name. attr_reader :name # Parses metadata for the test case at the given SassSpec::Directory. def initialize(test_case_dir) @name = test_case_dir.to_s @options = resolve_options(test_case_dir) end def resolve_options(dir) self.class.cache[dir.path] ||= _resolve_options(dir).tap do |options| _normalize_todos(options, :todo) _normalize_todos(options, :warning_todo) end.freeze end def _resolve_options(dir) return {} unless parent = dir.parent parent_options = resolve_options(parent) self_options = if dir.file?("options.yml") YAML.load(dir.read("options.yml")) else {} end raise "#{dir.path}/options.yml is not a map!" unless self_options.is_a?(Hash) rv = parent_options.merge(self_options) do |key, parent_value, self_value| if ACCUMULATED_OPTIONS.include?(key) (Array(parent_value) + Array(self_value)).uniq else self_value end end rv end # Normalize a list of TODOs to convert GitHub issue references to # implementation names. def _normalize_todos(options, field) if options.include?(field) options[field] = options[field] .map {|name| self.class._normalize_todo(name)} .to_set end end # Normalize a single TODO value to convert a GitHub issue reference to an # implementation name. def self._normalize_todo(value) value =~ %r{^sass/(.*)#} ? $1 : value end def todo?(impl) @options[:todo] && @options[:todo].include?(impl) end def warning_todo?(impl) @options[:warning_todo] && @options[:warning_todo].include?(impl) end def all_warning_todos @options[:warning_todo] || [] end def ignore_for?(impl) (@options[:ignore_for] && @options[:ignore_for].include?(impl)) || (@options[:only_on] && !@options[:only_on].include?(impl)) end def ignore_warning_for?(impl) (@options[:ignore_warning_for] && @options[:ignore_warning_for].include?(impl)) || (@options[:warning_only_on] && @options[:warning_only_on].include?(impl)) end def warnings_ignored_for @options[:ignore_warning_for] || [] end def precision @options[:precision] end def valid_for_impl?(impl) !ignore_for?(impl) end end end sass-spec-libsass-3.6.3/lib/sass_spec/util.rb000066400000000000000000000026611355712145100211260ustar00rootroot00000000000000module SassSpec::Util class << self # Normalizes the whitespace in the given CSS to make it easier to compare # across implementations. def normalize_output(css) css.gsub(/(?:\r?\n)+/, "\n").force_encoding("utf-8") end # Normalizes the path names and whitespace in the given error message. def normalize_error(error) # TODO(nweiz): Delete path normalization when sass/libsass#2861 is fixed. error.gsub(/(?:\/todo_|_todo\/)/, "/") # hide todo pre/suffix .gsub(/\/libsass\-[a-z]+\-tests\//, "/") # hide test directory .gsub(/\/libsass\-[a-z]+\-issues\//, "/libsass-issues/") # normalize issue specs .gsub(/(([\w\/.\-\\:]+?[\/\\])|([\/\\]|(?!:\s)))spec[\/\\]+/, "/sass/spec/") # normalize abs paths .sub(/(?:\r?\n)*\z/, "\n") # make sure we have exactly one trailing linefeed .sub(/\A(?:\r?\s)+\z/, "") # clear the whole file if only whitespace .gsub(/\r\n/, "\n") # remove Windows line feeds .force_encoding("utf-8") end # Yields each directory in `path`, from the outermost to the innermost. def each_directory(path) return to_enum(__method__, path) unless block_given? path_so_far = nil Pathname.new(path).each_filename do |dir| if path_so_far.nil? path_so_far = String.new(dir) else path_so_far << File::SEPARATOR << dir end yield path_so_far end end end end sass-spec-libsass-3.6.3/lib/sass_spec/version.rb000066400000000000000000000000511355712145100216250ustar00rootroot00000000000000module SassSpec VERSION = "3.3.3" end sass-spec-libsass-3.6.3/package.json000066400000000000000000000010261355712145100173530ustar00rootroot00000000000000{ "name": "sass-spec", "version": "3.5.4", "description": "Test suite for testing compatibility with the Sass Stylesheet language.", "main": "index.js", "repository": { "type": "git", "url": "git+https://github.com/sass/sass-spec.git" }, "keywords": [ "sass" ], "files": [ "spec", "index.js" ], "author": "Michael Mifsud ", "license": "MIT", "bugs": { "url": "https://github.com/sass/sass-spec/issues" }, "homepage": "https://github.com/sass/sass-spec#readme" } sass-spec-libsass-3.6.3/sass-spec.rb000077500000000000000000000021301355712145100173130ustar00rootroot00000000000000#!/usr/bin/env ruby #This script requires a standard directory hierarchy which might be a bit cumbersome to set up # #The hierarchy looks like this near the leaves: #... #|-test_subclass_1 #| |-test_1 #| | |-input.scss #| | --output.css #| --test_2 #| |-input.scss #| --output.css #|-test_subclass_2 #| |-test_1 #| | |-input.scss #| | --output.css #... #the point is to have all the tests in their own folder in a file named input* with #the output of running a command on it in the file output* in the same directory require_relative 'lib/sass_spec' module Minitest class Skip < Assertion def result_code "-" end end end if ARGV[0] == "annotate" require_relative 'lib/sass_spec/annotate' begin (cli = SassSpec::Annotate::CLI.parse(ARGV[1..-1])) || exit(1) rescue OptionParser::InvalidOption => e warn e.message + "\n\n" SassSpec::Annotate::CLI.parse(%w(-h)) exit 1 end cli.annotate || exit(1) else begin SassSpec::Runner.new(SassSpec::CLI.parse()).run || exit(1) rescue ArgumentError => e warn e.message warn e.backtrace exit 1 end end sass-spec-libsass-3.6.3/spec.sh000077500000000000000000000044101355712145100163560ustar00rootroot00000000000000#!/bin/bash if [ $1 = "create" ] then git checkout master if [ $2 = "todo" ] then git checkout -b feat/issue-$3 git push -u origin feat/issue-$3 mkdir spec/libsass-todo-issues/issue_$3 touch spec/libsass-todo-issues/issue_$3/{input.scss,output.css} subl spec/libsass-todo-issues/issue_$3/input.scss git add spec/libsass-todo-issues/issue_$3 git commit -m "Add specs for issue $3" -m "This PR add specs for sass/libsass#$3" elif [ $2 = "closed" ] then git checkout -b feat/activate-$3 git push -u origin feat/activate-$3 mkdir spec/libsass-closed-issues/issue_$3 touch spec/libsass-closed-issues/issue_$3/{input.scss,output.css} subl spec/libsass-closed-issues/issue_$3/input.scss git add spec/libsass-closed-issues/issue_$3 git commit -m "Activate specs for issue $3" -m "This PR activates specs for sass/libsass#$3" fi elif [ $1 = "nuke" ] then if [ $2 = "todo" ] then ruby sass-spec.rb -c sass spec/libsass-todo-issues/issue_$3 --generate elif [ $2 = "closed" ] then ruby sass-spec.rb -c sass spec/libsass-closed-issues/issue_$3 --generate fi elif [ $1 = "assert" ] then if [ $2 = "todo" ] then ruby sass-spec.rb -c ~/Projects/Sass/sassc/bin/sassc -s spec/libsass-todo-issues/issue_$3 elif [ $2 = "closed" ] then ruby sass-spec.rb -c ~/Projects/Sass/sassc/bin/sassc -s spec/libsass-closed-issues/issue_$3 fi elif [ $1 = "enable" ] then # git checkout master git mv spec/libsass-todo-issues/issue_$2 spec/libsass-closed-issues elif [ $1 = "activate" ] then git checkout master git checkout -b feat/activate-$2 git push -u origin feat/activate-$2 git mv spec/libsass-todo-issues/issue_$2 spec/libsass-closed-issues git add spec/libsass-closed-issues/issue_$2 git commit -m "Activate specs for issue $2" -m "This PR activates specs for sass/libsass#$2" elif [ $1 = "pr" ] then git push elif [ $1 = "update" ] then git checkout master git fetch upstream git merge upstream/master git push fi # git checkout master # git checkout -b feat/issue-$1 # mkdir spec/libsass-todo-issues/issue_$1 # touch spec/libsass-todo-issues/issue_$1/{input.scss,output.css} # subl spec/libsass-todo-issues/issue_$1/input.scss sass-spec-libsass-3.6.3/spec/000077500000000000000000000000001355712145100160205ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/basic/000077500000000000000000000000001355712145100171015ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/basic/00_empty.hrx000066400000000000000000000000441355712145100212570ustar00rootroot00000000000000<===> input.scss <===> output.css sass-spec-libsass-3.6.3/spec/basic/01_simple_css.hrx000066400000000000000000000001141355712145100222610ustar00rootroot00000000000000<===> input.scss a { color: blue; } <===> output.css a { color: blue; } sass-spec-libsass-3.6.3/spec/basic/02_simple_nesting.hrx000066400000000000000000000001421355712145100231420ustar00rootroot00000000000000<===> input.scss div { img { border: 0px; } } <===> output.css div img { border: 0px; } sass-spec-libsass-3.6.3/spec/basic/03_simple_variable.hrx000066400000000000000000000001331355712145100232610ustar00rootroot00000000000000<===> input.scss $color: red; a { color: $color; } <===> output.css a { color: red; } sass-spec-libsass-3.6.3/spec/basic/04_basic_variables.hrx000066400000000000000000000004601355712145100232400ustar00rootroot00000000000000<===> input.scss $color: "black"; $color: red; $background: "blue"; a { color: $color; background: $background; } $y: before; $x: 1 2 $y; foo { a: $x; } $y: after; foo { a: $x; } <===> output.css a { color: red; background: "blue"; } foo { a: 1 2 before; } foo { a: 1 2 before; } sass-spec-libsass-3.6.3/spec/basic/05_empty_levels.hrx000066400000000000000000000012311355712145100226350ustar00rootroot00000000000000<===> input.scss div { span { color: red; background: blue; } } div { color: gray; empty { span { color: red; background: blue; } } } empty1 { empty2 { div { blah: blah; } } } empty1 { empty2 { div { bloo: blee; empty3 { span { blah: blah; blah: blah; } } } } } <===> output.css div span { color: red; background: blue; } div { color: gray; } div empty span { color: red; background: blue; } empty1 empty2 div { blah: blah; } empty1 empty2 div { bloo: blee; } empty1 empty2 div empty3 span { blah: blah; blah: blah; } sass-spec-libsass-3.6.3/spec/basic/06_nesting_and_comments.hrx000066400000000000000000000034361355712145100243350ustar00rootroot00000000000000<===> input.scss $blah: bloo blee; $blip: "a 'red' and \"blue\" value"; /* top level comment -- should be preserved */ div { /* another comment that should be preserved */ color: red; background: blue; $blux: hux; // gone! span { font-weight: bold; a { text-decoration: none; /* where will this comment go? */ color: green; /* what about this comment? */ border: 1px $blah red; } /* yet another comment that should be preserved */ display: inline-block; } // gone! /* the next selector should be indented two spaces */ empty { not_empty { blah: blah; // gone! bloo: bloo; } } p { padding: 10px 8%; -webkit-box-sizing: $blux; } margin: 10px 5px; h1 { color: $blip; } } /* last comment, top level again -- compare the indentation! */ div { f: g; empty { span { a: b; } } empty_with_comment { /* hey now */ span { c: d; } } } <===> output.css /* top level comment -- should be preserved */ div { /* another comment that should be preserved */ color: red; background: blue; /* the next selector should be indented two spaces */ margin: 10px 5px; } div span { font-weight: bold; /* yet another comment that should be preserved */ display: inline-block; } div span a { text-decoration: none; /* where will this comment go? */ color: green; /* what about this comment? */ border: 1px bloo blee red; } div empty not_empty { blah: blah; bloo: bloo; } div p { padding: 10px 8%; -webkit-box-sizing: hux; } div h1 { color: "a 'red' and \"blue\" value"; } /* last comment, top level again -- compare the indentation! */ div { f: g; } div empty span { a: b; } div empty_with_comment { /* hey now */ } div empty_with_comment span { c: d; } sass-spec-libsass-3.6.3/spec/basic/07_nested_simple_selector_groups.hrx000066400000000000000000000016131355712145100262650ustar00rootroot00000000000000<===> input.scss a, b { color: red; background: blue; } c, d { color: gray; e, f { background: blue; padding: 10px 5px; } g, h { blah: blah; bloo: bloo; } i, j { foo: goo; k, l { m, n, o { wow: we are far inside; but: it still works; } hoo: boo; } } } <===> output.css a, b { color: red; background: blue; } c, d { color: gray; } c e, c f, d e, d f { background: blue; padding: 10px 5px; } c g, c h, d g, d h { blah: blah; bloo: bloo; } c i, c j, d i, d j { foo: goo; } c i k, c i l, c j k, c j l, d i k, d i l, d j k, d j l { hoo: boo; } c i k m, c i k n, c i k o, c i l m, c i l n, c i l o, c j k m, c j k n, c j k o, c j l m, c j l n, c j l o, d i k m, d i k n, d i k o, d i l m, d i l n, d i l o, d j k m, d j k n, d j k o, d j l m, d j l n, d j l o { wow: we are far inside; but: it still works; } sass-spec-libsass-3.6.3/spec/basic/08_selector_combinators.hrx000066400000000000000000000003621355712145100243540ustar00rootroot00000000000000<===> input.scss a + b > c { d e { color: blue; background: white; } color: red; background: gray; } <===> output.css a + b > c { color: red; background: gray; } a + b > c d e { color: blue; background: white; } sass-spec-libsass-3.6.3/spec/basic/09_selector_groups_and_combinators.hrx000066400000000000000000000004211355712145100265720ustar00rootroot00000000000000<===> input.scss a + b, c { blah: blah; bleh: bleh; d e, f ~ g + h, > i { bloo: bloo; blee: blee; } } <===> output.css a + b, c { blah: blah; bleh: bleh; } a + b d e, a + b f ~ g + h, a + b > i, c d e, c f ~ g + h, c > i { bloo: bloo; blee: blee; } sass-spec-libsass-3.6.3/spec/basic/10_classes_and_ids.hrx000066400000000000000000000005211355712145100232400ustar00rootroot00000000000000<===> input.scss a + b, .class { blah: blah; bleh: bleh; d #id, f ~ g.other + h, > i#grar { bloo: bloo; blee: blee; } } <===> output.css a + b, .class { blah: blah; bleh: bleh; } a + b d #id, a + b f ~ g.other + h, a + b > i#grar, .class d #id, .class f ~ g.other + h, .class > i#grar { bloo: bloo; blee: blee; } sass-spec-libsass-3.6.3/spec/basic/11_attribute_selectors.hrx000066400000000000000000000005671355712145100242230ustar00rootroot00000000000000<===> input.scss [hey = 'ho'], a > b { blah: blah; c, [hoo *= "ha" ] { bloo: bloo; } } <===> output.css [hey='ho'], a > b { blah: blah; } [hey='ho'] c, [hey='ho'] [hoo*="ha"], a > b c, a > b [hoo*="ha"] { bloo: bloo; } <===> output-dart-sass.css [hey=ho], a > b { blah: blah; } [hey=ho] c, [hey=ho] [hoo*=ha], a > b c, a > b [hoo*=ha] { bloo: bloo; } sass-spec-libsass-3.6.3/spec/basic/12_pseudo_classes_and_elements.hrx000066400000000000000000000013111355712145100256540ustar00rootroot00000000000000<===> input.scss a b { color: red; :first-child, :nth-of-type( -2n+1 ) { .foo#bar:nth-child(even) { hoo: goo; } blah: bloo; ::after { content: "glux"; color: green; } :not(.foo) { hoo: boo; } a { b: c; } } } <===> output.css a b { color: red; } a b :first-child, a b :nth-of-type(-2n+1) { blah: bloo; } a b :first-child .foo#bar:nth-child(even), a b :nth-of-type(-2n+1) .foo#bar:nth-child(even) { hoo: goo; } a b :first-child ::after, a b :nth-of-type(-2n+1) ::after { content: "glux"; color: green; } a b :first-child :not(.foo), a b :nth-of-type(-2n+1) :not(.foo) { hoo: boo; } a b :first-child a, a b :nth-of-type(-2n+1) a { b: c; } sass-spec-libsass-3.6.3/spec/basic/13_back_references.hrx000066400000000000000000000003001355712145100232210ustar00rootroot00000000000000<===> input.scss hey, ho { & > boo, foo &.goo { bloo: bloo; } blah: blah; } <===> output.css hey, ho { blah: blah; } hey > boo, foo hey.goo, ho > boo, foo ho.goo { bloo: bloo; } sass-spec-libsass-3.6.3/spec/basic/14_imports.hrx000066400000000000000000000012351355712145100216260ustar00rootroot00000000000000<===> a.scss div { span { moo: goo; } } $x: boo; <===> b.scss hoo { mux: scooba-dee-doo; flux: gooboo $x; @import "d.scss"; } <===> d.scss d { inside: d now; } <===> input.scss @import "a.scss"; foo { blah: blah; goo { blee: blee; @import "../14_imports/b.scss"; hello: world; } @import "sub/c.scss"; } <===> sub/c.scss blux { hey: another thing; ho: will this work; } <===> output.css div span { moo: goo; } foo { blah: blah; } foo goo { blee: blee; hello: world; } foo goo hoo { mux: scooba-dee-doo; flux: gooboo boo; } foo goo hoo d { inside: d now; } foo blux { hey: another thing; ho: will this work; } sass-spec-libsass-3.6.3/spec/basic/15_arithmetic_and_lists.hrx000066400000000000000000000043711355712145100243270ustar00rootroot00000000000000<===> input.scss $stuff: 1 2 3; $three: 3; div { a: 1 + 2; b: 3 + 3/4; c: 1/2 + 1/2; /* shouldn't eval the following "300" */ d: 300; /* increasingly jacked-up edge cases that combine arithmetic with lists */ e: 1 + (5/10 2 3); f: 1 + ((2+(3 4) 5) 6); g: 1 + ((1+(14/7 8) 9) 6); /* shouldn't perform the following division */ h: 15 / 3 / 5; /* should perform the following division now */ i: (15 / 3 / 5); /* this too */ j: (15 / 3) / 5; /* and this */ k: 15 / $three; l: 15 / 5 / $three; m: 1/2, $stuff url("www.foo.com/blah.png") blah blah; n: 1 2 3, $stuff 4 5 (6, 7 8 9); o: 3px + 3px + 3px; p: 4 + 1px; q: (20pt / 10pt); r: 16em * 4; s: (5em / 2); t: 1 + (2 + (3/4 + (4/5 6/7))); // Arithmetic operations in Sass should never fail, since we implicitly use // floating-point for all numbers. one-over-zero: (1 / 0); zero-over-zero: (0 / 0); one-mod-zero: 1 % 0; zero-mod-zero: 0 % 0; } <===> output.css div { a: 3; b: 3.75; c: 1; /* shouldn't eval the following "300" */ d: 300; /* increasingly jacked-up edge cases that combine arithmetic with lists */ e: 15/10 2 3; f: 123 4 5 6; g: 1114/7 8 9 6; /* shouldn't perform the following division */ h: 15 / 3 / 5; /* should perform the following division now */ i: 1; /* this too */ j: 1; /* and this */ k: 5; l: 1; m: 1/2, 1 2 3 url("www.foo.com/blah.png") blah blah; n: 1 2 3, 1 2 3 4 5 6, 7 8 9; o: 9px; p: 5px; q: 2; r: 64em; s: 2.5em; t: 120.754/5 6/7; one-over-zero: Infinity; zero-over-zero: NaN; one-mod-zero: NaN; zero-mod-zero: NaN; } <===> output-dart-sass.css div { a: 3; b: 3.75; c: 1; /* shouldn't eval the following "300" */ d: 300; /* increasingly jacked-up edge cases that combine arithmetic with lists */ e: 15/10 2 3; f: 123 4 5 6; g: 1114/7 8 9 6; /* shouldn't perform the following division */ h: 15/3/5; /* should perform the following division now */ i: 1; /* this too */ j: 1; /* and this */ k: 5; l: 1; m: 1/2, 1 2 3 url("www.foo.com/blah.png") blah blah; n: 1 2 3, 1 2 3 4 5 6, 7 8 9; o: 9px; p: 5px; q: 2; r: 64em; s: 2.5em; t: 120.754/5 6/7; one-over-zero: Infinity; zero-over-zero: NaN; one-mod-zero: NaN; zero-mod-zero: NaN; } sass-spec-libsass-3.6.3/spec/basic/17_basic_mixins.hrx000066400000000000000000000015451355712145100226100ustar00rootroot00000000000000<===> input.scss @mixin foo($x, $y) { hugabug: $y $x; } @mixin bar($a, $b: flug) { flugablug: $a $b glug; } @mixin hux() { no: parameters here; div, span { some: nested stuff; foo, bar { more: stuff so forth; blah: blah; } } /* end of hux */ } a { hey: ho; @include foo(second, third); @include foo($y: kwd-y, $x: kwd-x); goo: boo hoo; @include hux; @include bar(pug); @include bar(pug, mug); } $x: from a variable; div { blah: blah $x blah; } <===> output.css a { hey: ho; hugabug: third second; hugabug: kwd-y kwd-x; goo: boo hoo; no: parameters here; /* end of hux */ flugablug: pug flug glug; flugablug: pug mug glug; } a div, a span { some: nested stuff; } a div foo, a div bar, a span foo, a span bar { more: stuff so forth; blah: blah; } div { blah: blah from a variable blah; } sass-spec-libsass-3.6.3/spec/basic/18_mixin_scope.hrx000066400000000000000000000007471355712145100224610ustar00rootroot00000000000000<===> input.scss $x: global x; $y: global y; @mixin foo($x) { f-a: $x; f-b: $y; $x: local x changed by foo; $y: global y changed by foo !global; $z: new local z; f-a: $x; f-b: $y; f-c: $z; } div { a: $x; b: $y; @include foo(arg); a: $x; b: $y; } <===> output.css div { a: global x; b: global y; f-a: arg; f-b: global y; f-a: local x changed by foo; f-b: global y changed by foo; f-c: new local z; a: global x; b: global y changed by foo; } sass-spec-libsass-3.6.3/spec/basic/19_full_mixin_craziness.hrx000066400000000000000000000045541355712145100243740ustar00rootroot00000000000000<===> input.scss $x: global-x; $y: global-y; $z: global-z; @mixin foo($x, $y) { /* begin foo */ margin: $x $y; blip { hey: now; } /* end foo */ } @mixin foogoo($x, $y, $z) { margin: $x $y $z; } @mixin hux($y) { /* begin hux */ color: $y; @include foo(called-from-hux, $y: $y); /* end hux */ } div { @include foo(1, 2); @include foo(1, 3); @include foogoo(1, 2, $z: zee); @include foogoo(1, $y /* blah */ : kwd-y, $z: kwd-z); } div { @include hux($y: $y); } $y: different-global-y; div { @include hux(calling-hux-again); } @mixin bung() { blah: original-bung; } div { @include bung(); } @mixin bung() { blah: redefined-bung; } div { @include bung(); } div { /* calls to nullary mixins may omit the empty argument list */ @include bung; } div { @include foo($x: kwdarg1, $y: kwdarg2); } @mixin ruleset() { hoo { color: boo; } } @include ruleset(); $da: default argument; @mixin default_args($x, $y: $da) { blah: $x $y; } $da: some other default; div { @include default_args(boogoo); } @mixin original() { value: original; } div { @include original(); } @mixin original() { value: no longer original; } div { @include original(); } @mixin set-x($x) { $x: changed local x; arg: $x; $y: changed global y !global; blarg: $y; } div { @include set-x(blah); a: $x; b: $y; } <===> output.css div { /* begin foo */ margin: 1 2; /* end foo */ /* begin foo */ margin: 1 3; /* end foo */ margin: 1 2 zee; margin: 1 kwd-y kwd-z; } div blip { hey: now; } div blip { hey: now; } div { /* begin hux */ color: global-y; /* begin foo */ margin: called-from-hux global-y; /* end foo */ /* end hux */ } div blip { hey: now; } div { /* begin hux */ color: calling-hux-again; /* begin foo */ margin: called-from-hux calling-hux-again; /* end foo */ /* end hux */ } div blip { hey: now; } div { blah: original-bung; } div { blah: redefined-bung; } div { /* calls to nullary mixins may omit the empty argument list */ blah: redefined-bung; } div { /* begin foo */ margin: kwdarg1 kwdarg2; /* end foo */ } div blip { hey: now; } hoo { color: boo; } div { blah: boogoo some other default; } div { value: original; } div { value: no longer original; } div { arg: changed local x; blarg: changed global y; a: global-x; b: changed global y; } sass-spec-libsass-3.6.3/spec/basic/20_scoped_variables.hrx000066400000000000000000000006441355712145100234360ustar00rootroot00000000000000<===> input.scss @mixin foo() { /* begin foo */ /* assigning to $x */ $x: inside foo; x: $x; /* end foo */ } outer { /* assigning to $x */ $x: inside outer scope; blah: blah; inner { @include foo(); x: $x; } } <===> output.css outer { /* assigning to $x */ blah: blah; } outer inner { /* begin foo */ /* assigning to $x */ x: inside foo; /* end foo */ x: inside outer scope; } sass-spec-libsass-3.6.3/spec/basic/21_one_builtin_function.hrx000066400000000000000000000002441355712145100243420ustar00rootroot00000000000000<===> input.scss div { color: rgb(255, $blue: 0, $green: 255); background: rgb(123, 45, 6); } <===> output.css div { color: yellow; background: #7b2d06; } sass-spec-libsass-3.6.3/spec/basic/22_colors_with_alpha.hrx000066400000000000000000000016271355712145100236360ustar00rootroot00000000000000<===> input.scss $x: rgb(0, 255, 255); div { color: rgb(255, $blue: 0, $green: 255); background: rgb(123, 45, 6); grah: rgba(#f0e, $alpha: .5); blah: rgba(1,2,3,.6); floo: $x; bloo: rgba($x, 0.7); groo: $x; $x: rgb(123, 45, 6); hoo: red($x); moo: green($x); poo: blue($x); goo: mix(rgba(255, 0, 0, 0.5), #00f); boo: invert(#123456); } <===> output.css div { color: yellow; background: #7b2d06; grah: rgba(255, 0, 238, 0.5); blah: rgba(1, 2, 3, 0.6); floo: cyan; bloo: rgba(0, 255, 255, 0.7); groo: cyan; hoo: 123; moo: 45; poo: 6; goo: rgba(64, 0, 191, 0.75); boo: #edcba9; } <===> output-dart-sass.css div { color: yellow; background: #7b2d06; grah: rgba(255, 0, 238, 0.5); blah: rgba(1, 2, 3, 0.6); floo: aqua; bloo: rgba(0, 255, 255, 0.7); groo: aqua; hoo: 123; moo: 45; poo: 6; goo: rgba(64, 0, 191, 0.75); boo: #edcba9; } sass-spec-libsass-3.6.3/spec/basic/23_basic_value_interpolation.hrx000066400000000000000000000004431355712145100253550ustar00rootroot00000000000000<===> options.yml --- :todo: - libsass <===> input.scss div { a: hello#{world}; a: hello #{world}; b: 12#{3}; b: type-of(12#{3}); b: #{12 + 111}; b: type-of(#{12 + 111}); } <===> output.css div { a: helloworld; a: hello world; b: 12 3; b: list; b: 123; b: string; } sass-spec-libsass-3.6.3/spec/basic/24_namespace_properties.hrx000066400000000000000000000007161355712145100243450ustar00rootroot00000000000000<===> input.scss div { a: { p1: q; b: { p2: q; } p3: q; } } foo { bar: baz { bip: bop; bing: type-of("hello"); bang: 1 + 2; bung: bap; bong: bup { x: x; y: y; z: z; } } } <===> output.css div { a-p1: q; a-b-p2: q; a-p3: q; } foo { bar: baz; bar-bip: bop; bar-bing: string; bar-bang: 3; bar-bung: bap; bar-bong: bup; bar-bong-x: x; bar-bong-y: y; bar-bong-z: z; } sass-spec-libsass-3.6.3/spec/basic/25_basic_string_interpolation.hrx000066400000000000000000000002261355712145100255500ustar00rootroot00000000000000<===> input.scss div { blah: "hello #{2+2} world #{unit(23px)} #{'bloo\n'} blah"; } <===> output.css div { blah: "hello 4 world px bloon blah"; } sass-spec-libsass-3.6.3/spec/basic/26_selector_interpolation.hrx000066400000000000000000000004651355712145100247270ustar00rootroot00000000000000<===> input.scss $x: oo, ba; $y: az, hu; f#{$x}r { p: 1; b#{$y}x { q: 2; mumble#{length($x) + length($y)} { r: 3; } } } <===> output.css foo, bar { p: 1; } foo baz, foo hux, bar baz, bar hux { q: 2; } foo baz mumble4, foo hux mumble4, bar baz mumble4, bar hux mumble4 { r: 3; } sass-spec-libsass-3.6.3/spec/basic/27_media_queries.hrx000066400000000000000000000010021355712145100227410ustar00rootroot00000000000000<===> input.scss a b c { blee: blee; d e f { blah: blah; bloo: bloo; } g h, i j { @media print and (foo: 1 2 3), (bar: 3px hux(muz)), not screen { hey: ho; k l m { hee: fee; } } } blah: blah; } <===> output.css a b c { blee: blee; blah: blah; } a b c d e f { blah: blah; bloo: bloo; } @media print and (foo: 1 2 3), (bar: 3px hux(muz)), not screen { a b c g h, a b c i j { hey: ho; } a b c g h k l m, a b c i j k l m { hee: fee; } } sass-spec-libsass-3.6.3/spec/basic/28_url.hrx000066400000000000000000000033151355712145100207410ustar00rootroot00000000000000<===> input.scss $x: pop; $y: 123; div { foo: url(bloo/blah.css); bar: url(http://foo/bar/hux.css); foo: url(fudge#{$x}.css); bar: url("http://fudge#{$x}/styles.css"); hux: url(http://box_#{$y}////fudge#{$x}.css); @each $i in (1 2 3 4 5) { hux: url(http://box_#{$y}////fudge#{$x}.css); foo: url(http://blah.com/bar-#{$i}.css); bar: url(http://fonts.googleapis.com/css?family=Karla:400,700,400italic|Anonymous+Pro:400,700,400italic); } gloo: url("hey#{1+2}.css"); floo: url(hadoop-#{$y+321}.css); } <===> output.css div { foo: url(bloo/blah.css); bar: url(http://foo/bar/hux.css); foo: url(fudgepop.css); bar: url("http://fudgepop/styles.css"); hux: url(http://box_123////fudgepop.css); hux: url(http://box_123////fudgepop.css); foo: url(http://blah.com/bar-1.css); bar: url(http://fonts.googleapis.com/css?family=Karla:400,700,400italic|Anonymous+Pro:400,700,400italic); hux: url(http://box_123////fudgepop.css); foo: url(http://blah.com/bar-2.css); bar: url(http://fonts.googleapis.com/css?family=Karla:400,700,400italic|Anonymous+Pro:400,700,400italic); hux: url(http://box_123////fudgepop.css); foo: url(http://blah.com/bar-3.css); bar: url(http://fonts.googleapis.com/css?family=Karla:400,700,400italic|Anonymous+Pro:400,700,400italic); hux: url(http://box_123////fudgepop.css); foo: url(http://blah.com/bar-4.css); bar: url(http://fonts.googleapis.com/css?family=Karla:400,700,400italic|Anonymous+Pro:400,700,400italic); hux: url(http://box_123////fudgepop.css); foo: url(http://blah.com/bar-5.css); bar: url(http://fonts.googleapis.com/css?family=Karla:400,700,400italic|Anonymous+Pro:400,700,400italic); gloo: url("hey3.css"); floo: url(hadoop-444.css); } sass-spec-libsass-3.6.3/spec/basic/29_if.hrx000066400000000000000000000010451355712145100205340ustar00rootroot00000000000000<===> input.scss $x: a, b, 1+2; @if type-of(nth($x, 3)) == number { div { background: gray; } } @if type-of(nth($x, 2)) == number { div { background: gray; } } @else if type-of(nth($x, 2)) == string { div { background: blue; } } @if type-of(nth($x, 2)) == number { div { background: gray; } } @else if type-of(nth($x, 2)) == color { div { background: blue; } } @else { div { background: red; } } <===> output.css div { background: gray; } div { background: blue; } div { background: red; } sass-spec-libsass-3.6.3/spec/basic/30_if_in_function.hrx000066400000000000000000000006201355712145100231150ustar00rootroot00000000000000<===> input.scss $x: true; @function foobar() { @if $x { $x: false !global; @return foo; } @else { $x: true !global; @return bar; } } div { content: foobar(); content: foobar(); content: foobar(); content: foobar(); $x: false !global; content: foobar(); } <===> output.css div { content: foo; content: bar; content: foo; content: bar; content: bar; } sass-spec-libsass-3.6.3/spec/basic/31_if_in_mixin.hrx000066400000000000000000000005511355712145100224200ustar00rootroot00000000000000<===> input.scss $x: true; @mixin foobar() { @if $x { $x: false !global; content: foo; } @else { $x: true !global; content: bar; } } div { @include foobar(); @include foobar(); @include foobar(); $x: true !global; @include foobar(); } <===> output.css div { content: foo; content: bar; content: foo; content: foo; } sass-spec-libsass-3.6.3/spec/basic/32_percentages.hrx000066400000000000000000000006231355712145100224310ustar00rootroot00000000000000<===> input.scss div { width: 10% + 20%; height: 10% - 20%; width: 10% + 10; width: 10 + 10%; height: 10% - 10; height: 10 - 10%; blah: (20% / 4%); flah: 12 * 75%; grah: 75% * 12; // hwah: (24 / 8%); nyah: (35% / 7); } <===> output.css div { width: 30%; height: -10%; width: 20%; width: 20%; height: 0%; height: 0%; blah: 5; flah: 900%; grah: 900%; nyah: 5%; } sass-spec-libsass-3.6.3/spec/basic/33_ambiguous_imports.hrx000066400000000000000000000004241355712145100237010ustar00rootroot00000000000000<===> blir/_fudge.scss fudge { color: brown; } <===> dir/whatever <===> dir.scss dir { color: blue; } @import "blir/fudge"; <===> input.scss main { color: red; } @import "dir"; <===> output.css main { color: red; } dir { color: blue; } fudge { color: brown; } sass-spec-libsass-3.6.3/spec/basic/35_varargs_false.hrx000066400000000000000000000003061355712145100227510ustar00rootroot00000000000000<===> input.scss @mixin foo($args...) { @each $arg in $args { @if $arg { thing: $arg; } } } div { @include foo(a, b, false); } <===> output.css div { thing: a; thing: b; } sass-spec-libsass-3.6.3/spec/basic/36_extra_commas_in_selectors.hrx000066400000000000000000000001411355712145100253630ustar00rootroot00000000000000<===> input.scss div,, , span, ,, { color: red; } <===> output.css div, span { color: red; } sass-spec-libsass-3.6.3/spec/basic/37_url_expressions.hrx000066400000000000000000000007201355712145100234000ustar00rootroot00000000000000<===> input.scss $x: true; $file-1x: "budge.png"; @function fudge($str) { @return "assets/fudge/" + $str; } div { blah: url(foo + bar); blah: url(fn("s")); blah: url(if(true, "red.png", "blue.png")); blah: url(hello-#{world}.png); blah: url(if($x, fudge("#{$file-1x}"), "#{$file-1x}")); } <===> output.css div { blah: url(foobar); blah: url(fn("s")); blah: url("red.png"); blah: url(hello-world.png); blah: url("assets/fudge/budge.png"); } sass-spec-libsass-3.6.3/spec/basic/38_expressions_in_at_directives.hrx000066400000000000000000000002421355712145100261110ustar00rootroot00000000000000<===> input.scss $x: 1; $y: 2; @foo $x $y, hux { bar { whatever: whatever; } } <===> output.css @foo $x $y, hux { bar { whatever: whatever; } } sass-spec-libsass-3.6.3/spec/basic/39_dash_match_attribute_selector.hrx000066400000000000000000000002561355712145100262200ustar00rootroot00000000000000<===> input.scss div[class|="blah"] { color: blue; } <===> output.css div[class|="blah"] { color: blue; } <===> output-dart-sass.css div[class|=blah] { color: blue; } sass-spec-libsass-3.6.3/spec/basic/40_pseudo_class_identifier_starting_with_n.hrx000066400000000000000000000001421355712145100302750ustar00rootroot00000000000000<===> input.scss div:lang(nb) { color: blue; } <===> output.css div:lang(nb) { color: blue; } sass-spec-libsass-3.6.3/spec/basic/41_slashy_urls.hrx000066400000000000000000000003041355712145100224750ustar00rootroot00000000000000<===> input.scss div { blah: url(//some/absolute/path); blee: url(/*looks-like-a*/comment); } <===> output.css div { blah: url(//some/absolute/path); blee: url(/*looks-like-a*/comment); } sass-spec-libsass-3.6.3/spec/basic/42_css_imports.hrx000066400000000000000000000006171355712145100225020ustar00rootroot00000000000000<===> input.scss div { color: red; } @import "hux\ bux.css"; @import "foo.css"; span { color: blue; } @import "bar.css"; <===> output.css @import url(hux bux.css); @import url(foo.css); @import url(bar.css); div { color: red; } span { color: blue; } <===> output-dart-sass.css @import "hux\ bux.css"; @import "foo.css"; @import "bar.css"; div { color: red; } span { color: blue; } sass-spec-libsass-3.6.3/spec/basic/44_bem_selectors.hrx000066400000000000000000000004601355712145100227610ustar00rootroot00000000000000<===> input.scss div { &_foo { blah: blah; } &--modifier { blach: blah; } &hux { blah: blah; } &div.foo#bar[hux] { blah: blah; } } <===> output.css div_foo { blah: blah; } div--modifier { blach: blah; } divhux { blah: blah; } divdiv.foo#bar[hux] { blah: blah; } sass-spec-libsass-3.6.3/spec/basic/49_interpolants_in_css_imports.hrx000066400000000000000000000005751355712145100260040ustar00rootroot00000000000000<===> input.scss $google-protocol: "http"; // choose http or https $google-webfont: "Open+Sans:400italic,700italic,400,700|Oswald"; // pull string after ?family= from step 3 @import url("#{$google-protocol}://fonts.googleapis.com/css?family=#{$google-webfont}"); <===> output.css @import url("http://fonts.googleapis.com/css?family=Open+Sans:400italic,700italic,400,700|Oswald"); sass-spec-libsass-3.6.3/spec/basic/50_wrapped_pseudo_selectors.hrx000066400000000000000000000010411355712145100252300ustar00rootroot00000000000000<===> input.scss div { :-moz-any(ol p.blah, ul, menu, dir) :-moz-any(ol span + h1, ul, menu, dir) ul { list-style-type: square; } :-moz-any(ol span + h1, ul, menu, dir) ul { list-style-type: square; } :foo(p div) { hi: hi; } :foo(ol) { hi: hi; } } <===> output.css div :-moz-any(ol p.blah, ul, menu, dir) :-moz-any(ol span + h1, ul, menu, dir) ul { list-style-type: square; } div :-moz-any(ol span + h1, ul, menu, dir) ul { list-style-type: square; } div :foo(p div) { hi: hi; } div :foo(ol) { hi: hi; } sass-spec-libsass-3.6.3/spec/basic/51_trailing_commas_in_list.hrx000066400000000000000000000003751355712145100250270ustar00rootroot00000000000000<===> input.scss $mylist: (alpha, beta, gamma, ); $my-single-item-list: (alpha,); .test { out1: length($mylist); blah: type-of(nth($mylist,3)); out: length($my-single-item-list); } <===> output.css .test { out1: 3; blah: string; out: 1; } sass-spec-libsass-3.6.3/spec/basic/52_interchangeable_hyphens_underscores.hrx000066400000000000000000000017341355712145100274240ustar00rootroot00000000000000<===> input.scss $my-cool-var: "hello"; @mixin my-cool-mixin($yada-yada) { blah: blah; hi: $yada_yada; } @function my-cool-function($cool_arg) { @return $cool-arg; } div { @include my_cool-mixin($yada_yada: "hi"); @include my_cool-mixin($my_cool-var); foo: my-cool_function($cool-arg: "boop"); foo: my-cool_function($my-cool_var); bar: $my_cool_var; } @each $my_cool_var in a, b, c { div { color: $my-cool-var; } } @for $my_cool_var from 1 to 10 { div { color: $my-cool-var; } } @function blah_blah() { @return blah; } div { foo: blah-blah(); } <===> output.css div { blah: blah; hi: "hi"; blah: blah; hi: "hello"; foo: "boop"; foo: "hello"; bar: "hello"; } div { color: a; } div { color: b; } div { color: c; } div { color: 1; } div { color: 2; } div { color: 3; } div { color: 4; } div { color: 5; } div { color: 6; } div { color: 7; } div { color: 8; } div { color: 9; } div { foo: blah; } sass-spec-libsass-3.6.3/spec/basic/53_escaped_quotes/000077500000000000000000000000001355712145100224145ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/basic/53_escaped_quotes/input.scss000066400000000000000000000007271355712145100244560ustar00rootroot00000000000000[data-icon='test-1']:before { content:'\\'; } [data-icon='test-2']:before { content:'\''; } [data-icon='test-3']:before { content:"\""; } [data-icon='test-4']:before { content:'\\'; } [data-icon='test-5']:before { content:'\''; } [data-icon='test-6']:before { content:"\""; } $open-quote: «; $close-quote: »; $open-quote: \201C; $close-quote: \201D; .\E9motion { blah: hi; } .\E9 dition { blah: hi; } .\0000E9dition { blah: hi; }sass-spec-libsass-3.6.3/spec/basic/53_escaped_quotes/options.yml000066400000000000000000000000251355712145100246270ustar00rootroot00000000000000--- :todo: - libsass sass-spec-libsass-3.6.3/spec/basic/53_escaped_quotes/output-dart-sass.css000066400000000000000000000005761355712145100263750ustar00rootroot00000000000000@charset "UTF-8"; [data-icon=test-1]:before { content: "\\"; } [data-icon=test-2]:before { content: "'"; } [data-icon=test-3]:before { content: '"'; } [data-icon=test-4]:before { content: "\\"; } [data-icon=test-5]:before { content: "'"; } [data-icon=test-6]:before { content: '"'; } .émotion { blah: hi; } .édition { blah: hi; } .édition { blah: hi; } sass-spec-libsass-3.6.3/spec/basic/53_escaped_quotes/output.css000066400000000000000000000006161355712145100244710ustar00rootroot00000000000000@charset "UTF-8"; [data-icon='test-1']:before { content: '\\'; } [data-icon='test-2']:before { content: '\''; } [data-icon='test-3']:before { content: "\""; } [data-icon='test-4']:before { content: '\\'; } [data-icon='test-5']:before { content: '\''; } [data-icon='test-6']:before { content: "\""; } .émotion { blah: hi; } .édition { blah: hi; } .édition { blah: hi; } sass-spec-libsass-3.6.3/spec/basic/54_adjacent_identifiers_with_hyphens.hrx000066400000000000000000000005701355712145100270650ustar00rootroot00000000000000<===> input.scss input { outline: 5px auto -webkit-focus-ring-color; foo: random -hello-this-is-dog; bar: rando -two-or-more -things-that-start -with-hyphens; baz: foo - bar; } <===> output.css input { outline: 5px auto -webkit-focus-ring-color; foo: random -hello-this-is-dog; bar: rando -two-or-more -things-that-start -with-hyphens; baz: foo-bar; } sass-spec-libsass-3.6.3/spec/basic/55_variable_exists.hrx000066400000000000000000000016221355712145100233220ustar00rootroot00000000000000<===> input.scss @function exists($name) { @return variable-exists($name); } @function f() { $foo: hi; @return g(); } @function g() { @return variable-exists(foo); } div { foo: variable-exists(x); foo: variable-exists("x"); span { $x: false; foo: variable-exists(x); foo: variable-exists("x"); foo: variable-exists(y); foo: variable-exists("y"); foo: exists(x); foo: exists("x"); p { foo: variable-exists(x); foo: variable-exists("x"); foo: exists(x); foo: exists("x"); foo: variable-exists(y); foo: variable-exists("y"); foo: f(); $y: blah; } } } <===> output.css div { foo: false; foo: false; } div span { foo: true; foo: true; foo: false; foo: false; foo: false; foo: false; } div span p { foo: true; foo: true; foo: false; foo: false; foo: false; foo: false; foo: false; } sass-spec-libsass-3.6.3/spec/basic/56_global_variable_exists.hrx000066400000000000000000000024451355712145100246470ustar00rootroot00000000000000<===> input.scss @function exists($name) { @return global-variable-exists($name); } @function f() { $foo: hi; @return g(); } @function g() { @return global-variable-exists(foo); } $z: hi; div { foo: global-variable-exists(x); foo: global-variable-exists("x"); foo: global-variable-exists(z); foo: global-variable-exists("z"); span { $x: false; foo: global-variable-exists(x); foo: global-variable-exists("x"); foo: global-variable-exists(y); foo: global-variable-exists("y"); foo: global-variable-exists(z); foo: global-variable-exists("z"); p { foo: global-variable-exists(x); foo: global-variable-exists("x"); foo: exists(x); foo: exists("x"); foo: global-variable-exists(z); foo: global-variable-exists("z"); foo: global-variable-exists(y); foo: global-variable-exists("y"); foo: f(); $y: blah; //TODO: check for shadowing } } } <===> output.css div { foo: false; foo: false; foo: true; foo: true; } div span { foo: false; foo: false; foo: false; foo: false; foo: true; foo: true; } div span p { foo: false; foo: false; foo: false; foo: false; foo: true; foo: true; foo: false; foo: false; foo: false; } sass-spec-libsass-3.6.3/spec/basic/57_function_exists.hrx000066400000000000000000000036631355712145100233730ustar00rootroot00000000000000<===> input.scss @function exists($name) { @return function-exists($name); } @function f() { $foo: hi; @return g(); } @function g() { @return function-exists(foo); } @function h() { @return function-exists(lighten); } div { foo: function-exists(lighten); foo: function-exists("lighten"); foo: function-exists(exists); foo: function-exists("exists"); foo: function-exists(f); foo: function-exists("f"); foo: function-exists(g); foo: function-exists("g"); foo: function-exists(nope); foo: function-exists("nope"); foo: g(); foo: f(); foo: h(); span { foo: function-exists(lighten); foo: function-exists("lighten"); foo: function-exists(exists); foo: function-exists("exists"); foo: function-exists(f); foo: function-exists("f"); foo: function-exists(g); foo: function-exists("g"); foo: function-exists(nope); foo: function-exists("nope"); foo: g(); foo: f(); foo: h(); p { foo: function-exists(lighten); foo: function-exists("lighten"); foo: function-exists(exists); foo: function-exists("exists"); foo: function-exists(f); foo: function-exists("f"); foo: function-exists(g); foo: function-exists("g"); foo: function-exists(nope); foo: function-exists("nope"); foo: g(); foo: f(); foo: h(); } } } <===> output.css div { foo: true; foo: true; foo: true; foo: true; foo: true; foo: true; foo: true; foo: true; foo: false; foo: false; foo: false; foo: false; foo: true; } div span { foo: true; foo: true; foo: true; foo: true; foo: true; foo: true; foo: true; foo: true; foo: false; foo: false; foo: false; foo: false; foo: true; } div span p { foo: true; foo: true; foo: true; foo: true; foo: true; foo: true; foo: true; foo: true; foo: false; foo: false; foo: false; foo: false; foo: true; } sass-spec-libsass-3.6.3/spec/basic/58_mixin_exists.hrx000066400000000000000000000034321355712145100226650ustar00rootroot00000000000000<===> input.scss @function exists($name) { @return mixin-exists($name); } @function f() { $foo: hi; @return g(); } @function g() { @return mixin-exists(foo); } @function h() { @return mixin-exists(lighten); } @mixin red-text { color: red; } @mixin blue-text { color: red; } @mixin green-text { color: red; } div { foo: mixin-exists(red-text); foo: mixin-exists("red-text"); foo: mixin-exists(blue-text); foo: mixin-exists("blue-text"); foo: mixin-exists(green-text); foo: mixin-exists("green-text"); foo: mixin-exists(nope); foo: mixin-exists("nope"); foo: g(); foo: f(); foo: h(); span { foo: mixin-exists(red-text); foo: mixin-exists("red-text"); foo: mixin-exists(blue-text); foo: mixin-exists("blue-text"); foo: mixin-exists(green-text); foo: mixin-exists("green-text"); foo: mixin-exists(nope); foo: mixin-exists("nope"); foo: g(); foo: f(); foo: h(); p { foo: mixin-exists(red-text); foo: mixin-exists("red-text"); foo: mixin-exists(blue-text); foo: mixin-exists("blue-text"); foo: mixin-exists(green-text); foo: mixin-exists("green-text"); foo: mixin-exists(nope); foo: mixin-exists("nope"); foo: g(); foo: f(); foo: h(); } } } <===> output.css div { foo: true; foo: true; foo: true; foo: true; foo: true; foo: true; foo: false; foo: false; foo: false; foo: false; foo: false; } div span { foo: true; foo: true; foo: true; foo: true; foo: true; foo: true; foo: false; foo: false; foo: false; foo: false; foo: false; } div span p { foo: true; foo: true; foo: true; foo: true; foo: true; foo: true; foo: false; foo: false; foo: false; foo: false; foo: false; } sass-spec-libsass-3.6.3/spec/basic/59_if_expression.hrx000066400000000000000000000005541355712145100230220ustar00rootroot00000000000000<===> input.scss $x: 0; $if-false: whatever; div { foo: if($if-true: hey, $if-false: ho, $condition: true); foo: if($if-true: hey, $if-false: ho, $condition: false); foo: if($x != 0, if($x, true, false), unquote("x is zero")); foo: if(false, 1/0, $if-false: $if-false); } <===> output.css div { foo: hey; foo: ho; foo: x is zero; foo: whatever; } sass-spec-libsass-3.6.3/spec/colors/000077500000000000000000000000001355712145100173215ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/colors/basic.hrx000066400000000000000000000005131355712145100211240ustar00rootroot00000000000000<===> input.scss p { color: rgb(255, 128, 0); color: red green blue; color: (red) (green) (blue); color: red + hux; color: unquote("red") + green; foo: rgb(200, 150%, 170%); } <===> output.css p { color: #ff8000; color: red green blue; color: red green blue; color: redhux; color: redgreen; foo: #c8ffff; } sass-spec-libsass-3.6.3/spec/colors/change-color.hrx000066400000000000000000000005521355712145100224070ustar00rootroot00000000000000<===> input.scss p { color: change-color(#102030, $blue: 5); color: change-color(#102030, $alpha: .325); color: change-color(#102030, $red: 120, $blue: 5); color: change-color(hsl(25, 100%, 80%), $lightness: 40%, $alpha: 0.8); } <===> output.css p { color: #102005; color: rgba(16, 32, 48, 0.325); color: #782005; color: rgba(204, 85, 0, 0.8); } sass-spec-libsass-3.6.3/spec/core_functions/000077500000000000000000000000001355712145100210405ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/core_functions/color/000077500000000000000000000000001355712145100221565ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/core_functions/color/adjust_color/000077500000000000000000000000001355712145100246465ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/core_functions/color/adjust_color/error/000077500000000000000000000000001355712145100257775ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/core_functions/color/adjust_color/error/args.hrx000066400000000000000000000024361355712145100274630ustar00rootroot00000000000000<===> too_few/input.scss a {b: adjust-color()} <===> too_few/error Error: Missing argument $color. , 1 | a {b: adjust-color()} | ^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> too_few/error-libsass Error: Function adjust-color is missing argument $color. on line 1 of input.scss >> a {b: adjust-color()} ------^ <===> ================================================================================ <===> too_many/options.yml --- :todo: - sass/libsass#2900 <===> too_many/input.scss a {b: adjust-color(red, 1)} <===> too_many/error Error: Only one positional argument is allowed. All other arguments must be passed by name. , 1 | a {b: adjust-color(red, 1)} | ^^^^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> ================================================================================ <===> unknown/input.scss a {b: adjust-color(red, $ambience: 10%)} <===> unknown/error Error: No argument named $ambience. , 1 | a {b: adjust-color(red, $ambience: 10%)} | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> unknown/error-libsass Error: Function adjust-color has no parameter named $ambience on line 1:25 of input.scss >> a {b: adjust-color(red, $ambience: 10%)} ------------------------^ sass-spec-libsass-3.6.3/spec/core_functions/color/adjust_color/error/bounds.hrx000066400000000000000000000215241355712145100300200ustar00rootroot00000000000000<===> red/too_low/input.scss a {b: adjust-color(red, $red: -256)} <===> red/too_low/error Error: $red: Expected -256 to be within -255 and 255. , 1 | a {b: adjust-color(red, $red: -256)} | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> red/too_low/error-libsass Error: argument `$red` of `adjust-color($color, $red: false, $green: false, $blue: false, $hue: false, $saturation: false, $lightness: false, $alpha: false)` must be between -255 and 255 on line 1:7 of input.scss, in function `adjust-color` from line 1:7 of input.scss >> a {b: adjust-color(red, $red: -256)} ------^ <===> ================================================================================ <===> red/too_high/input.scss a {b: adjust-color(red, $red: 256)} <===> red/too_high/error Error: $red: Expected 256 to be within -255 and 255. , 1 | a {b: adjust-color(red, $red: 256)} | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> red/too_high/error-libsass Error: argument `$red` of `adjust-color($color, $red: false, $green: false, $blue: false, $hue: false, $saturation: false, $lightness: false, $alpha: false)` must be between -255 and 255 on line 1:7 of input.scss, in function `adjust-color` from line 1:7 of input.scss >> a {b: adjust-color(red, $red: 256)} ------^ <===> ================================================================================ <===> green/too_low/input.scss a {b: adjust-color(green, $green: -256)} <===> green/too_low/error Error: $green: Expected -256 to be within -255 and 255. , 1 | a {b: adjust-color(green, $green: -256)} | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> green/too_low/error-libsass Error: argument `$green` of `adjust-color($color, $red: false, $green: false, $blue: false, $hue: false, $saturation: false, $lightness: false, $alpha: false)` must be between -255 and 255 on line 1:7 of input.scss, in function `adjust-color` from line 1:7 of input.scss >> a {b: adjust-color(green, $green: -256)} ------^ <===> ================================================================================ <===> green/too_high/input.scss a {b: adjust-color(green, $green: 256)} <===> green/too_high/error Error: $green: Expected 256 to be within -255 and 255. , 1 | a {b: adjust-color(green, $green: 256)} | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> green/too_high/error-libsass Error: argument `$green` of `adjust-color($color, $red: false, $green: false, $blue: false, $hue: false, $saturation: false, $lightness: false, $alpha: false)` must be between -255 and 255 on line 1:7 of input.scss, in function `adjust-color` from line 1:7 of input.scss >> a {b: adjust-color(green, $green: 256)} ------^ <===> ================================================================================ <===> blue/too_low/input.scss a {b: adjust-color(blue, $blue: -256)} <===> blue/too_low/error Error: $blue: Expected -256 to be within -255 and 255. , 1 | a {b: adjust-color(blue, $blue: -256)} | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> blue/too_low/error-libsass Error: argument `$blue` of `adjust-color($color, $red: false, $green: false, $blue: false, $hue: false, $saturation: false, $lightness: false, $alpha: false)` must be between -255 and 255 on line 1:7 of input.scss, in function `adjust-color` from line 1:7 of input.scss >> a {b: adjust-color(blue, $blue: -256)} ------^ <===> ================================================================================ <===> blue/too_high/input.scss a {b: adjust-color(blue, $blue: 256)} <===> blue/too_high/error Error: $blue: Expected 256 to be within -255 and 255. , 1 | a {b: adjust-color(blue, $blue: 256)} | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> blue/too_high/error-libsass Error: argument `$blue` of `adjust-color($color, $red: false, $green: false, $blue: false, $hue: false, $saturation: false, $lightness: false, $alpha: false)` must be between -255 and 255 on line 1:7 of input.scss, in function `adjust-color` from line 1:7 of input.scss >> a {b: adjust-color(blue, $blue: 256)} ------^ <===> ================================================================================ <===> saturation/too_low/input.scss a {b: adjust-color(red, $saturation: -100.001)} <===> saturation/too_low/error Error: $saturation: Expected -100.001 to be within -100 and 100. , 1 | a {b: adjust-color(red, $saturation: -100.001)} | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> saturation/too_low/error-libsass Error: argument `$saturation` of `adjust-color($color, $red: false, $green: false, $blue: false, $hue: false, $saturation: false, $lightness: false, $alpha: false)` must be between -100 and 100 on line 1:7 of input.scss, in function `adjust-color` from line 1:7 of input.scss >> a {b: adjust-color(red, $saturation: -100.001)} ------^ <===> ================================================================================ <===> saturation/too_high/input.scss a {b: adjust-color(red, $saturation: 100.001)} <===> saturation/too_high/error Error: $saturation: Expected 100.001 to be within -100 and 100. , 1 | a {b: adjust-color(red, $saturation: 100.001)} | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> saturation/too_high/error-libsass Error: argument `$saturation` of `adjust-color($color, $red: false, $green: false, $blue: false, $hue: false, $saturation: false, $lightness: false, $alpha: false)` must be between -100 and 100 on line 1:7 of input.scss, in function `adjust-color` from line 1:7 of input.scss >> a {b: adjust-color(red, $saturation: 100.001)} ------^ <===> ================================================================================ <===> lightness/too_low/input.scss a {b: adjust-color(red, $lightness: -100.001)} <===> lightness/too_low/error Error: $lightness: Expected -100.001 to be within -100 and 100. , 1 | a {b: adjust-color(red, $lightness: -100.001)} | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> lightness/too_low/error-libsass Error: argument `$lightness` of `adjust-color($color, $red: false, $green: false, $blue: false, $hue: false, $saturation: false, $lightness: false, $alpha: false)` must be between -100 and 100 on line 1:7 of input.scss, in function `adjust-color` from line 1:7 of input.scss >> a {b: adjust-color(red, $lightness: -100.001)} ------^ <===> ================================================================================ <===> lightness/too_high/input.scss a {b: adjust-color(red, $lightness: 100.001)} <===> lightness/too_high/error Error: $lightness: Expected 100.001 to be within -100 and 100. , 1 | a {b: adjust-color(red, $lightness: 100.001)} | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> lightness/too_high/error-libsass Error: argument `$lightness` of `adjust-color($color, $red: false, $green: false, $blue: false, $hue: false, $saturation: false, $lightness: false, $alpha: false)` must be between -100 and 100 on line 1:7 of input.scss, in function `adjust-color` from line 1:7 of input.scss >> a {b: adjust-color(red, $lightness: 100.001)} ------^ <===> ================================================================================ <===> alpha/too_low/input.scss a {b: adjust-color(red, $alpha: -1.001)} <===> alpha/too_low/error Error: $alpha: Expected -1.001 to be within -1 and 1. , 1 | a {b: adjust-color(red, $alpha: -1.001)} | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> alpha/too_low/error-libsass Error: argument `$alpha` of `adjust-color($color, $red: false, $green: false, $blue: false, $hue: false, $saturation: false, $lightness: false, $alpha: false)` must be between -1 and 1 on line 1:7 of input.scss, in function `adjust-color` from line 1:7 of input.scss >> a {b: adjust-color(red, $alpha: -1.001)} ------^ <===> ================================================================================ <===> alpha/too_high/input.scss a {b: adjust-color(red, $alpha: 1.001)} <===> alpha/too_high/error Error: $alpha: Expected 1.001 to be within -1 and 1. , 1 | a {b: adjust-color(red, $alpha: 1.001)} | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> alpha/too_high/error-libsass Error: argument `$alpha` of `adjust-color($color, $red: false, $green: false, $blue: false, $hue: false, $saturation: false, $lightness: false, $alpha: false)` must be between -1 and 1 on line 1:7 of input.scss, in function `adjust-color` from line 1:7 of input.scss >> a {b: adjust-color(red, $alpha: 1.001)} ------^ sass-spec-libsass-3.6.3/spec/core_functions/color/adjust_color/error/hsl_and_rgb.hrx000066400000000000000000000037431355712145100307730ustar00rootroot00000000000000<===> red_and_hue/input.scss a {b: adjust-color(red, $red: 1, $hue: 1)} <===> red_and_hue/error Error: RGB parameters may not be passed along with HSL parameters. , 1 | a {b: adjust-color(red, $red: 1, $hue: 1)} | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> red_and_hue/error-libsass Error: Cannot specify HSL and RGB values for a color at the same time for `adjust-color' on line 1:7 of input.scss, in function `adjust-color` from line 1:7 of input.scss >> a {b: adjust-color(red, $red: 1, $hue: 1)} ------^ <===> ================================================================================ <===> green_and_saturation/input.scss a {b: adjust-color(red, $green: 1, $saturation: 1)} <===> green_and_saturation/error Error: RGB parameters may not be passed along with HSL parameters. , 1 | a {b: adjust-color(red, $green: 1, $saturation: 1)} | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> green_and_saturation/error-libsass Error: Cannot specify HSL and RGB values for a color at the same time for `adjust-color' on line 1:7 of input.scss, in function `adjust-color` from line 1:7 of input.scss >> a {b: adjust-color(red, $green: 1, $saturation: 1)} ------^ <===> ================================================================================ <===> blue_and_lightness/input.scss a {b: adjust-color(red, $blue: 1, $lightness: 1)} <===> blue_and_lightness/error Error: RGB parameters may not be passed along with HSL parameters. , 1 | a {b: adjust-color(red, $blue: 1, $lightness: 1)} | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> blue_and_lightness/error-libsass Error: Cannot specify HSL and RGB values for a color at the same time for `adjust-color' on line 1:7 of input.scss, in function `adjust-color` from line 1:7 of input.scss >> a {b: adjust-color(red, $blue: 1, $lightness: 1)} ------^ sass-spec-libsass-3.6.3/spec/core_functions/color/adjust_color/error/type.hrx000066400000000000000000000050511355712145100275040ustar00rootroot00000000000000<===> options.yml --- :todo: - sass/libsass#2900 <===> ================================================================================ <===> color/input.scss a {b: adjust-color(1)} <===> color/error Error: $color: 1 is not a color. , 1 | a {b: adjust-color(1)} | ^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> ================================================================================ <===> red/input.scss a {b: adjust-color(red, $red: c)} <===> red/error Error: $red: c is not a number. , 1 | a {b: adjust-color(red, $red: c)} | ^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> ================================================================================ <===> green/input.scss a {b: adjust-color(red, $green: c)} <===> green/error Error: $green: c is not a number. , 1 | a {b: adjust-color(red, $green: c)} | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> ================================================================================ <===> blue/input.scss a {b: adjust-color(red, $blue: c)} <===> blue/error Error: $blue: c is not a number. , 1 | a {b: adjust-color(red, $blue: c)} | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> ================================================================================ <===> hue/input.scss a {b: adjust-color(red, $hue: c)} <===> hue/error Error: $hue: c is not a number. , 1 | a {b: adjust-color(red, $hue: c)} | ^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> ================================================================================ <===> saturation/input.scss a {b: adjust-color(red, $saturation: c)} <===> saturation/error Error: $saturation: c is not a number. , 1 | a {b: adjust-color(red, $saturation: c)} | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> ================================================================================ <===> lightness/input.scss a {b: adjust-color(red, $lightness: c)} <===> lightness/error Error: $lightness: c is not a number. , 1 | a {b: adjust-color(red, $lightness: c)} | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> ================================================================================ <===> alpha/input.scss a {b: adjust-color(red, $alpha: c)} <===> alpha/error Error: $alpha: c is not a number. , 1 | a {b: adjust-color(red, $alpha: c)} | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet sass-spec-libsass-3.6.3/spec/core_functions/color/adjust_color/hsl.hrx000066400000000000000000000133171355712145100261640ustar00rootroot00000000000000<===> hue/max/input.scss a {b: adjust-color(red, $hue: 359)} <===> hue/max/output.css a { b: #ff0004; } <===> ================================================================================ <===> hue/above_max/input.scss a {b: adjust-color(red, $hue: 540)} <===> hue/above_max/output.css a { b: aqua; } <===> hue/above_max/output-libsass.css a { b: cyan; } <===> ================================================================================ <===> hue/min/input.scss a {b: adjust-color(blue, $hue: 0)} <===> hue/min/output.css a { b: blue; } <===> ================================================================================ <===> hue/negative/input.scss a {b: adjust-color(red, $hue: -180)} <===> hue/negative/output.css a { b: aqua; } <===> hue/negative/output-libsass.css a { b: cyan; } <===> ================================================================================ <===> hue/middle/input.scss a {b: adjust-color(red, $hue: 123)} <===> hue/middle/output.css a { b: #00ff0d; } <===> ================================================================================ <===> hue/fraction/input.scss a {b: adjust-color(red, $hue: 0.5)} <===> hue/fraction/output.css a { b: #ff0200; } <===> ================================================================================ <===> saturation/max/input.scss a {b: adjust-color(plum, $saturation: 100%)} <===> saturation/max/output.css a { b: #ff7eff; } <===> ================================================================================ <===> saturation/max_remaining/input.scss a {b: adjust-color(plum, $saturation: 53%)} <===> saturation/max_remaining/output.css a { b: #ff7eff; } <===> ================================================================================ <===> saturation/zero/input.scss a {b: adjust-color(plum, $saturation: 0%)} <===> saturation/zero/output.css a { b: plum; } <===> ================================================================================ <===> saturation/min/input.scss a {b: adjust-color(plum, $saturation: -100%)} <===> saturation/min/output.css a { b: #bfbfbf; } <===> ================================================================================ <===> saturation/min_remaining/input.scss a {b: adjust-color(plum, $saturation: -48%)} <===> saturation/min_remaining/output.css a { b: #bfbfbf; } <===> ================================================================================ <===> saturation/high/input.scss a {b: adjust-color(plum, $saturation: 14%)} <===> saturation/high/output.css a { b: #e697e6; } <===> ================================================================================ <===> saturation/low/input.scss a {b: adjust-color(plum, $saturation: -14%)} <===> saturation/low/output.css a { b: #d4a9d4; } <===> ================================================================================ <===> lightness/max/input.scss a {b: adjust-color(red, $lightness: 100%)} <===> lightness/max/output.css a { b: white; } <===> ================================================================================ <===> lightness/max_remaining/input.scss a {b: adjust-color(red, $lightness: 50%)} <===> lightness/max_remaining/output.css a { b: white; } <===> ================================================================================ <===> lightness/zero/input.scss a {b: adjust-color(red, $lightness: 0%)} <===> lightness/zero/output.css a { b: red; } <===> ================================================================================ <===> lightness/fraction/input.scss a {b: adjust-color(red, $lightness: 0.5%)} <===> lightness/fraction/output.css a { b: #ff0303; } <===> ================================================================================ <===> lightness/min/input.scss a {b: adjust-color(red, $lightness: -100%)} <===> lightness/min/output.css a { b: black; } <===> ================================================================================ <===> lightness/min_remaining/input.scss a {b: adjust-color(red, $lightness: -50%)} <===> lightness/min_remaining/output.css a { b: black; } <===> ================================================================================ <===> lightness/high/input.scss a {b: adjust-color(red, $lightness: 14%)} <===> lightness/high/output.css a { b: #ff4747; } <===> ================================================================================ <===> lightness/low/input.scss a {b: adjust-color(red, $lightness: -14%)} <===> lightness/low/output.css a { b: #b80000; } <===> ================================================================================ <===> all/input.scss a {b: adjust-color(black, $hue: 12, $saturation: 24%, $lightness: 48%)} <===> all/output.css a { b: #98695d; } <===> ================================================================================ <===> alpha_input/input.scss a {b: adjust-color(rgba(black, 0.7), $hue: 12, $saturation: 24%, $lightness: 48%)} <===> alpha_input/output.css a { b: rgba(152, 105, 93, 0.7); } <===> ================================================================================ <===> alpha_arg/input.scss a {b: adjust-color(black, $hue: 12, $saturation: 24%, $lightness: 48%, $alpha: -0.7)} <===> alpha_arg/output.css a { b: rgba(152, 105, 93, 0.3); } <===> ================================================================================ <===> alpha_arg_above_max/input.scss // Regression test for sass/dart-sass#708. a {b: adjust-color(black, $hue: 12, $saturation: 24%, $lightness: 48%, $alpha: 0.7)} <===> alpha_arg_above_max/output.css a { b: #98695d; } <===> ================================================================================ <===> named/input.scss a {b: adjust-color($color: black, $hue: 12, $saturation: 24%, $lightness: 48%)} <===> named/output.css a { b: #98695d; } sass-spec-libsass-3.6.3/spec/core_functions/color/adjust_color/no_rgb_hsl.hrx000066400000000000000000000036751355712145100275200ustar00rootroot00000000000000<===> positional/options.yml --- :todo: - sass/libsass#2900 <===> positional/input.scss a {b: adjust-color(red)} <===> positional/output.css a { b: red; } <===> ================================================================================ <===> named/options.yml --- :todo: - sass/libsass#2900 <===> named/input.scss a {b: adjust-color($color: red)} <===> named/output.css a { b: red; } <===> ================================================================================ <===> alpha/max/input.scss a {b: adjust-color(rgba(red, 0.5), $alpha: 1)} <===> alpha/max/output.css a { b: red; } <===> ================================================================================ <===> alpha/max_remaining/input.scss a {b: adjust-color(rgba(red, 0.5), $alpha: 0.5)} <===> alpha/max_remaining/output.css a { b: red; } <===> ================================================================================ <===> alpha/zero/input.scss a {b: adjust-color(rgba(red, 0.5), $alpha: 0)} <===> alpha/zero/output.css a { b: rgba(255, 0, 0, 0.5); } <===> ================================================================================ <===> alpha/min/input.scss a {b: adjust-color(rgba(red, 0.5), $alpha: -1)} <===> alpha/min/output.css a { b: rgba(255, 0, 0, 0); } <===> ================================================================================ <===> alpha/min_remaining/input.scss a {b: adjust-color(rgba(red, 0.5), $alpha: -0.5)} <===> alpha/min_remaining/output.css a { b: rgba(255, 0, 0, 0); } <===> ================================================================================ <===> alpha/high/input.scss a {b: adjust-color(rgba(red, 0.5), $alpha: 0.14)} <===> alpha/high/output.css a { b: rgba(255, 0, 0, 0.64); } <===> ================================================================================ <===> alpha/low/input.scss a {b: adjust-color(rgba(red, 0.5), $alpha: -0.14)} <===> alpha/low/output.css a { b: rgba(255, 0, 0, 0.36); } sass-spec-libsass-3.6.3/spec/core_functions/color/adjust_color/rgb.hrx000066400000000000000000000073671355712145100261600ustar00rootroot00000000000000<===> red/max/input.scss a {b: adjust-color(black, $red: 255)} <===> red/max/output.css a { b: red; } <===> ================================================================================ <===> red/min/input.scss a {b: adjust-color(red, $red: -255)} <===> red/min/output.css a { b: black; } <===> ================================================================================ <===> red/zero/input.scss a {b: adjust-color(black, $red: 0)} <===> red/zero/output.css a { b: black; } <===> ================================================================================ <===> red/low/input.scss a {b: adjust-color(red, $red: -100)} <===> red/low/output.css a { b: #9b0000; } <===> ================================================================================ <===> red/high/input.scss a {b: adjust-color(black, $red: 200)} <===> red/high/output.css a { b: #c80000; } <===> ================================================================================ <===> green/max/input.scss a {b: adjust-color(black, $green: 255)} <===> green/max/output.css a { b: lime; } <===> ================================================================================ <===> green/min/input.scss a {b: adjust-color(lime, $green: -255)} <===> green/min/output.css a { b: black; } <===> ================================================================================ <===> green/zero/input.scss a {b: adjust-color(black, $green: 0)} <===> green/zero/output.css a { b: black; } <===> ================================================================================ <===> green/low/input.scss a {b: adjust-color(lime, $green: -100)} <===> green/low/output.css a { b: #009b00; } <===> ================================================================================ <===> green/high/input.scss a {b: adjust-color(black, $green: 200)} <===> green/high/output.css a { b: #00c800; } <===> ================================================================================ <===> blue/max/input.scss a {b: adjust-color(black, $blue: 255)} <===> blue/max/output.css a { b: blue; } <===> ================================================================================ <===> blue/min/input.scss a {b: adjust-color(blue, $blue: -255)} <===> blue/min/output.css a { b: black; } <===> ================================================================================ <===> blue/zero/input.scss a {b: adjust-color(black, $blue: 0)} <===> blue/zero/output.css a { b: black; } <===> ================================================================================ <===> blue/low/input.scss a {b: adjust-color(blue, $blue: -100)} <===> blue/low/output.css a { b: #00009b; } <===> ================================================================================ <===> blue/high/input.scss a {b: adjust-color(black, $blue: 200)} <===> blue/high/output.css a { b: #0000c8; } <===> ================================================================================ <===> all/input.scss a {b: adjust-color(black, $red: 12, $green: 24, $blue: 48)} <===> all/output.css a { b: #0c1830; } <===> ================================================================================ <===> alpha_input/input.scss a {b: adjust-color(rgba(black, 0.3), $red: 12, $green: 24, $blue: 48)} <===> alpha_input/output.css a { b: rgba(12, 24, 48, 0.3); } <===> ================================================================================ <===> alpha_arg/input.scss a {b: adjust-color(black, $red: 12, $green: 24, $blue: 48, $alpha: -0.3)} <===> alpha_arg/output.css a { b: rgba(12, 24, 48, 0.7); } <===> ================================================================================ <===> named/input.scss a {b: adjust-color($color: black, $red: 12, $green: 24, $blue: 48)} <===> named/output.css a { b: #0c1830; } sass-spec-libsass-3.6.3/spec/core_functions/color/adjust_hue.hrx000066400000000000000000000071131355712145100250360ustar00rootroot00000000000000<===> max/input.scss a {b: adjust-hue(red, 359)} <===> max/output.css a { b: #ff0004; } <===> ================================================================================ <===> above_max/input.scss a {b: adjust-hue(red, 540)} <===> above_max/output.css a { b: aqua; } <===> above_max/output-libsass.css a { b: cyan; } <===> ================================================================================ <===> min/input.scss a {b: adjust-hue(blue, 0)} <===> min/output.css a { b: blue; } <===> ================================================================================ <===> negative/input.scss a {b: adjust-hue(red, -180)} <===> negative/output.css a { b: aqua; } <===> negative/output-libsass.css a { b: cyan; } <===> ================================================================================ <===> middle/input.scss a {b: adjust-hue(red, 123)} <===> middle/output.css a { b: #00ff0d; } <===> ================================================================================ <===> fraction/input.scss a {b: adjust-hue(red, 0.5)} <===> fraction/output.css a { b: #ff0200; } <===> ================================================================================ <===> alpha/input.scss a {b: adjust-hue(rgba(red, 0.1), 359)} <===> alpha/output.css a { b: rgba(255, 0, 4, 0.1); } <===> ================================================================================ <===> named/input.scss a {b: adjust-hue($color: red, $degrees: 123)} <===> named/output.css a { b: #00ff0d; } <===> ================================================================================ <===> error/too_few_args/input.scss a {b: adjust-hue(red)} <===> error/too_few_args/error Error: Missing argument $degrees. , 1 | a {b: adjust-hue(red)} | ^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> error/too_few_args/error-libsass Error: Function adjust-hue is missing argument $degrees. on line 1 of input.scss >> a {b: adjust-hue(red)} ------^ <===> ================================================================================ <===> error/too_many_args/input.scss a {b: adjust-hue(red, 1, 2)} <===> error/too_many_args/error Error: Only 2 arguments allowed, but 3 were passed. , 1 | a {b: adjust-hue(red, 1, 2)} | ^^^^^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> error/too_many_args/error-libsass Error: wrong number of arguments (3 for 2) for `adjust-hue' on line 1:7 of input.scss >> a {b: adjust-hue(red, 1, 2)} ------^ <===> ================================================================================ <===> error/type/color/input.scss a {b: adjust-hue(1, 2)} <===> error/type/color/error Error: $color: 1 is not a color. , 1 | a {b: adjust-hue(1, 2)} | ^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> error/type/color/error-libsass Error: argument `$color` of `adjust-hue($color, $degrees)` must be a color on line 1:7 of input.scss, in function `adjust-hue` from line 1:7 of input.scss >> a {b: adjust-hue(1, 2)} ------^ <===> ================================================================================ <===> error/type/hue/input.scss a {b: adjust-hue(red, blue)} <===> error/type/hue/error Error: $degrees: blue is not a number. , 1 | a {b: adjust-hue(red, blue)} | ^^^^^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> error/type/hue/error-libsass Error: argument `$degrees` of `adjust-hue($color, $degrees)` must be a number on line 1:7 of input.scss, in function `adjust-hue` from line 1:7 of input.scss >> a {b: adjust-hue(red, blue)} ------^ sass-spec-libsass-3.6.3/spec/core_functions/color/alpha.hrx000066400000000000000000000102761355712145100237740ustar00rootroot00000000000000<===> color/max/input.scss a {b: alpha(red)} <===> color/max/output.css a { b: 1; } <===> ================================================================================ <===> color/min/input.scss a {b: alpha(rgba(red, 0))} <===> color/min/output.css a { b: 0; } <===> ================================================================================ <===> color/middle/input.scss a {b: alpha(rgba(red, 0.42))} <===> color/middle/output.css a { b: 0.42; } <===> ================================================================================ <===> color/named/input.scss a {b: alpha($color: rgba(red, 0.73))} <===> color/named/output.css a { b: 0.73; } <===> ================================================================================ <===> filter/one_arg/input.scss a {b: alpha(c=d)} <===> filter/one_arg/output.css a { b: alpha(c=d); } <===> filter/multi_args/input.scss a {b: alpha(c=d, e=f, g=h)} <===> filter/multi_args/output.css a { b: alpha(c=d, e=f, g=h); } <===> ================================================================================ <===> filter/space_before_equals/input.scss a {b: alpha(unquote("c = d"))} <===> filter/space_before_equals/output.css a { b: alpha(c = d); } <===> ================================================================================ <===> opacity/positional/input.scss a {b: opacity(rgba(red, 0.2))} <===> opacity/positional/output.css a { b: 0.2; } <===> ================================================================================ <===> opacity/named/input.scss a {b: opacity($color: rgba(red, 0.2))} <===> opacity/named/output.css a { b: 0.2; } <===> ================================================================================ <===> opacity/filter/input.scss a {b: opacity(10%)} <===> opacity/filter/output.css a { b: opacity(10%); } <===> error/too_few_args/input.scss a {b: alpha()} <===> error/too_few_args/error Error: Missing argument $color. , 1 | a {b: alpha()} | ^^^^^^^ ' input.scss 1:7 root stylesheet <===> error/too_few_args/error-libsass Error: Function alpha is missing argument $color. on line 1 of input.scss >> a {b: alpha()} ------^ <===> ================================================================================ <===> error/too_many_args/input.scss a {b: alpha(red, green)} <===> error/too_many_args/error Error: Only 1 argument allowed, but 2 were passed. , 1 | a {b: alpha(red, green)} | ^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> error/too_many_args/error-libsass Error: wrong number of arguments (2 for 1) for `alpha' on line 1:7 of input.scss >> a {b: alpha(red, green)} ------^ <===> ================================================================================ <===> error/type/options.yml --- :todo: - sass/libsass#2898 <===> error/type/input.scss a {b: alpha(1)} <===> error/type/error Error: $color: 1 is not a color. , 1 | a {b: alpha(1)} | ^^^^^^^^ ' input.scss 1:7 root stylesheet <===> ================================================================================ <===> error/quoted_string/options.yml --- :todo: - sass/libsass#2898 <===> error/quoted_string/input.scss a {b: alpha("c=d")} <===> error/quoted_string/error Error: $color: "c=d" is not a color. , 1 | a {b: alpha("c=d")} | ^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> ================================================================================ <===> error/unquoted_string/no_equals/options.yml --- :todo: - sass/libsass#2898 <===> error/unquoted_string/no_equals/input.scss a {b: alpha(cd)} <===> error/unquoted_string/no_equals/error Error: $color: cd is not a color. , 1 | a {b: alpha(cd)} | ^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> ================================================================================ <===> error/unquoted_string/non_identifier_before_equals/options.yml --- :todo: - sass/libsass#2898 <===> error/unquoted_string/non_identifier_before_equals/input.scss a {b: alpha(unquote("1=c"))} <===> error/unquoted_string/non_identifier_before_equals/error Error: $color: 1=c is not a color. , 1 | a {b: alpha(unquote("1=c"))} | ^^^^^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet sass-spec-libsass-3.6.3/spec/core_functions/color/blue.hrx000066400000000000000000000037571355712145100236440ustar00rootroot00000000000000<===> max/input.scss a {b: blue(rgb(0, 0, 255))} <===> max/output.css a { b: 255; } <===> ================================================================================ <===> min/input.scss a {b: blue(rgb(0, 0, 0))} <===> min/output.css a { b: 0; } <===> ================================================================================ <===> middle/input.scss a {b: blue(rgb(0, 0, 123))} <===> middle/output.css a { b: 123; } <===> ================================================================================ <===> named/input.scss a {b: blue($color: rgb(0, 0, 234))} <===> named/output.css a { b: 234; } <===> ================================================================================ <===> error/too_few_args/input.scss a {b: blue()} <===> error/too_few_args/error Error: Missing argument $color. , 1 | a {b: blue()} | ^^^^^^ ' input.scss 1:7 root stylesheet <===> error/too_few_args/error-libsass Error: Function blue is missing argument $color. on line 1 of input.scss >> a {b: blue()} ------^ <===> ================================================================================ <===> error/too_many_args/input.scss a {b: blue(red, green)} <===> error/too_many_args/error Error: Only 1 argument allowed, but 2 were passed. , 1 | a {b: blue(red, green)} | ^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> error/too_many_args/error-libsass Error: wrong number of arguments (2 for 1) for `blue' on line 1:7 of input.scss >> a {b: blue(red, green)} ------^ <===> ================================================================================ <===> error/type/input.scss a {b: blue(1)} <===> error/type/error Error: $color: 1 is not a color. , 1 | a {b: blue(1)} | ^^^^^^^ ' input.scss 1:7 root stylesheet <===> error/type/error-libsass Error: argument `$color` of `blue($color)` must be a color on line 1:7 of input.scss, in function `blue` from line 1:7 of input.scss >> a {b: blue(1)} ------^ sass-spec-libsass-3.6.3/spec/core_functions/color/change_color/000077500000000000000000000000001355712145100246015ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/core_functions/color/change_color/error/000077500000000000000000000000001355712145100257325ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/core_functions/color/change_color/error/args.hrx000066400000000000000000000024361355712145100274160ustar00rootroot00000000000000<===> too_few/input.scss a {b: change-color()} <===> too_few/error Error: Missing argument $color. , 1 | a {b: change-color()} | ^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> too_few/error-libsass Error: Function change-color is missing argument $color. on line 1 of input.scss >> a {b: change-color()} ------^ <===> ================================================================================ <===> too_many/options.yml --- :todo: - sass/libsass#2900 <===> too_many/input.scss a {b: change-color(red, 1)} <===> too_many/error Error: Only one positional argument is allowed. All other arguments must be passed by name. , 1 | a {b: change-color(red, 1)} | ^^^^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> ================================================================================ <===> unknown/input.scss a {b: change-color(red, $ambience: 10%)} <===> unknown/error Error: No argument named $ambience. , 1 | a {b: change-color(red, $ambience: 10%)} | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> unknown/error-libsass Error: Function change-color has no parameter named $ambience on line 1:25 of input.scss >> a {b: change-color(red, $ambience: 10%)} ------------------------^ sass-spec-libsass-3.6.3/spec/core_functions/color/change_color/error/bounds.hrx000066400000000000000000000213561355712145100277560ustar00rootroot00000000000000<===> red/too_low/input.scss a {b: change-color(red, $red: -1)} <===> red/too_low/error Error: $red: Expected -1 to be within 0 and 255. , 1 | a {b: change-color(red, $red: -1)} | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> red/too_low/error-libsass Error: argument `$red` of `change-color($color, $red: false, $green: false, $blue: false, $hue: false, $saturation: false, $lightness: false, $alpha: false)` must be between -0 and 255 on line 1:7 of input.scss, in function `change-color` from line 1:7 of input.scss >> a {b: change-color(red, $red: -1)} ------^ <===> ================================================================================ <===> red/too_high/input.scss a {b: change-color(red, $red: 256)} <===> red/too_high/error Error: $red: Expected 256 to be within 0 and 255. , 1 | a {b: change-color(red, $red: 256)} | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> red/too_high/error-libsass Error: argument `$red` of `change-color($color, $red: false, $green: false, $blue: false, $hue: false, $saturation: false, $lightness: false, $alpha: false)` must be between -0 and 255 on line 1:7 of input.scss, in function `change-color` from line 1:7 of input.scss >> a {b: change-color(red, $red: 256)} ------^ <===> ================================================================================ <===> green/too_low/input.scss a {b: change-color(green, $green: -1)} <===> green/too_low/error Error: $green: Expected -1 to be within 0 and 255. , 1 | a {b: change-color(green, $green: -1)} | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> green/too_low/error-libsass Error: argument `$green` of `change-color($color, $red: false, $green: false, $blue: false, $hue: false, $saturation: false, $lightness: false, $alpha: false)` must be between -0 and 255 on line 1:7 of input.scss, in function `change-color` from line 1:7 of input.scss >> a {b: change-color(green, $green: -1)} ------^ <===> ================================================================================ <===> green/too_high/input.scss a {b: change-color(green, $green: 256)} <===> green/too_high/error Error: $green: Expected 256 to be within 0 and 255. , 1 | a {b: change-color(green, $green: 256)} | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> green/too_high/error-libsass Error: argument `$green` of `change-color($color, $red: false, $green: false, $blue: false, $hue: false, $saturation: false, $lightness: false, $alpha: false)` must be between -0 and 255 on line 1:7 of input.scss, in function `change-color` from line 1:7 of input.scss >> a {b: change-color(green, $green: 256)} ------^ <===> ================================================================================ <===> blue/too_low/input.scss a {b: change-color(blue, $blue: -1)} <===> blue/too_low/error Error: $blue: Expected -1 to be within 0 and 255. , 1 | a {b: change-color(blue, $blue: -1)} | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> blue/too_low/error-libsass Error: argument `$blue` of `change-color($color, $red: false, $green: false, $blue: false, $hue: false, $saturation: false, $lightness: false, $alpha: false)` must be between -0 and 255 on line 1:7 of input.scss, in function `change-color` from line 1:7 of input.scss >> a {b: change-color(blue, $blue: -1)} ------^ <===> ================================================================================ <===> blue/too_high/input.scss a {b: change-color(blue, $blue: 256)} <===> blue/too_high/error Error: $blue: Expected 256 to be within 0 and 255. , 1 | a {b: change-color(blue, $blue: 256)} | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> blue/too_high/error-libsass Error: argument `$blue` of `change-color($color, $red: false, $green: false, $blue: false, $hue: false, $saturation: false, $lightness: false, $alpha: false)` must be between -0 and 255 on line 1:7 of input.scss, in function `change-color` from line 1:7 of input.scss >> a {b: change-color(blue, $blue: 256)} ------^ <===> ================================================================================ <===> saturation/too_low/input.scss a {b: change-color(red, $saturation: -0.001)} <===> saturation/too_low/error Error: $saturation: Expected -0.001 to be within 0 and 100. , 1 | a {b: change-color(red, $saturation: -0.001)} | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> saturation/too_low/error-libsass Error: argument `$saturation` of `change-color($color, $red: false, $green: false, $blue: false, $hue: false, $saturation: false, $lightness: false, $alpha: false)` must be between -0 and 100 on line 1:7 of input.scss, in function `change-color` from line 1:7 of input.scss >> a {b: change-color(red, $saturation: -0.001)} ------^ <===> ================================================================================ <===> saturation/too_high/input.scss a {b: change-color(red, $saturation: 100.001)} <===> saturation/too_high/error Error: $saturation: Expected 100.001 to be within 0 and 100. , 1 | a {b: change-color(red, $saturation: 100.001)} | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> saturation/too_high/error-libsass Error: argument `$saturation` of `change-color($color, $red: false, $green: false, $blue: false, $hue: false, $saturation: false, $lightness: false, $alpha: false)` must be between -0 and 100 on line 1:7 of input.scss, in function `change-color` from line 1:7 of input.scss >> a {b: change-color(red, $saturation: 100.001)} ------^ <===> ================================================================================ <===> lightness/too_low/input.scss a {b: change-color(red, $lightness: -0.001)} <===> lightness/too_low/error Error: $lightness: Expected -0.001 to be within 0 and 100. , 1 | a {b: change-color(red, $lightness: -0.001)} | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> lightness/too_low/error-libsass Error: argument `$lightness` of `change-color($color, $red: false, $green: false, $blue: false, $hue: false, $saturation: false, $lightness: false, $alpha: false)` must be between -0 and 100 on line 1:7 of input.scss, in function `change-color` from line 1:7 of input.scss >> a {b: change-color(red, $lightness: -0.001)} ------^ <===> ================================================================================ <===> lightness/too_high/input.scss a {b: change-color(red, $lightness: 100.001)} <===> lightness/too_high/error Error: $lightness: Expected 100.001 to be within 0 and 100. , 1 | a {b: change-color(red, $lightness: 100.001)} | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> lightness/too_high/error-libsass Error: argument `$lightness` of `change-color($color, $red: false, $green: false, $blue: false, $hue: false, $saturation: false, $lightness: false, $alpha: false)` must be between -0 and 100 on line 1:7 of input.scss, in function `change-color` from line 1:7 of input.scss >> a {b: change-color(red, $lightness: 100.001)} ------^ <===> ================================================================================ <===> alpha/too_low/input.scss a {b: change-color(red, $alpha: -0.001)} <===> alpha/too_low/error Error: $alpha: Expected -0.001 to be within 0 and 1. , 1 | a {b: change-color(red, $alpha: -0.001)} | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> alpha/too_low/error-libsass Error: argument `$alpha` of `change-color($color, $red: false, $green: false, $blue: false, $hue: false, $saturation: false, $lightness: false, $alpha: false)` must be between -0 and 1 on line 1:7 of input.scss, in function `change-color` from line 1:7 of input.scss >> a {b: change-color(red, $alpha: -0.001)} ------^ <===> ================================================================================ <===> alpha/too_high/input.scss a {b: change-color(red, $alpha: 1.001)} <===> alpha/too_high/error Error: $alpha: Expected 1.001 to be within 0 and 1. , 1 | a {b: change-color(red, $alpha: 1.001)} | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> alpha/too_high/error-libsass Error: argument `$alpha` of `change-color($color, $red: false, $green: false, $blue: false, $hue: false, $saturation: false, $lightness: false, $alpha: false)` must be between -0 and 1 on line 1:7 of input.scss, in function `change-color` from line 1:7 of input.scss >> a {b: change-color(red, $alpha: 1.001)} ------^ sass-spec-libsass-3.6.3/spec/core_functions/color/change_color/error/hsl_and_rgb.hrx000066400000000000000000000037431355712145100307260ustar00rootroot00000000000000<===> red_and_hue/input.scss a {b: change-color(red, $red: 1, $hue: 1)} <===> red_and_hue/error Error: RGB parameters may not be passed along with HSL parameters. , 1 | a {b: change-color(red, $red: 1, $hue: 1)} | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> red_and_hue/error-libsass Error: Cannot specify HSL and RGB values for a color at the same time for `change-color' on line 1:7 of input.scss, in function `change-color` from line 1:7 of input.scss >> a {b: change-color(red, $red: 1, $hue: 1)} ------^ <===> ================================================================================ <===> green_and_saturation/input.scss a {b: change-color(red, $green: 1, $saturation: 1)} <===> green_and_saturation/error Error: RGB parameters may not be passed along with HSL parameters. , 1 | a {b: change-color(red, $green: 1, $saturation: 1)} | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> green_and_saturation/error-libsass Error: Cannot specify HSL and RGB values for a color at the same time for `change-color' on line 1:7 of input.scss, in function `change-color` from line 1:7 of input.scss >> a {b: change-color(red, $green: 1, $saturation: 1)} ------^ <===> ================================================================================ <===> blue_and_lightness/input.scss a {b: change-color(red, $blue: 1, $lightness: 1)} <===> blue_and_lightness/error Error: RGB parameters may not be passed along with HSL parameters. , 1 | a {b: change-color(red, $blue: 1, $lightness: 1)} | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> blue_and_lightness/error-libsass Error: Cannot specify HSL and RGB values for a color at the same time for `change-color' on line 1:7 of input.scss, in function `change-color` from line 1:7 of input.scss >> a {b: change-color(red, $blue: 1, $lightness: 1)} ------^ sass-spec-libsass-3.6.3/spec/core_functions/color/change_color/error/type.hrx000066400000000000000000000050511355712145100274370ustar00rootroot00000000000000<===> options.yml --- :todo: - sass/libsass#2900 <===> ================================================================================ <===> color/input.scss a {b: change-color(1)} <===> color/error Error: $color: 1 is not a color. , 1 | a {b: change-color(1)} | ^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> ================================================================================ <===> red/input.scss a {b: change-color(red, $red: c)} <===> red/error Error: $red: c is not a number. , 1 | a {b: change-color(red, $red: c)} | ^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> ================================================================================ <===> green/input.scss a {b: change-color(red, $green: c)} <===> green/error Error: $green: c is not a number. , 1 | a {b: change-color(red, $green: c)} | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> ================================================================================ <===> blue/input.scss a {b: change-color(red, $blue: c)} <===> blue/error Error: $blue: c is not a number. , 1 | a {b: change-color(red, $blue: c)} | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> ================================================================================ <===> hue/input.scss a {b: change-color(red, $hue: c)} <===> hue/error Error: $hue: c is not a number. , 1 | a {b: change-color(red, $hue: c)} | ^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> ================================================================================ <===> saturation/input.scss a {b: change-color(red, $saturation: c)} <===> saturation/error Error: $saturation: c is not a number. , 1 | a {b: change-color(red, $saturation: c)} | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> ================================================================================ <===> lightness/input.scss a {b: change-color(red, $lightness: c)} <===> lightness/error Error: $lightness: c is not a number. , 1 | a {b: change-color(red, $lightness: c)} | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> ================================================================================ <===> alpha/input.scss a {b: change-color(red, $alpha: c)} <===> alpha/error Error: $alpha: c is not a number. , 1 | a {b: change-color(red, $alpha: c)} | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet sass-spec-libsass-3.6.3/spec/core_functions/color/change_color/hsl.hrx000066400000000000000000000101001355712145100261020ustar00rootroot00000000000000<===> hue/max/input.scss a {b: change-color(red, $hue: 359)} <===> hue/max/output.css a { b: #ff0004; } <===> ================================================================================ <===> hue/above_max/input.scss a {b: change-color(red, $hue: 540)} <===> hue/above_max/output.css a { b: aqua; } <===> hue/above_max/output-libsass.css a { b: cyan; } <===> ================================================================================ <===> hue/min/input.scss a {b: change-color(blue, $hue: 0)} <===> hue/min/output.css a { b: red; } <===> ================================================================================ <===> hue/negative/input.scss a {b: change-color(red, $hue: -60)} <===> hue/negative/output.css a { b: fuchsia; } <===> hue/negative/output-libsass.css a { b: magenta; } <===> ================================================================================ <===> hue/middle/input.scss a {b: change-color(red, $hue: 123)} <===> hue/middle/output.css a { b: #00ff0d; } <===> ================================================================================ <===> hue/fraction/input.scss a {b: change-color(red, $hue: 0.5)} <===> hue/fraction/output.css a { b: #ff0200; } <===> ================================================================================ <===> saturation/max/input.scss a {b: change-color(plum, $saturation: 100%)} <===> saturation/max/output.css a { b: #ff7eff; } <===> ================================================================================ <===> saturation/min/input.scss a {b: change-color(plum, $saturation: 0%)} <===> saturation/min/output.css a { b: #bfbfbf; } <===> ================================================================================ <===> saturation/high/input.scss a {b: change-color(plum, $saturation: 76%)} <===> saturation/high/output.css a { b: #f08df0; } <===> ================================================================================ <===> saturation/low/input.scss a {b: change-color(plum, $saturation: 14%)} <===> saturation/low/output.css a { b: #c8b5c8; } <===> ================================================================================ <===> lightness/max/input.scss a {b: change-color(red, $lightness: 100%)} <===> lightness/max/output.css a { b: white; } <===> ================================================================================ <===> lightness/fraction/input.scss a {b: change-color(red, $lightness: 0.5%)} <===> lightness/fraction/output.css a { b: #030000; } <===> ================================================================================ <===> lightness/min/input.scss a {b: change-color(red, $lightness: 0%)} <===> lightness/min/output.css a { b: black; } <===> ================================================================================ <===> lightness/high/input.scss a {b: change-color(red, $lightness: 63%)} <===> lightness/high/output.css a { b: #ff4242; } <===> ================================================================================ <===> lightness/low/input.scss a {b: change-color(red, $lightness: 27%)} <===> lightness/low/output.css a { b: #8a0000; } <===> ================================================================================ <===> all/input.scss a {b: change-color(black, $hue: 12, $saturation: 24%, $lightness: 48%)} <===> all/output.css a { b: #98695d; } <===> ================================================================================ <===> alpha_input/input.scss a {b: change-color(rgba(black, 0.7), $hue: 12, $saturation: 24%, $lightness: 48%)} <===> alpha_input/output.css a { b: rgba(152, 105, 93, 0.7); } <===> ================================================================================ <===> alpha_arg/input.scss a {b: change-color(black, $hue: 12, $saturation: 24%, $lightness: 48%, $alpha: 0.7)} <===> alpha_arg/output.css a { b: rgba(152, 105, 93, 0.7); } <===> ================================================================================ <===> named/input.scss a {b: change-color($color: black, $hue: 12, $saturation: 24%, $lightness: 48%)} <===> named/output.css a { b: #98695d; } sass-spec-libsass-3.6.3/spec/core_functions/color/change_color/no_rgb_hsl.hrx000066400000000000000000000024021355712145100274360ustar00rootroot00000000000000<===> positional/options.yml --- :todo: - sass/libsass#2900 <===> positional/input.scss a {b: change-color(red)} <===> positional/output.css a { b: red; } <===> ================================================================================ <===> named/options.yml --- :todo: - sass/libsass#2900 <===> named/input.scss a {b: change-color($color: red)} <===> named/output.css a { b: red; } <===> ================================================================================ <===> alpha/max/input.scss a {b: change-color(rgba(red, 0.5), $alpha: 1)} <===> alpha/max/output.css a { b: red; } <===> ================================================================================ <===> alpha/min/input.scss a {b: change-color(rgba(red, 0.5), $alpha: 0)} <===> alpha/min/output.css a { b: rgba(255, 0, 0, 0); } <===> ================================================================================ <===> alpha/high/input.scss a {b: change-color(rgba(red, 0.5), $alpha: 0.72)} <===> alpha/high/output.css a { b: rgba(255, 0, 0, 0.72); } <===> ================================================================================ <===> alpha/low/input.scss a {b: change-color(rgba(red, 0.5), $alpha: 0.36)} <===> alpha/low/output.css a { b: rgba(255, 0, 0, 0.36); } sass-spec-libsass-3.6.3/spec/core_functions/color/change_color/rgb.hrx000066400000000000000000000062321355712145100261010ustar00rootroot00000000000000<===> red/max/input.scss a {b: change-color(black, $red: 255)} <===> red/max/output.css a { b: red; } <===> ================================================================================ <===> red/min/input.scss a {b: change-color(red, $red: 0)} <===> red/min/output.css a { b: black; } <===> ================================================================================ <===> red/low/input.scss a {b: change-color(red, $red: 100)} <===> red/low/output.css a { b: #640000; } <===> ================================================================================ <===> red/high/input.scss a {b: change-color(black, $red: 200)} <===> red/high/output.css a { b: #c80000; } <===> ================================================================================ <===> green/max/input.scss a {b: change-color(black, $green: 255)} <===> green/max/output.css a { b: lime; } <===> ================================================================================ <===> green/min/input.scss a {b: change-color(lime, $green: 0)} <===> green/min/output.css a { b: black; } <===> ================================================================================ <===> green/low/input.scss a {b: change-color(lime, $green: 100)} <===> green/low/output.css a { b: darkgreen; } <===> ================================================================================ <===> green/high/input.scss a {b: change-color(black, $green: 200)} <===> green/high/output.css a { b: #00c800; } <===> ================================================================================ <===> blue/max/input.scss a {b: change-color(black, $blue: 255)} <===> blue/max/output.css a { b: blue; } <===> ================================================================================ <===> blue/min/input.scss a {b: change-color(blue, $blue: 0)} <===> blue/min/output.css a { b: black; } <===> ================================================================================ <===> blue/low/input.scss a {b: change-color(blue, $blue: 100)} <===> blue/low/output.css a { b: #000064; } <===> ================================================================================ <===> blue/high/input.scss a {b: change-color(black, $blue: 200)} <===> blue/high/output.css a { b: #0000c8; } <===> ================================================================================ <===> all/input.scss a {b: change-color(black, $red: 12, $green: 24, $blue: 48)} <===> all/output.css a { b: #0c1830; } <===> ================================================================================ <===> alpha_input/input.scss a {b: change-color(rgba(black, 0.3), $red: 12, $green: 24, $blue: 48)} <===> alpha_input/output.css a { b: rgba(12, 24, 48, 0.3); } <===> ================================================================================ <===> alpha_arg/input.scss a {b: change-color(black, $red: 12, $green: 24, $blue: 48, $alpha: 0.3)} <===> alpha_arg/output.css a { b: rgba(12, 24, 48, 0.3); } <===> ================================================================================ <===> named/input.scss a {b: change-color($color: black, $red: 12, $green: 24, $blue: 48)} <===> named/output.css a { b: #0c1830; } sass-spec-libsass-3.6.3/spec/core_functions/color/complement.hrx000066400000000000000000000054271355712145100250540ustar00rootroot00000000000000<===> red/input.scss a {b: complement(red)} <===> red/output.css a { b: aqua; } <===> red/output-libsass.css a { b: cyan; } <===> ================================================================================ <===> turquoise/input.scss a {b: complement(turquoise)} <===> turquoise/output.css a { b: #e04050; } <===> ================================================================================ <===> grayscale/gray/input.scss a {b: complement(gray)} <===> grayscale/gray/output.css a { b: gray; } <===> ================================================================================ <===> grayscale/white/input.scss a {b: complement(white)} <===> grayscale/white/output.css a { b: white; } <===> ================================================================================ <===> grayscale/black/input.scss a {b: complement(black)} <===> grayscale/black/output.css a { b: black; } <===> ================================================================================ <===> alpha/input.scss a {b: complement(rgba(turquoise, 0.7))} <===> alpha/output.css a { b: rgba(224, 64, 80, 0.7); } <===> ================================================================================ <===> named/input.scss a {b: complement($color: red)} <===> named/output.css a { b: aqua; } <===> named/output-libsass.css a { b: cyan; } <===> ================================================================================ <===> error/too_few_args/input.scss a {b: complement()} <===> error/too_few_args/error Error: Missing argument $color. , 1 | a {b: complement()} | ^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> error/too_few_args/error-libsass Error: Function complement is missing argument $color. on line 1 of input.scss >> a {b: complement()} ------^ <===> ================================================================================ <===> error/too_many_args/input.scss a {b: complement(red, 1)} <===> error/too_many_args/error Error: Only 1 argument allowed, but 2 were passed. , 1 | a {b: complement(red, 1)} | ^^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> error/too_many_args/error-libsass Error: wrong number of arguments (2 for 1) for `complement' on line 1:7 of input.scss >> a {b: complement(red, 1)} ------^ <===> ================================================================================ <===> error/type/input.scss a {b: complement(1)} <===> error/type/error Error: $color: 1 is not a color. , 1 | a {b: complement(1)} | ^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> error/type/error-libsass Error: argument `$color` of `complement($color)` must be a color on line 1:7 of input.scss, in function `complement` from line 1:7 of input.scss >> a {b: complement(1)} ------^ sass-spec-libsass-3.6.3/spec/core_functions/color/darken.hrx000066400000000000000000000106111355712145100241440ustar00rootroot00000000000000<===> max/input.scss a {b: darken(red, 100%)} <===> max/output.css a { b: black; } <===> ================================================================================ <===> max_remaining/input.scss a {b: darken(red, 50%)} <===> max_remaining/output.css a { b: black; } <===> ================================================================================ <===> min/input.scss a {b: darken(red, 0%)} <===> min/output.css a { b: red; } <===> ================================================================================ <===> middle/input.scss a {b: darken(red, 14%)} <===> middle/output.css a { b: #b80000; } <===> ================================================================================ <===> fraction/input.scss a {b: darken(red, 0.5%)} <===> fraction/output.css a { b: #fc0000; } <===> ================================================================================ <===> alpha/input.scss a {b: darken(rgba(red, 0.2), 100%)} <===> alpha/output.css a { b: rgba(0, 0, 0, 0.2); } <===> ================================================================================ <===> named/input.scss a {b: darken($color: red, $amount: 14%)} <===> named/output.css a { b: #b80000; } <===> ================================================================================ <===> error/too_few_args/input.scss a {b: darken(red)} <===> error/too_few_args/error Error: Missing argument $amount. , 1 | a {b: darken(red)} | ^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> error/too_few_args/error-libsass Error: Function darken is missing argument $amount. on line 1 of input.scss >> a {b: darken(red)} ------^ <===> ================================================================================ <===> error/too_many_args/input.scss a {b: darken(red, 1%, 2)} <===> error/too_many_args/error Error: Only 2 arguments allowed, but 3 were passed. , 1 | a {b: darken(red, 1%, 2)} | ^^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> error/too_many_args/error-libsass Error: wrong number of arguments (3 for 2) for `darken' on line 1:7 of input.scss >> a {b: darken(red, 1%, 2)} ------^ <===> ================================================================================ <===> error/type/color/input.scss a {b: darken(1, 2)} <===> error/type/color/error Error: $color: 1 is not a color. , 1 | a {b: darken(1, 2)} | ^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> error/type/color/error-libsass Error: argument `$color` of `darken($color, $amount)` must be a color on line 1:7 of input.scss, in function `darken` from line 1:7 of input.scss >> a {b: darken(1, 2)} ------^ <===> ================================================================================ <===> error/type/lightness/input.scss a {b: darken(red, blue)} <===> error/type/lightness/error Error: $amount: blue is not a number. , 1 | a {b: darken(red, blue)} | ^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> error/type/lightness/error-libsass Error: argument `$amount` of `darken($color, $amount)` must be a number on line 1:7 of input.scss, in function `darken` from line 1:7 of input.scss >> a {b: darken(red, blue)} ------^ <===> ================================================================================ <===> error/bounds/too_low/input.scss a {b: darken(red, -0.001)} <===> error/bounds/too_low/error Error: $amount: Expected -0.001 to be within 0 and 100. , 1 | a {b: darken(red, -0.001)} | ^^^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> error/bounds/too_low/error-libsass Error: argument `$amount` of `darken($color, $amount)` must be between -0 and 100 on line 1:7 of input.scss, in function `darken` from line 1:7 of input.scss >> a {b: darken(red, -0.001)} ------^ <===> ================================================================================ <===> error/bounds/too_high/input.scss a {b: darken(red, 100.001)} <===> error/bounds/too_high/error Error: $amount: Expected 100.001 to be within 0 and 100. , 1 | a {b: darken(red, 100.001)} | ^^^^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> error/bounds/too_high/error-libsass Error: argument `$amount` of `darken($color, $amount)` must be between -0 and 100 on line 1:7 of input.scss, in function `darken` from line 1:7 of input.scss >> a {b: darken(red, 100.001)} ------^ sass-spec-libsass-3.6.3/spec/core_functions/color/desaturate.hrx000066400000000000000000000115551355712145100250510ustar00rootroot00000000000000<===> max/input.scss a {b: desaturate(plum, 100%)} <===> max/output.css a { b: #bfbfbf; } <===> ================================================================================ <===> max_remaining/input.scss a {b: desaturate(plum, 48%)} <===> max_remaining/output.css a { b: #bfbfbf; } <===> ================================================================================ <===> min/input.scss a {b: desaturate(plum, 0%)} <===> min/output.css a { b: plum; } <===> ================================================================================ <===> middle/input.scss a {b: desaturate(plum, 14%)} <===> middle/output.css a { b: #d4a9d4; } <===> ================================================================================ <===> alpha/input.scss a {b: desaturate(rgba(plum, 0.3), 100%)} <===> alpha/output.css a { b: rgba(191, 191, 191, 0.3); } <===> ================================================================================ <===> named/input.scss a {b: desaturate($color: plum, $amount: 14%)} <===> named/output.css a { b: #d4a9d4; } <===> ================================================================================ <===> error/too_few_args/input.scss a {b: desaturate(plum)} <===> error/too_few_args/error Error: Missing argument $amount. , 1 | a {b: desaturate(plum)} | ^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> error/too_few_args/error-libsass Error: Function desaturate is missing argument $amount. on line 1 of input.scss >> a {b: desaturate(plum)} ------^ <===> ================================================================================ <===> error/too_many_args/input.scss a {b: desaturate(plum, 1%, 2)} <===> error/too_many_args/error Error: Only 2 arguments allowed, but 3 were passed. , 1 | a {b: desaturate(plum, 1%, 2)} | ^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> error/too_many_args/error-libsass Error: wrong number of arguments (3 for 2) for `desaturate' on line 1:7 of input.scss >> a {b: desaturate(plum, 1%, 2)} ------^ <===> ================================================================================ <===> error/one_arg/type/input.scss a {b: desaturate(red)} <===> error/one_arg/type/error Error: Missing argument $amount. , 1 | a {b: desaturate(red)} | ^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> error/one_arg/type/error-libsass Error: Function desaturate is missing argument $amount. on line 1 of input.scss >> a {b: desaturate(red)} ------^ <===> ================================================================================ <===> error/type/color/input.scss a {b: desaturate(1, 2)} <===> error/type/color/error Error: $color: 1 is not a color. , 1 | a {b: desaturate(1, 2)} | ^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> error/type/color/error-libsass Error: argument `$color` of `desaturate($color, $amount)` must be a color on line 1:7 of input.scss, in function `desaturate` from line 1:7 of input.scss >> a {b: desaturate(1, 2)} ------^ <===> ================================================================================ <===> error/type/lightness/input.scss a {b: desaturate(plum, blue)} <===> error/type/lightness/error Error: $amount: blue is not a number. , 1 | a {b: desaturate(plum, blue)} | ^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> error/type/lightness/error-libsass Error: argument `$amount` of `desaturate($color, $amount)` must be a number on line 1:7 of input.scss, in function `desaturate` from line 1:7 of input.scss >> a {b: desaturate(plum, blue)} ------^ <===> ================================================================================ <===> error/bounds/too_low/input.scss a {b: desaturate(plum, -0.001)} <===> error/bounds/too_low/error Error: $amount: Expected -0.001 to be within 0 and 100. , 1 | a {b: desaturate(plum, -0.001)} | ^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> error/bounds/too_low/error-libsass Error: argument `$amount` of `desaturate($color, $amount)` must be between -0 and 100 on line 1:7 of input.scss, in function `desaturate` from line 1:7 of input.scss >> a {b: desaturate(plum, -0.001)} ------^ <===> ================================================================================ <===> error/bounds/too_high/input.scss a {b: desaturate(plum, 100.001)} <===> error/bounds/too_high/error Error: $amount: Expected 100.001 to be within 0 and 100. , 1 | a {b: desaturate(plum, 100.001)} | ^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> error/bounds/too_high/error-libsass Error: argument `$amount` of `desaturate($color, $amount)` must be between -0 and 100 on line 1:7 of input.scss, in function `desaturate` from line 1:7 of input.scss >> a {b: desaturate(plum, 100.001)} ------^ sass-spec-libsass-3.6.3/spec/core_functions/color/fade_in.hrx000066400000000000000000000105331355712145100242700ustar00rootroot00000000000000<===> max/input.scss a {b: fade-in(rgba(red, 0.5), 1)} <===> max/output.css a { b: red; } <===> ================================================================================ <===> max_remaining/input.scss a {b: fade-in(rgba(red, 0.5), 0.5)} <===> max_remaining/output.css a { b: red; } <===> ================================================================================ <===> min/input.scss a {b: fade-in(rgba(red, 0.5), 0)} <===> min/output.css a { b: rgba(255, 0, 0, 0.5); } <===> ================================================================================ <===> middle/input.scss a {b: fade-in(rgba(red, 0.5), 0.14)} <===> middle/output.css a { b: rgba(255, 0, 0, 0.64); } <===> ================================================================================ <===> named/input.scss a {b: fade-in($color: rgba(red, 0.5), $amount: 0.14)} <===> named/output.css a { b: rgba(255, 0, 0, 0.64); } <===> ================================================================================ <===> opacify/input.scss a {b: opacify($color: rgba(red, 0.5), $amount: 0.14)} <===> opacify/output.css a { b: rgba(255, 0, 0, 0.64); } <===> ================================================================================ <===> error/too_few_args/input.scss a {b: fade-in(red)} <===> error/too_few_args/error Error: Missing argument $amount. , 1 | a {b: fade-in(red)} | ^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> error/too_few_args/error-libsass Error: Function fade-in is missing argument $amount. on line 1 of input.scss >> a {b: fade-in(red)} ------^ <===> ================================================================================ <===> error/too_many_args/input.scss a {b: fade-in(red, 0.1, 2)} <===> error/too_many_args/error Error: Only 2 arguments allowed, but 3 were passed. , 1 | a {b: fade-in(red, 0.1, 2)} | ^^^^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> error/too_many_args/error-libsass Error: wrong number of arguments (3 for 2) for `fade-in' on line 1:7 of input.scss >> a {b: fade-in(red, 0.1, 2)} ------^ <===> ================================================================================ <===> error/type/color/input.scss a {b: fade-in(1, 0.1)} <===> error/type/color/error Error: $color: 1 is not a color. , 1 | a {b: fade-in(1, 0.1)} | ^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> error/type/color/error-libsass Error: argument `$color` of `fade-in($color, $amount)` must be a color on line 1:7 of input.scss, in function `fade-in` from line 1:7 of input.scss >> a {b: fade-in(1, 0.1)} ------^ <===> ================================================================================ <===> error/type/alpha/input.scss a {b: fade-in(red, blue)} <===> error/type/alpha/error Error: $amount: blue is not a number. , 1 | a {b: fade-in(red, blue)} | ^^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> error/type/alpha/error-libsass Error: argument `$amount` of `fade-in($color, $amount)` must be a number on line 1:7 of input.scss, in function `fade-in` from line 1:7 of input.scss >> a {b: fade-in(red, blue)} ------^ <===> ================================================================================ <===> error/bounds/too_low/input.scss a {b: fade-in(red, -0.001)} <===> error/bounds/too_low/error Error: $amount: Expected -0.001 to be within 0 and 1. , 1 | a {b: fade-in(red, -0.001)} | ^^^^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> error/bounds/too_low/error-libsass Error: argument `$amount` of `fade-in($color, $amount)` must be between -0 and 1 on line 1:7 of input.scss, in function `fade-in` from line 1:7 of input.scss >> a {b: fade-in(red, -0.001)} ------^ <===> ================================================================================ <===> error/bounds/too_high/input.scss a {b: fade-in(red, 1.001)} <===> error/bounds/too_high/error Error: $amount: Expected 1.001 to be within 0 and 1. , 1 | a {b: fade-in(red, 1.001)} | ^^^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> error/bounds/too_high/error-libsass Error: argument `$amount` of `fade-in($color, $amount)` must be between -0 and 1 on line 1:7 of input.scss, in function `fade-in` from line 1:7 of input.scss >> a {b: fade-in(red, 1.001)} ------^ sass-spec-libsass-3.6.3/spec/core_functions/color/fade_out.hrx000066400000000000000000000106651355712145100244770ustar00rootroot00000000000000<===> max/input.scss a {b: fade-out(rgba(red, 0.5), 1)} <===> max/output.css a { b: rgba(255, 0, 0, 0); } <===> ================================================================================ <===> max_remaining/input.scss a {b: fade-out(rgba(red, 0.5), 0.5)} <===> max_remaining/output.css a { b: rgba(255, 0, 0, 0); } <===> ================================================================================ <===> min/input.scss a {b: fade-out(rgba(red, 0.5), 0)} <===> min/output.css a { b: rgba(255, 0, 0, 0.5); } <===> ================================================================================ <===> middle/input.scss a {b: fade-out(rgba(red, 0.5), 0.14)} <===> middle/output.css a { b: rgba(255, 0, 0, 0.36); } <===> ================================================================================ <===> named/input.scss a {b: fade-out($color: rgba(red, 0.5), $amount: 0.14)} <===> named/output.css a { b: rgba(255, 0, 0, 0.36); } <===> ================================================================================ <===> transparentize/input.scss a {b: transparentize($color: rgba(red, 0.5), $amount: 0.14)} <===> transparentize/output.css a { b: rgba(255, 0, 0, 0.36); } <===> ================================================================================ <===> error/too_few_args/input.scss a {b: fade-out(red)} <===> error/too_few_args/error Error: Missing argument $amount. , 1 | a {b: fade-out(red)} | ^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> error/too_few_args/error-libsass Error: Function fade-out is missing argument $amount. on line 1 of input.scss >> a {b: fade-out(red)} ------^ <===> ================================================================================ <===> error/too_many_args/input.scss a {b: fade-out(red, 0.1, 2)} <===> error/too_many_args/error Error: Only 2 arguments allowed, but 3 were passed. , 1 | a {b: fade-out(red, 0.1, 2)} | ^^^^^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> error/too_many_args/error-libsass Error: wrong number of arguments (3 for 2) for `fade-out' on line 1:7 of input.scss >> a {b: fade-out(red, 0.1, 2)} ------^ <===> ================================================================================ <===> error/type/color/input.scss a {b: fade-out(1, 0.1)} <===> error/type/color/error Error: $color: 1 is not a color. , 1 | a {b: fade-out(1, 0.1)} | ^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> error/type/color/error-libsass Error: argument `$color` of `fade-out($color, $amount)` must be a color on line 1:7 of input.scss, in function `fade-out` from line 1:7 of input.scss >> a {b: fade-out(1, 0.1)} ------^ <===> ================================================================================ <===> error/type/alpha/input.scss a {b: fade-out(red, blue)} <===> error/type/alpha/error Error: $amount: blue is not a number. , 1 | a {b: fade-out(red, blue)} | ^^^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> error/type/alpha/error-libsass Error: argument `$amount` of `fade-out($color, $amount)` must be a number on line 1:7 of input.scss, in function `fade-out` from line 1:7 of input.scss >> a {b: fade-out(red, blue)} ------^ <===> ================================================================================ <===> error/bounds/too_low/input.scss a {b: fade-out(red, -0.001)} <===> error/bounds/too_low/error Error: $amount: Expected -0.001 to be within 0 and 1. , 1 | a {b: fade-out(red, -0.001)} | ^^^^^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> error/bounds/too_low/error-libsass Error: argument `$amount` of `fade-out($color, $amount)` must be between -0 and 1 on line 1:7 of input.scss, in function `fade-out` from line 1:7 of input.scss >> a {b: fade-out(red, -0.001)} ------^ <===> ================================================================================ <===> error/bounds/too_high/input.scss a {b: fade-out(red, 1.001)} <===> error/bounds/too_high/error Error: $amount: Expected 1.001 to be within 0 and 1. , 1 | a {b: fade-out(red, 1.001)} | ^^^^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> error/bounds/too_high/error-libsass Error: argument `$amount` of `fade-out($color, $amount)` must be between -0 and 1 on line 1:7 of input.scss, in function `fade-out` from line 1:7 of input.scss >> a {b: fade-out(red, 1.001)} ------^ sass-spec-libsass-3.6.3/spec/core_functions/color/grayscale.hrx000066400000000000000000000057441355712145100246650ustar00rootroot00000000000000<===> no_saturation/white/input.scss a {b: grayscale(white)} <===> no_saturation/white/output.css a { b: white; } <===> ================================================================================ <===> no_saturation/black/input.scss a {b: grayscale(black)} <===> no_saturation/black/output.css a { b: black; } <===> ================================================================================ <===> no_saturation/gray/input.scss a {b: grayscale(#494949)} <===> no_saturation/gray/output.css a { b: #494949; } <===> ================================================================================ <===> max_saturation/input.scss a {b: grayscale(red)} <===> max_saturation/output.css a { b: gray; } <===> ================================================================================ <===> mid_saturation/input.scss a {b: grayscale(#633736)} <===> mid_saturation/output.css a { b: #4d4d4d; } <===> ================================================================================ <===> alpha/input.scss a {b: grayscale(rgba(#633736, 0.3))} <===> alpha/output.css a { b: rgba(77, 77, 77, 0.3); } <===> ================================================================================ <===> number/input.scss // A number should produce a plain function string, for CSS filter functions. a {b: grayscale(15%)} <===> number/output.css a { b: grayscale(15%); } <===> ================================================================================ <===> named/input.scss a {b: grayscale($color: white)} <===> named/output.css a { b: white; } <===> ================================================================================ <===> error/too_few_args/input.scss a {b: grayscale()} <===> error/too_few_args/error Error: Missing argument $color. , 1 | a {b: grayscale()} | ^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> error/too_few_args/error-libsass Error: Function grayscale is missing argument $color. on line 1 of input.scss >> a {b: grayscale()} ------^ <===> ================================================================================ <===> error/too_many_args/input.scss a {b: grayscale(red, 1)} <===> error/too_many_args/error Error: Only 1 argument allowed, but 2 were passed. , 1 | a {b: grayscale(red, 1)} | ^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> error/too_many_args/error-libsass Error: wrong number of arguments (2 for 1) for `grayscale' on line 1:7 of input.scss >> a {b: grayscale(red, 1)} ------^ <===> ================================================================================ <===> error/type/input.scss a {b: grayscale(c)} <===> error/type/error Error: $color: c is not a color. , 1 | a {b: grayscale(c)} | ^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> error/type/error-libsass Error: argument `$color` of `grayscale($color)` must be a color on line 1:7 of input.scss, in function `grayscale` from line 1:7 of input.scss >> a {b: grayscale(c)} ------^ sass-spec-libsass-3.6.3/spec/core_functions/color/green.hrx000066400000000000000000000040031355712145100237760ustar00rootroot00000000000000<===> max/input.scss a {b: green(rgb(0, 255, 0))} <===> max/output.css a { b: 255; } <===> ================================================================================ <===> min/input.scss a {b: green(rgb(0, 0, 0))} <===> min/output.css a { b: 0; } <===> ================================================================================ <===> middle/input.scss a {b: green(rgb(0, 123, 0))} <===> middle/output.css a { b: 123; } <===> ================================================================================ <===> named/input.scss a {b: green($color: rgb(0, 234, 0))} <===> named/output.css a { b: 234; } <===> ================================================================================ <===> error/too_few_args/input.scss a {b: green()} <===> error/too_few_args/error Error: Missing argument $color. , 1 | a {b: green()} | ^^^^^^^ ' input.scss 1:7 root stylesheet <===> error/too_few_args/error-libsass Error: Function green is missing argument $color. on line 1 of input.scss >> a {b: green()} ------^ <===> ================================================================================ <===> error/too_many_args/input.scss a {b: green(red, green)} <===> error/too_many_args/error Error: Only 1 argument allowed, but 2 were passed. , 1 | a {b: green(red, green)} | ^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> error/too_many_args/error-libsass Error: wrong number of arguments (2 for 1) for `green' on line 1:7 of input.scss >> a {b: green(red, green)} ------^ <===> ================================================================================ <===> error/type/input.scss a {b: green(1)} <===> error/type/error Error: $color: 1 is not a color. , 1 | a {b: green(1)} | ^^^^^^^^ ' input.scss 1:7 root stylesheet <===> error/type/error-libsass Error: argument `$color` of `green($color)` must be a color on line 1:7 of input.scss, in function `green` from line 1:7 of input.scss >> a {b: green(1)} ------^ sass-spec-libsass-3.6.3/spec/core_functions/color/hsl/000077500000000000000000000000001355712145100227445ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/core_functions/color/hsl/error/000077500000000000000000000000001355712145100240755ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/core_functions/color/hsl/error/five_args.hrx000066400000000000000000000006071355712145100265700ustar00rootroot00000000000000<===> input.scss five-arg { x: hsl(0, 100%, 50%, 0.5, 0); } <===> error Error: Only 1 argument allowed, but 5 were passed. , 2 | x: hsl(0, 100%, 50%, 0.5, 0); | ^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 2:6 root stylesheet <===> error-libsass Error: wrong number of arguments (5 for 3) for `hsl' on line 2 of input.scss >> x: hsl(0, 100%, 50%, 0.5, 0); -----^ sass-spec-libsass-3.6.3/spec/core_functions/color/hsl/error/four_args.hrx000066400000000000000000000026171355712145100266150ustar00rootroot00000000000000<===> options.yml --- :todo: - sass/libsass#2722 <===> ================================================================================ <===> hue/type/input.scss hue-type { x: hsl("foo", 100%, 50%, 0.5); } <===> hue/type/error Error: $hue: "foo" is not a number. , 2 | x: hsl("foo", 100%, 50%, 0.5); | ^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 2:6 root stylesheet <===> ================================================================================ <===> saturation/type/input.scss saturation-type { x: hsl(0, "foo", 50%, 0.5); } <===> saturation/type/error Error: $saturation: "foo" is not a number. , 2 | x: hsl(0, "foo", 50%, 0.5); | ^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 2:6 root stylesheet <===> ================================================================================ <===> lightness/type/input.scss lightness-type { x: hsl(0, 100%, "foo", 0.5); } <===> lightness/type/error Error: $lightness: "foo" is not a number. , 2 | x: hsl(0, 100%, "foo", 0.5); | ^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 2:6 root stylesheet <===> ================================================================================ <===> alpha/unit/input.scss .alpha-unit { a: hsl(0, 0, 0, 0.5px); } <===> alpha/unit/error Error: $alpha: Expected 0.5px to have no units or "%". , 2 | a: hsl(0, 0, 0, 0.5px); | ^^^^^^^^^^^^^^^^^^^ ' input.scss 2:6 root stylesheet sass-spec-libsass-3.6.3/spec/core_functions/color/hsl/error/one_arg.hrx000066400000000000000000000063621355712145100262410ustar00rootroot00000000000000<===> options.yml --- :todo: - sass/libsass#2722 <===> ================================================================================ <===> list/empty/input.scss empty { x: hsl(()); } <===> list/empty/error Error: Missing element $hue. , 2 | x: hsl(()); | ^^^^^^^ ' input.scss 2:6 root stylesheet <===> ================================================================================ <===> list/comma_separated/input.scss comma-separated { x: hsl((0, 100%, 50%)); } <===> list/comma_separated/error Error: $channels must be a space-separated list. , 2 | x: hsl((0, 100%, 50%)); | ^^^^^^^^^^^^^^^^^^^ ' input.scss 2:6 root stylesheet <===> ================================================================================ <===> list/bracketed/input.scss bracketed { x: hsl([0 100% 50%]); } <===> list/bracketed/error Error: $channels must be an unbracketed list. , 2 | x: hsl([0 100% 50%]); | ^^^^^^^^^^^^^^^^^ ' input.scss 2:6 root stylesheet <===> ================================================================================ <===> list/one_element/input.scss one-arg { x: hsl(0); } <===> list/one_element/error Error: Missing element $saturation. , 2 | x: hsl(0); | ^^^^^^ ' input.scss 2:6 root stylesheet <===> ================================================================================ <===> list/two_elements/input.scss two-elements { x: hsl(0 100%); } <===> list/two_elements/error Error: Missing element $lightness. , 2 | x: hsl(0 100%); | ^^^^^^^^^^^ ' input.scss 2:6 root stylesheet <===> ================================================================================ <===> list/four_elements/input.scss four-elements { x: hsl(0 100% 50% 0.4); } <===> list/four_elements/error Error: Only 3 elements allowed, but 4 were passed. , 2 | x: hsl(0 100% 50% 0.4); | ^^^^^^^^^^^^^^^^^^^ ' input.scss 2:6 root stylesheet <===> ================================================================================ <===> type/hue/input.scss hue-type { x: hsl("foo" 100% 50%); } <===> type/hue/error Error: $hue: "foo" is not a number. , 2 | x: hsl("foo" 100% 50%); | ^^^^^^^^^^^^^^^^^^^ ' input.scss 2:6 root stylesheet <===> ================================================================================ <===> type/saturation/input.scss saturation-type { x: hsl(0 "foo" 50%); } <===> type/saturation/error Error: $saturation: "foo" is not a number. , 2 | x: hsl(0 "foo" 50%); | ^^^^^^^^^^^^^^^^ ' input.scss 2:6 root stylesheet <===> ================================================================================ <===> type/lightness/input.scss lightness-type { x: hsl(0 100% "foo"); } <===> type/lightness/error Error: $lightness: "foo" is not a number. , 2 | x: hsl(0 100% "foo"); | ^^^^^^^^^^^^^^^^^ ' input.scss 2:6 root stylesheet <===> ================================================================================ <===> quoted_var_slash/input.scss quoted-var-slash { x: hsl(0 100% "var(--foo) / 0.4"); } <===> quoted_var_slash/error Error: $lightness: "var(--foo) / 0.4" is not a number. , 2 | x: hsl(0 100% "var(--foo) / 0.4"); | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 2:6 root stylesheet sass-spec-libsass-3.6.3/spec/core_functions/color/hsl/error/three_args.hrx000066400000000000000000000036571355712145100267560ustar00rootroot00000000000000<===> hue/type/input.scss hue-type { x: hsl("foo", 100%, 50%); } <===> hue/type/error Error: $hue: "foo" is not a number. , 2 | x: hsl("foo", 100%, 50%); | ^^^^^^^^^^^^^^^^^^^^^ ' input.scss 2:6 root stylesheet <===> hue/type/error-libsass Error: argument `$hue` of `hsl($hue, $saturation, $lightness)` must be a number on line 2 of /sass/spec/core_functions/color/hsl/error/hue_type/input.scss, in function `hsl` from line 2 of /sass/spec/core_functions/color/hsl/error/hue_type/input.scss >> x: hsl("foo", 100%, 50%); -----^ <===> ================================================================================ <===> saturation/type/input.scss saturation-type { x: hsl(0, "foo", 50%); } <===> saturation/type/error Error: $saturation: "foo" is not a number. , 2 | x: hsl(0, "foo", 50%); | ^^^^^^^^^^^^^^^^^^ ' input.scss 2:6 root stylesheet <===> saturation/type/error-libsass Error: argument `$saturation` of `hsl($hue, $saturation, $lightness)` must be a number on line 2 of /sass/spec/core_functions/color/hsl/error/saturation_type/input.scss, in function `hsl` from line 2 of /sass/spec/core_functions/color/hsl/error/saturation_type/input.scss >> x: hsl(0, "foo", 50%); -----^ <===> ================================================================================ <===> lightness/type/input.scss lightness-type { x: hsl(0, 100%, "foo"); } <===> lightness/type/error Error: $lightness: "foo" is not a number. , 2 | x: hsl(0, 100%, "foo"); | ^^^^^^^^^^^^^^^^^^^ ' input.scss 2:6 root stylesheet <===> lightness/type/error-libsass Error: argument `$lightness` of `hsl($hue, $saturation, $lightness)` must be a number on line 2 of /sass/spec/core_functions/color/hsl/error/lightness_type/input.scss, in function `hsl` from line 2 of /sass/spec/core_functions/color/hsl/error/lightness_type/input.scss >> x: hsl(0, 100%, "foo"); -----^ sass-spec-libsass-3.6.3/spec/core_functions/color/hsl/error/two_args.hrx000066400000000000000000000005031355712145100264430ustar00rootroot00000000000000<===> input.scss a {b: hsl(#123, 0.5)} <===> error Error: Missing argument $lightness. , 1 | a {b: hsl(#123, 0.5)} | ^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> error-libsass Error: Function hsl is missing argument $lightness. on line 1 of input.scss >> a {b: hsl(#123, 0.5)} ------^ sass-spec-libsass-3.6.3/spec/core_functions/color/hsl/four_args/000077500000000000000000000000001355712145100247335ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/core_functions/color/hsl/four_args/alpha.hrx000066400000000000000000000040631355712145100265460ustar00rootroot00000000000000<===> options.yml --- :todo: - sass/libsass#2722 <===> ================================================================================ <===> percent/negative/input.scss a {b: hsl(0, 0, 0, -10%)} <===> percent/negative/output.css a { b: rgba(0, 0, 0, 0); } <===> ================================================================================ <===> percent/min/input.scss a {b: hsl(0, 0, 0, 0%)} <===> percent/min/output.css a { b: rgba(0, 0, 0, 0); } <===> ================================================================================ <===> percent/positive/input.scss a {b: hsl(0, 0, 0, 45.6%)} <===> percent/positive/output.css a { b: rgba(0, 0, 0, 0.456); } <===> ================================================================================ <===> percent/max/input.scss a {b: hsl(0, 0, 0, 100%)} <===> percent/max/output.css a { b: black; } <===> ================================================================================ <===> percent/above_max/input.scss a {b: hsl(0, 0, 0, 250%)} <===> percent/above_max/output.css a { b: black; } <===> ================================================================================ <===> unitless/negative/input.scss a {b: hsl(0, 0, 0, -10)} <===> unitless/negative/output.css a { b: rgba(0, 0, 0, 0); } <===> ================================================================================ <===> unitless/min/input.scss a {b: hsl(0, 0, 0, 0)} <===> unitless/min/output.css a { b: rgba(0, 0, 0, 0); } <===> ================================================================================ <===> unitless/positive/input.scss a {b: hsl(0, 0, 0, 0.456)} <===> unitless/positive/output.css a { b: rgba(0, 0, 0, 0.456); } <===> ================================================================================ <===> unitless/max/input.scss a {b: hsl(0, 0, 0, 1)} <===> unitless/max/output.css a { b: black; } <===> ================================================================================ <===> unitless/above_max/input.scss a {b: hsl(0, 0, 0, 250)} <===> unitless/above_max/output.css a { b: black; } sass-spec-libsass-3.6.3/spec/core_functions/color/hsl/four_args/clamped.hrx000066400000000000000000000020611355712145100270620ustar00rootroot00000000000000<===> README.md Channels that are out of bounds are clamped within bounds. <===> ================================================================================ <===> saturation/options.yml --- :todo: - sass/libsass#2722 <===> saturation/input.scss a {b: hsl(0, -0.1%, 50%, 0.5)} <===> saturation/output.css a { b: rgba(128, 128, 128, 0.5); } <===> ================================================================================ <===> blue/options.yml --- :todo: - sass/libsass#2722 <===> blue/input.scss a {b: hsl(0, 100%, 9999%, 0.5)} <===> blue/output.css a { b: rgba(255, 255, 255, 0.5); } <===> ================================================================================ <===> alpha/above/options.yml --- :todo: - sass/libsass#2722 <===> alpha/above/input.scss a {b: hsl(0, 100%, 50%, 1.1)} <===> alpha/above/output.css a { b: red; } <===> ================================================================================ <===> alpha/below/input.scss a {b: rgba(0, 100%, 50%, -0.1)} <===> alpha/below/output.css a { b: rgba(0, 255, 128, 0); } sass-spec-libsass-3.6.3/spec/core_functions/color/hsl/four_args/in_gamut.hrx000066400000000000000000000015741355712145100272700ustar00rootroot00000000000000<===> options.yml --- :todo: - sass/libsass#2722 <===> ================================================================================ <===> transparent/input.scss a {b: hsl(180, 60%, 50%, 0)} <===> transparent/output.css a { b: rgba(51, 204, 204, 0); } <===> ================================================================================ <===> opaque/input.scss a {b: hsl(180, 60%, 50%, 1)} <===> opaque/output.css a { b: #33cccc; } <===> ================================================================================ <===> partial/input.scss a {b: hsl(180, 60%, 50%, 0.5)} <===> partial/output.css a { b: rgba(51, 204, 204, 0.5); } <===> ================================================================================ <===> named/input.scss a {b: hsl($hue: 180, $saturation: 60%, $lightness: 50%, $alpha: 0.4)} <===> named/output.css a { b: rgba(51, 204, 204, 0.4); } sass-spec-libsass-3.6.3/spec/core_functions/color/hsl/four_args/special_functions.hrx000066400000000000000000000104021355712145100311630ustar00rootroot00000000000000<===> options.yml --- :todo: - sass/libsass#2722 <===> ================================================================================ <===> calc/arg_1/input.scss a {b: hsl(calc(1), 2%, 3%, 0.4)} <===> calc/arg_1/output.css a { b: hsl(calc(1), 2%, 3%, 0.4); } <===> ================================================================================ <===> calc/arg_2/input.scss a {b: hsl(1, calc(2%), 3%, 0.4)} <===> calc/arg_2/output.css a { b: hsl(1, calc(2%), 3%, 0.4); } <===> ================================================================================ <===> calc/arg_3/input.scss a {b: hsl(1, 2%, calc(3%), 0.4)} <===> calc/arg_3/output.css a { b: hsl(1, 2%, calc(3%), 0.4); } <===> ================================================================================ <===> calc/arg_4/input.scss a {b: hsl(1, 2%, 3%, calc(0.4))} <===> calc/arg_4/output.css a { b: hsl(1, 2%, 3%, calc(0.4)); } <===> ================================================================================ <===> var/arg_1/input.scss a {b: hsl(var(--foo), 2%, 3%, 0.4)} <===> var/arg_1/output.css a { b: hsl(var(--foo), 2%, 3%, 0.4); } <===> ================================================================================ <===> var/arg_2/input.scss a {b: hsl(1, var(--foo), 3%, 0.4)} <===> var/arg_2/output.css a { b: hsl(1, var(--foo), 3%, 0.4); } <===> ================================================================================ <===> var/arg_3/input.scss a {b: hsl(1, 2%, var(--foo), 0.4)} <===> var/arg_3/output.css a { b: hsl(1, 2%, var(--foo), 0.4); } <===> ================================================================================ <===> var/arg_4/input.scss a {b: hsl(1, 2%, 3%, var(--foo))} <===> var/arg_4/output.css a { b: hsl(1, 2%, 3%, var(--foo)); } <===> ================================================================================ <===> env/arg_1/input.scss a {b: hsl(env(--foo), 2%, 3%, 0.4)} <===> env/arg_1/output.css a { b: hsl(env(--foo), 2%, 3%, 0.4); } <===> ================================================================================ <===> env/arg_2/input.scss a {b: hsl(1, env(--foo), 3%, 0.4)} <===> env/arg_2/output.css a { b: hsl(1, env(--foo), 3%, 0.4); } <===> ================================================================================ <===> env/arg_3/input.scss a {b: hsl(1, 2%, env(--foo), 0.4)} <===> env/arg_3/output.css a { b: hsl(1, 2%, env(--foo), 0.4); } <===> ================================================================================ <===> env/arg_4/input.scss a {b: hsl(1, 2%, 3%, env(--foo))} <===> env/arg_4/output.css a { b: hsl(1, 2%, 3%, env(--foo)); } <===> ================================================================================ <===> min/arg_1/input.scss a {b: hsl(min(1), 2%, 3%, 0.4)} <===> min/arg_1/output.css a { b: hsl(min(1), 2%, 3%, 0.4); } <===> ================================================================================ <===> min/arg_2/input.scss a {b: hsl(1, min(2%), 3%, 0.4)} <===> min/arg_2/output.css a { b: hsl(1, min(2%), 3%, 0.4); } <===> ================================================================================ <===> min/arg_3/input.scss a {b: hsl(1, 2%, min(3%), 0.4)} <===> min/arg_3/output.css a { b: hsl(1, 2%, min(3%), 0.4); } <===> ================================================================================ <===> min/arg_4/input.scss a {b: hsl(1, 2%, 3%, min(0.4))} <===> min/arg_4/output.css a { b: hsl(1, 2%, 3%, min(0.4)); } <===> ================================================================================ <===> max/arg_1/input.scss a {b: hsl(max(1), 2%, 3%, 0.4)} <===> max/arg_1/output.css a { b: hsl(max(1), 2%, 3%, 0.4); } <===> ================================================================================ <===> max/arg_2/input.scss a {b: hsl(1, max(2%), 3%, 0.4)} <===> max/arg_2/output.css a { b: hsl(1, max(2%), 3%, 0.4); } <===> ================================================================================ <===> max/arg_3/input.scss a {b: hsl(1, 2%, max(3%), 0.4)} <===> max/arg_3/output.css a { b: hsl(1, 2%, max(3%), 0.4); } <===> ================================================================================ <===> max/arg_4/input.scss a {b: hsl(1, 2%, 3%, max(0.4))} <===> max/arg_4/output.css a { b: hsl(1, 2%, 3%, max(0.4)); } sass-spec-libsass-3.6.3/spec/core_functions/color/hsl/multi_argument_var.hrx000066400000000000000000000024531355712145100273770ustar00rootroot00000000000000<===> 1_of_3/input.scss // var() is substituted before parsing, so it may contain multiple arguments. a {b: hsl(var(--foo), 3%, 0.4)} <===> 1_of_3/output.css a { b: hsl(var(--foo), 3%, 0.4); } <===> ================================================================================ <===> 2_of_3/input.scss a {b: hsl(1, var(--foo), 0.4)} <===> 2_of_3/output.css a { b: hsl(1, var(--foo), 0.4); } <===> ================================================================================ <===> 3_of_3/input.scss a {b: hsl(1, 2%, var(--foo))} <===> 3_of_3/output.css a { b: hsl(1, 2%, var(--foo)); } <===> ================================================================================ <===> 1_of_2/options.yml --- :todo: - libsass <===> 1_of_2/input.scss a {b: hsl(var(--foo), 0.4)} <===> 1_of_2/output.css a { b: hsl(var(--foo), 0.4); } <===> ================================================================================ <===> 2_of_2/options.yml --- :todo: - libsass <===> 2_of_2/input.scss a {b: hsl(1, var(--foo))} <===> 2_of_2/output.css a { b: hsl(1, var(--foo)); } <===> ================================================================================ <===> 1_of_1/options.yml --- :todo: - libsass <===> 1_of_1/input.scss a {b: hsl(var(--foo))} <===> 1_of_1/output.css a { b: hsl(var(--foo)); } sass-spec-libsass-3.6.3/spec/core_functions/color/hsl/one_arg/000077500000000000000000000000001355712145100243565ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/core_functions/color/hsl/one_arg/alpha.hrx000066400000000000000000000037061355712145100261740ustar00rootroot00000000000000<===> in_gamut/transparent/input.scss a {b: hsl(180 60% 50% / 0)} <===> in_gamut/transparent/output.css a { b: rgba(51, 204, 204, 0); } <===> ================================================================================ <===> in_gamut/opaque/input.scss a {b: hsl(180 60% 50% / 1)} <===> in_gamut/opaque/output.css a { b: #33cccc; } <===> ================================================================================ <===> in_gamut/partial/input.scss a {b: hsl(180 60% 50% / 0.5)} <===> in_gamut/partial/output.css a { b: rgba(51, 204, 204, 0.5); } <===> ================================================================================ <===> in_gamut/named/input.scss a {b: hsl($channels: 180 60% 50% / 0.4)} <===> in_gamut/named/output.css a { b: rgba(51, 204, 204, 0.4); } <===> ================================================================================ <===> in_gamut/parenthesized/input.scss // Extra parens shouldn't cause the slash to be forced into division. a {b: (hsl(180 60% 50% / 0.4))} <===> in_gamut/parenthesized/output.css a { b: rgba(51, 204, 204, 0.4); } <===> ================================================================================ <===> clamped/saturation/input.scss a {b: hsl(0 -0.1% 50% / 0.5)} <===> clamped/saturation/output.css a { b: rgba(128, 128, 128, 0.5); } <===> ================================================================================ <===> clamped/lightness/input.scss a {b: hsl(0 100% 9999% / 0.5)} <===> clamped/lightness/output.css a { b: rgba(255, 255, 255, 0.5); } <===> ================================================================================ <===> clamped/alpha/above/input.scss a {b: hsl(0 100% 50% / 1.1)} <===> clamped/alpha/above/output.css a { b: red; } <===> ================================================================================ <===> clamped/alpha/below/input.scss a {b: hsl(0 100% 50% / -0.1)} <===> clamped/alpha/below/output.css a { b: rgba(255, 0, 0, 0); } sass-spec-libsass-3.6.3/spec/core_functions/color/hsl/one_arg/no_alpha.hrx000066400000000000000000000041661355712145100266710ustar00rootroot00000000000000<===> in_gamut/red/input.scss a {b: hsl(0 100% 50%)} <===> in_gamut/red/output.css a { b: red; } <===> ================================================================================ <===> in_gamut/blue/input.scss a {b: hsl(240 100% 50%)} <===> in_gamut/blue/output.css a { b: blue; } <===> ================================================================================ <===> in_gamut/grayish/yellow/input.scss a {b: hsl(60 60% 50%)} <===> in_gamut/grayish/yellow/output.css a { b: #cccc33; } <===> ================================================================================ <===> clamped/saturation/above/input.scss a {b: hsl(0 500% 50%)} <===> clamped/saturation/above/output.css a { b: red; } <===> ================================================================================ <===> clamped/saturation/below/input.scss a {b: hsl(0 -100% 50%)} <===> clamped/saturation/below/output.css a { b: gray; } <===> ================================================================================ <===> clamped/lightness/above/input.scss a {b: hsl(0 100% 500%)} <===> clamped/lightness/above/output.css a { b: white; } <===> ================================================================================ <===> clamped/lightness/below/input.scss a {b: hsl(0 100% -100%)} <===> clamped/lightness/below/output.css a { b: black; } <===> ================================================================================ <===> units/hue/deg/input.scss a {b: hsl(0deg 100% 50%)} <===> units/hue/deg/output.css a { b: red; } <===> ================================================================================ <===> units/saturation/unitless/input.scss a {b: hsl(0 50 50%)} <===> units/saturation/unitless/output.css a { b: #bf4040; } <===> ================================================================================ <===> units/lightness/unitless/input.scss a {b: hsl(0 100% 50)} <===> units/lightness/unitless/output.css a { b: red; } <===> ================================================================================ <===> named/input.scss a {b: hsl($channels: 0 100% 50%)} <===> named/output.css a { b: red; } sass-spec-libsass-3.6.3/spec/core_functions/color/hsl/one_arg/options.yml000066400000000000000000000000371355712145100265740ustar00rootroot00000000000000--- :todo: - sass/libsass#2722 sass-spec-libsass-3.6.3/spec/core_functions/color/hsl/one_arg/special_functions.hrx000066400000000000000000000225561355712145100306230ustar00rootroot00000000000000<===> options.yml --- :todo: - sass/libsass#2726 :ignore_for: <===> ================================================================================ <===> no_alpha/calc/arg_1/input.scss a {b: hsl(calc(1) 2% 3%)} <===> no_alpha/calc/arg_1/output.css a { b: hsl(calc(1), 2%, 3%); } <===> ================================================================================ <===> no_alpha/calc/arg_2/input.scss a {b: hsl(1 calc(2%) 3%)} <===> no_alpha/calc/arg_2/output.css a { b: hsl(1, calc(2%), 3%); } <===> ================================================================================ <===> no_alpha/calc/arg_3/input.scss a {b: hsl(1 2% calc(3%))} <===> no_alpha/calc/arg_3/output.css a { b: hsl(1, 2%, calc(3%)); } <===> ================================================================================ <===> no_alpha/var/arg_1/input.scss a {b: hsl(var(--foo) 2% 3%)} <===> no_alpha/var/arg_1/output.css a { b: hsl(var(--foo), 2%, 3%); } <===> ================================================================================ <===> no_alpha/var/arg_2/input.scss a {b: hsl(1 var(--foo) 3%)} <===> no_alpha/var/arg_2/output.css a { b: hsl(1, var(--foo), 3%); } <===> ================================================================================ <===> no_alpha/var/arg_3/input.scss a {b: hsl(1 2% var(--foo))} <===> no_alpha/var/arg_3/output.css a { b: hsl(1, 2%, var(--foo)); } <===> ================================================================================ <===> no_alpha/env/arg_1/input.scss a {b: hsl(env(--foo) 2% 3%)} <===> no_alpha/env/arg_1/output.css a { b: hsl(env(--foo), 2%, 3%); } <===> ================================================================================ <===> no_alpha/env/arg_2/input.scss a {b: hsl(1 env(--foo) 3%)} <===> no_alpha/env/arg_2/output.css a { b: hsl(1, env(--foo), 3%); } <===> ================================================================================ <===> no_alpha/env/arg_3/input.scss a {b: hsl(1 2% env(--foo))} <===> no_alpha/env/arg_3/output.css a { b: hsl(1, 2%, env(--foo)); } <===> ================================================================================ <===> no_alpha/min/arg_1/input.scss a {b: hsl(min(1) 2% 3%)} <===> no_alpha/min/arg_1/output.css a { b: hsl(min(1), 2%, 3%); } <===> ================================================================================ <===> no_alpha/min/arg_2/input.scss a {b: hsl(1 min(2%) 3%)} <===> no_alpha/min/arg_2/output.css a { b: hsl(1, min(2%), 3%); } <===> ================================================================================ <===> no_alpha/min/arg_3/input.scss a {b: hsl(1 2% min(3%))} <===> no_alpha/min/arg_3/output.css a { b: hsl(1, 2%, min(3%)); } <===> ================================================================================ <===> no_alpha/max/arg_1/input.scss a {b: hsl(max(1) 2% 3%)} <===> no_alpha/max/arg_1/output.css a { b: hsl(max(1), 2%, 3%); } <===> ================================================================================ <===> no_alpha/max/arg_2/input.scss a {b: hsl(1 max(2%) 3%)} <===> no_alpha/max/arg_2/output.css a { b: hsl(1, max(2%), 3%); } <===> ================================================================================ <===> no_alpha/max/arg_3/input.scss a {b: hsl(1 2% max(3%))} <===> no_alpha/max/arg_3/output.css a { b: hsl(1, 2%, max(3%)); } <===> ================================================================================ <===> no_alpha/multi/argument/var/arg_1/of/arg_2/input.scss // var() is substituted before parsing, so it may contain multiple arguments. a {b: hsl(var(--foo) 50%)} <===> no_alpha/multi/argument/var/arg_1/of/arg_2/output.css a { b: hsl(var(--foo) 50%); } <===> ================================================================================ <===> no_alpha/multi/argument/var/arg_2/of/arg_2/input.scss a {b: hsl(0 var(--foo))} <===> no_alpha/multi/argument/var/arg_2/of/arg_2/output.css a { b: hsl(0 var(--foo)); } <===> ================================================================================ <===> no_alpha/multi/argument/var/arg_1/of/arg_1/input.scss a {b: hsl(var(--foo))} <===> no_alpha/multi/argument/var/arg_1/of/arg_1/output.css a { b: hsl(var(--foo)); } <===> ================================================================================ <===> alpha/calc/arg_1/input.scss a {b: hsl(calc(1) 2% 3% / 0.4)} <===> alpha/calc/arg_1/output.css a { b: hsl(calc(1), 2%, 3%, 0.4); } <===> ================================================================================ <===> alpha/calc/arg_2/input.scss a {b: hsl(1 calc(2%) 3% / 0.4)} <===> alpha/calc/arg_2/output.css a { b: hsl(1, calc(2%), 3%, 0.4); } <===> ================================================================================ <===> alpha/calc/arg_3/input.scss a {b: hsl(1 2% calc(3%) / 0.4)} <===> alpha/calc/arg_3/output.css a { b: hsl(1 2% calc(3%)/0.4); } <===> ================================================================================ <===> alpha/calc/arg_4/input.scss a {b: hsl(1 2% 3% / calc(0.4))} <===> alpha/calc/arg_4/output.css a { b: hsl(1 2% 3%/calc(0.4)); } <===> ================================================================================ <===> alpha/var/arg_1/input.scss a {b: hsl(var(--foo) 2% 3% / 0.4)} <===> alpha/var/arg_1/output.css a { b: hsl(var(--foo), 2%, 3%, 0.4); } <===> ================================================================================ <===> alpha/var/arg_2/input.scss a {b: hsl(1 var(--foo) 3% / 0.4)} <===> alpha/var/arg_2/output.css a { b: hsl(1, var(--foo), 3%, 0.4); } <===> ================================================================================ <===> alpha/var/arg_3/input.scss a {b: hsl(1 2% var(--foo) / 0.4)} <===> alpha/var/arg_3/output.css a { b: hsl(1 2% var(--foo)/0.4); } <===> ================================================================================ <===> alpha/var/arg_4/input.scss a {b: hsl(1 2% 3% / var(--foo))} <===> alpha/var/arg_4/output.css a { b: hsl(1 2% 3%/var(--foo)); } <===> ================================================================================ <===> alpha/env/arg_1/input.scss a {b: hsl(env(--foo) 2% 3% / 0.4)} <===> alpha/env/arg_1/output.css a { b: hsl(env(--foo), 2%, 3%, 0.4); } <===> ================================================================================ <===> alpha/env/arg_2/input.scss a {b: hsl(1 env(--foo) 3% / 0.4)} <===> alpha/env/arg_2/output.css a { b: hsl(1, env(--foo), 3%, 0.4); } <===> ================================================================================ <===> alpha/env/arg_3/input.scss a {b: hsl(1 2% env(--foo) / 0.4)} <===> alpha/env/arg_3/output.css a { b: hsl(1 2% env(--foo)/0.4); } <===> ================================================================================ <===> alpha/env/arg_4/input.scss a {b: hsl(1 2% 3% / env(--foo))} <===> alpha/env/arg_4/output.css a { b: hsl(1 2% 3%/env(--foo)); } <===> ================================================================================ <===> alpha/min/arg_1/input.scss a {b: hsl(min(1) 2% 3% / 0.4)} <===> alpha/min/arg_1/output.css a { b: hsl(min(1), 2%, 3%, 0.4); } <===> ================================================================================ <===> alpha/min/arg_2/input.scss a {b: hsl(1 min(2%) 3% / 0.4)} <===> alpha/min/arg_2/output.css a { b: hsl(1, min(2%), 3%, 0.4); } <===> ================================================================================ <===> alpha/min/arg_3/input.scss a {b: hsl(1 2% min(3%) / 0.4)} <===> alpha/min/arg_3/output.css a { b: hsl(1 2% min(3%)/0.4); } <===> ================================================================================ <===> alpha/min/arg_4/input.scss a {b: hsl(1 2% 3% / min(0.4))} <===> alpha/min/arg_4/output.css a { b: hsl(1 2% 3%/min(0.4)); } <===> ================================================================================ <===> alpha/max/arg_1/input.scss a {b: hsl(max(1) 2% 3% / 0.4)} <===> alpha/max/arg_1/output.css a { b: hsl(max(1), 2%, 3%, 0.4); } <===> ================================================================================ <===> alpha/max/arg_2/input.scss a {b: hsl(1 max(2%) 3% / 0.4)} <===> alpha/max/arg_2/output.css a { b: hsl(1, max(2%), 3%, 0.4); } <===> ================================================================================ <===> alpha/max/arg_3/input.scss a {b: hsl(1 2% max(3%) / 0.4)} <===> alpha/max/arg_3/output.css a { b: hsl(1 2% max(3%)/0.4); } <===> ================================================================================ <===> alpha/max/arg_4/input.scss a {b: hsl(1 2% 3% / max(0.4))} <===> alpha/max/arg_4/output.css a { b: hsl(1 2% 3%/max(0.4)); } <===> ================================================================================ <===> alpha/multi_argument_var/1_of_2/input.scss // var() is substituted before parsing, so it may contain multiple arguments. a {b: hsl(var(--foo) 50% / 0.4)} <===> alpha/multi_argument_var/1_of_2/output.css a { b: hsl(var(--foo) 50%/0.4); } <===> ================================================================================ <===> alpha/multi_argument_var/2_of_2/input.scss a {b: hsl(0 var(--foo) / 0.4)} <===> alpha/multi_argument_var/2_of_2/output.css a { b: hsl(0 var(--foo)/0.4); } <===> ================================================================================ <===> alpha/multi_argument_var/1_of_1/input.scss a {b: hsl(var(--foo) / 0.4)} <===> alpha/multi_argument_var/1_of_1/output.css a { b: hsl(var(--foo)/0.4); } sass-spec-libsass-3.6.3/spec/core_functions/color/hsl/three_args/000077500000000000000000000000001355712145100250675ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/core_functions/color/hsl/three_args/clamped.hrx000066400000000000000000000015671355712145100272300ustar00rootroot00000000000000<===> README.md The W3C tests cover clamped hue, but not clamped saturation or lightness. <===> ================================================================================ <===> saturation/above/input.scss a {b: hsl(0, 500%, 50%)} <===> saturation/above/output.css a { b: red; } <===> ================================================================================ <===> saturation/below/input.scss a {b: hsl(0, -100%, 50%)} <===> saturation/below/output.css a { b: gray; } <===> ================================================================================ <===> lightness/above/input.scss a {b: hsl(0, 100%, 500%)} <===> lightness/above/output.css a { b: white; } <===> ================================================================================ <===> lightness/below/input.scss a {b: hsl(0, 100%, -100%)} <===> lightness/below/output.css a { b: black; } sass-spec-libsass-3.6.3/spec/core_functions/color/hsl/three_args/named.hrx000066400000000000000000000001541355712145100266760ustar00rootroot00000000000000<===> input.scss a {b: hsl($hue: 0, $saturation: 100%, $lightness: 50%)} <===> output.css a { b: red; } sass-spec-libsass-3.6.3/spec/core_functions/color/hsl/three_args/special_functions.hrx000066400000000000000000000020521355712145100313210ustar00rootroot00000000000000<===> options.yml --- :todo: - sass/libsass#2726 :ignore_for: <===> input.scss a { calc-1: hsl(calc(1), 2%, 3%); calc-2: hsl(1, calc(2%), 3%); calc-3: hsl(1, 2%, calc(3%)); var-1: hsl(var(--foo), 2%, 3%); var-2: hsl(1, var(--foo), 3%); var-3: hsl(1, 2%, var(--foo)); env-1: hsl(env(--foo), 2%, 3%); env-2: hsl(1, env(--foo), 3%); env-3: hsl(1, 2%, env(--foo)); min-1: hsl(min(1), 2%, 3%); min-2: hsl(1, min(2%), 3%); min-3: hsl(1, 2%, min(3%)); max-1: hsl(max(1), 2%, 3%); max-2: hsl(1, max(2%), 3%); max-3: hsl(1, 2%, max(3%)); } <===> output.css a { calc-1: hsl(calc(1), 2%, 3%); calc-2: hsl(1, calc(2%), 3%); calc-3: hsl(1, 2%, calc(3%)); var-1: hsl(var(--foo), 2%, 3%); var-2: hsl(1, var(--foo), 3%); var-3: hsl(1, 2%, var(--foo)); env-1: hsl(env(--foo), 2%, 3%); env-2: hsl(1, env(--foo), 3%); env-3: hsl(1, 2%, env(--foo)); min-1: hsl(min(1), 2%, 3%); min-2: hsl(1, min(2%), 3%); min-3: hsl(1, 2%, min(3%)); max-1: hsl(max(1), 2%, 3%); max-2: hsl(1, max(2%), 3%); max-3: hsl(1, 2%, max(3%)); } sass-spec-libsass-3.6.3/spec/core_functions/color/hsl/three_args/units.hrx000066400000000000000000000007661355712145100267650ustar00rootroot00000000000000<===> hue/deg/input.scss a {b: hsl(0deg, 100%, 50%)} <===> hue/deg/output.css a { b: red; } <===> ================================================================================ <===> saturation/unitless/input.scss a {b: hsl(0, 50, 50%)} <===> saturation/unitless/output.css a { b: #bf4040; } <===> ================================================================================ <===> lightness/unitless/input.scss a {b: hsl(0, 100%, 50)} <===> lightness/unitless/output.css a { b: red; } sass-spec-libsass-3.6.3/spec/core_functions/color/hsl/three_args/w3c.hrx000066400000000000000000000264261355712145100263200ustar00rootroot00000000000000<===> README.md These test cases come from two official W3C test suites: * https://www.w3.org/Style/CSS/Test/CSS3/Color/20070927/html4/t040204-hsl-h-rotating-b.htm * https://www.w3.org/Style/CSS/Test/CSS3/Color/current/html4/t040204-hsl-values-b.htm Because these spces have so many repetitive cases, they violate the normal one-test-case-per-suite rule. <===> ================================================================================ <===> hue/input.scss @mixin test-hues($name, $hues...) { #{$name} { @each $hue in $hues { hue-#{$hue}: hsl($hue, 100%, 50%); } } } @include test-hues("red", 0, -360, 360, 6120); @include test-hues("yellow", 60, -300, 420, -9660); @include test-hues("green", 120, -240, 480, 99840); @include test-hues("cyan", 180, -180, 540, -900); @include test-hues("blue", 240, -120, 600, -104880); @include test-hues("purple", 300, -60, 660, 2820); <===> hue/output.css red { hue-0: red; hue--360: red; hue-360: red; hue-6120: red; } yellow { hue-60: yellow; hue--300: yellow; hue-420: yellow; hue--9660: yellow; } green { hue-120: lime; hue--240: lime; hue-480: lime; hue-99840: lime; } cyan { hue-180: aqua; hue--180: aqua; hue-540: aqua; hue--900: aqua; } blue { hue-240: blue; hue--120: blue; hue-600: blue; hue--104880: blue; } purple { hue-300: fuchsia; hue--60: fuchsia; hue-660: fuchsia; hue-2820: fuchsia; } <===> hue/output-libsass.css red { hue-0: red; hue--360: red; hue-360: red; hue-6120: red; } yellow { hue-60: yellow; hue--300: yellow; hue-420: yellow; hue--9660: yellow; } green { hue-120: lime; hue--240: lime; hue-480: lime; hue-99840: lime; } cyan { hue-180: cyan; hue--180: cyan; hue-540: cyan; hue--900: cyan; } blue { hue-240: blue; hue--120: blue; hue-600: blue; hue--104880: blue; } purple { hue-300: magenta; hue--60: magenta; hue-660: magenta; hue-2820: magenta; } <===> ================================================================================ <===> red_to_green/input.scss a { step-1: hsl(0, 100%, 50%); step-2: hsl(12, 100%, 50%); step-3: hsl(24, 100%, 50%); step-4: hsl(36, 100%, 50%); step-5: hsl(48, 100%, 50%); step-6: hsl(60, 100%, 50%); step-7: hsl(72, 100%, 50%); step-8: hsl(84, 100%, 50%); step-9: hsl(96, 100%, 50%); step-10: hsl(108, 100%, 50%); step-11: hsl(120, 100%, 50%); } <===> red_to_green/output.css a { step-1: red; step-2: #ff3300; step-3: #ff6600; step-4: #ff9900; step-5: #ffcc00; step-6: yellow; step-7: #ccff00; step-8: #99ff00; step-9: #66ff00; step-10: #33ff00; step-11: lime; } <===> ================================================================================ <===> green_to_blue/input.scss a { step-1: hsl(120, 100%, 50%); step-2: hsl(132, 100%, 50%); step-3: hsl(144, 100%, 50%); step-4: hsl(156, 100%, 50%); step-5: hsl(168, 100%, 50%); step-6: hsl(180, 100%, 50%); step-7: hsl(192, 100%, 50%); step-8: hsl(204, 100%, 50%); step-9: hsl(216, 100%, 50%); step-10: hsl(228, 100%, 50%); step-11: hsl(240, 100%, 50%); } <===> green_to_blue/output.css a { step-1: lime; step-2: #00ff33; step-3: #00ff66; step-4: #00ff99; step-5: #00ffcc; step-6: aqua; step-7: #00ccff; step-8: #0099ff; step-9: #0066ff; step-10: #0033ff; step-11: blue; } <===> green_to_blue/output-libsass.css a { step-1: lime; step-2: #00ff33; step-3: #00ff66; step-4: #00ff99; step-5: #00ffcc; step-6: cyan; step-7: #00ccff; step-8: #0099ff; step-9: #0066ff; step-10: #0033ff; step-11: blue; } <===> ================================================================================ <===> blue_to_red/input.scss a { step-1: hsl(240, 100%, 50%); step-2: hsl(252, 100%, 50%); step-3: hsl(264, 100%, 50%); step-4: hsl(276, 100%, 50%); step-5: hsl(288, 100%, 50%); step-6: hsl(300, 100%, 50%); step-7: hsl(312, 100%, 50%); step-8: hsl(324, 100%, 50%); step-9: hsl(336, 100%, 50%); step-10: hsl(348, 100%, 50%); step-11: hsl(360, 100%, 50%); } <===> blue_to_red/output.css a { step-1: blue; step-2: #3300ff; step-3: #6600ff; step-4: #9900ff; step-5: #cc00ff; step-6: fuchsia; step-7: #ff00cc; step-8: #ff0099; step-9: #ff0066; step-10: #ff0033; step-11: red; } <===> blue_to_red/output-libsass.css a { step-1: blue; step-2: #3300ff; step-3: #6600ff; step-4: #9900ff; step-5: #cc00ff; step-6: magenta; step-7: #ff00cc; step-8: #ff0099; step-9: #ff0066; step-10: #ff0033; step-11: red; } <===> ================================================================================ <===> gray_to/red/input.scss a { step-1: hsl(0, 20%, 50%); step-2: hsl(0, 60%, 50%); step-3: hsl(0, 100%, 50%); } <===> gray_to/red/output.css a { step-1: #996666; step-2: #cc3333; step-3: red; } <===> ================================================================================ <===> gray_to/yellow/input.scss a { step-1: hsl(60, 20%, 50%); step-2: hsl(60, 60%, 50%); step-3: hsl(60, 100%, 50%); } <===> gray_to/yellow/output.css a { step-1: #999966; step-2: #cccc33; step-3: yellow; } <===> ================================================================================ <===> gray_to/green/input.scss a { step-1: hsl(120, 20%, 50%); step-2: hsl(120, 60%, 50%); step-3: hsl(120, 100%, 50%); } <===> gray_to/green/output.css a { step-1: #669966; step-2: #33cc33; step-3: lime; } <===> ================================================================================ <===> gray_to/cyan/input.scss a { step-1: hsl(180, 20%, 50%); step-2: hsl(180, 60%, 50%); step-3: hsl(180, 100%, 50%); } <===> gray_to/cyan/output.css a { step-1: #669999; step-2: #33cccc; step-3: aqua; } <===> gray_to/cyan/output-libsass.css a { step-1: #669999; step-2: #33cccc; step-3: cyan; } <===> ================================================================================ <===> gray_to/blue/input.scss a { step-1: hsl(240, 20%, 50%); step-2: hsl(240, 60%, 50%); step-3: hsl(240, 100%, 50%); } <===> gray_to/blue/output.css a { step-1: #666699; step-2: #3333cc; step-3: blue; } <===> ================================================================================ <===> gray_to/purple/input.scss a { step-1: hsl(300, 20%, 50%); step-2: hsl(300, 60%, 50%); step-3: hsl(300, 100%, 50%); } <===> gray_to/purple/output.css a { step-1: #996699; step-2: #cc33cc; step-3: fuchsia; } <===> gray_to/purple/output-libsass.css a { step-1: #996699; step-2: #cc33cc; step-3: magenta; } <===> ================================================================================ <===> black_to_white_through/red/input.scss a { step-1: hsl(0, 100%, 0%); step-2: hsl(0, 100%, 10%); step-3: hsl(0, 100%, 20%); step-4: hsl(0, 100%, 30%); step-5: hsl(0, 100%, 40%); step-6: hsl(0, 100%, 50%); step-7: hsl(0, 100%, 60%); step-8: hsl(0, 100%, 70%); step-9: hsl(0, 100%, 80%); step-10: hsl(0, 100%, 90%); step-11: hsl(0, 100%, 100%); } <===> black_to_white_through/red/output.css a { step-1: black; step-2: #330000; step-3: #660000; step-4: #990000; step-5: #cc0000; step-6: red; step-7: #ff3333; step-8: #ff6666; step-9: #ff9999; step-10: #ffcccc; step-11: white; } <===> ================================================================================ <===> black_to_white_through/yellow/input.scss a { step-1: hsl(60, 100%, 0%); step-2: hsl(60, 100%, 10%); step-3: hsl(60, 100%, 20%); step-4: hsl(60, 100%, 30%); step-5: hsl(60, 100%, 40%); step-6: hsl(60, 100%, 50%); step-7: hsl(60, 100%, 60%); step-8: hsl(60, 100%, 70%); step-9: hsl(60, 100%, 80%); step-10: hsl(60, 100%, 90%); step-11: hsl(60, 100%, 100%); } <===> black_to_white_through/yellow/output.css a { step-1: black; step-2: #333300; step-3: #666600; step-4: #999900; step-5: #cccc00; step-6: yellow; step-7: #ffff33; step-8: #ffff66; step-9: #ffff99; step-10: #ffffcc; step-11: white; } <===> ================================================================================ <===> black_to_white_through/green/input.scss a { step-1: hsl(120, 100%, 0%); step-2: hsl(120, 100%, 10%); step-3: hsl(120, 100%, 20%); step-4: hsl(120, 100%, 30%); step-5: hsl(120, 100%, 40%); step-6: hsl(120, 100%, 50%); step-7: hsl(120, 100%, 60%); step-8: hsl(120, 100%, 70%); step-9: hsl(120, 100%, 80%); step-10: hsl(120, 100%, 90%); step-11: hsl(120, 100%, 100%); } <===> black_to_white_through/green/output.css a { step-1: black; step-2: #003300; step-3: #006600; step-4: #009900; step-5: #00cc00; step-6: lime; step-7: #33ff33; step-8: #66ff66; step-9: #99ff99; step-10: #ccffcc; step-11: white; } <===> ================================================================================ <===> black_to_white_through/cyan/input.scss a { step-1: hsl(180, 100%, 0%); step-2: hsl(180, 100%, 10%); step-3: hsl(180, 100%, 20%); step-4: hsl(180, 100%, 30%); step-5: hsl(180, 100%, 40%); step-6: hsl(180, 100%, 50%); step-7: hsl(180, 100%, 60%); step-8: hsl(180, 100%, 70%); step-9: hsl(180, 100%, 80%); step-10: hsl(180, 100%, 90%); step-11: hsl(180, 100%, 100%); } <===> black_to_white_through/cyan/output.css a { step-1: black; step-2: #003333; step-3: #006666; step-4: #009999; step-5: #00cccc; step-6: aqua; step-7: #33ffff; step-8: #66ffff; step-9: #99ffff; step-10: #ccffff; step-11: white; } <===> black_to_white_through/cyan/output-libsass.css a { step-1: black; step-2: #003333; step-3: #006666; step-4: #009999; step-5: #00cccc; step-6: cyan; step-7: #33ffff; step-8: #66ffff; step-9: #99ffff; step-10: #ccffff; step-11: white; } <===> ================================================================================ <===> black_to_white_through/blue/input.scss a { step-1: hsl(240, 100%, 0%); step-2: hsl(240, 100%, 10%); step-3: hsl(240, 100%, 20%); step-4: hsl(240, 100%, 30%); step-5: hsl(240, 100%, 40%); step-6: hsl(240, 100%, 50%); step-7: hsl(240, 100%, 60%); step-8: hsl(240, 100%, 70%); step-9: hsl(240, 100%, 80%); step-10: hsl(240, 100%, 90%); step-11: hsl(240, 100%, 100%); } <===> black_to_white_through/blue/output.css a { step-1: black; step-2: #000033; step-3: #000066; step-4: #000099; step-5: #0000cc; step-6: blue; step-7: #3333ff; step-8: #6666ff; step-9: #9999ff; step-10: #ccccff; step-11: white; } <===> ================================================================================ <===> black_to_white_through/purple/input.scss a { step-1: hsl(300, 100%, 0%); step-2: hsl(300, 100%, 10%); step-3: hsl(300, 100%, 20%); step-4: hsl(300, 100%, 30%); step-5: hsl(300, 100%, 40%); step-6: hsl(300, 100%, 50%); step-7: hsl(300, 100%, 60%); step-8: hsl(300, 100%, 70%); step-9: hsl(300, 100%, 80%); step-10: hsl(300, 100%, 90%); step-11: hsl(300, 100%, 100%); } <===> black_to_white_through/purple/output.css a { step-1: black; step-2: #330033; step-3: #660066; step-4: #990099; step-5: #cc00cc; step-6: fuchsia; step-7: #ff33ff; step-8: #ff66ff; step-9: #ff99ff; step-10: #ffccff; step-11: white; } <===> black_to_white_through/purple/output-libsass.css a { step-1: black; step-2: #330033; step-3: #660066; step-4: #990099; step-5: #cc00cc; step-6: magenta; step-7: #ff33ff; step-8: #ff66ff; step-9: #ff99ff; step-10: #ffccff; step-11: white; } sass-spec-libsass-3.6.3/spec/core_functions/color/hsla/000077500000000000000000000000001355712145100231055ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/core_functions/color/hsla/error/000077500000000000000000000000001355712145100242365ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/core_functions/color/hsla/error/five_args.hrx000066400000000000000000000006141355712145100267270ustar00rootroot00000000000000<===> input.scss five-arg { x: hsla(0, 100%, 50%, 0.5, 0); } <===> error Error: Only 1 argument allowed, but 5 were passed. , 2 | x: hsla(0, 100%, 50%, 0.5, 0); | ^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 2:6 root stylesheet <===> error-libsass Error: wrong number of arguments (5 for 4) for `hsla' on line 2 of input.scss >> x: hsla(0, 100%, 50%, 0.5, 0); -----^ sass-spec-libsass-3.6.3/spec/core_functions/color/hsla/error/four_args.hrx000066400000000000000000000047401355712145100267550ustar00rootroot00000000000000<===> hue/type/input.scss hue-type { x: hsla("foo", 100%, 50%, 0.5); } <===> hue/type/error Error: $hue: "foo" is not a number. , 2 | x: hsla("foo", 100%, 50%, 0.5); | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 2:6 root stylesheet <===> hue/type/error-libsass Error: argument `$hue` of `hsla($hue, $saturation, $lightness, $alpha)` must be a number on line 2 of /sass/spec/core_functions/color/hsla/error/four_args/hue_type/input.scss, in function `hsla` from line 2 of /sass/spec/core_functions/color/hsla/error/four_args/hue_type/input.scss >> x: hsla("foo", 100%, 50%, 0.5); -----^ <===> ================================================================================ <===> saturation/type/input.scss saturation-type { x: hsla(0, "foo", 50%, 0.5); } <===> saturation/type/error Error: $saturation: "foo" is not a number. , 2 | x: hsla(0, "foo", 50%, 0.5); | ^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 2:6 root stylesheet <===> saturation/type/error-libsass Error: argument `$saturation` of `hsla($hue, $saturation, $lightness, $alpha)` must be a number on line 2 of /sass/spec/core_functions/color/hsla/error/four_args/saturation_type/input.scss, in function `hsla` from line 2 of /sass/spec/core_functions/color/hsla/error/four_args/saturation_type/input.scss >> x: hsla(0, "foo", 50%, 0.5); -----^ <===> ================================================================================ <===> lightness/type/input.scss lightness-type { x: hsla(0, 100%, "foo", 0.5); } <===> lightness/type/error Error: $lightness: "foo" is not a number. , 2 | x: hsla(0, 100%, "foo", 0.5); | ^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 2:6 root stylesheet <===> lightness/type/error-libsass Error: argument `$lightness` of `hsla($hue, $saturation, $lightness, $alpha)` must be a number on line 2 of /sass/spec/core_functions/color/hsla/error/four_args/lightness_type/input.scss, in function `hsla` from line 2 of /sass/spec/core_functions/color/hsla/error/four_args/lightness_type/input.scss >> x: hsla(0, 100%, "foo", 0.5); -----^ <===> ================================================================================ <===> alpha/type/options.yml --- :todo: - libsass <===> alpha/type/input.scss .alpha-unit { a: hsla(0, 0, 0, 0.5px); } <===> alpha/type/error Error: $alpha: Expected 0.5px to have no units or "%". , 2 | a: hsla(0, 0, 0, 0.5px); | ^^^^^^^^^^^^^^^^^^^^ ' input.scss 2:6 root stylesheet sass-spec-libsass-3.6.3/spec/core_functions/color/hsla/error/one_arg.hrx000066400000000000000000000064201355712145100263750ustar00rootroot00000000000000<===> options.yml --- :todo: - sass/libsass#2722 <===> ================================================================================ <===> list/empty/input.scss empty { x: hsla(()); } <===> list/empty/error Error: Missing element $hue. , 2 | x: hsla(()); | ^^^^^^^^ ' input.scss 2:6 root stylesheet <===> ================================================================================ <===> list/comma_separated/input.scss comma-separated { x: hsla((0, 100%, 50%)); } <===> list/comma_separated/error Error: $channels must be a space-separated list. , 2 | x: hsla((0, 100%, 50%)); | ^^^^^^^^^^^^^^^^^^^^ ' input.scss 2:6 root stylesheet <===> ================================================================================ <===> list/bracketed/input.scss bracketed { x: hsla([0 100% 50%]); } <===> list/bracketed/error Error: $channels must be an unbracketed list. , 2 | x: hsla([0 100% 50%]); | ^^^^^^^^^^^^^^^^^^ ' input.scss 2:6 root stylesheet <===> ================================================================================ <===> list/one_element/input.scss one-arg { x: hsla(0); } <===> list/one_element/error Error: Missing element $saturation. , 2 | x: hsla(0); | ^^^^^^^ ' input.scss 2:6 root stylesheet <===> ================================================================================ <===> list/two_elements/input.scss two-elements { x: hsla(0 100%); } <===> list/two_elements/error Error: Missing element $lightness. , 2 | x: hsla(0 100%); | ^^^^^^^^^^^^ ' input.scss 2:6 root stylesheet <===> ================================================================================ <===> list/four_elements/input.scss four-elements { x: hsla(0 100% 50% 0.4); } <===> list/four_elements/error Error: Only 3 elements allowed, but 4 were passed. , 2 | x: hsla(0 100% 50% 0.4); | ^^^^^^^^^^^^^^^^^^^^ ' input.scss 2:6 root stylesheet <===> ================================================================================ <===> type/hue/input.scss hue-type { x: hsla("foo" 100% 50%); } <===> type/hue/error Error: $hue: "foo" is not a number. , 2 | x: hsla("foo" 100% 50%); | ^^^^^^^^^^^^^^^^^^^^ ' input.scss 2:6 root stylesheet <===> ================================================================================ <===> type/saturation/input.scss saturation-type { x: hsla(0 "foo" 50%); } <===> type/saturation/error Error: $saturation: "foo" is not a number. , 2 | x: hsla(0 "foo" 50%); | ^^^^^^^^^^^^^^^^^ ' input.scss 2:6 root stylesheet <===> ================================================================================ <===> type/lightness/input.scss lightness-type { x: hsla(0 100% "foo"); } <===> type/lightness/error Error: $lightness: "foo" is not a number. , 2 | x: hsla(0 100% "foo"); | ^^^^^^^^^^^^^^^^^^ ' input.scss 2:6 root stylesheet <===> ================================================================================ <===> quoted_var_slash/input.scss quoted-var-slash { x: hsla(0 100% "var(--foo) / 0.4"); } <===> quoted_var_slash/error Error: $lightness: "var(--foo) / 0.4" is not a number. , 2 | x: hsla(0 100% "var(--foo) / 0.4"); | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 2:6 root stylesheet sass-spec-libsass-3.6.3/spec/core_functions/color/hsla/error/three_args.hrx000066400000000000000000000020311355712145100271000ustar00rootroot00000000000000<===> options.yml --- :todo: - sass/libsass#2722 <===> ================================================================================ <===> hue/type/input.scss hue-type { x: hsla("foo", 100%, 50%); } <===> hue/type/error Error: $hue: "foo" is not a number. , 2 | x: hsla("foo", 100%, 50%); | ^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 2:6 root stylesheet <===> ================================================================================ <===> saturation/type/input.scss saturation-type { x: hsla(0, "foo", 50%); } <===> saturation/type/error Error: $saturation: "foo" is not a number. , 2 | x: hsla(0, "foo", 50%); | ^^^^^^^^^^^^^^^^^^^ ' input.scss 2:6 root stylesheet <===> ================================================================================ <===> lightness/type/input.scss lightness-type { x: hsla(0, 100%, "foo"); } <===> lightness/type/error Error: $lightness: "foo" is not a number. , 2 | x: hsla(0, 100%, "foo"); | ^^^^^^^^^^^^^^^^^^^^ ' input.scss 2:6 root stylesheet sass-spec-libsass-3.6.3/spec/core_functions/color/hsla/error/two_args.hrx000066400000000000000000000005101355712145100266020ustar00rootroot00000000000000<===> input.scss a {b: hsla(#123, 0.5)} <===> error Error: Missing argument $lightness. , 1 | a {b: hsla(#123, 0.5)} | ^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> error-libsass Error: Function hsla is missing argument $lightness. on line 1 of input.scss >> a {b: hsla(#123, 0.5)} ------^ sass-spec-libsass-3.6.3/spec/core_functions/color/hsla/four_args/000077500000000000000000000000001355712145100250745ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/core_functions/color/hsla/four_args/alpha.hrx000066400000000000000000000041061355712145100267050ustar00rootroot00000000000000<===> percent/options.yml --- :todo: - sass/libsass#2719 <===> ================================================================================ <===> percent/negative/input.scss a {b: hsla(0, 0, 0, -10%)} <===> percent/negative/output.css a { b: rgba(0, 0, 0, 0); } <===> ================================================================================ <===> percent/min/input.scss a {b: hsla(0, 0, 0, 0%)} <===> percent/min/output.css a { b: rgba(0, 0, 0, 0); } <===> ================================================================================ <===> percent/positive/input.scss a {b: hsla(0, 0, 0, 45.6%)} <===> percent/positive/output.css a { b: rgba(0, 0, 0, 0.456); } <===> ================================================================================ <===> percent/max/input.scss a {b: hsla(0, 0, 0, 100%)} <===> percent/max/output.css a { b: black; } <===> ================================================================================ <===> percent/above_max/input.scss a {b: hsla(0, 0, 0, 250%)} <===> percent/above_max/output.css a { b: black; } <===> ================================================================================ <===> unitless/negative/input.scss a {b: hsla(0, 0, 0, -10)} <===> unitless/negative/output.css a { b: rgba(0, 0, 0, 0); } <===> ================================================================================ <===> unitless/min/input.scss a {b: hsla(0, 0, 0, 0)} <===> unitless/min/output.css a { b: rgba(0, 0, 0, 0); } <===> ================================================================================ <===> unitless/positive/input.scss a {b: hsla(0, 0, 0, 0.456)} <===> unitless/positive/output.css a { b: rgba(0, 0, 0, 0.456); } <===> ================================================================================ <===> unitless/max/input.scss a {b: hsla(0, 0, 0, 1)} <===> unitless/max/output.css a { b: black; } <===> ================================================================================ <===> unitless/above_max/input.scss a {b: hsla(0, 0, 0, 250)} <===> unitless/above_max/output.css a { b: black; } sass-spec-libsass-3.6.3/spec/core_functions/color/hsla/four_args/clamped.hrx000066400000000000000000000016151355712145100272270ustar00rootroot00000000000000<===> README.md Channels that are out of bounds are clamped within bounds. <===> ================================================================================ <===> saturation/input.scss a {b: hsla(0, -0.1%, 50%, 0.5)} <===> saturation/output.css a { b: rgba(128, 128, 128, 0.5); } <===> ================================================================================ <===> lightness/input.scss a {b: hsla(0, 100%, 9999%, 0.5)} <===> lightness/output.css a { b: rgba(255, 255, 255, 0.5); } <===> ================================================================================ <===> alpha/above/input.scss a {b: hsla(0, 100%, 50%, 1.1)} <===> alpha/above/output.css a { b: red; } <===> ================================================================================ <===> alpha/below/input.scss a {b: rgba(0, 100%, 50%, -0.1)} <===> alpha/below/output.css a { b: rgba(0, 255, 128, 0); } sass-spec-libsass-3.6.3/spec/core_functions/color/hsla/four_args/in_gamut.hrx000066400000000000000000000013671355712145100274310ustar00rootroot00000000000000<===> transparent/input.scss a {b: hsla(180, 60%, 50%, 0)} <===> transparent/output.css a { b: rgba(51, 204, 204, 0); } <===> ================================================================================ <===> opaque/input.scss a {b: hsla(180, 60%, 50%, 1)} <===> opaque/output.css a { b: #33cccc; } <===> ================================================================================ <===> partial/input.scss a {b: hsla(180, 60%, 50%, 0.5)} <===> partial/output.css a { b: rgba(51, 204, 204, 0.5); } <===> ================================================================================ <===> named/input.scss a {b: hsla($hue: 180, $saturation: 60%, $lightness: 50%, $alpha: 0.4)} <===> named/output.css a { b: rgba(51, 204, 204, 0.4); } sass-spec-libsass-3.6.3/spec/core_functions/color/hsla/four_args/special_functions.hrx000066400000000000000000000115611355712145100313330ustar00rootroot00000000000000<===> calc/arg_1/input.scss a {b: hsla(calc(1), 2%, 3%, 0.4)} <===> calc/arg_1/output.css a { b: hsla(calc(1), 2%, 3%, 0.4); } <===> ================================================================================ <===> calc/arg_2/input.scss a {b: hsla(1, calc(2%), 3%, 0.4)} <===> calc/arg_2/output.css a { b: hsla(1, calc(2%), 3%, 0.4); } <===> ================================================================================ <===> calc/arg_3/input.scss a {b: hsla(1, 2%, calc(3%), 0.4)} <===> calc/arg_3/output.css a { b: hsla(1, 2%, calc(3%), 0.4); } <===> ================================================================================ <===> calc/arg_4/input.scss a {b: hsla(1, 2%, 3%, calc(0.4))} <===> calc/arg_4/output.css a { b: hsla(1, 2%, 3%, calc(0.4)); } <===> ================================================================================ <===> var/arg_1/input.scss a {b: hsla(var(--foo), 2%, 3%, 0.4)} <===> var/arg_1/output.css a { b: hsla(var(--foo), 2%, 3%, 0.4); } <===> ================================================================================ <===> var/arg_2/input.scss a {b: hsla(1, var(--foo), 3%, 0.4)} <===> var/arg_2/output.css a { b: hsla(1, var(--foo), 3%, 0.4); } <===> ================================================================================ <===> var/arg_3/input.scss a {b: hsla(1, 2%, var(--foo), 0.4)} <===> var/arg_3/output.css a { b: hsla(1, 2%, var(--foo), 0.4); } <===> ================================================================================ <===> var/arg_4/input.scss a {b: hsla(1, 2%, 3%, var(--foo))} <===> var/arg_4/output.css a { b: hsla(1, 2%, 3%, var(--foo)); } <===> ================================================================================ <===> env/arg_1/options.yml --- :todo: - sass/libsass#2726 <===> env/arg_1/input.scss a {b: hsla(env(--foo), 2%, 3%, 0.4)} <===> env/arg_1/output.css a { b: hsla(env(--foo), 2%, 3%, 0.4); } <===> ================================================================================ <===> env/arg_2/options.yml --- :todo: - sass/libsass#2726 <===> env/arg_2/input.scss a {b: hsla(1, env(--foo), 3%, 0.4)} <===> env/arg_2/output.css a { b: hsla(1, env(--foo), 3%, 0.4); } <===> ================================================================================ <===> env/arg_3/options.yml --- :todo: - sass/libsass#2726 <===> env/arg_3/input.scss a {b: hsla(1, 2%, env(--foo), 0.4)} <===> env/arg_3/output.css a { b: hsla(1, 2%, env(--foo), 0.4); } <===> ================================================================================ <===> env/arg_4/options.yml --- :todo: - sass/libsass#2726 <===> env/arg_4/input.scss a {b: hsla(1, 2%, 3%, env(--foo))} <===> env/arg_4/output.css a { b: hsla(1, 2%, 3%, env(--foo)); } <===> ================================================================================ <===> min/arg_1/options.yml --- :todo: - sass/libsass#2726 <===> min/arg_1/input.scss a {b: hsla(min(1), 2%, 3%, 0.4)} <===> min/arg_1/output.css a { b: hsla(min(1), 2%, 3%, 0.4); } <===> ================================================================================ <===> min/arg_2/options.yml --- :todo: - sass/libsass#2726 <===> min/arg_2/input.scss a {b: hsla(1, min(2%), 3%, 0.4)} <===> min/arg_2/output.css a { b: hsla(1, min(2%), 3%, 0.4); } <===> ================================================================================ <===> min/arg_3/options.yml --- :todo: - sass/libsass#2726 <===> min/arg_3/input.scss a {b: hsla(1, 2%, min(3%), 0.4)} <===> min/arg_3/output.css a { b: hsla(1, 2%, min(3%), 0.4); } <===> ================================================================================ <===> min/arg_4/options.yml --- :todo: - sass/libsass#2726 <===> min/arg_4/input.scss a {b: hsla(1, 2%, 3%, min(0.4))} <===> min/arg_4/output.css a { b: hsla(1, 2%, 3%, min(0.4)); } <===> ================================================================================ <===> max/arg_1/options.yml --- :todo: - sass/libsass#2726 <===> max/arg_1/input.scss a {b: hsla(max(1), 2%, 3%, 0.4)} <===> max/arg_1/output.css a { b: hsla(max(1), 2%, 3%, 0.4); } <===> ================================================================================ <===> max/arg_2/options.yml --- :todo: - sass/libsass#2726 <===> max/arg_2/input.scss a {b: hsla(1, max(2%), 3%, 0.4)} <===> max/arg_2/output.css a { b: hsla(1, max(2%), 3%, 0.4); } <===> ================================================================================ <===> max/arg_3/options.yml --- :todo: - sass/libsass#2726 <===> max/arg_3/input.scss a {b: hsla(1, 2%, max(3%), 0.4)} <===> max/arg_3/output.css a { b: hsla(1, 2%, max(3%), 0.4); } <===> ================================================================================ <===> max/arg_4/options.yml --- :todo: - sass/libsass#2726 <===> max/arg_4/input.scss a {b: hsla(1, 2%, 3%, max(0.4))} <===> max/arg_4/output.css a { b: hsla(1, 2%, 3%, max(0.4)); } sass-spec-libsass-3.6.3/spec/core_functions/color/hsla/multi_argument_var.hrx000066400000000000000000000024521355712145100275370ustar00rootroot00000000000000<===> options.yml --- :todo: - libsass <===> ================================================================================ <===> 1_of_3/input.scss // var() is substituted before parsing, so it may contain multiple arguments. a {b: hsla(var(--foo), 3%, 0.4)} <===> 1_of_3/output.css a { b: hsla(var(--foo), 3%, 0.4); } <===> ================================================================================ <===> 2_of_3/input.scss a {b: hsla(1, var(--foo), 0.4)} <===> 2_of_3/output.css a { b: hsla(1, var(--foo), 0.4); } <===> ================================================================================ <===> 3_of_3/input.scss a {b: hsla(1, 2%, var(--foo))} <===> 3_of_3/output.css a { b: hsla(1, 2%, var(--foo)); } <===> ================================================================================ <===> 1_of_2/input.scss a {b: hsla(var(--foo), 0.4)} <===> 1_of_2/output.css a { b: hsla(var(--foo), 0.4); } <===> ================================================================================ <===> 2_of_2/input.scss a {b: hsla(1, var(--foo))} <===> 2_of_2/output.css a { b: hsla(1, var(--foo)); } <===> ================================================================================ <===> 1_of_1/input.scss a {b: hsla(var(--foo))} <===> 1_of_1/output.css a { b: hsla(var(--foo)); } sass-spec-libsass-3.6.3/spec/core_functions/color/hsla/one_arg/000077500000000000000000000000001355712145100245175ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/core_functions/color/hsla/one_arg/alpha.hrx000066400000000000000000000037141355712145100263340ustar00rootroot00000000000000<===> in_gamut/transparent/input.scss a {b: hsla(180 60% 50% / 0)} <===> in_gamut/transparent/output.css a { b: rgba(51, 204, 204, 0); } <===> ================================================================================ <===> in_gamut/opaque/input.scss a {b: hsla(180 60% 50% / 1)} <===> in_gamut/opaque/output.css a { b: #33cccc; } <===> ================================================================================ <===> in_gamut/partial/input.scss a {b: hsla(180 60% 50% / 0.5)} <===> in_gamut/partial/output.css a { b: rgba(51, 204, 204, 0.5); } <===> ================================================================================ <===> in_gamut/named/input.scss a {b: hsla($channels: 180 60% 50% / 0.4)} <===> in_gamut/named/output.css a { b: rgba(51, 204, 204, 0.4); } <===> ================================================================================ <===> in_gamut/parenthesized/input.scss // Extra parens shouldn't cause the slash to be forced into division. a {b: hsl(180 60% 50% / 0.4)} <===> in_gamut/parenthesized/output.css a { b: rgba(51, 204, 204, 0.4); } <===> ================================================================================ <===> clamped/saturation/input.scss a {b: hsla(0 -0.1% 50% / 0.5)} <===> clamped/saturation/output.css a { b: rgba(128, 128, 128, 0.5); } <===> ================================================================================ <===> clamped/lightness/input.scss a {b: hsla(0 100% 9999% / 0.5)} <===> clamped/lightness/output.css a { b: rgba(255, 255, 255, 0.5); } <===> ================================================================================ <===> clamped/alpha/above/input.scss a {b: hsla(0 100% 50% / 1.1)} <===> clamped/alpha/above/output.css a { b: red; } <===> ================================================================================ <===> clamped/alpha/below/input.scss a {b: hsla(0 100% 50% / -0.1)} <===> clamped/alpha/below/output.css a { b: rgba(255, 0, 0, 0); } sass-spec-libsass-3.6.3/spec/core_functions/color/hsla/one_arg/no_alpha.hrx000066400000000000000000000042011355712145100270200ustar00rootroot00000000000000<===> in_gamut/red/input.scss a {b: hsla(0 100% 50%)} <===> in_gamut/red/output.css a { b: red; } <===> ================================================================================ <===> in_gamut/blue/input.scss a {b: hsla(240 100% 50%)} <===> in_gamut/blue/output.css a { b: blue; } <===> ================================================================================ <===> in_gamut/grayish/yellow/input.scss a {b: hsla(60 60% 50%)} <===> in_gamut/grayish/yellow/output.css a { b: #cccc33; } <===> ================================================================================ <===> clamped/saturation/above/input.scss a {b: hsla(0 500% 50%)} <===> clamped/saturation/above/output.css a { b: red; } <===> ================================================================================ <===> clamped/saturation/below/input.scss a {b: hsla(0 -100% 50%)} <===> clamped/saturation/below/output.css a { b: gray; } <===> ================================================================================ <===> clamped/lightness/above/input.scss a {b: hsla(0 100% 500%)} <===> clamped/lightness/above/output.css a { b: white; } <===> ================================================================================ <===> clamped/lightness/below/input.scss a {b: hsla(0 100% -100%)} <===> clamped/lightness/below/output.css a { b: black; } <===> ================================================================================ <===> units/hue/deg/input.scss a {b: hsla(0deg 100% 50%)} <===> units/hue/deg/output.css a { b: red; } <===> ================================================================================ <===> units/saturation/unitless/input.scss a {b: hsla(0 50 50%)} <===> units/saturation/unitless/output.css a { b: #bf4040; } <===> ================================================================================ <===> units/lightness/unitless/input.scss a {b: hsla(0 100% 50)} <===> units/lightness/unitless/output.css a { b: red; } <===> ================================================================================ <===> named/input.scss a {b: hsla($channels: 0 100% 50%)} <===> named/output.css a { b: red; } sass-spec-libsass-3.6.3/spec/core_functions/color/hsla/one_arg/options.yml000066400000000000000000000000371355712145100267350ustar00rootroot00000000000000--- :todo: - sass/libsass#2722 sass-spec-libsass-3.6.3/spec/core_functions/color/hsla/one_arg/special_functions.hrx000066400000000000000000000226031355712145100307550ustar00rootroot00000000000000<===> options.yml --- :todo: - sass/libsass#2726 <===> ================================================================================ <===> no_alpha/calc/arg_1/input.scss a {b: hsla(calc(1) 2% 3%)} <===> no_alpha/calc/arg_1/output.css a { b: hsla(calc(1), 2%, 3%); } <===> ================================================================================ <===> no_alpha/calc/arg_2/input.scss a {b: hsla(1 calc(2%) 3%)} <===> no_alpha/calc/arg_2/output.css a { b: hsla(1, calc(2%), 3%); } <===> ================================================================================ <===> no_alpha/calc/arg_3/input.scss a {b: hsla(1 2% calc(3%))} <===> no_alpha/calc/arg_3/output.css a { b: hsla(1, 2%, calc(3%)); } <===> ================================================================================ <===> no_alpha/var/arg_1/input.scss a {b: hsla(var(--foo) 2% 3%)} <===> no_alpha/var/arg_1/output.css a { b: hsla(var(--foo), 2%, 3%); } <===> ================================================================================ <===> no_alpha/var/arg_2/input.scss a {b: hsla(1 var(--foo) 3%)} <===> no_alpha/var/arg_2/output.css a { b: hsla(1, var(--foo), 3%); } <===> ================================================================================ <===> no_alpha/var/arg_3/input.scss a {b: hsla(1 2% var(--foo))} <===> no_alpha/var/arg_3/output.css a { b: hsla(1, 2%, var(--foo)); } <===> ================================================================================ <===> no_alpha/env/arg_1/input.scss a {b: hsla(env(--foo) 2% 3%)} <===> no_alpha/env/arg_1/output.css a { b: hsla(env(--foo), 2%, 3%); } <===> ================================================================================ <===> no_alpha/env/arg_2/input.scss a {b: hsla(1 env(--foo) 3%)} <===> no_alpha/env/arg_2/output.css a { b: hsla(1, env(--foo), 3%); } <===> ================================================================================ <===> no_alpha/env/arg_3/input.scss a {b: hsla(1 2% env(--foo))} <===> no_alpha/env/arg_3/output.css a { b: hsla(1, 2%, env(--foo)); } <===> ================================================================================ <===> no_alpha/min/arg_1/input.scss a {b: hsla(min(1) 2% 3%)} <===> no_alpha/min/arg_1/output.css a { b: hsla(min(1), 2%, 3%); } <===> ================================================================================ <===> no_alpha/min/arg_2/input.scss a {b: hsla(1 min(2%) 3%)} <===> no_alpha/min/arg_2/output.css a { b: hsla(1, min(2%), 3%); } <===> ================================================================================ <===> no_alpha/min/arg_3/input.scss a {b: hsla(1 2% min(3%))} <===> no_alpha/min/arg_3/output.css a { b: hsla(1, 2%, min(3%)); } <===> ================================================================================ <===> no_alpha/max/arg_1/input.scss a {b: hsla(max(1) 2% 3%)} <===> no_alpha/max/arg_1/output.css a { b: hsla(max(1), 2%, 3%); } <===> ================================================================================ <===> no_alpha/max/arg_2/input.scss a {b: hsla(1 max(2%) 3%)} <===> no_alpha/max/arg_2/output.css a { b: hsla(1, max(2%), 3%); } <===> ================================================================================ <===> no_alpha/max/arg_3/input.scss a {b: hsla(1 2% max(3%))} <===> no_alpha/max/arg_3/output.css a { b: hsla(1, 2%, max(3%)); } <===> ================================================================================ <===> no_alpha/multi_argument_var/1_of_2/input.scss // var() is substituted before parsing, so it may contain multiple arguments. a {b: hsla(var(--foo) 50%)} <===> no_alpha/multi_argument_var/1_of_2/output.css a { b: hsla(var(--foo) 50%); } <===> ================================================================================ <===> no_alpha/multi_argument_var/2_of_2/input.scss a {b: hsla(0 var(--foo))} <===> no_alpha/multi_argument_var/2_of_2/output.css a { b: hsla(0 var(--foo)); } <===> ================================================================================ <===> no_alpha/multi_argument_var/1_of_1/input.scss a {b: hsla(var(--foo))} <===> no_alpha/multi_argument_var/1_of_1/output.css a { b: hsla(var(--foo)); } <===> ================================================================================ <===> alpha/calc/arg_1/input.scss a {b: hsla(calc(1) 2% 3% / 0.4)} <===> alpha/calc/arg_1/output.css a { b: hsla(calc(1), 2%, 3%, 0.4); } <===> ================================================================================ <===> alpha/calc/arg_2/input.scss a {b: hsla(1 calc(2%) 3% / 0.4)} <===> alpha/calc/arg_2/output.css a { b: hsla(1, calc(2%), 3%, 0.4); } <===> ================================================================================ <===> alpha/calc/arg_3/input.scss a {b: hsla(1 2% calc(3%) / 0.4)} <===> alpha/calc/arg_3/output.css a { b: hsla(1 2% calc(3%)/0.4); } <===> ================================================================================ <===> alpha/calc/arg_4/input.scss a {b: hsla(1 2% 3% / calc(0.4))} <===> alpha/calc/arg_4/output.css a { b: hsla(1 2% 3%/calc(0.4)); } <===> ================================================================================ <===> alpha/var/arg_1/input.scss a {b: hsla(var(--foo) 2% 3% / 0.4)} <===> alpha/var/arg_1/output.css a { b: hsla(var(--foo), 2%, 3%, 0.4); } <===> ================================================================================ <===> alpha/var/arg_2/input.scss a {b: hsla(1 var(--foo) 3% / 0.4)} <===> alpha/var/arg_2/output.css a { b: hsla(1, var(--foo), 3%, 0.4); } <===> ================================================================================ <===> alpha/var/arg_3/input.scss a {b: hsla(1 2% var(--foo) / 0.4)} <===> alpha/var/arg_3/output.css a { b: hsla(1 2% var(--foo)/0.4); } <===> ================================================================================ <===> alpha/var/arg_4/input.scss a {b: hsla(1 2% 3% / var(--foo))} <===> alpha/var/arg_4/output.css a { b: hsla(1 2% 3%/var(--foo)); } <===> ================================================================================ <===> alpha/env/arg_1/input.scss a {b: hsla(env(--foo) 2% 3% / 0.4)} <===> alpha/env/arg_1/output.css a { b: hsla(env(--foo), 2%, 3%, 0.4); } <===> ================================================================================ <===> alpha/env/arg_2/input.scss a {b: hsla(1 env(--foo) 3% / 0.4)} <===> alpha/env/arg_2/output.css a { b: hsla(1, env(--foo), 3%, 0.4); } <===> ================================================================================ <===> alpha/env/arg_3/input.scss a {b: hsla(1 2% env(--foo) / 0.4)} <===> alpha/env/arg_3/output.css a { b: hsla(1 2% env(--foo)/0.4); } <===> ================================================================================ <===> alpha/env/arg_4/input.scss a {b: hsla(1 2% 3% / env(--foo))} <===> alpha/env/arg_4/output.css a { b: hsla(1 2% 3%/env(--foo)); } <===> ================================================================================ <===> alpha/min/arg_1/input.scss a {b: hsla(min(1) 2% 3% / 0.4)} <===> alpha/min/arg_1/output.css a { b: hsla(min(1), 2%, 3%, 0.4); } <===> ================================================================================ <===> alpha/min/arg_2/input.scss a {b: hsla(1 min(2%) 3% / 0.4)} <===> alpha/min/arg_2/output.css a { b: hsla(1, min(2%), 3%, 0.4); } <===> ================================================================================ <===> alpha/min/arg_3/input.scss a {b: hsla(1 2% min(3%) / 0.4)} <===> alpha/min/arg_3/output.css a { b: hsla(1 2% min(3%)/0.4); } <===> ================================================================================ <===> alpha/min/arg_4/input.scss a {b: hsla(1 2% 3% / min(0.4))} <===> alpha/min/arg_4/output.css a { b: hsla(1 2% 3%/min(0.4)); } <===> ================================================================================ <===> alpha/max/arg_1/input.scss a {b: hsla(max(1) 2% 3% / 0.4)} <===> alpha/max/arg_1/output.css a { b: hsla(max(1), 2%, 3%, 0.4); } <===> ================================================================================ <===> alpha/max/arg_2/input.scss a {b: hsla(1 max(2%) 3% / 0.4)} <===> alpha/max/arg_2/output.css a { b: hsla(1, max(2%), 3%, 0.4); } <===> ================================================================================ <===> alpha/max/arg_3/input.scss a {b: hsla(1 2% max(3%) / 0.4)} <===> alpha/max/arg_3/output.css a { b: hsla(1 2% max(3%)/0.4); } <===> ================================================================================ <===> alpha/max/arg_4/input.scss a {b: hsla(1 2% 3% / max(0.4))} <===> alpha/max/arg_4/output.css a { b: hsla(1 2% 3%/max(0.4)); } <===> ================================================================================ <===> alpha/multi_argument_var/1_of_2/input.scss // var() is substituted before parsing, so it may contain multiple arguments. a {b: hsla(var(--foo) 50% / 0.4)} <===> alpha/multi_argument_var/1_of_2/output.css a { b: hsla(var(--foo) 50%/0.4); } <===> ================================================================================ <===> alpha/multi_argument_var/2_of_2/input.scss a {b: hsla(0 var(--foo) / 0.4)} <===> alpha/multi_argument_var/2_of_2/output.css a { b: hsla(0 var(--foo)/0.4); } <===> ================================================================================ <===> alpha/multi_argument_var/1_of_1/input.scss a {b: hsla(var(--foo) / 0.4)} <===> alpha/multi_argument_var/1_of_1/output.css a { b: hsla(var(--foo)/0.4); } sass-spec-libsass-3.6.3/spec/core_functions/color/hsla/three_args/000077500000000000000000000000001355712145100252305ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/core_functions/color/hsla/three_args/clamped.hrx000066400000000000000000000015731355712145100273660ustar00rootroot00000000000000<===> README.md The W3C tests cover clamped hue, but not clamped saturation or lightness. <===> ================================================================================ <===> saturation/above/input.scss a {b: hsla(0, 500%, 50%)} <===> saturation/above/output.css a { b: red; } <===> ================================================================================ <===> saturation/below/input.scss a {b: hsla(0, -100%, 50%)} <===> saturation/below/output.css a { b: gray; } <===> ================================================================================ <===> lightness/above/input.scss a {b: hsla(0, 100%, 500%)} <===> lightness/above/output.css a { b: white; } <===> ================================================================================ <===> lightness/below/input.scss a {b: hsla(0, 100%, -100%)} <===> lightness/below/output.css a { b: black; } sass-spec-libsass-3.6.3/spec/core_functions/color/hsla/three_args/named.hrx000066400000000000000000000003041355712145100270340ustar00rootroot00000000000000<===> ================================================================================ <===> input.scss a {b: hsla($hue: 0, $saturation: 100%, $lightness: 50%)} <===> output.css a { b: red; } sass-spec-libsass-3.6.3/spec/core_functions/color/hsla/three_args/options.yml000066400000000000000000000000371355712145100274460ustar00rootroot00000000000000--- :todo: - sass/libsass#2722 sass-spec-libsass-3.6.3/spec/core_functions/color/hsla/three_args/special_functions.hrx000066400000000000000000000020731355712145100314650ustar00rootroot00000000000000<===> options.yml --- :todo: - sass/libsass#2726 <===> input.scss a { calc-1: hsla(calc(1), 2%, 3%); calc-2: hsla(1, calc(2%), 3%); calc-3: hsla(1, 2%, calc(3%)); var-1: hsla(var(--foo), 2%, 3%); var-2: hsla(1, var(--foo), 3%); var-3: hsla(1, 2%, var(--foo)); env-1: hsla(env(--foo), 2%, 3%); env-2: hsla(1, env(--foo), 3%); env-3: hsla(1, 2%, env(--foo)); min-1: hsla(min(1), 2%, 3%); min-2: hsla(1, min(2%), 3%); min-3: hsla(1, 2%, min(3%)); max-1: hsla(max(1), 2%, 3%); max-2: hsla(1, max(2%), 3%); max-3: hsla(1, 2%, max(3%)); } <===> output.css a { calc-1: hsla(calc(1), 2%, 3%); calc-2: hsla(1, calc(2%), 3%); calc-3: hsla(1, 2%, calc(3%)); var-1: hsla(var(--foo), 2%, 3%); var-2: hsla(1, var(--foo), 3%); var-3: hsla(1, 2%, var(--foo)); env-1: hsla(env(--foo), 2%, 3%); env-2: hsla(1, env(--foo), 3%); env-3: hsla(1, 2%, env(--foo)); min-1: hsla(min(1), 2%, 3%); min-2: hsla(1, min(2%), 3%); min-3: hsla(1, 2%, min(3%)); max-1: hsla(max(1), 2%, 3%); max-2: hsla(1, max(2%), 3%); max-3: hsla(1, 2%, max(3%)); } sass-spec-libsass-3.6.3/spec/core_functions/color/hsla/three_args/units.hrx000066400000000000000000000011201355712145100271070ustar00rootroot00000000000000<===> ================================================================================ <===> hue/deg/input.scss a {b: hsla(0deg, 100%, 50%)} <===> hue/deg/output.css a { b: red; } <===> ================================================================================ <===> saturation/unitless/input.scss a {b: hsla(0, 50, 50%)} <===> saturation/unitless/output.css a { b: #bf4040; } <===> ================================================================================ <===> lightness/unitless/input.scss a {b: hsla(0, 100%, 50)} <===> lightness/unitless/output.css a { b: red; } sass-spec-libsass-3.6.3/spec/core_functions/color/hsla/three_args/w3c.hrx000066400000000000000000000232521355712145100264530ustar00rootroot00000000000000<===> README.md These test cases come from two official W3C test suites: * https://www.w3.org/Style/CSS/Test/CSS3/Color/20070927/html4/t040204-hsl-h-rotating-b.htm * https://www.w3.org/Style/CSS/Test/CSS3/Color/current/html4/t040204-hsl-values-b.htm Because these spces have so many repetitive cases, they violate the normal one-test-case-per-suite rule. <===> ================================================================================ <===> hue/input.scss @mixin test-hues($name, $hues...) { #{$name} { @each $hue in $hues { hue-#{$hue}: hsla($hue, 100%, 50%); } } } @include test-hues("red", 0, -360, 360, 6120); @include test-hues("yellow", 60, -300, 420, -9660); @include test-hues("green", 120, -240, 480, 99840); @include test-hues("cyan", 180, -180, 540, -900); @include test-hues("blue", 240, -120, 600, -104880); @include test-hues("purple", 300, -60, 660, 2820); <===> hue/output.css red { hue-0: red; hue--360: red; hue-360: red; hue-6120: red; } yellow { hue-60: yellow; hue--300: yellow; hue-420: yellow; hue--9660: yellow; } green { hue-120: lime; hue--240: lime; hue-480: lime; hue-99840: lime; } cyan { hue-180: aqua; hue--180: aqua; hue-540: aqua; hue--900: aqua; } blue { hue-240: blue; hue--120: blue; hue-600: blue; hue--104880: blue; } purple { hue-300: fuchsia; hue--60: fuchsia; hue-660: fuchsia; hue-2820: fuchsia; } <===> ================================================================================ <===> red_to_green/input.scss a { step-1: hsla(0, 100%, 50%); step-2: hsla(12, 100%, 50%); step-3: hsla(24, 100%, 50%); step-4: hsla(36, 100%, 50%); step-5: hsla(48, 100%, 50%); step-6: hsla(60, 100%, 50%); step-7: hsla(72, 100%, 50%); step-8: hsla(84, 100%, 50%); step-9: hsla(96, 100%, 50%); step-10: hsla(108, 100%, 50%); step-11: hsla(120, 100%, 50%); } <===> red_to_green/output.css a { step-1: red; step-2: #ff3300; step-3: #ff6600; step-4: #ff9900; step-5: #ffcc00; step-6: yellow; step-7: #ccff00; step-8: #99ff00; step-9: #66ff00; step-10: #33ff00; step-11: lime; } <===> ================================================================================ <===> green_to_blue/input.scss a { step-1: hsla(120, 100%, 50%); step-2: hsla(132, 100%, 50%); step-3: hsla(144, 100%, 50%); step-4: hsla(156, 100%, 50%); step-5: hsla(168, 100%, 50%); step-6: hsla(180, 100%, 50%); step-7: hsla(192, 100%, 50%); step-8: hsla(204, 100%, 50%); step-9: hsla(216, 100%, 50%); step-10: hsla(228, 100%, 50%); step-11: hsla(240, 100%, 50%); } <===> green_to_blue/output.css a { step-1: lime; step-2: #00ff33; step-3: #00ff66; step-4: #00ff99; step-5: #00ffcc; step-6: aqua; step-7: #00ccff; step-8: #0099ff; step-9: #0066ff; step-10: #0033ff; step-11: blue; } <===> ================================================================================ <===> blue_to_red/input.scss a { step-1: hsla(240, 100%, 50%); step-2: hsla(252, 100%, 50%); step-3: hsla(264, 100%, 50%); step-4: hsla(276, 100%, 50%); step-5: hsla(288, 100%, 50%); step-6: hsla(300, 100%, 50%); step-7: hsla(312, 100%, 50%); step-8: hsla(324, 100%, 50%); step-9: hsla(336, 100%, 50%); step-10: hsla(348, 100%, 50%); step-11: hsla(360, 100%, 50%); } <===> blue_to_red/output.css a { step-1: blue; step-2: #3300ff; step-3: #6600ff; step-4: #9900ff; step-5: #cc00ff; step-6: fuchsia; step-7: #ff00cc; step-8: #ff0099; step-9: #ff0066; step-10: #ff0033; step-11: red; } <===> ================================================================================ <===> gray_to/red/input.scss a { step-1: hsla(0, 20%, 50%); step-2: hsla(0, 60%, 50%); step-3: hsla(0, 100%, 50%); } <===> gray_to/red/output.css a { step-1: #996666; step-2: #cc3333; step-3: red; } <===> ================================================================================ <===> gray_to/yellow/input.scss a { step-1: hsla(60, 20%, 50%); step-2: hsla(60, 60%, 50%); step-3: hsla(60, 100%, 50%); } <===> gray_to/yellow/output.css a { step-1: #999966; step-2: #cccc33; step-3: yellow; } <===> ================================================================================ <===> gray_to/green/input.scss a { step-1: hsla(120, 20%, 50%); step-2: hsla(120, 60%, 50%); step-3: hsla(120, 100%, 50%); } <===> gray_to/green/output.css a { step-1: #669966; step-2: #33cc33; step-3: lime; } <===> ================================================================================ <===> gray_to/cyan/input.scss a { step-1: hsla(180, 20%, 50%); step-2: hsla(180, 60%, 50%); step-3: hsla(180, 100%, 50%); } <===> gray_to/cyan/output.css a { step-1: #669999; step-2: #33cccc; step-3: aqua; } <===> ================================================================================ <===> gray_to/blue/input.scss a { step-1: hsla(240, 20%, 50%); step-2: hsla(240, 60%, 50%); step-3: hsla(240, 100%, 50%); } <===> gray_to/blue/output.css a { step-1: #666699; step-2: #3333cc; step-3: blue; } <===> ================================================================================ <===> gray_to/purple/input.scss a { step-1: hsla(300, 20%, 50%); step-2: hsla(300, 60%, 50%); step-3: hsla(300, 100%, 50%); } <===> gray_to/purple/output.css a { step-1: #996699; step-2: #cc33cc; step-3: fuchsia; } <===> ================================================================================ <===> black_to_white_through/red/input.scss a { step-1: hsla(0, 100%, 0%); step-2: hsla(0, 100%, 10%); step-3: hsla(0, 100%, 20%); step-4: hsla(0, 100%, 30%); step-5: hsla(0, 100%, 40%); step-6: hsla(0, 100%, 50%); step-7: hsla(0, 100%, 60%); step-8: hsla(0, 100%, 70%); step-9: hsla(0, 100%, 80%); step-10: hsla(0, 100%, 90%); step-11: hsla(0, 100%, 100%); } <===> black_to_white_through/red/output.css a { step-1: black; step-2: #330000; step-3: #660000; step-4: #990000; step-5: #cc0000; step-6: red; step-7: #ff3333; step-8: #ff6666; step-9: #ff9999; step-10: #ffcccc; step-11: white; } <===> ================================================================================ <===> black_to_white_through/yellow/input.scss a { step-1: hsla(60, 100%, 0%); step-2: hsla(60, 100%, 10%); step-3: hsla(60, 100%, 20%); step-4: hsla(60, 100%, 30%); step-5: hsla(60, 100%, 40%); step-6: hsla(60, 100%, 50%); step-7: hsla(60, 100%, 60%); step-8: hsla(60, 100%, 70%); step-9: hsla(60, 100%, 80%); step-10: hsla(60, 100%, 90%); step-11: hsla(60, 100%, 100%); } <===> black_to_white_through/yellow/output.css a { step-1: black; step-2: #333300; step-3: #666600; step-4: #999900; step-5: #cccc00; step-6: yellow; step-7: #ffff33; step-8: #ffff66; step-9: #ffff99; step-10: #ffffcc; step-11: white; } <===> ================================================================================ <===> black_to_white_through/green/input.scss a { step-1: hsla(120, 100%, 0%); step-2: hsla(120, 100%, 10%); step-3: hsla(120, 100%, 20%); step-4: hsla(120, 100%, 30%); step-5: hsla(120, 100%, 40%); step-6: hsla(120, 100%, 50%); step-7: hsla(120, 100%, 60%); step-8: hsla(120, 100%, 70%); step-9: hsla(120, 100%, 80%); step-10: hsla(120, 100%, 90%); step-11: hsla(120, 100%, 100%); } <===> black_to_white_through/green/output.css a { step-1: black; step-2: #003300; step-3: #006600; step-4: #009900; step-5: #00cc00; step-6: lime; step-7: #33ff33; step-8: #66ff66; step-9: #99ff99; step-10: #ccffcc; step-11: white; } <===> ================================================================================ <===> black_to_white_through/cyan/input.scss a { step-1: hsla(180, 100%, 0%); step-2: hsla(180, 100%, 10%); step-3: hsla(180, 100%, 20%); step-4: hsla(180, 100%, 30%); step-5: hsla(180, 100%, 40%); step-6: hsla(180, 100%, 50%); step-7: hsla(180, 100%, 60%); step-8: hsla(180, 100%, 70%); step-9: hsla(180, 100%, 80%); step-10: hsla(180, 100%, 90%); step-11: hsla(180, 100%, 100%); } <===> black_to_white_through/cyan/output.css a { step-1: black; step-2: #003333; step-3: #006666; step-4: #009999; step-5: #00cccc; step-6: aqua; step-7: #33ffff; step-8: #66ffff; step-9: #99ffff; step-10: #ccffff; step-11: white; } <===> ================================================================================ <===> black_to_white_through/blue/input.scss a { step-1: hsla(240, 100%, 0%); step-2: hsla(240, 100%, 10%); step-3: hsla(240, 100%, 20%); step-4: hsla(240, 100%, 30%); step-5: hsla(240, 100%, 40%); step-6: hsla(240, 100%, 50%); step-7: hsla(240, 100%, 60%); step-8: hsla(240, 100%, 70%); step-9: hsla(240, 100%, 80%); step-10: hsla(240, 100%, 90%); step-11: hsla(240, 100%, 100%); } <===> black_to_white_through/blue/output.css a { step-1: black; step-2: #000033; step-3: #000066; step-4: #000099; step-5: #0000cc; step-6: blue; step-7: #3333ff; step-8: #6666ff; step-9: #9999ff; step-10: #ccccff; step-11: white; } <===> ================================================================================ <===> black_to_white_through/purple/input.scss a { step-1: hsla(300, 100%, 0%); step-2: hsla(300, 100%, 10%); step-3: hsla(300, 100%, 20%); step-4: hsla(300, 100%, 30%); step-5: hsla(300, 100%, 40%); step-6: hsla(300, 100%, 50%); step-7: hsla(300, 100%, 60%); step-8: hsla(300, 100%, 70%); step-9: hsla(300, 100%, 80%); step-10: hsla(300, 100%, 90%); step-11: hsla(300, 100%, 100%); } <===> black_to_white_through/purple/output.css a { step-1: black; step-2: #330033; step-3: #660066; step-4: #990099; step-5: #cc00cc; step-6: fuchsia; step-7: #ff33ff; step-8: #ff66ff; step-9: #ff99ff; step-10: #ffccff; step-11: white; } sass-spec-libsass-3.6.3/spec/core_functions/color/hue.hrx000066400000000000000000000051051355712145100234630ustar00rootroot00000000000000<===> max/input.scss a {b: hue(hsl(359, 100%, 100%))} <===> max/output.css a { b: 359deg; } <===> ================================================================================ <===> above_max/input.scss a {b: hue(hsl(540, 100%, 100%))} <===> above_max/output.css a { b: 180deg; } <===> ================================================================================ <===> min/input.scss a {b: hue(hsl(0, 100%, 100%))} <===> min/output.css a { b: 0deg; } <===> ================================================================================ <===> negative/input.scss a {b: hue(hsl(-180, 100%, 100%))} <===> negative/output.css a { b: 180deg; } <===> ================================================================================ <===> middle/input.scss a {b: hue(hsl(123, 100%, 100%))} <===> middle/output.css a { b: 123deg; } <===> ================================================================================ <===> fraction/input.scss a {b: hue(hsl(0.5, 100%, 100%))} <===> fraction/output.css a { b: 0.5deg; } <===> ================================================================================ <===> named/input.scss a {b: hue($color: hsl(234, 100%, 100%))} <===> named/output.css a { b: 234deg; } <===> ================================================================================ <===> error/too_few_args/input.scss a {b: hue()} <===> error/too_few_args/error Error: Missing argument $color. , 1 | a {b: hue()} | ^^^^^ ' input.scss 1:7 root stylesheet <===> error/too_few_args/error-libsass Error: Function hue is missing argument $color. on line 1 of input.scss >> a {b: hue()} ------^ <===> ================================================================================ <===> error/too_many_args/input.scss a {b: hue(red, green)} <===> error/too_many_args/error Error: Only 1 argument allowed, but 2 were passed. , 1 | a {b: hue(red, green)} | ^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> error/too_many_args/error-libsass Error: wrong number of arguments (2 for 1) for `hue' on line 1:7 of input.scss >> a {b: hue(red, green)} ------^ <===> ================================================================================ <===> error/type/input.scss a {b: hue(1)} <===> error/type/error Error: $color: 1 is not a color. , 1 | a {b: hue(1)} | ^^^^^^ ' input.scss 1:7 root stylesheet <===> error/type/error-libsass Error: argument `$color` of `hue($color)` must be a color on line 1:7 of input.scss, in function `hue` from line 1:7 of input.scss >> a {b: hue(1)} ------^ sass-spec-libsass-3.6.3/spec/core_functions/color/ie_hex_str.hrx000066400000000000000000000050501355712145100250320ustar00rootroot00000000000000<===> opaque/input.scss a {b: ie-hex-str(#daddee)} <===> opaque/output.css a { b: #FFDADDEE; } <===> ================================================================================ <===> translucent/input.scss a {b: ie-hex-str(rgba(#daddee, 0.3))} <===> translucent/output.css a { b: #4DDADDEE; } <===> ================================================================================ <===> transparent/input.scss a {b: ie-hex-str(rgba(turquoise, 0))} <===> transparent/output.css a { b: #0040E0D0; } <===> ================================================================================ <===> leading_zero/input.scss a {b: ie-hex-str(rgba(#020304, 0.003))} <===> leading_zero/output.css a { b: #01020304; } <===> ================================================================================ <===> type/input.scss a {b: type-of(ie-hex-str(#daddee))} <===> type/output.css a { b: string; } <===> ================================================================================ <===> named/input.scss a {b: ie-hex-str($color: #daddee)} <===> named/output.css a { b: #FFDADDEE; } <===> ================================================================================ <===> error/too_few_args/input.scss a {b: ie-hex-str()} <===> error/too_few_args/error Error: Missing argument $color. , 1 | a {b: ie-hex-str()} | ^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> error/too_few_args/error-libsass Error: Function ie-hex-str is missing argument $color. on line 1 of input.scss >> a {b: ie-hex-str()} ------^ <===> ================================================================================ <===> error/too_many_args/input.scss a {b: ie-hex-str(red, blue)} <===> error/too_many_args/error Error: Only 1 argument allowed, but 2 were passed. , 1 | a {b: ie-hex-str(red, blue)} | ^^^^^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> error/too_many_args/error-libsass Error: wrong number of arguments (2 for 1) for `ie-hex-str' on line 1:7 of input.scss >> a {b: ie-hex-str(red, blue)} ------^ <===> ================================================================================ <===> error/type/input.scss a {b: ie-hex-str(c)} <===> error/type/error Error: $color: c is not a color. , 1 | a {b: ie-hex-str(c)} | ^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> error/type/error-libsass Error: argument `$color` of `ie-hex-str($color)` must be a color on line 1:7 of input.scss, in function `ie-hex-str` from line 1:7 of input.scss >> a {b: ie-hex-str(c)} ------^ sass-spec-libsass-3.6.3/spec/core_functions/color/invert.hrx000066400000000000000000000133231355712145100242120ustar00rootroot00000000000000<===> white/input.scss a {b: invert(white)} <===> white/output.css a { b: black; } <===> ================================================================================ <===> black/input.scss a {b: invert(black)} <===> black/output.css a { b: white; } <===> ================================================================================ <===> gray/input.scss a {b: invert(gray)} <===> gray/output.css a { b: #7f7f7f; } <===> ================================================================================ <===> turquoise/input.scss a {b: invert(turquoise)} <===> turquoise/output.css a { b: #bf1f2f; } <===> ================================================================================ <===> weighted/min/input.scss a {b: invert(turquoise, 0%)} <===> weighted/min/output.css a { b: turquoise; } <===> ================================================================================ <===> weighted/max/input.scss a {b: invert(turquoise, 100%)} <===> weighted/max/output.css a { b: #bf1f2f; } <===> ================================================================================ <===> weighted/middle/input.scss a {b: invert(turquoise, 50%)} <===> weighted/middle/output.css a { b: gray; } <===> ================================================================================ <===> weighted/low/input.scss a {b: invert(turquoise, 23%)} <===> weighted/low/output.css a { b: #5db4ab; } <===> ================================================================================ <===> weighted/high/input.scss a {b: invert(turquoise, 92%)} <===> weighted/high/output.css a { b: #b52e3c; } <===> ================================================================================ <===> alpha/input.scss a {b: invert(rgba(turquoise, 0.4))} <===> alpha/output.css a { b: rgba(191, 31, 47, 0.4); } <===> ================================================================================ <===> number/input.scss a {b: invert(10%)} <===> number/output.css a { b: invert(10%); } <===> ================================================================================ <===> named/input.scss a {b: invert($color: turquoise, $weight: 0%)} <===> named/output.css a { b: turquoise; } <===> ================================================================================ <===> error/too_few_args/input.scss a {b: invert()} <===> error/too_few_args/error Error: Missing argument $color. , 1 | a {b: invert()} | ^^^^^^^^ ' input.scss 1:7 root stylesheet <===> error/too_few_args/error-libsass Error: Function invert is missing argument $color. on line 1 of input.scss >> a {b: invert()} ------^ <===> ================================================================================ <===> error/too_many_args/input.scss a {b: invert(turquoise, 0%, 1)} <===> error/too_many_args/error Error: Only 2 arguments allowed, but 3 were passed. , 1 | a {b: invert(turquoise, 0%, 1)} | ^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> error/too_many_args/error-libsass Error: wrong number of arguments (3 for 2) for `invert' on line 1:7 of input.scss >> a {b: invert(turquoise, 0%, 1)} ------^ <===> ================================================================================ <===> error/number_with_weight/input.scss a {b: invert(1, 50%)} <===> error/number_with_weight/error Error: Only one argument may be passed to the plain-CSS invert() function. , 1 | a {b: invert(1, 50%)} | ^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> ================================================================================ <===> error/type/color/input.scss a {b: invert(c)} <===> error/type/color/error Error: $color: c is not a color. , 1 | a {b: invert(c)} | ^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> error/type/color/error-libsass Error: argument `$color` of `invert($color, $weight: 100%)` must be a color on line 1:7 of input.scss, in function `invert` from line 1:7 of input.scss >> a {b: invert(c)} ------^ <===> ================================================================================ <===> error/type/weight/input.scss a {b: invert(red, c)} <===> error/type/weight/error Error: $weight: c is not a number. , 1 | a {b: invert(red, c)} | ^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> error/type/weight/error-libsass Error: argument `$weight` of `invert($color, $weight: 100%)` must be a number on line 1:7 of input.scss, in function `invert` from line 1:7 of input.scss >> a {b: invert(red, c)} ------^ <===> ================================================================================ <===> error/bounds/too_low/input.scss a {b: invert(red, -0.001)} <===> error/bounds/too_low/error Error: $weight: Expected -0.001 to be within 0 and 100. , 1 | a {b: invert(red, -0.001)} | ^^^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> error/bounds/too_low/error-libsass Error: argument `$weight` of `invert($color, $weight: 100%)` must be between -0 and 100 on line 1:7 of input.scss, in function `invert` from line 1:7 of input.scss >> a {b: invert(red, -0.001)} ------^ <===> ================================================================================ <===> error/bounds/too_high/input.scss a {b: invert(red, 100.001)} <===> error/bounds/too_high/error Error: $weight: Expected 100.001 to be within 0 and 100. , 1 | a {b: invert(red, 100.001)} | ^^^^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> error/bounds/too_high/error-libsass Error: argument `$weight` of `invert($color, $weight: 100%)` must be between -0 and 100 on line 1:7 of input.scss, in function `invert` from line 1:7 of input.scss >> a {b: invert(red, 100.001)} ------^ sass-spec-libsass-3.6.3/spec/core_functions/color/lighten.hrx000066400000000000000000000106701355712145100243370ustar00rootroot00000000000000<===> max/input.scss a {b: lighten(red, 100%)} <===> max/output.css a { b: white; } <===> ================================================================================ <===> max_remaining/input.scss a {b: lighten(red, 50%)} <===> max_remaining/output.css a { b: white; } <===> ================================================================================ <===> min/input.scss a {b: lighten(red, 0%)} <===> min/output.css a { b: red; } <===> ================================================================================ <===> middle/input.scss a {b: lighten(red, 14%)} <===> middle/output.css a { b: #ff4747; } <===> ================================================================================ <===> fraction/input.scss a {b: lighten(red, 0.5%)} <===> fraction/output.css a { b: #ff0303; } <===> ================================================================================ <===> alpha/input.scss a {b: lighten(rgba(red, 0.4), 100%)} <===> alpha/output.css a { b: rgba(255, 255, 255, 0.4); } <===> ================================================================================ <===> named/input.scss a {b: lighten($color: red, $amount: 14%)} <===> named/output.css a { b: #ff4747; } <===> ================================================================================ <===> error/too_few_args/input.scss a {b: lighten(red)} <===> error/too_few_args/error Error: Missing argument $amount. , 1 | a {b: lighten(red)} | ^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> error/too_few_args/error-libsass Error: Function lighten is missing argument $amount. on line 1 of input.scss >> a {b: lighten(red)} ------^ <===> ================================================================================ <===> error/too_many_args/input.scss a {b: lighten(red, 1%, 2)} <===> error/too_many_args/error Error: Only 2 arguments allowed, but 3 were passed. , 1 | a {b: lighten(red, 1%, 2)} | ^^^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> error/too_many_args/error-libsass Error: wrong number of arguments (3 for 2) for `lighten' on line 1:7 of input.scss >> a {b: lighten(red, 1%, 2)} ------^ <===> ================================================================================ <===> error/type/color/input.scss a {b: lighten(1, 2)} <===> error/type/color/error Error: $color: 1 is not a color. , 1 | a {b: lighten(1, 2)} | ^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> error/type/color/error-libsass Error: argument `$color` of `lighten($color, $amount)` must be a color on line 1:7 of input.scss, in function `lighten` from line 1:7 of input.scss >> a {b: lighten(1, 2)} ------^ <===> ================================================================================ <===> error/type/lightness/input.scss a {b: lighten(red, blue)} <===> error/type/lightness/error Error: $amount: blue is not a number. , 1 | a {b: lighten(red, blue)} | ^^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> error/type/lightness/error-libsass Error: argument `$amount` of `lighten($color, $amount)` must be a number on line 1:7 of input.scss, in function `lighten` from line 1:7 of input.scss >> a {b: lighten(red, blue)} ------^ <===> ================================================================================ <===> error/bounds/too_low/input.scss a {b: lighten(red, -0.001)} <===> error/bounds/too_low/error Error: $amount: Expected -0.001 to be within 0 and 100. , 1 | a {b: lighten(red, -0.001)} | ^^^^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> error/bounds/too_low/error-libsass Error: argument `$amount` of `lighten($color, $amount)` must be between -0 and 100 on line 1:7 of input.scss, in function `lighten` from line 1:7 of input.scss >> a {b: lighten(red, -0.001)} ------^ <===> ================================================================================ <===> error/bounds/too_high/input.scss a {b: lighten(red, 100.001)} <===> error/bounds/too_high/error Error: $amount: Expected 100.001 to be within 0 and 100. , 1 | a {b: lighten(red, 100.001)} | ^^^^^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> error/bounds/too_high/error-libsass Error: argument `$amount` of `lighten($color, $amount)` must be between -0 and 100 on line 1:7 of input.scss, in function `lighten` from line 1:7 of input.scss >> a {b: lighten(red, 100.001)} ------^ sass-spec-libsass-3.6.3/spec/core_functions/color/lightness.hrx000066400000000000000000000044461355712145100247110ustar00rootroot00000000000000<===> max/input.scss a {b: lightness(hsl(0, 100%, 100%))} <===> max/output.css a { b: 100%; } <===> ================================================================================ <===> min/input.scss a {b: lightness(hsl(0, 100%, 0%))} <===> min/output.css a { b: 0%; } <===> ================================================================================ <===> middle/input.scss a {b: lightness(hsl(0, 100%, 50%))} <===> middle/output.css a { b: 50%; } <===> ================================================================================ <===> fraction/input.scss a {b: lightness(hsl(0, 100%, 0.5%))} <===> fraction/output.css a { b: 0.5%; } <===> ================================================================================ <===> named/input.scss a {b: lightness($color: hsl(0, 100%, 42%))} <===> named/output.css a { b: 42%; } <===> ================================================================================ <===> error/too_few_args/input.scss a {b: lightness()} <===> error/too_few_args/error Error: Missing argument $color. , 1 | a {b: lightness()} | ^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> error/too_few_args/error-libsass Error: Function lightness is missing argument $color. on line 1 of input.scss >> a {b: lightness()} ------^ <===> ================================================================================ <===> error/too_many_args/input.scss a {b: lightness(red, green)} <===> error/too_many_args/error Error: Only 1 argument allowed, but 2 were passed. , 1 | a {b: lightness(red, green)} | ^^^^^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> error/too_many_args/error-libsass Error: wrong number of arguments (2 for 1) for `lightness' on line 1:7 of input.scss >> a {b: lightness(red, green)} ------^ <===> ================================================================================ <===> error/type/input.scss a {b: lightness(1)} <===> error/type/error Error: $color: 1 is not a color. , 1 | a {b: lightness(1)} | ^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> error/type/error-libsass Error: argument `$color` of `lightness($color)` must be a color on line 1:7 of input.scss, in function `lightness` from line 1:7 of input.scss >> a {b: lightness(1)} ------^ sass-spec-libsass-3.6.3/spec/core_functions/color/mix.hrx000066400000000000000000000217061355712145100235040ustar00rootroot00000000000000<===> unweighted/min_and_max/input.scss // Each channel becomes the average of 255 and 0, which is 128 = 0xAA. a {b: mix(#ff00ff, #00ff00)} <===> unweighted/min_and_max/output.css a { b: gray; } <===> ================================================================================ <===> unweighted/identical/input.scss // If two channels have the same values, they should be the same in the output. a {b: mix(#123456, #123456)} <===> unweighted/identical/output.css a { b: #123456; } <===> ================================================================================ <===> unweighted/average/input.scss // All channels should be averaged across the two colors. a {b: mix(#91e16f, #0144bf)} <===> unweighted/average/output.css a { b: #499397; } <===> ================================================================================ <===> explicit_weight/even/input.scss a {b: mix(#91e16f, #0144bf, 50%)} <===> explicit_weight/even/output.css a { b: #499397; } <===> ================================================================================ <===> explicit_weight/first/input.scss a {b: mix(#91e16f, #0144bf, 100%)} <===> explicit_weight/first/output.css a { b: #91e16f; } <===> ================================================================================ <===> explicit_weight/last/input.scss a {b: mix(#91e16f, #0144bf, 0%)} <===> explicit_weight/last/output.css a { b: #0144bf; } <===> ================================================================================ <===> explicit_weight/firstwards/input.scss a {b: mix(#91e16f, #0144bf, 92%)} <===> explicit_weight/firstwards/output.css a { b: #85d475; } <===> ================================================================================ <===> explicit_weight/lastwards/input.scss a {b: mix(#91e16f, #0144bf, 43%)} <===> explicit_weight/lastwards/output.css a { b: #3f889d; } <===> ================================================================================ <===> alpha/even/input.scss a {b: mix(rgba(#91e16f, 0.3), rgba(#0144bf, 0.3))} <===> alpha/even/output.css a { b: rgba(73, 147, 151, 0.3); } <===> ================================================================================ <===> alpha/first/input.scss a {b: mix(#91e16f, transparent)} <===> alpha/first/output.css a { b: rgba(145, 225, 111, 0.5); } <===> ================================================================================ <===> alpha/last/input.scss a {b: mix(transparent, #0144bf)} <===> alpha/last/output.css a { b: rgba(1, 68, 191, 0.5); } <===> ================================================================================ <===> alpha/firstwards/input.scss a {b: mix(rgba(#91e16f, 0.8), rgba(#0144bf, 0.3))} <===> alpha/firstwards/output.css a { b: rgba(109, 186, 131, 0.55); } <===> ================================================================================ <===> alpha/lastwards/input.scss a {b: mix(rgba(#91e16f, 0.4), rgba(#0144bf, 0.9))} <===> alpha/lastwards/output.css a { b: rgba(37, 107, 171, 0.65); } <===> ================================================================================ <===> both_weights/transparent/first/input.scss a {b: mix(transparent, #0144bf, 70%)} <===> both_weights/transparent/first/output.css a { b: rgba(1, 68, 191, 0.3); } <===> ================================================================================ <===> both_weights/transparent/last/input.scss a {b: mix(#91e16f, transparent, 70%)} <===> both_weights/transparent/last/output.css a { b: rgba(145, 225, 111, 0.7); } <===> ================================================================================ <===> both_weights/weighted/first/input.scss a {b: mix(rgba(#91e16f, 0.2), rgba(#0144bf, 0.7), 100%)} <===> both_weights/weighted/first/output.css a { b: rgba(145, 225, 111, 0.2); } <===> ================================================================================ <===> both_weights/weighted/last/input.scss a {b: mix(rgba(#91e16f, 0.2), rgba(#0144bf, 0.7), 0%)} <===> both_weights/weighted/last/output.css a { b: rgba(1, 68, 191, 0.7); } <===> ================================================================================ <===> both_weights/mixed/firstwards/input.scss a {b: mix(rgba(#91e16f, 0.8), rgba(#0144bf, 0.3), 63%)} <===> both_weights/mixed/firstwards/output.css a { b: rgba(121, 199, 124, 0.615); } <===> ================================================================================ <===> both_weights/mixed/lastwards/input.scss a {b: mix(rgba(#91e16f, 0.2), rgba(#0144bf, 0.7), 42%)} <===> both_weights/mixed/lastwards/output.css a { b: rgba(29, 99, 175, 0.49); } <===> ================================================================================ <===> both_weights/contradiction/input.scss // When we weight entirely towards a transparent color, the formula for // computing the combined alpha would divide by zero, so we just return // transparent as a special case. a {b: mix(transparent, #0144bf, 100%)} <===> both_weights/contradiction/output.css a { b: rgba(0, 0, 0, 0); } <===> ================================================================================ <===> named/input.scss a {b: mix($color1: #91e16f, $color2: #0144bf, $weight: 92%)} <===> named/output.css a { b: #85d475; } <===> ================================================================================ <===> error/too_many_args/input.scss a {b: mix(red, blue, 100, 1)} <===> error/too_many_args/error Error: Only 3 arguments allowed, but 4 were passed. , 1 | a {b: mix(red, blue, 100, 1)} | ^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> error/too_many_args/error-libsass Error: wrong number of arguments (4 for 3) for `mix' on line 1:7 of input.scss >> a {b: mix(red, blue, 100, 1)} ------^ <===> ================================================================================ <===> error/too_few_args/input.scss a {b: mix(red)} <===> error/too_few_args/error Error: Missing argument $color2. , 1 | a {b: mix(red)} | ^^^^^^^^ ' input.scss 1:7 root stylesheet <===> error/too_few_args/error-libsass Error: Function mix is missing argument $color2. on line 1 of input.scss >> a {b: mix(red)} ------^ <===> ================================================================================ <===> error/type/color1/input.scss a {b: mix(1, blue)} <===> error/type/color1/error Error: $color1: 1 is not a color. , 1 | a {b: mix(1, blue)} | ^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> error/type/color1/error-libsass Error: argument `$color1` of `mix($color1, $color2, $weight: 50%)` must be a color on line 1:7 of input.scss, in function `mix` from line 1:7 of input.scss >> a {b: mix(1, blue)} ------^ <===> ================================================================================ <===> error/type/color2/input.scss a {b: mix(red, 1)} <===> error/type/color2/error Error: $color2: 1 is not a color. , 1 | a {b: mix(red, 1)} | ^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> error/type/color2/error-libsass Error: argument `$color2` of `mix($color1, $color2, $weight: 50%)` must be a color on line 1:7 of input.scss, in function `mix` from line 1:7 of input.scss >> a {b: mix(red, 1)} ------^ <===> ================================================================================ <===> error/type/weight/input.scss a {b: mix(red, blue, green)} <===> error/type/weight/error Error: $weight: green is not a number. , 1 | a {b: mix(red, blue, green)} | ^^^^^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> error/type/weight/error-libsass Error: argument `$weight` of `mix($color1, $color2, $weight: 50%)` must be a number on line 1:7 of input.scss, in function `mix` from line 1:7 of input.scss >> a {b: mix(red, blue, green)} ------^ <===> ================================================================================ <===> error/bounds/too_low/input.scss a {b: mix(red, blue, -0.001)} <===> error/bounds/too_low/error Error: $weight: Expected -0.001 to be within 0 and 100. , 1 | a {b: mix(red, blue, -0.001)} | ^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> error/bounds/too_low/error-libsass Error: argument `$weight` of `mix($color1, $color2, $weight: 50%)` must be between -0 and 100 on line 1:7 of input.scss, in function `mix` from line 1:7 of input.scss >> a {b: mix(red, blue, -0.001)} ------^ <===> ================================================================================ <===> error/bounds/too_high/input.scss a {b: mix(red, blue, 100.001)} <===> error/bounds/too_high/error Error: $weight: Expected 100.001 to be within 0 and 100. , 1 | a {b: mix(red, blue, 100.001)} | ^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> error/bounds/too_high/error-libsass Error: argument `$weight` of `mix($color1, $color2, $weight: 50%)` must be between -0 and 100 on line 1:7 of input.scss, in function `mix` from line 1:7 of input.scss >> a {b: mix(red, blue, 100.001)} ------^ sass-spec-libsass-3.6.3/spec/core_functions/color/red.hrx000066400000000000000000000037331355712145100234610ustar00rootroot00000000000000<===> max/input.scss a {b: red(rgb(255, 0, 0))} <===> max/output.css a { b: 255; } <===> ================================================================================ <===> min/input.scss a {b: red(rgb(0, 0, 0))} <===> min/output.css a { b: 0; } <===> ================================================================================ <===> middle/input.scss a {b: red(rgb(123, 0, 0))} <===> middle/output.css a { b: 123; } <===> ================================================================================ <===> named/input.scss a {b: red($color: rgb(234, 0, 0))} <===> named/output.css a { b: 234; } <===> ================================================================================ <===> error/too_few_args/input.scss a {b: red()} <===> error/too_few_args/error Error: Missing argument $color. , 1 | a {b: red()} | ^^^^^ ' input.scss 1:7 root stylesheet <===> error/too_few_args/error-libsass Error: Function red is missing argument $color. on line 1 of input.scss >> a {b: red()} ------^ <===> ================================================================================ <===> error/too_many_args/input.scss a {b: red(red, green)} <===> error/too_many_args/error Error: Only 1 argument allowed, but 2 were passed. , 1 | a {b: red(red, green)} | ^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> error/too_many_args/error-libsass Error: wrong number of arguments (2 for 1) for `red' on line 1:7 of input.scss >> a {b: red(red, green)} ------^ <===> ================================================================================ <===> error/type/input.scss a {b: red(1)} <===> error/type/error Error: $color: 1 is not a color. , 1 | a {b: red(1)} | ^^^^^^ ' input.scss 1:7 root stylesheet <===> error/type/error-libsass Error: argument `$color` of `red($color)` must be a color on line 1:7 of input.scss, in function `red` from line 1:7 of input.scss >> a {b: red(1)} ------^ sass-spec-libsass-3.6.3/spec/core_functions/color/rgb/000077500000000000000000000000001355712145100227305ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/core_functions/color/rgb/error/000077500000000000000000000000001355712145100240615ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/core_functions/color/rgb/error/five_args.hrx000066400000000000000000000005641355712145100265560ustar00rootroot00000000000000<===> input.scss five-args { x: rgb(1, 2, 3, 0.4, 5); } <===> error Error: Only 1 argument allowed, but 5 were passed. , 2 | x: rgb(1, 2, 3, 0.4, 5); | ^^^^^^^^^^^^^^^^^^^^ ' input.scss 2:6 root stylesheet <===> error-libsass Error: wrong number of arguments (5 for 3) for `rgb' on line 2 of input.scss >> x: rgb(1, 2, 3, 0.4, 5); -----^ sass-spec-libsass-3.6.3/spec/core_functions/color/rgb/error/four_args.hrx000066400000000000000000000025111355712145100265720ustar00rootroot00000000000000<===> options.yml --- :todo: - sass/libsass#2722 <===> ================================================================================ <===> red/type/input.scss red-type { x: rgb("foo", 0, 0, 0.5); } <===> red/type/error Error: $red: "foo" is not a number. , 2 | x: rgb("foo", 0, 0, 0.5); | ^^^^^^^^^^^^^^^^^^^^^ ' input.scss 2:6 root stylesheet <===> ================================================================================ <===> green/type/input.scss green-type { x: rgb(0, "foo", 0, 0.5); } <===> green/type/error Error: $green: "foo" is not a number. , 2 | x: rgb(0, "foo", 0, 0.5); | ^^^^^^^^^^^^^^^^^^^^^ ' input.scss 2:6 root stylesheet <===> ================================================================================ <===> blue/type/input.scss blue-type { x: rgb(0, 0, "foo", 0.5); } <===> blue/type/error Error: $blue: "foo" is not a number. , 2 | x: rgb(0, 0, "foo", 0.5); | ^^^^^^^^^^^^^^^^^^^^^ ' input.scss 2:6 root stylesheet <===> ================================================================================ <===> alpha/unit/input.scss .alpha-unit { a: rgb(0, 0, 0, 0.5px); } <===> alpha/unit/error Error: $alpha: Expected 0.5px to have no units or "%". , 2 | a: rgb(0, 0, 0, 0.5px); | ^^^^^^^^^^^^^^^^^^^ ' input.scss 2:6 root stylesheet sass-spec-libsass-3.6.3/spec/core_functions/color/rgb/error/one_arg.hrx000066400000000000000000000061421355712145100262210ustar00rootroot00000000000000<===> options.yml --- :todo: - sass/libsass#2722 <===> ================================================================================ <===> list/empty/input.scss empty { x: rgb(()); } <===> list/empty/error Error: Missing element $red. , 2 | x: rgb(()); | ^^^^^^^ ' input.scss 2:6 root stylesheet <===> ================================================================================ <===> list/one_element/input.scss one-element { x: rgb(1); } <===> list/one_element/error Error: Missing element $green. , 2 | x: rgb(1); | ^^^^^^ ' input.scss 2:6 root stylesheet <===> ================================================================================ <===> list/two_elements/input.scss two-elements { x: rgb(1 2); } <===> list/two_elements/error Error: Missing element $blue. , 2 | x: rgb(1 2); | ^^^^^^^^ ' input.scss 2:6 root stylesheet <===> ================================================================================ <===> list/four_elements/input.scss four-elements { x: rgb(1 2 3 0.4); } <===> list/four_elements/error Error: Only 3 elements allowed, but 4 were passed. , 2 | x: rgb(1 2 3 0.4); | ^^^^^^^^^^^^^^ ' input.scss 2:6 root stylesheet <===> ================================================================================ <===> list/comma_separated/input.scss comma-separated { x: rgb((1, 2, 3)); } <===> list/comma_separated/error Error: $channels must be a space-separated list. , 2 | x: rgb((1, 2, 3)); | ^^^^^^^^^^^^^^ ' input.scss 2:6 root stylesheet <===> ================================================================================ <===> list/bracketed/input.scss bracketed { x: rgb([1 2 3]); } <===> list/bracketed/error Error: $channels must be an unbracketed list. , 2 | x: rgb([1 2 3]); | ^^^^^^^^^^^^ ' input.scss 2:6 root stylesheet <===> ================================================================================ <===> type/red/input.scss red-type { x: rgb("foo" 2 3); } <===> type/red/error Error: $red: "foo" is not a number. , 2 | x: rgb("foo" 2 3); | ^^^^^^^^^^^^^^ ' input.scss 2:6 root stylesheet <===> ================================================================================ <===> type/green/input.scss green-type { x: rgb(1 "foo" 3); } <===> type/green/error Error: $green: "foo" is not a number. , 2 | x: rgb(1 "foo" 3); | ^^^^^^^^^^^^^^ ' input.scss 2:6 root stylesheet <===> ================================================================================ <===> type/blue/input.scss blue-type { x: rgb(1 2 "foo"); } <===> type/blue/error Error: $blue: "foo" is not a number. , 2 | x: rgb(1 2 "foo"); | ^^^^^^^^^^^^^^ ' input.scss 2:6 root stylesheet <===> ================================================================================ <===> quoted_var_slash/input.scss quoted-var-slash { x: rgb(1 2 "var(--foo) / 0.4"); } <===> quoted_var_slash/error Error: $blue: "var(--foo) / 0.4" is not a number. , 2 | x: rgb(1 2 "var(--foo) / 0.4"); | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 2:6 root stylesheet sass-spec-libsass-3.6.3/spec/core_functions/color/rgb/error/three_args.hrx000066400000000000000000000027551355712145100267400ustar00rootroot00000000000000<===> red/type/input.scss red-type { x: rgb("foo", 0, 0); } <===> red/type/error Error: $red: "foo" is not a number. , 2 | x: rgb("foo", 0, 0); | ^^^^^^^^^^^^^^^^ ' input.scss 2:6 root stylesheet <===> red/type/error-libsass Error: argument `$red` of `rgb($red, $green, $blue)` must be a number on line 2:6 of input.scss, in function `rgb` from line 2:6 of input.scss >> x: rgb("foo", 0, 0); -----^ <===> ================================================================================ <===> green/type/input.scss green-type { x: rgb(0, "foo", 0); } <===> green/type/error Error: $green: "foo" is not a number. , 2 | x: rgb(0, "foo", 0); | ^^^^^^^^^^^^^^^^ ' input.scss 2:6 root stylesheet <===> green/type/error-libsass Error: argument `$green` of `rgb($red, $green, $blue)` must be a number on line 2:6 of input.scss, in function `rgb` from line 2:6 of input.scss >> x: rgb(0, "foo", 0); -----^ <===> ================================================================================ <===> blue/type/input.scss blue-type { x: rgb(0, 0, "foo"); } <===> blue/type/error Error: $blue: "foo" is not a number. , 2 | x: rgb(0, 0, "foo"); | ^^^^^^^^^^^^^^^^ ' input.scss 2:6 root stylesheet <===> blue/type/error-libsass Error: argument `$blue` of `rgb($red, $green, $blue)` must be a number on line 2:6 of input.scss, in function `rgb` from line 2:6 of input.scss >> x: rgb(0, 0, "foo"); -----^ sass-spec-libsass-3.6.3/spec/core_functions/color/rgb/error/two_args.hrx000066400000000000000000000017441355712145100264370ustar00rootroot00000000000000<===> options.yml --- :todo: - sass/libsass#2722 <===> ================================================================================ <===> color/type/input.scss color-type { x: rgb("foo", 0.5); } <===> color/type/error Error: $color: "foo" is not a color. , 2 | x: rgb("foo", 0.5); | ^^^^^^^^^^^^^^^ ' input.scss 2:6 root stylesheet <===> ================================================================================ <===> alpha/type/input.scss alpha-type { x: rgb(#123, "foo"); } <===> alpha/type/error Error: $alpha: "foo" is not a number. , 2 | x: rgb(#123, "foo"); | ^^^^^^^^^^^^^^^^ ' input.scss 2:6 root stylesheet <===> ================================================================================ <===> alpha/unit/input.scss .alpha-unit { a: rgb(#123, 0.5px); } <===> alpha/unit/error Error: $alpha: Expected 0.5px to have no units or "%". , 2 | a: rgb(#123, 0.5px); | ^^^^^^^^^^^^^^^^ ' input.scss 2:6 root stylesheet sass-spec-libsass-3.6.3/spec/core_functions/color/rgb/four_args/000077500000000000000000000000001355712145100247175ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/core_functions/color/rgb/four_args/alpha.hrx000066400000000000000000000036531355712145100265360ustar00rootroot00000000000000<===> percent/negative/input.scss a {b: rgb(0, 0, 0, -10%)} <===> percent/negative/output.css a { b: rgba(0, 0, 0, 0); } <===> ================================================================================ <===> percent/min/input.scss a {b: rgb(0, 0, 0, 0%)} <===> percent/min/output.css a { b: rgba(0, 0, 0, 0); } <===> ================================================================================ <===> percent/positive/input.scss a {b: rgb(0, 0, 0, 45.6%)} <===> percent/positive/output.css a { b: rgba(0, 0, 0, 0.456); } <===> ================================================================================ <===> percent/max/input.scss a {b: rgb(0, 0, 0, 100%)} <===> percent/max/output.css a { b: black; } <===> ================================================================================ <===> percent/above/max/input.scss a {b: rgb(0, 0, 0, 250%)} <===> percent/above/max/output.css a { b: black; } <===> ================================================================================ <===> unitless/negative/input.scss a {b: rgb(0, 0, 0, -10)} <===> unitless/negative/output.css a { b: rgba(0, 0, 0, 0); } <===> ================================================================================ <===> unitless/min/input.scss a {b: rgb(0, 0, 0, 0)} <===> unitless/min/output.css a { b: rgba(0, 0, 0, 0); } <===> ================================================================================ <===> unitless/positive/input.scss a {b: rgb(0, 0, 0, 0.456)} <===> unitless/positive/output.css a { b: rgba(0, 0, 0, 0.456); } <===> ================================================================================ <===> unitless/max/input.scss a {b: rgb(0, 0, 0, 1)} <===> unitless/max/output.css a { b: black; } <===> ================================================================================ <===> unitless/above/max/input.scss a {b: rgb(0, 0, 0, 250)} <===> unitless/above/max/output.css a { b: black; } sass-spec-libsass-3.6.3/spec/core_functions/color/rgb/four_args/clamped.hrx000066400000000000000000000020251355712145100270460ustar00rootroot00000000000000<===> README.md Channels that are out of bounds are clamped within bounds. <===> ================================================================================ <===> red/input.scss a {b: rgb(256, 0, 0, 0.5)} <===> red/output.css a { b: rgba(255, 0, 0, 0.5); } <===> ================================================================================ <===> green/input.scss a {b: rgb(0, -1, 0, 0.5)} <===> green/output.css a { b: rgba(0, 0, 0, 0.5); } <===> ================================================================================ <===> blue/input.scss a {b: rgb(0, 0, 9999, 0.5)} <===> blue/output.css a { b: rgba(0, 0, 255, 0.5); } <===> ================================================================================ <===> alpha/above/input.scss a {b: rgb(0, 0, 0, 1.1)} <===> alpha/above/output.css a { b: black; } <===> ================================================================================ <===> alpha/below/input.scss a {b: rgb(0, 0, 0, -0.1)} <===> alpha/below/output.css a { b: rgba(0, 0, 0, 0); } sass-spec-libsass-3.6.3/spec/core_functions/color/rgb/four_args/in_gamut.hrx000066400000000000000000000013361355712145100272500ustar00rootroot00000000000000<===> transparent/input.scss a {b: rgb(0, 255, 127, 0)} <===> transparent/output.css a { b: rgba(0, 255, 127, 0); } <===> ================================================================================ <===> opaque/input.scss a {b: rgb(190, 173, 237, 1)} <===> opaque/output.css a { b: #beaded; } <===> ================================================================================ <===> partial/input.scss a {b: rgb(18, 52, 86, 0.5)} <===> partial/output.css a { b: rgba(18, 52, 86, 0.5); } <===> ================================================================================ <===> named/input.scss a {b: rgb($red: 0, $green: 255, $blue: 127, $alpha: 0.3)} <===> named/output.css a { b: rgba(0, 255, 127, 0.3); } sass-spec-libsass-3.6.3/spec/core_functions/color/rgb/four_args/options.yml000066400000000000000000000000371355712145100271350ustar00rootroot00000000000000--- :todo: - sass/libsass#2722 sass-spec-libsass-3.6.3/spec/core_functions/color/rgb/four_args/special_functions.hrx000066400000000000000000000121201355712145100311460ustar00rootroot00000000000000<===> options.yml --- :todo: - sass/libsass#2726 <===> ================================================================================ <===> calc/arg_1/input.scss a {b: rgb(calc(1), 2, 3, 0.4)} <===> calc/arg_1/output.css a { b: rgb(calc(1), 2, 3, 0.4); } <===> ================================================================================ <===> calc/arg_2/input.scss a {b: rgb(1, calc(2), 3, 0.4)} <===> calc/arg_2/output.css a { b: rgb(1, calc(2), 3, 0.4); } <===> ================================================================================ <===> calc/arg_3/input.scss a {b: rgb(1, 2, calc(3), 0.4)} <===> calc/arg_3/output.css a { b: rgb(1, 2, calc(3), 0.4); } <===> ================================================================================ <===> calc/arg_4/input.scss a {b: rgb(1, 2, 3, calc(0.4))} <===> calc/arg_4/output.css a { b: rgb(1, 2, 3, calc(0.4)); } <===> ================================================================================ <===> var/arg_1/input.scss a {b: rgb(var(--foo), 2, 3, 0.4)} <===> var/arg_1/output.css a { b: rgb(var(--foo), 2, 3, 0.4); } <===> ================================================================================ <===> var/arg_2/input.scss a {b: rgb(1, var(--foo), 3, 0.4)} <===> var/arg_2/output.css a { b: rgb(1, var(--foo), 3, 0.4); } <===> ================================================================================ <===> var/arg_3/input.scss a {b: rgb(1, 2, var(--foo), 0.4)} <===> var/arg_3/output.css a { b: rgb(1, 2, var(--foo), 0.4); } <===> ================================================================================ <===> var/arg_4/input.scss a {b: rgb(1, 2, 3, var(--foo))} <===> var/arg_4/output.css a { b: rgb(1, 2, 3, var(--foo)); } <===> ================================================================================ <===> env/arg_1/input.scss a {b: rgb(env(--foo), 2, 3, 0.4)} <===> env/arg_1/output.css a { b: rgb(env(--foo), 2, 3, 0.4); } <===> ================================================================================ <===> env/arg_2/input.scss a {b: rgb(1, env(--foo), 3, 0.4)} <===> env/arg_2/output.css a { b: rgb(1, env(--foo), 3, 0.4); } <===> ================================================================================ <===> env/arg_3/input.scss a {b: rgb(1, 2, env(--foo), 0.4)} <===> env/arg_3/output.css a { b: rgb(1, 2, env(--foo), 0.4); } <===> ================================================================================ <===> env/arg_4/input.scss a {b: rgb(1, 2, 3, env(--foo))} <===> env/arg_4/output.css a { b: rgb(1, 2, 3, env(--foo)); } <===> ================================================================================ <===> min/arg_1/input.scss a {b: rgb(min(1), 2, 3, 0.4)} <===> min/arg_1/output.css a { b: rgb(min(1), 2, 3, 0.4); } <===> ================================================================================ <===> min/arg_2/input.scss a {b: rgb(1, min(2), 3, 0.4)} <===> min/arg_2/output.css a { b: rgb(1, min(2), 3, 0.4); } <===> ================================================================================ <===> min/arg_3/input.scss a {b: rgb(1, 2, min(3), 0.4)} <===> min/arg_3/output.css a { b: rgb(1, 2, min(3), 0.4); } <===> ================================================================================ <===> min/arg_4/input.scss a {b: rgb(1, 2, 3, min(0.4))} <===> min/arg_4/output.css a { b: rgb(1, 2, 3, min(0.4)); } <===> ================================================================================ <===> max/arg_1/input.scss a {b: rgb(max(1), 2, 3, 0.4)} <===> max/arg_1/output.css a { b: rgb(max(1), 2, 3, 0.4); } <===> ================================================================================ <===> max/arg_2/input.scss a {b: rgb(1, max(2), 3, 0.4)} <===> max/arg_2/output.css a { b: rgb(1, max(2), 3, 0.4); } <===> ================================================================================ <===> max/arg_3/input.scss a {b: rgb(1, 2, max(3), 0.4)} <===> max/arg_3/output.css a { b: rgb(1, 2, max(3), 0.4); } <===> ================================================================================ <===> max/arg_4/input.scss a {b: rgb(1, 2, 3, max(0.4))} <===> max/arg_4/output.css a { b: rgb(1, 2, 3, max(0.4)); } <===> ================================================================================ <===> calc/arg_2/args/input.scss a {b: rgb(blue, calc(0.4))} <===> calc/arg_2/args/output.css a { b: rgb(0, 0, 255, calc(0.4)); } <===> ================================================================================ <===> var/arg_2/args/alpha/input.scss a {b: rgb(blue, var(--foo))} <===> var/arg_2/args/alpha/output.css a { b: rgb(0, 0, 255, var(--foo)); } <===> ================================================================================ <===> var/arg_2/args/color/input.scss a {b: rgb(var(--foo), 0.4)} <===> var/arg_2/args/color/output.css a { b: rgb(var(--foo), 0.4); } <===> ================================================================================ <===> var/arg_2/args/both/input.scss a {b: rgb(var(--foo), var(--foo))} <===> var/arg_2/args/both/output.css a { b: rgb(var(--foo), var(--foo)); } sass-spec-libsass-3.6.3/spec/core_functions/color/rgb/multi_argument_var.hrx000066400000000000000000000024501355712145100273600ustar00rootroot00000000000000<===> 1_of_3/input.scss // var() is substituted before parsing, so it may contain multiple arguments. a {b: rgb(var(--foo), 3, 0.4)} <===> 1_of_3/output.css a { b: rgb(var(--foo), 3, 0.4); } <===> ================================================================================ <===> 2_of_3/input.scss a {b: rgb(1, var(--foo), 0.4)} <===> 2_of_3/output.css a { b: rgb(1, var(--foo), 0.4); } <===> ================================================================================ <===> 3_of_3/input.scss a {b: rgb(1, 2, var(--foo))} <===> 3_of_3/output.css a { b: rgb(1, 2, var(--foo)); } <===> ================================================================================ <===> 1_of_2/options.yml --- :todo: - libsass <===> 1_of_2/input.scss a {b: rgb(var(--foo), 0.4)} <===> 1_of_2/output.css a { b: rgb(var(--foo), 0.4); } <===> ================================================================================ <===> 2_of_2/options.yml --- :todo: - libsass <===> 2_of_2/input.scss a {b: rgb(1, var(--foo))} <===> 2_of_2/output.css a { b: rgb(1, var(--foo)); } <===> ================================================================================ <===> 1_of_1/options.yml --- :todo: - libsass <===> 1_of_1/input.scss a {b: rgb(var(--foo))} <===> 1_of_1/output.css a { b: rgb(var(--foo)); } sass-spec-libsass-3.6.3/spec/core_functions/color/rgb/one_arg/000077500000000000000000000000001355712145100243425ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/core_functions/color/rgb/one_arg/alpha.hrx000066400000000000000000000056371355712145100261650ustar00rootroot00000000000000<===> in_gamut/transparent/input.scss a {b: rgb(0 255 127 / 0)} <===> in_gamut/transparent/output.css a { b: rgba(0, 255, 127, 0); } <===> ================================================================================ <===> in_gamut/opaque/input.scss a {b: rgb(190 173 237 / 1)} <===> in_gamut/opaque/output.css a { b: #beaded; } <===> ================================================================================ <===> in_gamut/partial/input.scss a {b: rgb(18 52 86 / 0.5)} <===> in_gamut/partial/output.css a { b: rgba(18, 52, 86, 0.5); } <===> ================================================================================ <===> in_gamut/percent/input.scss a {b: rgb(18 52 86 / 50%)} <===> in_gamut/percent/output.css a { b: rgba(18, 52, 86, 0.5); } <===> ================================================================================ <===> in_gamut/named/input.scss a {b: rgb($channels: 0 255 127 / 0.3)} <===> in_gamut/named/output.css a { b: rgba(0, 255, 127, 0.3); } <===> ================================================================================ <===> in_gamut/parenthesized/input.scss // Extra parens shouldn't cause the slash to be forced into division. a {b: rgb(0 255 127 / 0.3)} <===> in_gamut/parenthesized/output.css a { b: rgba(0, 255, 127, 0.3); } <===> ================================================================================ <===> clamped/README.md Channels that are out of bounds are clamped within bounds. <===> ================================================================================ <===> clamped/red/input.scss a {b: rgb(256 0 0 / 0.5)} <===> clamped/red/output.css a { b: rgba(255, 0, 0, 0.5); } <===> ================================================================================ <===> clamped/green/input.scss a {b: rgb(0 -1 0 / 0.5)} <===> clamped/green/output.css a { b: rgba(0, 0, 0, 0.5); } <===> ================================================================================ <===> clamped/blue/input.scss a {b: rgb(0 0 9999 / 0.5)} <===> clamped/blue/output.css a { b: rgba(0, 0, 255, 0.5); } <===> ================================================================================ <===> clamped/alpha/above/input.scss a {b: rgb(0 0 0 / 1.1)} <===> clamped/alpha/above/output.css a { b: black; } <===> ================================================================================ <===> clamped/alpha/below/input.scss a {b: rgb(0 0 0 / -0.1)} <===> clamped/alpha/below/output.css a { b: rgba(0, 0, 0, 0); } <===> ================================================================================ <===> clamped/alpha/above/percent/input.scss a {b: rgb(0 0 0 / 250%)} <===> clamped/alpha/above/percent/output.css a { b: black; } <===> ================================================================================ <===> clamped/alpha/below/percent/input.scss a {b: rgb(0 0 0 / -10%)} <===> clamped/alpha/below/percent/output.css a { b: rgba(0, 0, 0, 0); } sass-spec-libsass-3.6.3/spec/core_functions/color/rgb/one_arg/no_alpha.hrx000066400000000000000000000067641355712145100266630ustar00rootroot00000000000000<===> unitless/README.md Channels may be specified as unitless numbers between 0 and 255. <===> ================================================================================ <===> unitless/numbers/input.scss a {b: rgb(18 52 86)} <===> unitless/numbers/output.css a { b: #123456; } <===> ================================================================================ <===> unitless/beaded/input.scss a {b: rgb(190 173 237)} <===> unitless/beaded/output.css a { b: #beaded; } <===> ================================================================================ <===> unitless/springgreen/input.scss a {b: rgb(0 255 127)} <===> unitless/springgreen/output.css a { b: springgreen; } <===> ================================================================================ <===> unitless/named/input.scss a {b: rgb($channels: 0 255 127)} <===> unitless/named/output.css a { b: springgreen; } <===> ================================================================================ <===> unitless/clamped/README.md Channels that are out of bounds are clamped within bounds. <===> ================================================================================ <===> unitless/clamped/red/input.scss a {b: rgb(256 0 0)} <===> unitless/clamped/red/output.css a { b: red; } <===> ================================================================================ <===> unitless/clamped/green/input.scss a {b: rgb(0 -1 0)} <===> unitless/clamped/green/output.css a { b: black; } <===> ================================================================================ <===> unitless/clamped/blue/input.scss a {b: rgb(0 0 9999)} <===> unitless/clamped/blue/output.css a { b: blue; } <===> ================================================================================ <===> percents/README.md Channels may also be specified as percents between 0% and 100%, which may be // mixed with unitless numbers. <===> ================================================================================ <===> percents/all/percent/input.scss a {b: rgb(7.1% 20.4% 33.9%)} <===> percents/all/percent/output.css a { b: #123456; } <===> ================================================================================ <===> percents/unitless/green/input.scss a {b: rgb(74.7% 173 93%)} <===> percents/unitless/green/output.css a { b: #beaded; } <===> ================================================================================ <===> percents/percent/green/input.scss a {b: rgb(190 68% 237)} <===> percents/percent/green/output.css a { b: #beaded; } <===> ================================================================================ <===> percents/boundaries/input.scss a {b: rgb(0% 100% 50%)} <===> percents/boundaries/output.css a { b: #00ff80; } <===> ================================================================================ <===> percents/clamped/README.md Channels that are out of bounds are clamped within bounds. <===> ================================================================================ <===> percents/clamped/red/input.scss a {b: rgb(100.1% 0 0)} <===> percents/clamped/red/output.css a { b: red; } <===> ================================================================================ <===> percents/clamped/green/input.scss a {b: rgb(0 -0.1% 0)} <===> percents/clamped/green/output.css a { b: black; } <===> ================================================================================ <===> percents/clamped/blue/input.scss a {b: rgb(0 0 200%)} <===> percents/clamped/blue/output.css a { b: blue; } sass-spec-libsass-3.6.3/spec/core_functions/color/rgb/one_arg/options.yml000066400000000000000000000000371355712145100265600ustar00rootroot00000000000000--- :todo: - sass/libsass#2722 sass-spec-libsass-3.6.3/spec/core_functions/color/rgb/one_arg/special_functions.hrx000066400000000000000000000222551355712145100306030ustar00rootroot00000000000000<===> options.yml --- :todo: - sass/libsass#2726 <===> ================================================================================ <===> no_alpha/calc/arg_1/input.scss a {b: rgb(calc(1) 2 3)} <===> no_alpha/calc/arg_1/output.css a { b: rgb(calc(1), 2, 3); } <===> ================================================================================ <===> no_alpha/calc/arg_2/input.scss a {b: rgb(1 calc(2) 3)} <===> no_alpha/calc/arg_2/output.css a { b: rgb(1, calc(2), 3); } <===> ================================================================================ <===> no_alpha/calc/arg_3/input.scss a {b: rgb(1 2 calc(3))} <===> no_alpha/calc/arg_3/output.css a { b: rgb(1, 2, calc(3)); } <===> ================================================================================ <===> no_alpha/var/arg_1/input.scss a {b: rgb(var(--foo) 2 3)} <===> no_alpha/var/arg_1/output.css a { b: rgb(var(--foo), 2, 3); } <===> ================================================================================ <===> no_alpha/var/arg_2/input.scss a {b: rgb(1 var(--foo) 3)} <===> no_alpha/var/arg_2/output.css a { b: rgb(1, var(--foo), 3); } <===> ================================================================================ <===> no_alpha/var/arg_3/input.scss a {b: rgb(1 2 var(--foo))} <===> no_alpha/var/arg_3/output.css a { b: rgb(1, 2, var(--foo)); } <===> ================================================================================ <===> no_alpha/env/arg_1/input.scss a {b: rgb(env(--foo) 2 3)} <===> no_alpha/env/arg_1/output.css a { b: rgb(env(--foo), 2, 3); } <===> ================================================================================ <===> no_alpha/env/arg_2/input.scss a {b: rgb(1 env(--foo) 3)} <===> no_alpha/env/arg_2/output.css a { b: rgb(1, env(--foo), 3); } <===> ================================================================================ <===> no_alpha/env/arg_3/input.scss a {b: rgb(1 2 env(--foo))} <===> no_alpha/env/arg_3/output.css a { b: rgb(1, 2, env(--foo)); } <===> ================================================================================ <===> no_alpha/min/arg_1/input.scss a {b: rgb(min(1) 2 3)} <===> no_alpha/min/arg_1/output.css a { b: rgb(min(1), 2, 3); } <===> ================================================================================ <===> no_alpha/min/arg_2/input.scss a {b: rgb(1 min(2) 3)} <===> no_alpha/min/arg_2/output.css a { b: rgb(1, min(2), 3); } <===> ================================================================================ <===> no_alpha/min/arg_3/input.scss a {b: rgb(1 2 min(3))} <===> no_alpha/min/arg_3/output.css a { b: rgb(1, 2, min(3)); } <===> ================================================================================ <===> no_alpha/max/arg_1/input.scss a {b: rgb(max(1) 2 3)} <===> no_alpha/max/arg_1/output.css a { b: rgb(max(1), 2, 3); } <===> ================================================================================ <===> no_alpha/max/arg_2/input.scss a {b: rgb(1 max(2) 3)} <===> no_alpha/max/arg_2/output.css a { b: rgb(1, max(2), 3); } <===> ================================================================================ <===> no_alpha/max/arg_3/input.scss a {b: rgb(1 2 max(3))} <===> no_alpha/max/arg_3/output.css a { b: rgb(1, 2, max(3)); } <===> ================================================================================ <===> no_alpha/multi_argument_var/1_of_2/input.scss // var() is substituted before parsing, so it may contain multiple arguments. a {b: rgb(var(--foo) 2)} <===> no_alpha/multi_argument_var/1_of_2/output.css a { b: rgb(var(--foo) 2); } <===> ================================================================================ <===> no_alpha/multi_argument_var/2_of_2/input.scss a {b: rgb(1 var(--foo))} <===> no_alpha/multi_argument_var/2_of_2/output.css a { b: rgb(1 var(--foo)); } <===> ================================================================================ <===> no_alpha/multi_argument_var/1_of_1/input.scss a {b: rgb(var(--foo))} <===> no_alpha/multi_argument_var/1_of_1/output.css a { b: rgb(var(--foo)); } <===> ================================================================================ <===> alpha/calc/arg_1/input.scss a {b: rgb(calc(1) 2 3 / 0.4)} <===> alpha/calc/arg_1/output.css a { b: rgb(calc(1), 2, 3, 0.4); } <===> ================================================================================ <===> alpha/calc/arg_2/input.scss a {b: rgb(1 calc(2) 3 / 0.4)} <===> alpha/calc/arg_2/output.css a { b: rgb(1, calc(2), 3, 0.4); } <===> ================================================================================ <===> alpha/calc/arg_3/input.scss a {b: rgb(1 2 calc(3) / 0.4)} <===> alpha/calc/arg_3/output.css a { b: rgb(1 2 calc(3)/0.4); } <===> ================================================================================ <===> alpha/calc/arg_4/input.scss a {b: rgb(1 2 3 / calc(0.4))} <===> alpha/calc/arg_4/output.css a { b: rgb(1 2 3/calc(0.4)); } <===> ================================================================================ <===> alpha/var/arg_1/input.scss a {b: rgb(var(--foo) 2 3 / 0.4)} <===> alpha/var/arg_1/output.css a { b: rgb(var(--foo), 2, 3, 0.4); } <===> ================================================================================ <===> alpha/var/arg_2/input.scss a {b: rgb(1 var(--foo) 3 / 0.4)} <===> alpha/var/arg_2/output.css a { b: rgb(1, var(--foo), 3, 0.4); } <===> ================================================================================ <===> alpha/var/arg_3/input.scss a {b: rgb(1 2 var(--foo) / 0.4)} <===> alpha/var/arg_3/output.css a { b: rgb(1 2 var(--foo)/0.4); } <===> ================================================================================ <===> alpha/var/arg_4/input.scss a {b: rgb(1 2 3 / var(--foo))} <===> alpha/var/arg_4/output.css a { b: rgb(1 2 3/var(--foo)); } <===> ================================================================================ <===> alpha/env/arg_1/input.scss a {b: rgb(env(--foo) 2 3 / 0.4)} <===> alpha/env/arg_1/output.css a { b: rgb(env(--foo), 2, 3, 0.4); } <===> ================================================================================ <===> alpha/env/arg_2/input.scss a {b: rgb(1 env(--foo) 3 / 0.4)} <===> alpha/env/arg_2/output.css a { b: rgb(1, env(--foo), 3, 0.4); } <===> ================================================================================ <===> alpha/env/arg_3/input.scss a {b: rgb(1 2 env(--foo) / 0.4)} <===> alpha/env/arg_3/output.css a { b: rgb(1 2 env(--foo)/0.4); } <===> ================================================================================ <===> alpha/env/arg_4/input.scss a {b: rgb(1 2 3 / env(--foo))} <===> alpha/env/arg_4/output.css a { b: rgb(1 2 3/env(--foo)); } <===> ================================================================================ <===> alpha/min/arg_1/input.scss a {b: rgb(min(1) 2 3 / 0.4)} <===> alpha/min/arg_1/output.css a { b: rgb(min(1), 2, 3, 0.4); } <===> ================================================================================ <===> alpha/min/arg_2/input.scss a {b: rgb(1 min(2) 3 / 0.4)} <===> alpha/min/arg_2/output.css a { b: rgb(1, min(2), 3, 0.4); } <===> ================================================================================ <===> alpha/min/arg_3/input.scss a {b: rgb(1 2 min(3) / 0.4)} <===> alpha/min/arg_3/output.css a { b: rgb(1 2 min(3)/0.4); } <===> ================================================================================ <===> alpha/min/arg_4/input.scss a {b: rgb(1 2 3 / min(0.4))} <===> alpha/min/arg_4/output.css a { b: rgb(1 2 3/min(0.4)); } <===> ================================================================================ <===> alpha/max/arg_1/input.scss a {b: rgb(max(1) 2 3 / 0.4)} <===> alpha/max/arg_1/output.css a { b: rgb(max(1), 2, 3, 0.4); } <===> ================================================================================ <===> alpha/max/arg_2/input.scss a {b: rgb(1 max(2) 3 / 0.4)} <===> alpha/max/arg_2/output.css a { b: rgb(1, max(2), 3, 0.4); } <===> ================================================================================ <===> alpha/max/arg_3/input.scss a {b: rgb(1 2 max(3) / 0.4)} <===> alpha/max/arg_3/output.css a { b: rgb(1 2 max(3)/0.4); } <===> ================================================================================ <===> alpha/max/arg_4/input.scss a {b: rgb(1 2 3 / max(0.4))} <===> alpha/max/arg_4/output.css a { b: rgb(1 2 3/max(0.4)); } <===> ================================================================================ <===> alpha/multi_argument_var/1_of_2/input.scss // var() is substituted before parsing, so it may contain multiple arguments. a {b: rgb(var(--foo) 2 / 0.4)} <===> alpha/multi_argument_var/1_of_2/output.css a { b: rgb(var(--foo) 2/0.4); } <===> ================================================================================ <===> alpha/multi_argument_var/2_of_2/input.scss a {b: rgb(1 var(--foo) / 0.4)} <===> alpha/multi_argument_var/2_of_2/output.css a { b: rgb(1 var(--foo)/0.4); } <===> ================================================================================ <===> alpha/multi_argument_var/1_of_1/input.scss a {b: rgb(var(--foo) / 0.4)} <===> alpha/multi_argument_var/1_of_1/output.css a { b: rgb(var(--foo)/0.4); } sass-spec-libsass-3.6.3/spec/core_functions/color/rgb/three_args/000077500000000000000000000000001355712145100250535ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/core_functions/color/rgb/three_args/percents.hrx000066400000000000000000000033121355712145100274200ustar00rootroot00000000000000<===> ================================================================================ <===> README.md Channels may also be specified as percents between 0% and 100%, which may be mixed with unitless numbers. <===> ================================================================================ <===> all/percent/input.scss a {b: rgb(7.1%, 20.4%, 33.9%)} <===> all/percent/output.css a { b: #123456; } <===> ================================================================================ <===> unitless/green/input.scss a {b: rgb(74.7%, 173, 93%)} <===> unitless/green/output.css a { b: #beaded; } <===> ================================================================================ <===> percent/green/input.scss a {b: rgb(190, 68%, 237)} <===> percent/green/output.css a { b: #beaded; } <===> ================================================================================ <===> boundaries/input.scss a {b: rgb(0%, 100%, 50%)} <===> boundaries/output.css a { b: #00ff80; } <===> ================================================================================ <===> clamped/README.md Channels that are out of bounds are clamped within bounds. <===> ================================================================================ <===> clamped/red/input.scss a {b: rgb(100.1%, 0, 0)} <===> clamped/red/output.css a { b: red; } <===> ================================================================================ <===> clamped/green/input.scss a {b: rgb(0, -0.1%, 0)} <===> clamped/green/output.css a { b: black; } <===> ================================================================================ <===> clamped/blue/input.scss a {b: rgb(0, 0, 200%)} <===> clamped/blue/output.css a { b: blue; } sass-spec-libsass-3.6.3/spec/core_functions/color/rgb/three_args/special_functions.hrx000066400000000000000000000066331355712145100313160ustar00rootroot00000000000000<===> calc/arg_1/input.scss a {b: rgb(calc(1), 2, 3)} <===> calc/arg_1/output.css a { b: rgb(calc(1), 2, 3); } <===> ================================================================================ <===> calc/arg_2/input.scss a {b: rgb(1, calc(2), 3)} <===> calc/arg_2/output.css a { b: rgb(1, calc(2), 3); } <===> ================================================================================ <===> calc/arg_3/input.scss a {b: rgb(1, 2, calc(3))} <===> calc/arg_3/output.css a { b: rgb(1, 2, calc(3)); } <===> ================================================================================ <===> var/arg_1/input.scss a {b: rgb(var(--foo), 2, 3)} <===> var/arg_1/output.css a { b: rgb(var(--foo), 2, 3); } <===> ================================================================================ <===> var/arg_2/input.scss a {b: rgb(1, var(--foo), 3)} <===> var/arg_2/output.css a { b: rgb(1, var(--foo), 3); } <===> ================================================================================ <===> var/arg_3/input.scss a {b: rgb(1, 2, var(--foo))} <===> var/arg_3/output.css a { b: rgb(1, 2, var(--foo)); } <===> ================================================================================ <===> env/arg_1/options.yml --- :todo: - sass/libsass#2726 <===> env/arg_1/input.scss a {b: rgb(env(--foo), 2, 3)} <===> env/arg_1/output.css a { b: rgb(env(--foo), 2, 3); } <===> ================================================================================ <===> env/arg_2/options.yml --- :todo: - sass/libsass#2726 <===> env/arg_2/input.scss a {b: rgb(1, env(--foo), 3)} <===> env/arg_2/output.css a { b: rgb(1, env(--foo), 3); } <===> ================================================================================ <===> env/arg_3/options.yml --- :todo: - sass/libsass#2726 <===> env/arg_3/input.scss a {b: rgb(1, 2, env(--foo))} <===> env/arg_3/output.css a { b: rgb(1, 2, env(--foo)); } <===> ================================================================================ <===> min/arg_1/options.yml --- :todo: - sass/libsass#2726 <===> min/arg_1/input.scss a {b: rgb(min(1), 2, 3)} <===> min/arg_1/output.css a { b: rgb(min(1), 2, 3); } <===> ================================================================================ <===> min/arg_2/options.yml --- :todo: - sass/libsass#2726 <===> min/arg_2/input.scss a {b: rgb(1, min(2), 3)} <===> min/arg_2/output.css a { b: rgb(1, min(2), 3); } <===> ================================================================================ <===> min/arg_3/options.yml --- :todo: - sass/libsass#2726 <===> min/arg_3/input.scss a {b: rgb(1, 2, min(3))} <===> min/arg_3/output.css a { b: rgb(1, 2, min(3)); } <===> ================================================================================ <===> max/arg_1/options.yml --- :todo: - sass/libsass#2726 <===> max/arg_1/input.scss a {b: rgb(max(1), 2, 3)} <===> max/arg_1/output.css a { b: rgb(max(1), 2, 3); } <===> ================================================================================ <===> max/arg_2/options.yml --- :todo: - sass/libsass#2726 <===> max/arg_2/input.scss a {b: rgb(1, max(2), 3)} <===> max/arg_2/output.css a { b: rgb(1, max(2), 3); } <===> ================================================================================ <===> max/arg_3/options.yml --- :todo: - sass/libsass#2726 <===> max/arg_3/input.scss a {b: rgb(1, 2, max(3))} <===> max/arg_3/output.css a { b: rgb(1, 2, max(3)); } sass-spec-libsass-3.6.3/spec/core_functions/color/rgb/three_args/unitless.hrx000066400000000000000000000030541355712145100274460ustar00rootroot00000000000000<===> README.md Channels may be specified as unitless numbers between 0 and 255. <===> ================================================================================ <===> numbers/input.scss a {b: rgb(18, 52, 86)} <===> numbers/output.css a { b: #123456; } <===> ================================================================================ <===> beaded/input.scss a {b: rgb(190, 173, 237)} <===> beaded/output.css a { b: #beaded; } <===> ================================================================================ <===> springgreen/input.scss a {b: rgb(0, 255, 127)} <===> springgreen/output.css a { b: springgreen; } <===> ================================================================================ <===> named/input.scss a {b: rgb($red: 0, $green: 255, $blue: 127)} <===> named/output.css a { b: springgreen; } <===> ================================================================================ <===> clamped/README.md Channels that are out of bounds are clamped within bounds. <===> ================================================================================ <===> clamped/red/input.scss a {b: rgb(256, 0, 0)} <===> clamped/red/output.css a { b: red; } <===> ================================================================================ <===> clamped/green/input.scss a {b: rgb(0, -1, 0)} <===> clamped/green/output.css a { b: black; } <===> ================================================================================ <===> clamped/blue/input.scss a {b: rgb(0, 0, 9999)} <===> clamped/blue/output.css a { b: blue; } sass-spec-libsass-3.6.3/spec/core_functions/color/rgb/two_args.hrx000066400000000000000000000051371355712145100253060ustar00rootroot00000000000000<===> options.yml --- :todo: - sass/libsass#2722 <===> ================================================================================ <===> opaque_to/opaque/input.scss a {b: rgb(#123, 1)} <===> opaque_to/opaque/output.css a { b: #112233; } <===> ================================================================================ <===> opaque_to/partial/input.scss a {b: rgb(#123, 0.5)} <===> opaque_to/partial/output.css a { b: rgba(17, 34, 51, 0.5); } <===> ================================================================================ <===> opaque_to/transparent/input.scss a {b: rgb(#123, 0)} <===> opaque_to/transparent/output.css a { b: rgba(17, 34, 51, 0); } <===> ================================================================================ <===> partial_to/opaque/input.scss a {b: rgb(rgba(0, 0, 255, 0.3), 1)} <===> partial_to/opaque/output.css a { b: blue; } <===> ================================================================================ <===> partial_to/partial/input.scss a {b: rgb(rgba(0, 0, 255, 0.3), 0.5)} <===> partial_to/partial/output.css a { b: rgba(0, 0, 255, 0.5); } <===> ================================================================================ <===> partial_to/transparent/input.scss a {b: rgb(rgba(0, 0, 255, 0.3), 0)} <===> partial_to/transparent/output.css a { b: rgba(0, 0, 255, 0); } <===> ================================================================================ <===> transparent_to/opaque/input.scss a {b: rgb(transparent, 1)} <===> transparent_to/opaque/output.css a { b: black; } <===> ================================================================================ <===> transparent_to/partial/input.scss a {b: rgb(transparent, 0.5)} <===> transparent_to/partial/output.css a { b: rgba(0, 0, 0, 0.5); } <===> ================================================================================ <===> transparent_to/transparent/input.scss a {b: rgb(transparent, 0)} <===> transparent_to/transparent/output.css a { b: rgba(0, 0, 0, 0); } <===> ================================================================================ <===> clamped/opaque/input.scss a {b: rgb(#123, 1.1)} <===> clamped/opaque/output.css a { b: #112233; } <===> ================================================================================ <===> clamped/transparent/input.scss a {b: rgb(#123, -0.1)} <===> clamped/transparent/output.css a { b: rgba(17, 34, 51, 0); } <===> ================================================================================ <===> named/input.scss a {b: rgb($color: #123, $alpha: 0.5)} <===> named/output.css a { b: rgba(17, 34, 51, 0.5); } sass-spec-libsass-3.6.3/spec/core_functions/color/rgba/000077500000000000000000000000001355712145100230715ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/core_functions/color/rgba/error/000077500000000000000000000000001355712145100242225ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/core_functions/color/rgba/error/five_args.hrx000066400000000000000000000006051355712145100267130ustar00rootroot00000000000000<===> input.scss five-args { x: rgba(1, 2, 3, 0.4, 5); } <===> error Error: Only 1 argument allowed, but 5 were passed. , 2 | x: rgba(1, 2, 3, 0.4, 5); | ^^^^^^^^^^^^^^^^^^^^^ ' input.scss 2:6 root stylesheet <===> error-libsass Error: overloaded function `rgba` given wrong number of arguments on line 2 of input.scss >> x: rgba(1, 2, 3, 0.4, 5); -----^ sass-spec-libsass-3.6.3/spec/core_functions/color/rgba/error/four_args.hrx000066400000000000000000000045111355712145100267350ustar00rootroot00000000000000<===> red/type/input.scss red-type { x: rgba("foo", 0, 0, 0.5); } <===> red/type/error Error: $red: "foo" is not a number. , 2 | x: rgba("foo", 0, 0, 0.5); | ^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 2:6 root stylesheet <===> red/type/error-libsass Error: argument `$red` of `rgba($red, $green, $blue, $alpha)` must be a number on line 2 of /sass/spec/core_functions/color/rgba/error/four_args/red_type/input.scss, in function `rgba` from line 2 of /sass/spec/core_functions/color/rgba/error/four_args/red_type/input.scss >> x: rgba("foo", 0, 0, 0.5); -----^ <===> ================================================================================ <===> green/type/input.scss green-type { x: rgba(0, "foo", 0, 0.5); } <===> green/type/error Error: $green: "foo" is not a number. , 2 | x: rgba(0, "foo", 0, 0.5); | ^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 2:6 root stylesheet <===> green/type/error-libsass Error: argument `$green` of `rgba($red, $green, $blue, $alpha)` must be a number on line 2 of /sass/spec/core_functions/color/rgba/error/four_args/green_type/input.scss, in function `rgba` from line 2 of /sass/spec/core_functions/color/rgba/error/four_args/green_type/input.scss >> x: rgba(0, "foo", 0, 0.5); -----^ <===> ================================================================================ <===> blue/type/input.scss blue-type { x: rgba(0, 0, "foo", 0.5); } <===> blue/type/error Error: $blue: "foo" is not a number. , 2 | x: rgba(0, 0, "foo", 0.5); | ^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 2:6 root stylesheet <===> blue/type/error-libsass Error: argument `$blue` of `rgba($red, $green, $blue, $alpha)` must be a number on line 2 of /sass/spec/core_functions/color/rgba/error/four_args/blue_type/input.scss, in function `rgba` from line 2 of /sass/spec/core_functions/color/rgba/error/four_args/blue_type/input.scss >> x: rgba(0, 0, "foo", 0.5); -----^ <===> ================================================================================ <===> alpha/unit/options.yml --- :todo: - libsass <===> alpha/unit/input.scss .alpha-unit { a: rgba(0, 0, 0, 0.5px); } <===> alpha/unit/error Error: $alpha: Expected 0.5px to have no units or "%". , 2 | a: rgba(0, 0, 0, 0.5px); | ^^^^^^^^^^^^^^^^^^^^ ' input.scss 2:6 root stylesheet sass-spec-libsass-3.6.3/spec/core_functions/color/rgba/error/one_arg.hrx000066400000000000000000000062001355712145100263550ustar00rootroot00000000000000<===> options.yml --- :todo: - sass/libsass#2722 <===> ================================================================================ <===> list/empty/input.scss empty { x: rgba(()); } <===> list/empty/error Error: Missing element $red. , 2 | x: rgba(()); | ^^^^^^^^ ' input.scss 2:6 root stylesheet <===> ================================================================================ <===> list/one_element/input.scss one-element { x: rgba(1); } <===> list/one_element/error Error: Missing element $green. , 2 | x: rgba(1); | ^^^^^^^ ' input.scss 2:6 root stylesheet <===> ================================================================================ <===> list/two_elements/input.scss two-elements { x: rgba(1 2); } <===> list/two_elements/error Error: Missing element $blue. , 2 | x: rgba(1 2); | ^^^^^^^^^ ' input.scss 2:6 root stylesheet <===> ================================================================================ <===> list/four_elements/input.scss four-elements { x: rgba(1 2 3 0.4); } <===> list/four_elements/error Error: Only 3 elements allowed, but 4 were passed. , 2 | x: rgba(1 2 3 0.4); | ^^^^^^^^^^^^^^^ ' input.scss 2:6 root stylesheet <===> ================================================================================ <===> list/comma_separated/input.scss comma-separated { x: rgba((1, 2, 3)); } <===> list/comma_separated/error Error: $channels must be a space-separated list. , 2 | x: rgba((1, 2, 3)); | ^^^^^^^^^^^^^^^ ' input.scss 2:6 root stylesheet <===> ================================================================================ <===> list/bracketed/input.scss bracketed { x: rgba([1 2 3]); } <===> list/bracketed/error Error: $channels must be an unbracketed list. , 2 | x: rgba([1 2 3]); | ^^^^^^^^^^^^^ ' input.scss 2:6 root stylesheet <===> ================================================================================ <===> type/red/input.scss red-type { x: rgba("foo" 2 3); } <===> type/red/error Error: $red: "foo" is not a number. , 2 | x: rgba("foo" 2 3); | ^^^^^^^^^^^^^^^ ' input.scss 2:6 root stylesheet <===> ================================================================================ <===> type/green/input.scss green-type { x: rgba(1 "foo" 3); } <===> type/green/error Error: $green: "foo" is not a number. , 2 | x: rgba(1 "foo" 3); | ^^^^^^^^^^^^^^^ ' input.scss 2:6 root stylesheet <===> ================================================================================ <===> type/blue/input.scss blue-type { x: rgba(1 2 "foo"); } <===> type/blue/error Error: $blue: "foo" is not a number. , 2 | x: rgba(1 2 "foo"); | ^^^^^^^^^^^^^^^ ' input.scss 2:6 root stylesheet <===> ================================================================================ <===> quoted_var_slash/input.scss quoted-var-slash { x: rgba(1 2 "var(--foo) / 0.4"); } <===> quoted_var_slash/error Error: $blue: "var(--foo) / 0.4" is not a number. , 2 | x: rgba(1 2 "var(--foo) / 0.4"); | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 2:6 root stylesheet sass-spec-libsass-3.6.3/spec/core_functions/color/rgba/error/three_args.hrx000066400000000000000000000017231355712145100270730ustar00rootroot00000000000000<===> options.yml --- :todo: - sass/libsass#2722 <===> ================================================================================ <===> red/type/input.scss red-type { x: rgba("foo", 0, 0); } <===> red/type/error Error: $red: "foo" is not a number. , 2 | x: rgba("foo", 0, 0); | ^^^^^^^^^^^^^^^^^ ' input.scss 2:6 root stylesheet <===> ================================================================================ <===> green/type/input.scss green-type { x: rgba(0, "foo", 0); } <===> green/type/error Error: $green: "foo" is not a number. , 2 | x: rgba(0, "foo", 0); | ^^^^^^^^^^^^^^^^^ ' input.scss 2:6 root stylesheet <===> ================================================================================ <===> blue/type/input.scss blue-type { x: rgba(0, 0, "foo"); } <===> blue/type/error Error: $blue: "foo" is not a number. , 2 | x: rgba(0, 0, "foo"); | ^^^^^^^^^^^^^^^^^ ' input.scss 2:6 root stylesheet sass-spec-libsass-3.6.3/spec/core_functions/color/rgba/error/two_args.hrx000066400000000000000000000031211355712145100265670ustar00rootroot00000000000000<===> color/type/input.scss color-type { x: rgba("foo", 0.5); } <===> color/type/error Error: $color: "foo" is not a color. , 2 | x: rgba("foo", 0.5); | ^^^^^^^^^^^^^^^^ ' input.scss 2:6 root stylesheet <===> color/type/error-libsass Error: argument `$color` of `rgba($color, $alpha)` must be a color on line 2 of /sass/spec/core_functions/color/rgba/error/two_args/color_type/input.scss, in function `rgba` from line 2 of /sass/spec/core_functions/color/rgba/error/two_args/color_type/input.scss >> x: rgba("foo", 0.5); -----^ <===> ================================================================================ <===> alpha/type/input.scss alpha-type { x: rgba(#123, "foo"); } <===> alpha/type/error Error: $alpha: "foo" is not a number. , 2 | x: rgba(#123, "foo"); | ^^^^^^^^^^^^^^^^^ ' input.scss 2:6 root stylesheet <===> alpha/type/error-libsass Error: argument `$alpha` of `rgba($color, $alpha)` must be a number on line 2 of /sass/spec/core_functions/color/rgba/error/two_args/alpha_type/input.scss, in function `rgba` from line 2 of /sass/spec/core_functions/color/rgba/error/two_args/alpha_type/input.scss >> x: rgba(#123, "foo"); -----^ <===> ================================================================================ <===> alpha/unit/options.yml --- :todo: - libsass <===> alpha/unit/input.scss .alpha-unit { a: rgba(#123, 0.5px); } <===> alpha/unit/error Error: $alpha: Expected 0.5px to have no units or "%". , 2 | a: rgba(#123, 0.5px); | ^^^^^^^^^^^^^^^^^ ' input.scss 2:6 root stylesheet sass-spec-libsass-3.6.3/spec/core_functions/color/rgba/four_args/000077500000000000000000000000001355712145100250605ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/core_functions/color/rgba/four_args/clamped.hrx000066400000000000000000000020321355712145100272050ustar00rootroot00000000000000<===> README.md Channels that are out of bounds are clamped within bounds. <===> ================================================================================ <===> red/input.scss a {b: rgba(256, 0, 0, 0.5)} <===> red/output.css a { b: rgba(255, 0, 0, 0.5); } <===> ================================================================================ <===> green/input.scss a {b: rgba(0, -1, 0, 0.5)} <===> green/output.css a { b: rgba(0, 0, 0, 0.5); } <===> ================================================================================ <===> blue/input.scss a {b: rgba(0, 0, 9999, 0.5)} <===> blue/output.css a { b: rgba(0, 0, 255, 0.5); } <===> ================================================================================ <===> alpha/above/input.scss a {b: rgba(0, 0, 0, 1.1)} <===> alpha/above/output.css a { b: black; } <===> ================================================================================ <===> alpha/below/input.scss a {b: rgba(0, 0, 0, -0.1)} <===> alpha/below/output.css a { b: rgba(0, 0, 0, 0); } sass-spec-libsass-3.6.3/spec/core_functions/color/rgba/four_args/in_gamut.hrx000066400000000000000000000013421355712145100274060ustar00rootroot00000000000000<===> transparent/input.scss a {b: rgba(0, 255, 127, 0)} <===> transparent/output.css a { b: rgba(0, 255, 127, 0); } <===> ================================================================================ <===> opaque/input.scss a {b: rgba(190, 173, 237, 1)} <===> opaque/output.css a { b: #beaded; } <===> ================================================================================ <===> partial/input.scss a {b: rgba(18, 52, 86, 0.5)} <===> partial/output.css a { b: rgba(18, 52, 86, 0.5); } <===> ================================================================================ <===> named/input.scss a {b: rgba($red: 0, $green: 255, $blue: 127, $alpha: 0.3)} <===> named/output.css a { b: rgba(0, 255, 127, 0.3); } sass-spec-libsass-3.6.3/spec/core_functions/color/rgba/four_args/special_functions.hrx000066400000000000000000000133071355712145100313170ustar00rootroot00000000000000<===> calc/arg_1/input.scss a {b: rgba(calc(1), 2, 3, 0.4)} <===> calc/arg_1/output.css a { b: rgba(calc(1), 2, 3, 0.4); } <===> ================================================================================ <===> calc/arg_2/input.scss a {b: rgba(1, calc(2), 3, 0.4)} <===> calc/arg_2/output.css a { b: rgba(1, calc(2), 3, 0.4); } <===> ================================================================================ <===> calc/arg_3/input.scss a {b: rgba(1, 2, calc(3), 0.4)} <===> calc/arg_3/output.css a { b: rgba(1, 2, calc(3), 0.4); } <===> ================================================================================ <===> calc/arg_4/input.scss a {b: rgba(1, 2, 3, calc(0.4))} <===> calc/arg_4/output.css a { b: rgba(1, 2, 3, calc(0.4)); } <===> ================================================================================ <===> var/arg_1/input.scss a {b: rgba(var(--foo), 2, 3, 0.4)} <===> var/arg_1/output.css a { b: rgba(var(--foo), 2, 3, 0.4); } <===> ================================================================================ <===> var/arg_2/input.scss a {b: rgba(1, var(--foo), 3, 0.4)} <===> var/arg_2/output.css a { b: rgba(1, var(--foo), 3, 0.4); } <===> ================================================================================ <===> var/arg_3/input.scss a {b: rgba(1, 2, var(--foo), 0.4)} <===> var/arg_3/output.css a { b: rgba(1, 2, var(--foo), 0.4); } <===> ================================================================================ <===> var/arg_4/input.scss a {b: rgba(1, 2, 3, var(--foo))} <===> var/arg_4/output.css a { b: rgba(1, 2, 3, var(--foo)); } <===> ================================================================================ <===> env/arg_1/options.yml --- :todo: - sass/libsass#2726 <===> env/arg_1/input.scss a {b: rgba(env(--foo), 2, 3, 0.4)} <===> env/arg_1/output.css a { b: rgba(env(--foo), 2, 3, 0.4); } <===> ================================================================================ <===> env/arg_2/options.yml --- :todo: - sass/libsass#2726 <===> env/arg_2/input.scss a {b: rgba(1, env(--foo), 3, 0.4)} <===> env/arg_2/output.css a { b: rgba(1, env(--foo), 3, 0.4); } <===> ================================================================================ <===> env/arg_3/options.yml --- :todo: - sass/libsass#2726 <===> env/arg_3/input.scss a {b: rgba(1, 2, env(--foo), 0.4)} <===> env/arg_3/output.css a { b: rgba(1, 2, env(--foo), 0.4); } <===> ================================================================================ <===> env/arg_4/options.yml --- :todo: - sass/libsass#2726 <===> env/arg_4/input.scss a {b: rgba(1, 2, 3, env(--foo))} <===> env/arg_4/output.css a { b: rgba(1, 2, 3, env(--foo)); } <===> ================================================================================ <===> min/arg_1/options.yml --- :todo: - sass/libsass#2726 <===> min/arg_1/input.scss a {b: rgba(min(1), 2, 3, 0.4)} <===> min/arg_1/output.css a { b: rgba(min(1), 2, 3, 0.4); } <===> ================================================================================ <===> min/arg_2/options.yml --- :todo: - sass/libsass#2726 <===> min/arg_2/input.scss a {b: rgba(1, min(2), 3, 0.4)} <===> min/arg_2/output.css a { b: rgba(1, min(2), 3, 0.4); } <===> ================================================================================ <===> min/arg_3/options.yml --- :todo: - sass/libsass#2726 <===> min/arg_3/input.scss a {b: rgba(1, 2, min(3), 0.4)} <===> min/arg_3/output.css a { b: rgba(1, 2, min(3), 0.4); } <===> ================================================================================ <===> min/arg_4/options.yml --- :todo: - sass/libsass#2726 <===> min/arg_4/input.scss a {b: rgba(1, 2, 3, min(0.4))} <===> min/arg_4/output.css a { b: rgba(1, 2, 3, min(0.4)); } <===> ================================================================================ <===> max/arg_1/options.yml --- :todo: - sass/libsass#2726 <===> max/arg_1/input.scss a {b: rgba(max(1), 2, 3, 0.4)} <===> max/arg_1/output.css a { b: rgba(max(1), 2, 3, 0.4); } <===> ================================================================================ <===> max/arg_2/options.yml --- :todo: - sass/libsass#2726 <===> max/arg_2/input.scss a {b: rgba(1, max(2), 3, 0.4)} <===> max/arg_2/output.css a { b: rgba(1, max(2), 3, 0.4); } <===> ================================================================================ <===> max/arg_3/options.yml --- :todo: - sass/libsass#2726 <===> max/arg_3/input.scss a {b: rgba(1, 2, max(3), 0.4)} <===> max/arg_3/output.css a { b: rgba(1, 2, max(3), 0.4); } <===> ================================================================================ <===> max/arg_4/options.yml --- :todo: - sass/libsass#2726 <===> max/arg_4/input.scss a {b: rgba(1, 2, 3, max(0.4))} <===> max/arg_4/output.css a { b: rgba(1, 2, 3, max(0.4)); } <===> ================================================================================ <===> calc/arg_2/args/input.scss a {b: rgba(blue, calc(0.4))} <===> calc/arg_2/args/output.css a { b: rgba(0, 0, 255, calc(0.4)); } <===> ================================================================================ <===> var/arg_2/args/alpha/input.scss a {b: rgba(blue, var(--foo))} <===> var/arg_2/args/alpha/output.css a { b: rgba(0, 0, 255, var(--foo)); } <===> ================================================================================ <===> var/arg_2/args/color/input.scss a {b: rgba(var(--foo), 0.4)} <===> var/arg_2/args/color/output.css a { b: rgba(var(--foo), 0.4); } <===> ================================================================================ <===> var/arg_2/args/both/input.scss a {b: rgba(var(--foo), var(--foo))} <===> var/arg_2/args/both/output.css a { b: rgba(var(--foo), var(--foo)); } sass-spec-libsass-3.6.3/spec/core_functions/color/rgba/multi_argument_var.hrx000066400000000000000000000026221355712145100275220ustar00rootroot00000000000000<===> 1_of_3/options.yml --- :todo: - libsass <===> 1_of_3/input.scss // var() is substituted before parsing, so it may contain multiple arguments. a {b: rgba(var(--foo), 3, 0.4)} <===> 1_of_3/output.css a { b: rgba(var(--foo), 3, 0.4); } <===> ================================================================================ <===> 2_of_3/options.yml --- :todo: - libsass <===> 2_of_3/input.scss a {b: rgba(1, var(--foo), 0.4)} <===> 2_of_3/output.css a { b: rgba(1, var(--foo), 0.4); } <===> ================================================================================ <===> 3_of_3/options.yml --- :todo: - libsass <===> 3_of_3/input.scss a {b: rgba(1, 2, var(--foo))} <===> 3_of_3/output.css a { b: rgba(1, 2, var(--foo)); } <===> ================================================================================ <===> 1_of_2/input.scss a {b: rgba(var(--foo), 0.4)} <===> 1_of_2/output.css a { b: rgba(var(--foo), 0.4); } <===> ================================================================================ <===> 2_of_2/options.yml --- :todo: - libsass <===> 2_of_2/input.scss a {b: rgba(1, var(--foo))} <===> 2_of_2/output.css a { b: rgba(1, var(--foo)); } <===> ================================================================================ <===> 1_of_1/options.yml --- :todo: - libsass <===> 1_of_1/input.scss a {b: rgba(var(--foo))} <===> 1_of_1/output.css a { b: rgba(var(--foo)); } sass-spec-libsass-3.6.3/spec/core_functions/color/rgba/one_arg/000077500000000000000000000000001355712145100245035ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/core_functions/color/rgba/one_arg/alpha.hrx000066400000000000000000000056541355712145100263250ustar00rootroot00000000000000<===> in_gamut/transparent/input.scss a {b: rgba(0 255 127 / 0)} <===> in_gamut/transparent/output.css a { b: rgba(0, 255, 127, 0); } <===> ================================================================================ <===> in_gamut/opaque/input.scss a {b: rgba(190 173 237 / 1)} <===> in_gamut/opaque/output.css a { b: #beaded; } <===> ================================================================================ <===> in_gamut/partial/input.scss a {b: rgba(18 52 86 / 0.5)} <===> in_gamut/partial/output.css a { b: rgba(18, 52, 86, 0.5); } <===> ================================================================================ <===> in_gamut/percent/input.scss a {b: rgba(18 52 86 / 50%)} <===> in_gamut/percent/output.css a { b: rgba(18, 52, 86, 0.5); } <===> ================================================================================ <===> in_gamut/named/input.scss a {b: rgba($channels: 0 255 127 / 0.3)} <===> in_gamut/named/output.css a { b: rgba(0, 255, 127, 0.3); } <===> ================================================================================ <===> in_gamut/parenthesized/input.scss // Extra parens shouldn't cause the slash to be forced into division. a {b: rgba(0 255 127 / 0.3)} <===> in_gamut/parenthesized/output.css a { b: rgba(0, 255, 127, 0.3); } <===> ================================================================================ <===> clamped/README.md Channels that are out of bounds are clamped within bounds. <===> ================================================================================ <===> clamped/red/input.scss a {b: rgba(256 0 0 / 0.5)} <===> clamped/red/output.css a { b: rgba(255, 0, 0, 0.5); } <===> ================================================================================ <===> clamped/green/input.scss a {b: rgba(0 -1 0 / 0.5)} <===> clamped/green/output.css a { b: rgba(0, 0, 0, 0.5); } <===> ================================================================================ <===> clamped/blue/input.scss a {b: rgba(0 0 9999 / 0.5)} <===> clamped/blue/output.css a { b: rgba(0, 0, 255, 0.5); } <===> ================================================================================ <===> clamped/alpha/above/input.scss a {b: rgba(0 0 0 / 1.1)} <===> clamped/alpha/above/output.css a { b: black; } <===> ================================================================================ <===> clamped/alpha/below/input.scss a {b: rgba(0 0 0 / -0.1)} <===> clamped/alpha/below/output.css a { b: rgba(0, 0, 0, 0); } <===> ================================================================================ <===> clamped/alpha/above/percent/input.scss a {b: rgba(0 0 0 / 250%)} <===> clamped/alpha/above/percent/output.css a { b: black; } <===> ================================================================================ <===> clamped/alpha/below/percent/input.scss a {b: rgba(0 0 0 / -10%)} <===> clamped/alpha/below/percent/output.css a { b: rgba(0, 0, 0, 0); } sass-spec-libsass-3.6.3/spec/core_functions/color/rgba/one_arg/no_alpha.hrx000066400000000000000000000070021355712145100270060ustar00rootroot00000000000000<===> unitless/README.md Channels may be specified as unitless numbers between 0 and 255. <===> ================================================================================ <===> unitless/numbers/input.scss a {b: rgba(18 52 86)} <===> unitless/numbers/output.css a { b: #123456; } <===> ================================================================================ <===> unitless/beaded/input.scss a {b: rgba(190 173 237)} <===> unitless/beaded/output.css a { b: #beaded; } <===> ================================================================================ <===> unitless/springgreen/input.scss a {b: rgba(0 255 127)} <===> unitless/springgreen/output.css a { b: springgreen; } <===> ================================================================================ <===> unitless/named/input.scss a {b: rgba($channels: 0 255 127)} <===> unitless/named/output.css a { b: springgreen; } <===> ================================================================================ <===> unitless/clamped/README.md Channels that are out of bounds are clamped within bounds. <===> ================================================================================ <===> unitless/clamped/red/input.scss a {b: rgba(256 0 0)} <===> unitless/clamped/red/output.css a { b: red; } <===> ================================================================================ <===> unitless/clamped/green/input.scss a {b: rgba(0 -1 0)} <===> unitless/clamped/green/output.css a { b: black; } <===> ================================================================================ <===> unitless/clamped/blue/input.scss a {b: rgba(0 0 9999)} <===> unitless/clamped/blue/output.css a { b: blue; } <===> ================================================================================ <===> percents/README.md Channels may also be specified as percents between 0% and 100%, which may be // mixed with unitless numbers. <===> ================================================================================ <===> percents/all/percent/input.scss a {b: rgba(7.1% 20.4% 33.9%)} <===> percents/all/percent/output.css a { b: #123456; } <===> ================================================================================ <===> percents/unitless/green/input.scss a {b: rgba(74.7% 173 93%)} <===> percents/unitless/green/output.css a { b: #beaded; } <===> ================================================================================ <===> percents/percent/green/input.scss a {b: rgba(190 68% 237)} <===> percents/percent/green/output.css a { b: #beaded; } <===> ================================================================================ <===> percents/boundaries/input.scss a {b: rgba(0% 100% 50%)} <===> percents/boundaries/output.css a { b: #00ff80; } <===> ================================================================================ <===> percents/clamped/README.md Channels that are out of bounds are clamped within bounds. <===> ================================================================================ <===> percents/clamped/red/input.scss a {b: rgba(100.1% 0 0)} <===> percents/clamped/red/output.css a { b: red; } <===> ================================================================================ <===> percents/clamped/green/input.scss a {b: rgba(0 -0.1% 0)} <===> percents/clamped/green/output.css a { b: black; } <===> ================================================================================ <===> percents/clamped/blue/input.scss a {b: rgba(0 0 200%)} <===> percents/clamped/blue/output.css a { b: blue; } sass-spec-libsass-3.6.3/spec/core_functions/color/rgba/one_arg/options.yml000066400000000000000000000000371355712145100267210ustar00rootroot00000000000000--- :todo: - sass/libsass#2722 sass-spec-libsass-3.6.3/spec/core_functions/color/rgba/one_arg/special_functions.hrx000066400000000000000000000223771355712145100307510ustar00rootroot00000000000000<===> options.yml --- :todo: - sass/libsass#2726 <===> ================================================================================ <===> no_alpha/calc/arg_1/input.scss a {b: rgba(calc(1) 2 3)} <===> no_alpha/calc/arg_1/output.css a { b: rgba(calc(1), 2, 3); } <===> ================================================================================ <===> no_alpha/calc/arg_2/input.scss a {b: rgba(1 calc(2) 3)} <===> no_alpha/calc/arg_2/output.css a { b: rgba(1, calc(2), 3); } <===> ================================================================================ <===> no_alpha/calc/arg_3/input.scss a {b: rgba(1 2 calc(3))} <===> no_alpha/calc/arg_3/output.css a { b: rgba(1, 2, calc(3)); } <===> ================================================================================ <===> no_alpha/var/arg_1/input.scss a {b: rgba(var(--foo) 2 3)} <===> no_alpha/var/arg_1/output.css a { b: rgba(var(--foo), 2, 3); } <===> ================================================================================ <===> no_alpha/var/arg_2/input.scss a {b: rgba(1 var(--foo) 3)} <===> no_alpha/var/arg_2/output.css a { b: rgba(1, var(--foo), 3); } <===> ================================================================================ <===> no_alpha/var/arg_3/input.scss a {b: rgba(1 2 var(--foo))} <===> no_alpha/var/arg_3/output.css a { b: rgba(1, 2, var(--foo)); } <===> ================================================================================ <===> no_alpha/env/arg_1/input.scss a {b: rgba(env(--foo) 2 3)} <===> no_alpha/env/arg_1/output.css a { b: rgba(env(--foo), 2, 3); } <===> ================================================================================ <===> no_alpha/env/arg_2/input.scss a {b: rgba(1 env(--foo) 3)} <===> no_alpha/env/arg_2/output.css a { b: rgba(1, env(--foo), 3); } <===> ================================================================================ <===> no_alpha/env/arg_3/input.scss a {b: rgba(1 2 env(--foo))} <===> no_alpha/env/arg_3/output.css a { b: rgba(1, 2, env(--foo)); } <===> ================================================================================ <===> no_alpha/min/arg_1/input.scss a {b: rgba(min(1) 2 3)} <===> no_alpha/min/arg_1/output.css a { b: rgba(min(1), 2, 3); } <===> ================================================================================ <===> no_alpha/min/arg_2/input.scss a {b: rgba(1 min(2) 3)} <===> no_alpha/min/arg_2/output.css a { b: rgba(1, min(2), 3); } <===> ================================================================================ <===> no_alpha/min/arg_3/input.scss a {b: rgba(1 2 min(3))} <===> no_alpha/min/arg_3/output.css a { b: rgba(1, 2, min(3)); } <===> ================================================================================ <===> no_alpha/max/arg_1/input.scss a {b: rgba(max(1) 2 3)} <===> no_alpha/max/arg_1/output.css a { b: rgba(max(1), 2, 3); } <===> ================================================================================ <===> no_alpha/max/arg_2/input.scss a {b: rgba(1 max(2) 3)} <===> no_alpha/max/arg_2/output.css a { b: rgba(1, max(2), 3); } <===> ================================================================================ <===> no_alpha/max/arg_3/input.scss a {b: rgba(1 2 max(3))} <===> no_alpha/max/arg_3/output.css a { b: rgba(1, 2, max(3)); } <===> ================================================================================ <===> no_alpha/multi_argument_var/1_of_2/input.scss // var() is substituted before parsing, so it may contain multiple arguments. a {b: rgba(var(--foo) 2)} <===> no_alpha/multi_argument_var/1_of_2/output.css a { b: rgba(var(--foo) 2); } <===> ================================================================================ <===> no_alpha/multi_argument_var/2_of_2/input.scss a {b: rgba(1 var(--foo))} <===> no_alpha/multi_argument_var/2_of_2/output.css a { b: rgba(1 var(--foo)); } <===> ================================================================================ <===> no_alpha/multi_argument_var/1_of_1/input.scss a {b: rgba(var(--foo))} <===> no_alpha/multi_argument_var/1_of_1/output.css a { b: rgba(var(--foo)); } <===> ================================================================================ <===> alpha/calc/arg_1/input.scss a {b: rgba(calc(1) 2 3 / 0.4)} <===> alpha/calc/arg_1/output.css a { b: rgba(calc(1), 2, 3, 0.4); } <===> ================================================================================ <===> alpha/calc/arg_2/input.scss a {b: rgba(1 calc(2) 3 / 0.4)} <===> alpha/calc/arg_2/output.css a { b: rgba(1, calc(2), 3, 0.4); } <===> ================================================================================ <===> alpha/calc/arg_3/input.scss a {b: rgba(1 2 calc(3) / 0.4)} <===> alpha/calc/arg_3/output.css a { b: rgba(1 2 calc(3)/0.4); } <===> ================================================================================ <===> alpha/calc/arg_4/input.scss a {b: rgba(1 2 3 / calc(0.4))} <===> alpha/calc/arg_4/output.css a { b: rgba(1 2 3/calc(0.4)); } <===> ================================================================================ <===> alpha/var/arg_1/input.scss a {b: rgba(var(--foo) 2 3 / 0.4)} <===> alpha/var/arg_1/output.css a { b: rgba(var(--foo), 2, 3, 0.4); } <===> ================================================================================ <===> alpha/var/arg_2/input.scss a {b: rgba(1 var(--foo) 3 / 0.4)} <===> alpha/var/arg_2/output.css a { b: rgba(1, var(--foo), 3, 0.4); } <===> ================================================================================ <===> alpha/var/arg_3/input.scss a {b: rgba(1 2 var(--foo) / 0.4)} <===> alpha/var/arg_3/output.css a { b: rgba(1 2 var(--foo)/0.4); } <===> ================================================================================ <===> alpha/var/arg_4/input.scss a {b: rgba(1 2 3 / var(--foo))} <===> alpha/var/arg_4/output.css a { b: rgba(1 2 3/var(--foo)); } <===> ================================================================================ <===> alpha/env/arg_1/input.scss a {b: rgba(env(--foo) 2 3 / 0.4)} <===> alpha/env/arg_1/output.css a { b: rgba(env(--foo), 2, 3, 0.4); } <===> ================================================================================ <===> alpha/env/arg_2/input.scss a {b: rgba(1 env(--foo) 3 / 0.4)} <===> alpha/env/arg_2/output.css a { b: rgba(1, env(--foo), 3, 0.4); } <===> ================================================================================ <===> alpha/env/arg_3/input.scss a {b: rgba(1 2 env(--foo) / 0.4)} <===> alpha/env/arg_3/output.css a { b: rgba(1 2 env(--foo)/0.4); } <===> ================================================================================ <===> alpha/env/arg_4/input.scss a {b: rgba(1 2 3 / env(--foo))} <===> alpha/env/arg_4/output.css a { b: rgba(1 2 3/env(--foo)); } <===> ================================================================================ <===> alpha/min/arg_1/input.scss a {b: rgba(min(1) 2 3 / 0.4)} <===> alpha/min/arg_1/output.css a { b: rgba(min(1), 2, 3, 0.4); } <===> ================================================================================ <===> alpha/min/arg_2/input.scss a {b: rgba(1 min(2) 3 / 0.4)} <===> alpha/min/arg_2/output.css a { b: rgba(1, min(2), 3, 0.4); } <===> ================================================================================ <===> alpha/min/arg_3/input.scss a {b: rgba(1 2 min(3) / 0.4)} <===> alpha/min/arg_3/output.css a { b: rgba(1 2 min(3)/0.4); } <===> ================================================================================ <===> alpha/min/arg_4/input.scss a {b: rgba(1 2 3 / min(0.4))} <===> alpha/min/arg_4/output.css a { b: rgba(1 2 3/min(0.4)); } <===> ================================================================================ <===> alpha/max/arg_1/input.scss a {b: rgba(max(1) 2 3 / 0.4)} <===> alpha/max/arg_1/output.css a { b: rgba(max(1), 2, 3, 0.4); } <===> ================================================================================ <===> alpha/max/arg_2/input.scss a {b: rgba(1 max(2) 3 / 0.4)} <===> alpha/max/arg_2/output.css a { b: rgba(1, max(2), 3, 0.4); } <===> ================================================================================ <===> alpha/max/arg_3/input.scss a {b: rgba(1 2 max(3) / 0.4)} <===> alpha/max/arg_3/output.css a { b: rgba(1 2 max(3)/0.4); } <===> ================================================================================ <===> alpha/max/arg_4/input.scss a {b: rgba(1 2 3 / max(0.4))} <===> alpha/max/arg_4/output.css a { b: rgba(1 2 3/max(0.4)); } <===> ================================================================================ <===> alpha/multi_argument_var/1_of_2/input.scss // var() is substituted before parsing, so it may contain multiple arguments. a {b: rgba(var(--foo) 2 / 0.4)} <===> alpha/multi_argument_var/1_of_2/output.css a { b: rgba(var(--foo) 2/0.4); } <===> ================================================================================ <===> alpha/multi_argument_var/2_of_2/input.scss a {b: rgba(1 var(--foo) / 0.4)} <===> alpha/multi_argument_var/2_of_2/output.css a { b: rgba(1 var(--foo)/0.4); } <===> ================================================================================ <===> alpha/multi_argument_var/1_of_1/input.scss a {b: rgba(var(--foo) / 0.4)} <===> alpha/multi_argument_var/1_of_1/output.css a { b: rgba(var(--foo)/0.4); } sass-spec-libsass-3.6.3/spec/core_functions/color/rgba/three_args/000077500000000000000000000000001355712145100252145ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/core_functions/color/rgba/three_args/options.yml000066400000000000000000000000371355712145100274320ustar00rootroot00000000000000--- :todo: - sass/libsass#2722 sass-spec-libsass-3.6.3/spec/core_functions/color/rgba/three_args/percents.hrx000066400000000000000000000033211355712145100275610ustar00rootroot00000000000000<===> ================================================================================ <===> README.md Channels may also be specified as percents between 0% and 100%, which may be mixed with unitless numbers. <===> ================================================================================ <===> all/percent/input.scss a {b: rgba(7.1%, 20.4%, 33.9%)} <===> all/percent/output.css a { b: #123456; } <===> ================================================================================ <===> unitless/green/input.scss a {b: rgba(74.7%, 173, 93%)} <===> unitless/green/output.css a { b: #beaded; } <===> ================================================================================ <===> percent/green/input.scss a {b: rgba(190, 68%, 237)} <===> percent/green/output.css a { b: #beaded; } <===> ================================================================================ <===> boundaries/input.scss a {b: rgba(0%, 100%, 50%)} <===> boundaries/output.css a { b: #00ff80; } <===> ================================================================================ <===> clamped/README.md Channels that are out of bounds are clamped within bounds. <===> ================================================================================ <===> clamped/red/input.scss a {b: rgba(100.1%, 0, 0)} <===> clamped/red/output.css a { b: red; } <===> ================================================================================ <===> clamped/green/input.scss a {b: rgba(0, -0.1%, 0)} <===> clamped/green/output.css a { b: black; } <===> ================================================================================ <===> clamped/blue/input.scss a {b: rgba(0, 0, 200%)} <===> clamped/blue/output.css a { b: blue; } sass-spec-libsass-3.6.3/spec/core_functions/color/rgba/three_args/special_functions.hrx000066400000000000000000000060461355712145100314550ustar00rootroot00000000000000<===> options.yml --- :todo: - sass/libsass#2726 <===> ================================================================================ <===> calc/arg_1/input.scss a {b: rgba(calc(1), 2, 3)} <===> calc/arg_1/output.css a { b: rgba(calc(1), 2, 3); } <===> ================================================================================ <===> calc/arg_2/input.scss a {b: rgba(1, calc(2), 3)} <===> calc/arg_2/output.css a { b: rgba(1, calc(2), 3); } <===> ================================================================================ <===> calc/arg_3/input.scss a {b: rgba(1, 2, calc(3))} <===> calc/arg_3/output.css a { b: rgba(1, 2, calc(3)); } <===> ================================================================================ <===> var/arg_1/input.scss a {b: rgba(var(--foo), 2, 3)} <===> var/arg_1/output.css a { b: rgba(var(--foo), 2, 3); } <===> ================================================================================ <===> var/arg_2/input.scss a {b: rgba(1, var(--foo), 3)} <===> var/arg_2/output.css a { b: rgba(1, var(--foo), 3); } <===> ================================================================================ <===> var/arg_3/input.scss a {b: rgba(1, 2, var(--foo))} <===> var/arg_3/output.css a { b: rgba(1, 2, var(--foo)); } <===> ================================================================================ <===> env/arg_1/input.scss a {b: rgba(env(--foo), 2, 3)} <===> env/arg_1/output.css a { b: rgba(env(--foo), 2, 3); } <===> ================================================================================ <===> env/arg_2/input.scss a {b: rgba(1, env(--foo), 3)} <===> env/arg_2/output.css a { b: rgba(1, env(--foo), 3); } <===> ================================================================================ <===> env/arg_3/input.scss a {b: rgba(1, 2, env(--foo))} <===> env/arg_3/output.css a { b: rgba(1, 2, env(--foo)); } <===> ================================================================================ <===> min/arg_1/input.scss a {b: rgba(min(1), 2, 3)} <===> min/arg_1/output.css a { b: rgba(min(1), 2, 3); } <===> ================================================================================ <===> min/arg_2/input.scss a {b: rgba(1, min(2), 3)} <===> min/arg_2/output.css a { b: rgba(1, min(2), 3); } <===> ================================================================================ <===> min/arg_3/input.scss a {b: rgba(1, 2, min(3))} <===> min/arg_3/output.css a { b: rgba(1, 2, min(3)); } <===> ================================================================================ <===> max/arg_1/input.scss a {b: rgba(max(1), 2, 3)} <===> max/arg_1/output.css a { b: rgba(max(1), 2, 3); } <===> ================================================================================ <===> max/arg_2/input.scss a {b: rgba(1, max(2), 3)} <===> max/arg_2/output.css a { b: rgba(1, max(2), 3); } <===> ================================================================================ <===> max/arg_3/input.scss a {b: rgba(1, 2, max(3))} <===> max/arg_3/output.css a { b: rgba(1, 2, max(3)); } sass-spec-libsass-3.6.3/spec/core_functions/color/rgba/three_args/unitless.hrx000066400000000000000000000030631355712145100276070ustar00rootroot00000000000000<===> README.md Channels may be specified as unitless numbers between 0 and 255. <===> ================================================================================ <===> numbers/input.scss a {b: rgba(18, 52, 86)} <===> numbers/output.css a { b: #123456; } <===> ================================================================================ <===> beaded/input.scss a {b: rgba(190, 173, 237)} <===> beaded/output.css a { b: #beaded; } <===> ================================================================================ <===> springgreen/input.scss a {b: rgba(0, 255, 127)} <===> springgreen/output.css a { b: springgreen; } <===> ================================================================================ <===> named/input.scss a {b: rgba($red: 0, $green: 255, $blue: 127)} <===> named/output.css a { b: springgreen; } <===> ================================================================================ <===> clamped/README.md Channels that are out of bounds are clamped within bounds. <===> ================================================================================ <===> clamped/red/input.scss a {b: rgba(256, 0, 0)} <===> clamped/red/output.css a { b: red; } <===> ================================================================================ <===> clamped/green/input.scss a {b: rgba(0, -1, 0)} <===> clamped/green/output.css a { b: black; } <===> ================================================================================ <===> clamped/blue/input.scss a {b: rgba(0, 0, 9999)} <===> clamped/blue/output.css a { b: blue; } sass-spec-libsass-3.6.3/spec/core_functions/color/rgba/two_args.hrx000066400000000000000000000047421355712145100254500ustar00rootroot00000000000000<===> opaque_to/opaque/input.scss a {b: rgba(#123, 1)} <===> opaque_to/opaque/output.css a { b: #112233; } <===> ================================================================================ <===> opaque_to/partial/input.scss a {b: rgba(#123, 0.5)} <===> opaque_to/partial/output.css a { b: rgba(17, 34, 51, 0.5); } <===> ================================================================================ <===> opaque_to/transparent/input.scss a {b: rgba(#123, 0)} <===> opaque_to/transparent/output.css a { b: rgba(17, 34, 51, 0); } <===> ================================================================================ <===> partial_to/opaque/input.scss a {b: rgba(rgba(0, 0, 255, 0.3), 1)} <===> partial_to/opaque/output.css a { b: blue; } <===> ================================================================================ <===> partial_to/partial/input.scss a {b: rgba(rgba(0, 0, 255, 0.3), 0.5)} <===> partial_to/partial/output.css a { b: rgba(0, 0, 255, 0.5); } <===> ================================================================================ <===> partial_to/transparent/input.scss a {b: rgba(rgba(0, 0, 255, 0.3), 0)} <===> partial_to/transparent/output.css a { b: rgba(0, 0, 255, 0); } <===> ================================================================================ <===> transparent_to/opaque/input.scss a {b: rgba(transparent, 1)} <===> transparent_to/opaque/output.css a { b: black; } <===> ================================================================================ <===> transparent_to/partial/input.scss a {b: rgba(transparent, 0.5)} <===> transparent_to/partial/output.css a { b: rgba(0, 0, 0, 0.5); } <===> ================================================================================ <===> transparent_to/transparent/input.scss a {b: rgba(transparent, 0)} <===> transparent_to/transparent/output.css a { b: rgba(0, 0, 0, 0); } <===> ================================================================================ <===> clamped/opaque/input.scss a {b: rgba(#123, 1.1)} <===> clamped/opaque/output.css a { b: #112233; } <===> ================================================================================ <===> clamped/transparent/input.scss a {b: rgba(#123, -0.1)} <===> clamped/transparent/output.css a { b: rgba(17, 34, 51, 0); } <===> ================================================================================ <===> named/input.scss a {b: rgba($color: #123, $alpha: 0.5)} <===> named/output.css a { b: rgba(17, 34, 51, 0.5); } sass-spec-libsass-3.6.3/spec/core_functions/color/saturate.hrx000066400000000000000000000132231355712145100245320ustar00rootroot00000000000000<===> one_arg/README.md Sass supports saturate() with one argument for compatibility with [plain CSS][]. [plain CSS]: https://developer.mozilla.org/en-US/docs/Web/CSS/filter-function/saturate <===> ================================================================================ <===> one_arg/unit/input.scss a {b: saturate(50%)} <===> one_arg/unit/output.css a { b: saturate(50%); } <===> ================================================================================ <===> one_arg/unitless/input.scss a {b: saturate(1)} <===> one_arg/unitless/output.css a { b: saturate(1); } <===> ================================================================================ <===> one_arg/named/options.yml --- :todo: - sass/libsass#2897 <===> one_arg/named/input.scss a {b: saturate($amount: 50%)} <===> one_arg/named/output.css a { b: saturate(50%); } <===> ================================================================================ <===> two_args/max/input.scss a {b: saturate(plum, 100%)} <===> two_args/max/output.css a { b: #ff7eff; } <===> ================================================================================ <===> two_args/max_remaining/input.scss a {b: saturate(plum, 53%)} <===> two_args/max_remaining/output.css a { b: #ff7eff; } <===> ================================================================================ <===> two_args/min/input.scss a {b: saturate(plum, 0%)} <===> two_args/min/output.css a { b: plum; } <===> ================================================================================ <===> two_args/middle/input.scss a {b: saturate(plum, 14%)} <===> two_args/middle/output.css a { b: #e697e6; } <===> ================================================================================ <===> two_args/alpha/input.scss a {b: saturate(rgba(plum, 0.5), 100%)} <===> two_args/alpha/output.css a { b: rgba(255, 126, 255, 0.5); } <===> ================================================================================ <===> two_args/named/input.scss a {b: saturate($color: plum, $amount: 14%)} <===> two_args/named/output.css a { b: #e697e6; } <===> ================================================================================ <===> error/too_few_args/input.scss a {b: saturate()} <===> error/too_few_args/error Error: Missing argument $color. , 1 | a {b: saturate()} | ^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> error/too_few_args/error-libsass Error: Function saturate is missing argument $color. on line 1 of input.scss >> a {b: saturate()} ------^ <===> ================================================================================ <===> error/too_many_args/input.scss a {b: saturate(plum, 1%, 2)} <===> error/too_many_args/error Error: Only 2 arguments allowed, but 3 were passed. , 1 | a {b: saturate(plum, 1%, 2)} | ^^^^^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> error/too_many_args/error-libsass Error: wrong number of arguments (3 for 2) for `saturate' on line 1:7 of input.scss >> a {b: saturate(plum, 1%, 2)} ------^ <===> ================================================================================ <===> error/one_arg/type/input.scss a {b: saturate(red)} <===> error/one_arg/type/error Error: $amount: red is not a number. , 1 | a {b: saturate(red)} | ^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> error/one_arg/type/options.yml --- :todo: - sass/libsass#2895 <===> ================================================================================ <===> error/two_args/type/color/input.scss a {b: saturate(1, 2)} <===> error/two_args/type/color/error Error: $color: 1 is not a color. , 1 | a {b: saturate(1, 2)} | ^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> error/two_args/type/color/error-libsass Error: argument `$color` of `saturate($color, $amount: false)` must be a color on line 1:7 of input.scss, in function `saturate` from line 1:7 of input.scss >> a {b: saturate(1, 2)} ------^ <===> ================================================================================ <===> error/two_args/type/lightness/input.scss a {b: saturate(plum, blue)} <===> error/two_args/type/lightness/error Error: $amount: blue is not a number. , 1 | a {b: saturate(plum, blue)} | ^^^^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> error/two_args/type/lightness/options.yml --- :todo: - sass/libsass#2896 <===> ================================================================================ <===> error/two_args/bounds/too_low/input.scss a {b: saturate(plum, -0.001)} <===> error/two_args/bounds/too_low/error Error: $amount: Expected -0.001 to be within 0 and 100. , 1 | a {b: saturate(plum, -0.001)} | ^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> error/two_args/bounds/too_low/error-libsass Error: argument `$amount` of `saturate($color, $amount: false)` must be between -0 and 100 on line 1:7 of input.scss, in function `saturate` from line 1:7 of input.scss >> a {b: saturate(plum, -0.001)} ------^ <===> ================================================================================ <===> error/two_args/bounds/too_high/input.scss a {b: saturate(plum, 100.001)} <===> error/two_args/bounds/too_high/error Error: $amount: Expected 100.001 to be within 0 and 100. , 1 | a {b: saturate(plum, 100.001)} | ^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> error/two_args/bounds/too_high/error-libsass Error: argument `$amount` of `saturate($color, $amount: false)` must be between -0 and 100 on line 1:7 of input.scss, in function `saturate` from line 1:7 of input.scss >> a {b: saturate(plum, 100.001)} ------^ sass-spec-libsass-3.6.3/spec/core_functions/color/saturation.hrx000066400000000000000000000044731355712145100251020ustar00rootroot00000000000000<===> max/input.scss a {b: saturation(hsl(0, 100%, 100%))} <===> max/output.css a { b: 100%; } <===> ================================================================================ <===> min/input.scss a {b: saturation(hsl(0, 0%, 100%))} <===> min/output.css a { b: 0%; } <===> ================================================================================ <===> middle/input.scss a {b: saturation(hsl(0, 50%, 100%))} <===> middle/output.css a { b: 50%; } <===> ================================================================================ <===> fraction/input.scss a {b: saturation(hsl(0, 0.5%, 100%))} <===> fraction/output.css a { b: 0.5%; } <===> ================================================================================ <===> named/input.scss a {b: saturation($color: hsl(0, 42%, 100%))} <===> named/output.css a { b: 42%; } <===> ================================================================================ <===> error/too_few_args/input.scss a {b: saturation()} <===> error/too_few_args/error Error: Missing argument $color. , 1 | a {b: saturation()} | ^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> error/too_few_args/error-libsass Error: Function saturation is missing argument $color. on line 1 of input.scss >> a {b: saturation()} ------^ <===> ================================================================================ <===> error/too_many_args/input.scss a {b: saturation(red, green)} <===> error/too_many_args/error Error: Only 1 argument allowed, but 2 were passed. , 1 | a {b: saturation(red, green)} | ^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> error/too_many_args/error-libsass Error: wrong number of arguments (2 for 1) for `saturation' on line 1:7 of input.scss >> a {b: saturation(red, green)} ------^ <===> ================================================================================ <===> error/type/input.scss a {b: saturation(1)} <===> error/type/error Error: $color: 1 is not a color. , 1 | a {b: saturation(1)} | ^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> error/type/error-libsass Error: argument `$color` of `saturation($color)` must be a color on line 1:7 of input.scss, in function `saturation` from line 1:7 of input.scss >> a {b: saturation(1)} ------^ sass-spec-libsass-3.6.3/spec/core_functions/color/scale_color/000077500000000000000000000000001355712145100244435ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/core_functions/color/scale_color/error/000077500000000000000000000000001355712145100255745ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/core_functions/color/scale_color/error/args.hrx000066400000000000000000000021611355712145100272530ustar00rootroot00000000000000<===> too_few/input.scss a {b: scale-color()} <===> too_few/error Error: Missing argument $color. , 1 | a {b: scale-color()} | ^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> too_few/error-libsass Error: Function scale-color is missing argument $color. on line 1 of input.scss >> a {b: scale-color()} ------^ <===> ================================================================================ <===> too_many/options.yml --- :todo: - sass/libsass#2900 <===> too_many/input.scss a {b: scale-color(red, 1)} <===> too_many/error Error: Only one positional argument is allowed. All other arguments must be passed by name. , 1 | a {b: scale-color(red, 1)} | ^^^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> ================================================================================ <===> unknown/options.yml --- :todo: - sass/libsass#2902 <===> unknown/input.scss a {b: scale-color(red, $hue: 10%)} <===> unknown/error Error: No argument named $hue. , 1 | a {b: scale-color(red, $hue: 10%)} | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet sass-spec-libsass-3.6.3/spec/core_functions/color/scale_color/error/bounds.hrx000066400000000000000000000217741355712145100276240ustar00rootroot00000000000000<===> red/too_low/input.scss a {b: scale-color(red, $red: -100.001%)} <===> red/too_low/error Error: $red: Expected -100.001% to be within -100% and 100%. , 1 | a {b: scale-color(red, $red: -100.001%)} | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> red/too_low/error-libsass Error: argument `$red` of `scale-color($color, $red: false, $green: false, $blue: false, $hue: false, $saturation: false, $lightness: false, $alpha: false)` must be between -100 and 100 on line 1:7 of input.scss, in function `scale-color` from line 1:7 of input.scss >> a {b: scale-color(red, $red: -100.001%)} ------^ <===> ================================================================================ <===> red/too_high/input.scss a {b: scale-color(red, $red: 100.001%)} <===> red/too_high/error Error: $red: Expected 100.001% to be within -100% and 100%. , 1 | a {b: scale-color(red, $red: 100.001%)} | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> red/too_high/error-libsass Error: argument `$red` of `scale-color($color, $red: false, $green: false, $blue: false, $hue: false, $saturation: false, $lightness: false, $alpha: false)` must be between -100 and 100 on line 1:7 of input.scss, in function `scale-color` from line 1:7 of input.scss >> a {b: scale-color(red, $red: 100.001%)} ------^ <===> ================================================================================ <===> green/too_low/input.scss a {b: scale-color(green, $green: -100.001%)} <===> green/too_low/error Error: $green: Expected -100.001% to be within -100% and 100%. , 1 | a {b: scale-color(green, $green: -100.001%)} | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> green/too_low/error-libsass Error: argument `$green` of `scale-color($color, $red: false, $green: false, $blue: false, $hue: false, $saturation: false, $lightness: false, $alpha: false)` must be between -100 and 100 on line 1:7 of input.scss, in function `scale-color` from line 1:7 of input.scss >> a {b: scale-color(green, $green: -100.001%)} ------^ <===> ================================================================================ <===> green/too_high/input.scss a {b: scale-color(green, $green: 100.001%)} <===> green/too_high/error Error: $green: Expected 100.001% to be within -100% and 100%. , 1 | a {b: scale-color(green, $green: 100.001%)} | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> green/too_high/error-libsass Error: argument `$green` of `scale-color($color, $red: false, $green: false, $blue: false, $hue: false, $saturation: false, $lightness: false, $alpha: false)` must be between -100 and 100 on line 1:7 of input.scss, in function `scale-color` from line 1:7 of input.scss >> a {b: scale-color(green, $green: 100.001%)} ------^ <===> ================================================================================ <===> blue/too_low/input.scss a {b: scale-color(blue, $blue: -100.001%)} <===> blue/too_low/error Error: $blue: Expected -100.001% to be within -100% and 100%. , 1 | a {b: scale-color(blue, $blue: -100.001%)} | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> blue/too_low/error-libsass Error: argument `$blue` of `scale-color($color, $red: false, $green: false, $blue: false, $hue: false, $saturation: false, $lightness: false, $alpha: false)` must be between -100 and 100 on line 1:7 of input.scss, in function `scale-color` from line 1:7 of input.scss >> a {b: scale-color(blue, $blue: -100.001%)} ------^ <===> ================================================================================ <===> blue/too_high/input.scss a {b: scale-color(blue, $blue: 100.001%)} <===> blue/too_high/error Error: $blue: Expected 100.001% to be within -100% and 100%. , 1 | a {b: scale-color(blue, $blue: 100.001%)} | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> blue/too_high/error-libsass Error: argument `$blue` of `scale-color($color, $red: false, $green: false, $blue: false, $hue: false, $saturation: false, $lightness: false, $alpha: false)` must be between -100 and 100 on line 1:7 of input.scss, in function `scale-color` from line 1:7 of input.scss >> a {b: scale-color(blue, $blue: 100.001%)} ------^ <===> ================================================================================ <===> saturation/too_low/input.scss a {b: scale-color(red, $saturation: -100.001%)} <===> saturation/too_low/error Error: $saturation: Expected -100.001% to be within -100% and 100%. , 1 | a {b: scale-color(red, $saturation: -100.001%)} | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> saturation/too_low/error-libsass Error: argument `$saturation` of `scale-color($color, $red: false, $green: false, $blue: false, $hue: false, $saturation: false, $lightness: false, $alpha: false)` must be between -100 and 100 on line 1:7 of input.scss, in function `scale-color` from line 1:7 of input.scss >> a {b: scale-color(red, $saturation: -100.001%)} ------^ <===> ================================================================================ <===> saturation/too_high/input.scss a {b: scale-color(red, $saturation: 100.001%)} <===> saturation/too_high/error Error: $saturation: Expected 100.001% to be within -100% and 100%. , 1 | a {b: scale-color(red, $saturation: 100.001%)} | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> saturation/too_high/error-libsass Error: argument `$saturation` of `scale-color($color, $red: false, $green: false, $blue: false, $hue: false, $saturation: false, $lightness: false, $alpha: false)` must be between -100 and 100 on line 1:7 of input.scss, in function `scale-color` from line 1:7 of input.scss >> a {b: scale-color(red, $saturation: 100.001%)} ------^ <===> ================================================================================ <===> lightness/too_low/input.scss a {b: scale-color(red, $lightness: -100.001%)} <===> lightness/too_low/error Error: $lightness: Expected -100.001% to be within -100% and 100%. , 1 | a {b: scale-color(red, $lightness: -100.001%)} | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> lightness/too_low/error-libsass Error: argument `$lightness` of `scale-color($color, $red: false, $green: false, $blue: false, $hue: false, $saturation: false, $lightness: false, $alpha: false)` must be between -100 and 100 on line 1:7 of input.scss, in function `scale-color` from line 1:7 of input.scss >> a {b: scale-color(red, $lightness: -100.001%)} ------^ <===> ================================================================================ <===> lightness/too_high/input.scss a {b: scale-color(red, $lightness: 100.001%)} <===> lightness/too_high/error Error: $lightness: Expected 100.001% to be within -100% and 100%. , 1 | a {b: scale-color(red, $lightness: 100.001%)} | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> lightness/too_high/error-libsass Error: argument `$lightness` of `scale-color($color, $red: false, $green: false, $blue: false, $hue: false, $saturation: false, $lightness: false, $alpha: false)` must be between -100 and 100 on line 1:7 of input.scss, in function `scale-color` from line 1:7 of input.scss >> a {b: scale-color(red, $lightness: 100.001%)} ------^ <===> ================================================================================ <===> alpha/too_low/input.scss a {b: scale-color(red, $alpha: -100.001%)} <===> alpha/too_low/error Error: $alpha: Expected -100.001% to be within -100% and 100%. , 1 | a {b: scale-color(red, $alpha: -100.001%)} | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> alpha/too_low/error-libsass Error: argument `$alpha` of `scale-color($color, $red: false, $green: false, $blue: false, $hue: false, $saturation: false, $lightness: false, $alpha: false)` must be between -100 and 100 on line 1:7 of input.scss, in function `scale-color` from line 1:7 of input.scss >> a {b: scale-color(red, $alpha: -100.001%)} ------^ <===> ================================================================================ <===> alpha/too_high/input.scss a {b: scale-color(red, $alpha: 100.001%)} <===> alpha/too_high/error Error: $alpha: Expected 100.001% to be within -100% and 100%. , 1 | a {b: scale-color(red, $alpha: 100.001%)} | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> alpha/too_high/error-libsass Error: argument `$alpha` of `scale-color($color, $red: false, $green: false, $blue: false, $hue: false, $saturation: false, $lightness: false, $alpha: false)` must be between -100 and 100 on line 1:7 of input.scss, in function `scale-color` from line 1:7 of input.scss >> a {b: scale-color(red, $alpha: 100.001%)} ------^ sass-spec-libsass-3.6.3/spec/core_functions/color/scale_color/error/hsl_and_rgb.hrx000066400000000000000000000040231355712145100305600ustar00rootroot00000000000000<===> red_and_saturation/input.scss a {b: scale-color(red, $red: 1%, $saturation: 1%)} <===> red_and_saturation/error Error: RGB parameters may not be passed along with HSL parameters. , 1 | a {b: scale-color(red, $red: 1%, $saturation: 1%)} | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> red_and_saturation/error-libsass Error: Cannot specify HSL and RGB values for a color at the same time for `scale-color' on line 1:7 of input.scss, in function `scale-color` from line 1:7 of input.scss >> a {b: scale-color(red, $red: 1%, $hue: 1%)} ------^ <===> ================================================================================ <===> green_and_saturation/input.scss a {b: scale-color(red, $green: 1%, $saturation: 1%)} <===> green_and_saturation/error Error: RGB parameters may not be passed along with HSL parameters. , 1 | a {b: scale-color(red, $green: 1%, $saturation: 1%)} | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> green_and_saturation/error-libsass Error: Cannot specify HSL and RGB values for a color at the same time for `scale-color' on line 1:7 of input.scss, in function `scale-color` from line 1:7 of input.scss >> a {b: scale-color(red, $green: 1%, $saturation: 1%)} ------^ <===> ================================================================================ <===> blue_and_lightness/input.scss a {b: scale-color(red, $blue: 1%, $lightness: 1%)} <===> blue_and_lightness/error Error: RGB parameters may not be passed along with HSL parameters. , 1 | a {b: scale-color(red, $blue: 1%, $lightness: 1%)} | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> blue_and_lightness/error-libsass Error: Cannot specify HSL and RGB values for a color at the same time for `scale-color' on line 1:7 of input.scss, in function `scale-color` from line 1:7 of input.scss >> a {b: scale-color(red, $blue: 1%, $lightness: 1%)} ------^ sass-spec-libsass-3.6.3/spec/core_functions/color/scale_color/error/type.hrx000066400000000000000000000043371355712145100273070ustar00rootroot00000000000000<===> options.yml --- :todo: - sass/libsass#2900 <===> ================================================================================ <===> color/input.scss a {b: scale-color(1)} <===> color/error Error: $color: 1 is not a color. , 1 | a {b: scale-color(1)} | ^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> ================================================================================ <===> red/input.scss a {b: scale-color(red, $red: c)} <===> red/error Error: $red: c is not a number. , 1 | a {b: scale-color(red, $red: c)} | ^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> ================================================================================ <===> green/input.scss a {b: scale-color(red, $green: c)} <===> green/error Error: $green: c is not a number. , 1 | a {b: scale-color(red, $green: c)} | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> ================================================================================ <===> blue/input.scss a {b: scale-color(red, $blue: c)} <===> blue/error Error: $blue: c is not a number. , 1 | a {b: scale-color(red, $blue: c)} | ^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> ================================================================================ <===> saturation/input.scss a {b: scale-color(red, $saturation: c)} <===> saturation/error Error: $saturation: c is not a number. , 1 | a {b: scale-color(red, $saturation: c)} | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> ================================================================================ <===> lightness/input.scss a {b: scale-color(red, $lightness: c)} <===> lightness/error Error: $lightness: c is not a number. , 1 | a {b: scale-color(red, $lightness: c)} | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> ================================================================================ <===> alpha/input.scss a {b: scale-color(red, $alpha: c)} <===> alpha/error Error: $alpha: c is not a number. , 1 | a {b: scale-color(red, $alpha: c)} | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet sass-spec-libsass-3.6.3/spec/core_functions/color/scale_color/error/units.hrx000066400000000000000000000103251355712145100274620ustar00rootroot00000000000000<===> options.yml --- :todo: - sass/libsass#2901 <===> ================================================================================ <===> none/red/input.scss a {b: scale-color(red, $red: 1px)} <===> none/red/error Error: $red: Expected 1px to have unit "%". , 1 | a {b: scale-color(red, $red: 1px)} | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> ================================================================================ <===> none/green/input.scss a {b: scale-color(green, $green: 1)} <===> none/green/error Error: $green: Expected 1 to have unit "%". , 1 | a {b: scale-color(green, $green: 1)} | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> ================================================================================ <===> none/blue/input.scss a {b: scale-color(blue, $blue: 1)} <===> none/blue/error Error: $blue: Expected 1 to have unit "%". , 1 | a {b: scale-color(blue, $blue: 1)} | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> ================================================================================ <===> none/saturation/input.scss a {b: scale-color(saturation, $saturation: 1)} <===> none/saturation/error Error: $color: saturation is not a color. , 1 | a {b: scale-color(saturation, $saturation: 1)} | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> ================================================================================ <===> none/lightness/input.scss a {b: scale-color(lightness, $lightness: 1)} <===> none/lightness/error Error: $color: lightness is not a color. , 1 | a {b: scale-color(lightness, $lightness: 1)} | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> ================================================================================ <===> none/alpha/input.scss a {b: scale-color(red, $alpha: 1)} <===> none/alpha/error Error: $alpha: Expected 1 to have unit "%". , 1 | a {b: scale-color(red, $alpha: 1)} | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> ================================================================================ <===> wrong/red/input.scss a {b: scale-color(red, $red: 1px)} <===> wrong/red/error Error: $red: Expected 1px to have unit "%". , 1 | a {b: scale-color(red, $red: 1px)} | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> ================================================================================ <===> wrong/green/input.scss a {b: scale-color(green, $green: 1px)} <===> wrong/green/error Error: $green: Expected 1px to have unit "%". , 1 | a {b: scale-color(green, $green: 1px)} | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> ================================================================================ <===> wrong/blue/input.scss a {b: scale-color(blue, $blue: 1px)} <===> wrong/blue/error Error: $blue: Expected 1px to have unit "%". , 1 | a {b: scale-color(blue, $blue: 1px)} | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> ================================================================================ <===> wrong/saturation/input.scss a {b: scale-color(saturation, $saturation: 1px)} <===> wrong/saturation/error Error: $color: saturation is not a color. , 1 | a {b: scale-color(saturation, $saturation: 1px)} | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> ================================================================================ <===> wrong/lightness/input.scss a {b: scale-color(lightness, $lightness: 1px)} <===> wrong/lightness/error Error: $color: lightness is not a color. , 1 | a {b: scale-color(lightness, $lightness: 1px)} | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> ================================================================================ <===> wrong/alpha/input.scss a {b: scale-color(red, $alpha: 1px)} <===> wrong/alpha/error Error: $alpha: Expected 1px to have unit "%". , 1 | a {b: scale-color(red, $alpha: 1px)} | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet sass-spec-libsass-3.6.3/spec/core_functions/color/scale_color/hsl.hrx000066400000000000000000000057141355712145100257630ustar00rootroot00000000000000<===> saturation/max/input.scss a {b: scale-color(plum, $saturation: 100%)} <===> saturation/max/output.css a { b: #ff7eff; } <===> ================================================================================ <===> saturation/zero/input.scss a {b: scale-color(plum, $saturation: 0%)} <===> saturation/zero/output.css a { b: plum; } <===> ================================================================================ <===> saturation/min/input.scss a {b: scale-color(plum, $saturation: -100%)} <===> saturation/min/output.css a { b: #bfbfbf; } <===> ================================================================================ <===> saturation/high/input.scss a {b: scale-color(plum, $saturation: 67%)} <===> saturation/high/output.css a { b: #f489f4; } <===> ================================================================================ <===> saturation/low/input.scss a {b: scale-color(plum, $saturation: -43%)} <===> saturation/low/output.css a { b: #d0add0; } <===> ================================================================================ <===> lightness/max/input.scss a {b: scale-color(red, $lightness: 100%)} <===> lightness/max/output.css a { b: white; } <===> ================================================================================ <===> lightness/zero/input.scss a {b: scale-color(red, $lightness: 0%)} <===> lightness/zero/output.css a { b: red; } <===> ================================================================================ <===> lightness/min/input.scss a {b: scale-color(red, $lightness: -100%)} <===> lightness/min/output.css a { b: black; } <===> ================================================================================ <===> lightness/high/input.scss a {b: scale-color(red, $lightness: 94%)} <===> lightness/high/output.css a { b: #fff0f0; } <===> ================================================================================ <===> lightness/low/input.scss a {b: scale-color(red, $lightness: -14%)} <===> lightness/low/output.css a { b: #db0000; } <===> ================================================================================ <===> all/input.scss a {b: scale-color(turquoise, $saturation: 24%, $lightness: -48%)} <===> all/output.css a { b: #10867a; } <===> ================================================================================ <===> alpha_input/input.scss a {b: scale-color(rgba(turquoise, 0.7), $saturation: 24%, $lightness: -48%)} <===> alpha_input/output.css a { b: rgba(16, 134, 122, 0.7); } <===> ================================================================================ <===> alpha_arg/input.scss a {b: scale-color(turquoise, $saturation: 24%, $lightness: -48%, $alpha: -70%)} <===> alpha_arg/output.css a { b: rgba(16, 134, 122, 0.3); } <===> ================================================================================ <===> named/input.scss a {b: scale-color($color: turquoise, $saturation: 24%, $lightness: -48%)} <===> named/output.css a { b: #10867a; } sass-spec-libsass-3.6.3/spec/core_functions/color/scale_color/no_rgb_hsl.hrx000066400000000000000000000027441355712145100273110ustar00rootroot00000000000000<===> positional/options.yml --- :todo: - sass/libsass#2900 <===> positional/input.scss a {b: scale-color(red)} <===> positional/output.css a { b: red; } <===> ================================================================================ <===> named/options.yml --- :todo: - sass/libsass#2900 <===> named/input.scss a {b: scale-color($color: red)} <===> named/output.css a { b: red; } <===> ================================================================================ <===> alpha/max/input.scss a {b: scale-color(rgba(red, 0.5), $alpha: 100%)} <===> alpha/max/output.css a { b: red; } <===> ================================================================================ <===> alpha/zero/input.scss a {b: scale-color(rgba(red, 0.5), $alpha: 0%)} <===> alpha/zero/output.css a { b: rgba(255, 0, 0, 0.5); } <===> ================================================================================ <===> alpha/min/input.scss a {b: scale-color(rgba(red, 0.5), $alpha: -100%)} <===> alpha/min/output.css a { b: rgba(255, 0, 0, 0); } <===> ================================================================================ <===> alpha/high/input.scss a {b: scale-color(rgba(red, 0.5), $alpha: 14%)} <===> alpha/high/output.css a { b: rgba(255, 0, 0, 0.57); } <===> ================================================================================ <===> alpha/low/input.scss a {b: scale-color(rgba(red, 0.3), $alpha: -36%)} <===> alpha/low/output.css a { b: rgba(255, 0, 0, 0.192); } sass-spec-libsass-3.6.3/spec/core_functions/color/scale_color/rgb.hrx000066400000000000000000000074341355712145100257500ustar00rootroot00000000000000<===> red/max/input.scss a {b: scale-color(black, $red: 100%)} <===> red/max/output.css a { b: red; } <===> ================================================================================ <===> red/min/input.scss a {b: scale-color(red, $red: -100%)} <===> red/min/output.css a { b: black; } <===> ================================================================================ <===> red/zero/input.scss a {b: scale-color(black, $red: 0%)} <===> red/zero/output.css a { b: black; } <===> ================================================================================ <===> red/low/input.scss a {b: scale-color(lightcoral, $red: -33%)} <===> red/low/output.css a { b: #a18080; } <===> ================================================================================ <===> red/high/input.scss a {b: scale-color(turquoise, $red: 86%)} <===> red/high/output.css a { b: #e4e0d0; } <===> ================================================================================ <===> green/max/input.scss a {b: scale-color(black, $green: 100%)} <===> green/max/output.css a { b: lime; } <===> ================================================================================ <===> green/min/input.scss a {b: scale-color(lime, $green: -100%)} <===> green/min/output.css a { b: black; } <===> ================================================================================ <===> green/zero/input.scss a {b: scale-color(black, $green: 0%)} <===> green/zero/output.css a { b: black; } <===> ================================================================================ <===> green/low/input.scss a {b: scale-color(seagreen, $green: -86%)} <===> green/low/output.css a { b: #2e1357; } <===> ================================================================================ <===> green/high/input.scss a {b: scale-color(cadetblue, $green: 12%)} <===> green/high/output.css a { b: #5faaa0; } <===> ================================================================================ <===> blue/max/input.scss a {b: scale-color(black, $blue: 100%)} <===> blue/max/output.css a { b: blue; } <===> ================================================================================ <===> blue/min/input.scss a {b: scale-color(blue, $blue: -100%)} <===> blue/min/output.css a { b: black; } <===> ================================================================================ <===> blue/zero/input.scss a {b: scale-color(black, $blue: 0%)} <===> blue/zero/output.css a { b: black; } <===> ================================================================================ <===> blue/low/input.scss a {b: scale-color(slategray, $blue: -16%)} <===> blue/low/output.css a { b: #708079; } <===> ================================================================================ <===> blue/high/input.scss a {b: scale-color(salmon, $blue: 42%)} <===> blue/high/output.css a { b: #fa80ad; } <===> ================================================================================ <===> all/input.scss a {b: scale-color(sienna, $red: 12%, $green: 24%, $blue: 48%)} <===> all/output.css a { b: #ab7c92; } <===> ================================================================================ <===> alpha_input/input.scss a {b: scale-color(rgba(sienna, 0.3), $red: 12%, $green: 24%, $blue: 48%)} <===> alpha_input/output.css a { b: rgba(171, 124, 146, 0.3); } <===> ================================================================================ <===> alpha_arg/input.scss a {b: scale-color(sienna, $red: 12%, $green: 24%, $blue: 48%, $alpha: -70%)} <===> alpha_arg/output.css a { b: rgba(171, 124, 146, 0.3); } <===> ================================================================================ <===> named/input.scss a {b: scale-color($color: sienna, $red: 12%, $green: 24%, $blue: 48%)} <===> named/output.css a { b: #ab7c92; } sass-spec-libsass-3.6.3/spec/core_functions/list/000077500000000000000000000000001355712145100220135ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/core_functions/list/_utils.scss000066400000000000000000000032571355712145100242160ustar00rootroot00000000000000// This library provides useful functions and variables for testing list // behavior. Lists can have strange internal representations that aren't readily // accessable to SassScript for two reasons: // // 1. The empty map is considered by the language to be identical to the empty // list returned by `()`, but it may have a different internal represenation. // // 2. Internally, a Sass list can have an "undecided" separator, indicating that // it will take on the separator of whatever list it's combined with. For // simplicity, the `list-separator()` function returns `space` for undecided // lists, but in order to thoroughly test their behavior we want to be able // to distinguish lists that are internally space-separated from those that // are internally undecided. /// Like `list-separator()` but returns `undecided` for lists with undecided /// separators. @function real-separator($list) { @if list-separator(join($list, 1 2)) != list-separator(join($list, (1, 2))) { @return undecided; } @else { @return list-separator($list); } } /// Returns a copy of `$list` with the given `$separator`. @function with-separator($list, $separator) { @return join($list, (), $separator); } /// An empty map, created by removing a value from a map. This *should* be /// treated as identical to the literal `()`. $empty-map: map-remove((a: b), a); /// The value `()` has an undefined separator, but we can construct an empty /// list with a defined space separator. $empty-space-list: with-separator((), space); /// The value `()` has an undefined separator, but we can construct an empty /// list with a defined comma separator. $empty-comma-list: with-separator((), comma); sass-spec-libsass-3.6.3/spec/core_functions/list/append.hrx000066400000000000000000000137301355712145100240110ustar00rootroot00000000000000<===> empty/undecided/input.scss @import "core_functions/list/utils"; $result: append((), 1); a { value: $result; type: type-of($result); separator: real-separator($result); } <===> empty/undecided/output.css a { value: 1; type: list; separator: space; } <===> ================================================================================ <===> empty/space/input.scss @import "core_functions/list/utils"; $result: append($empty-space-list, 1); a { value: $result; type: type-of($result); separator: real-separator($result); } <===> empty/space/output.css a { value: 1; type: list; separator: space; } <===> ================================================================================ <===> empty/comma/input.scss @import "core_functions/list/utils"; $result: append($empty-comma-list, 1); a { value: $result; type: type-of($result); separator: real-separator($result); } <===> empty/comma/output.css a { value: 1; type: list; separator: comma; } <===> ================================================================================ <===> single/undecided/input.scss a {b: append(1, 2)} <===> single/undecided/output.css a { b: 1 2; } <===> ================================================================================ <===> single/space/input.scss @import "core_functions/list/utils"; a {b: append(with-separator(1, space), 2)} <===> single/space/output.css a { b: 1 2; } <===> ================================================================================ <===> single/comma/input.scss a {b: append((1,), 2)} <===> single/comma/output.css a { b: 1, 2; } <===> ================================================================================ <===> space/default/input.scss a {b: append(1 2 3, 4)} <===> space/default/output.css a { b: 1 2 3 4; } <===> ================================================================================ <===> space/overridden/input.scss a {b: append((1, 2, 3), 4, $separator: space)} <===> space/overridden/output.css a { b: 1 2 3 4; } <===> ================================================================================ <===> comma/default/input.scss a {b: append((1, 2, 3), 4)} <===> comma/default/output.css a { b: 1, 2, 3, 4; } <===> ================================================================================ <===> comma/overridden/input.scss a {b: append(1 2 3, 4, $separator: comma)} <===> comma/overridden/output.css a { b: 1, 2, 3, 4; } <===> ================================================================================ <===> bracketed/input.scss a {b: append([], 1)} <===> bracketed/output.css a { b: [1]; } <===> ================================================================================ <===> map/empty/options.yml --- :todo: - sass/libsass#2924 <===> map/empty/input.scss @import "core_functions/list/utils"; $result: append($empty-map, 1); a { value: $result; type: type-of($result); separator: real-separator($result); } <===> map/empty/output.css a { value: 1; type: list; separator: space; } <===> ================================================================================ <===> map/non_empty/input.scss a {b: append((c: d, e: f), g)} <===> map/non_empty/output.css a { b: c d, e f, g; } <===> ================================================================================ <===> non_list/input.scss a {b: append(c, d)} <===> non_list/output.css a { b: c d; } <===> ================================================================================ <===> auto/input.scss a {b: append(c d, e, $separator: auto)} <===> auto/output.css a { b: c d e; } <===> ================================================================================ <===> named/input.scss a {b: append($list: c d, $val: e, $separator: comma)} <===> named/output.css a { b: c, d, e; } <===> ================================================================================ <===> error/type/separator/input.scss a {b: append(c, d, $separator: 1)} <===> error/type/separator/error Error: $separator: 1 is not a string. , 1 | a {b: append(c, d, $separator: 1)} | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> error/type/separator/error-libsass Error: argument `$separator` of `append($list, $val, $separator: auto)` must be a string on line 1:7 of input.scss, in function `append` from line 1:7 of input.scss >> a {b: append(c, d, $separator: 1)} ------^ <===> ================================================================================ <===> error/too_many_args/input.scss a {b: append(c, d, comma, e)} <===> error/too_many_args/error Error: Only 3 arguments allowed, but 4 were passed. , 1 | a {b: append(c, d, comma, e)} | ^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> error/too_many_args/error-libsass Error: wrong number of arguments (4 for 3) for `append' on line 1:7 of input.scss >> a {b: append(c, d, comma, e)} ------^ <===> ================================================================================ <===> error/too_few_args/input.scss a {b: append(c)} <===> error/too_few_args/error Error: Missing argument $val. , 1 | a {b: append(c)} | ^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> error/too_few_args/error-libsass Error: Function append is missing argument $val. on line 1 of input.scss >> a {b: append(c)} ------^ <===> ================================================================================ <===> error/unknown_separator/input.scss a {b: append(c, d, $separator: e)} <===> error/unknown_separator/error Error: $separator: Must be "space", "comma", or "auto". , 1 | a {b: append(c, d, $separator: e)} | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> error/unknown_separator/error-libsass Error: argument `$separator` of `append($list, $val, $separator: auto)` must be `space`, `comma`, or `auto` on line 1:7 of input.scss, in function `append` from line 1:7 of input.scss >> a {b: append(c, d, $separator: e)} ------^ sass-spec-libsass-3.6.3/spec/core_functions/list/index.hrx000066400000000000000000000066571355712145100236630ustar00rootroot00000000000000<===> found/single/input.scss a {b: index([c], c)} <===> found/single/output.css a { b: 1; } <===> ================================================================================ <===> found/first/input.scss a {b: index(a b c, a)} <===> found/first/output.css a { b: 1; } <===> ================================================================================ <===> found/last/input.scss a {b: index(a b c, c)} <===> found/last/output.css a { b: 3; } <===> ================================================================================ <===> found/sass_equality/input.scss a {b: index(1px 1in 1cm, 96px)} <===> found/sass_equality/output.css a { b: 2; } <===> ================================================================================ <===> found/multiple/input.scss a {b: index(a b c a b c, b)} <===> found/multiple/output.css a { b: 2; } <===> ================================================================================ <===> found/map/input.scss a {b: index((c: d, e: f, g: h), e f)} <===> found/map/output.css a { b: 2; } <===> ================================================================================ <===> found/non_list/input.scss a {b: index(c, c)} <===> found/non_list/output.css a { b: 1; } <===> ================================================================================ <===> not_found/empty/input.scss a {b: inspect(index((), c))} <===> not_found/empty/output.css a { b: null; } <===> ================================================================================ <===> not_found/non_empty/input.scss a {b: inspect(index(c d e, f))} <===> not_found/non_empty/output.css a { b: null; } <===> ================================================================================ <===> not_found/map/empty/input.scss @import "core_functions/list/utils"; a {b: inspect(index($empty-map, e))} <===> not_found/map/empty/output.css a { b: null; } <===> ================================================================================ <===> not_found/map/non_empty/input.scss a {b: inspect(index((c: d, e: f, g: h), e))} <===> not_found/map/non_empty/output.css a { b: null; } <===> ================================================================================ <===> not_found/non_list/input.scss a {b: inspect(index(c, d))} <===> not_found/non_list/output.css a { b: null; } <===> ================================================================================ <===> named/input.scss a {b: index($list: c d e, $value: d)} <===> named/output.css a { b: 2; } <===> ================================================================================ <===> error/too_few_args/input.scss a {b: index(c d e)} <===> error/too_few_args/error Error: Missing argument $value. , 1 | a {b: index(c d e)} | ^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> error/too_few_args/error-libsass Error: Function index is missing argument $value. on line 1 of input.scss >> a {b: index(c d e)} ------^ <===> ================================================================================ <===> error/too_many_args/input.scss a {b: index(c d e, d, e)} <===> error/too_many_args/error Error: Only 2 arguments allowed, but 3 were passed. , 1 | a {b: index(c d e, d, e)} | ^^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> error/too_many_args/error-libsass Error: wrong number of arguments (3 for 2) for `index' on line 1:7 of input.scss >> a {b: index(c d e, d, e)} ------^ sass-spec-libsass-3.6.3/spec/core_functions/list/is_bracketed.hrx000066400000000000000000000047501355712145100251630ustar00rootroot00000000000000<===> unbracketed/empty/input.scss a {b: is-bracketed(())} <===> unbracketed/empty/output.css a { b: false; } <===> ================================================================================ <===> unbracketed/single/input.scss a {b: is-bracketed((1,))} <===> unbracketed/single/output.css a { b: false; } <===> ================================================================================ <===> unbracketed/multi/input.scss a {b: is-bracketed(1 2 3)} <===> unbracketed/multi/output.css a { b: false; } <===> ================================================================================ <===> unbracketed/non_list/input.scss a {b: is-bracketed(1)} <===> unbracketed/non_list/output.css a { b: false; } <===> ================================================================================ <===> unbracketed/map/input.scss a {b: is-bracketed((c: d, e: f, g: h))} <===> unbracketed/map/output.css a { b: false; } <===> ================================================================================ <===> bracketed/empty/input.scss a {b: is-bracketed([])} <===> bracketed/empty/output.css a { b: true; } <===> ================================================================================ <===> bracketed/single/input.scss a {b: is-bracketed([1])} <===> bracketed/single/output.css a { b: true; } <===> ================================================================================ <===> bracketed/multi/input.scss a {b: is-bracketed([1, 2, 3])} <===> bracketed/multi/output.css a { b: true; } <===> ================================================================================ <===> error/too_few_args/input.scss a {b: is-bracketed()} <===> error/too_few_args/error Error: Missing argument $list. , 1 | a {b: is-bracketed()} | ^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> error/too_few_args/error-libsass Error: Function is-bracketed is missing argument $list. on line 1 of input.scss >> a {b: is-bracketed()} ------^ <===> ================================================================================ <===> error/too_many_args/input.scss a {b: is-bracketed(a b, c d)} <===> error/too_many_args/error Error: Only 1 argument allowed, but 2 were passed. , 1 | a {b: is-bracketed(a b, c d)} | ^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> error/too_many_args/error-libsass Error: wrong number of arguments (2 for 1) for `is-bracketed' on line 1:7 of input.scss >> a {b: is-bracketed(a b, c d)} ------^ sass-spec-libsass-3.6.3/spec/core_functions/list/join/000077500000000000000000000000001355712145100227525ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/core_functions/list/join/empty.hrx000066400000000000000000000127351355712145100246430ustar00rootroot00000000000000<===> both/undecided/input.scss @import "core_functions/list/utils"; $result: join((), ()); a { value: inspect($result); // `join()` should always produce a real separator, even when the inputs have // undecided separators. It should default to `space`. separator: real-separator($result); } <===> both/undecided/output.css a { value: (); separator: space; } <===> ================================================================================ <===> both/space/first/input.scss @import "core_functions/list/utils"; $result: join($empty-space-list, ()); a { value: inspect($result); separator: real-separator($result); } <===> both/space/first/output.css a { value: (); separator: space; } <===> ================================================================================ <===> both/space/last/input.scss @import "core_functions/list/utils"; $result: join((), $empty-space-list); a { value: inspect($result); separator: real-separator($result); } <===> both/space/last/output.css a { value: (); separator: space; } <===> ================================================================================ <===> both/comma/first/input.scss @import "core_functions/list/utils"; $result: join($empty-comma-list, ()); a { value: inspect($result); separator: real-separator($result); } <===> both/comma/first/output.css a { value: (); separator: comma; } <===> ================================================================================ <===> both/comma/last/options.yml --- :todo: - sass/libsass#2924 <===> both/comma/last/input.scss @import "core_functions/list/utils"; $result: join((), $empty-comma-list); a { value: inspect($result); separator: real-separator($result); } <===> both/comma/last/output.css a { value: (); separator: comma; } <===> ================================================================================ <===> first/undecided/and_space/input.scss a {b: join((), 1 2 3)} <===> first/undecided/and_space/output.css a { b: 1 2 3; } <===> ================================================================================ <===> first/undecided/and_comma/options.yml --- :todo: - sass/libsass#2924 <===> first/undecided/and_comma/input.scss a {b: join((), (1, 2, 3))} <===> first/undecided/and_comma/output.css a { b: 1, 2, 3; } <===> ================================================================================ <===> first/space/input.scss @import "core_functions/list/utils"; a {b: join($empty-space-list, (1, 2, 3))} <===> first/space/output.css a { b: 1 2 3; } <===> ================================================================================ <===> first/comma/input.scss @import "core_functions/list/utils"; a {b: join($empty-comma-list, 1 2 3)} <===> first/comma/output.css a { b: 1, 2, 3; } <===> ================================================================================ <===> second/undecided/space/input.scss a {b: join(1 2 3, ())} <===> second/undecided/space/output.css a { b: 1 2 3; } <===> ================================================================================ <===> second/undecided/comma/input.scss a {b: join((1, 2, 3), ())} <===> second/undecided/comma/output.css a { b: 1, 2, 3; } <===> ================================================================================ <===> second/space/input.scss @import "core_functions/list/utils"; a {b: join((1, 2, 3), $empty-space-list)} <===> second/space/output.css a { b: 1, 2, 3; } <===> ================================================================================ <===> second/comma/input.scss @import "core_functions/list/utils"; a {b: join(1 2 3, $empty-comma-list)} <===> second/comma/output.css a { b: 1 2 3; } <===> ================================================================================ <===> map/first/undecided/options.yml --- :todo: - sass/libsass#2924 <===> map/first/undecided/input.scss @import "core_functions/list/utils"; $result: join($empty-map, ()); a { value: inspect($result); separator: real-separator($result); } <===> map/first/undecided/output.css a { value: (); separator: space; } <===> ================================================================================ <===> map/first/space/options.yml --- :todo: - sass/libsass#2924 <===> map/first/space/input.scss @import "core_functions/list/utils"; a {b: join($empty-map, 1 2 3)} <===> map/first/space/output.css a { b: 1 2 3; } <===> ================================================================================ <===> map/first/comma/input.scss @import "core_functions/list/utils"; a {b: join($empty-map, (1, 2, 3))} <===> map/first/comma/output.css a { b: 1, 2, 3; } <===> ================================================================================ <===> map/second/space/input.scss @import "core_functions/list/utils"; a {b: join(1 2 3, $empty-map)} <===> map/second/space/output.css a { b: 1 2 3; } <===> ================================================================================ <===> map/second/comma/input.scss @import "core_functions/list/utils"; a {b: join((1, 2, 3), $empty-map)} <===> map/second/comma/output.css a { b: 1, 2, 3; } <===> ================================================================================ <===> map/second/undecided/options.yml --- :todo: - sass/libsass#2924 <===> map/second/undecided/input.scss @import "core_functions/list/utils"; $result: join($empty-map, ()); a { value: inspect($result); separator: real-separator($result); } <===> map/second/undecided/output.css a { value: (); separator: space; } sass-spec-libsass-3.6.3/spec/core_functions/list/join/error.hrx000066400000000000000000000071521355712145100246330ustar00rootroot00000000000000<===> ================================================================================ <===> README.md `join()` is unique in that it takes multiple optional arguments that can be passed independently of one another. This may necessitate unusual implementation, so we go out of our way to verify that it disallows unusual invalid calls. <===> ================================================================================ <===> type/separator/input.scss a {b: join(c, d, $separator: 1)} <===> type/separator/error Error: $separator: 1 is not a string. , 1 | a {b: join(c, d, $separator: 1)} | ^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> type/separator/error-libsass Error: argument `$separator` of `join($list1, $list2, $separator: auto, $bracketed: auto)` must be a string on line 1:7 of input.scss, in function `join` from line 1:7 of input.scss >> a {b: join(c, d, $separator: 1)} ------^ <===> ================================================================================ <===> too_many_args/input.scss a {b: join(c, d, comma, true, false)} <===> too_many_args/error Error: Only 4 arguments allowed, but 5 were passed. , 1 | a {b: join(c, d, comma, true, false)} | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> too_many_args/error-libsass Error: wrong number of arguments (5 for 4) for `join' on line 1:7 of input.scss >> a {b: join(c, d, comma, true, false)} ------^ <===> ================================================================================ <===> too_few_args/input.scss a {b: join(c)} <===> too_few_args/error Error: Missing argument $list2. , 1 | a {b: join(c)} | ^^^^^^^ ' input.scss 1:7 root stylesheet <===> too_few_args/error-libsass Error: Function join is missing argument $list2. on line 1 of input.scss >> a {b: join(c)} ------^ <===> ================================================================================ <===> named/input.scss a {b: join(c, d, $invalid: true)} <===> named/error Error: No argument named $invalid. , 1 | a {b: join(c, d, $invalid: true)} | ^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> named/error-libsass Error: Function join has no parameter named $invalid on line 1:18 of input.scss >> a {b: join(c, d, $invalid: true)} -----------------^ <===> ================================================================================ <===> positional_and_named/input.scss a {b: join(c, d, comma, true, false, $invalid: true)} <===> positional_and_named/error Error: Only 4 positional arguments allowed, but 5 were passed. , 1 | a {b: join(c, d, comma, true, false, $invalid: true)} | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> positional_and_named/error-libsass Error: wrong number of arguments (6 for 4) for `join' on line 1:7 of input.scss >> a {b: join(c, d, comma, true, false, $invalid: true)} ------^ <===> ================================================================================ <===> unknown_separator/input.scss a {b: join(c, d, $separator: e)} <===> unknown_separator/error Error: $separator: Must be "space", "comma", or "auto". , 1 | a {b: join(c, d, $separator: e)} | ^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> unknown_separator/error-libsass Error: argument `$separator` of `join($list1, $list2, $separator: auto, $bracketed: auto)` must be `space`, `comma`, or `auto` on line 1:7 of input.scss, in function `join` from line 1:7 of input.scss >> a {b: join(c, d, $separator: e)} ------^ sass-spec-libsass-3.6.3/spec/core_functions/list/join/multi.hrx000066400000000000000000000125541355712145100246360ustar00rootroot00000000000000<===> ================================================================================ <===> auto/separator/input.scss a {b: join((c, d), e f, $separator: auto)} <===> auto/separator/output.css a { b: c, d, e, f; } <===> ================================================================================ <===> auto/bracketed/input.scss a {b: join(c d, e f, $bracketed: auto)} <===> auto/bracketed/output.css a { b: c d e f; } <===> ================================================================================ <===> comma/both/input.scss a {b: join((c, d), (e, f))} <===> comma/both/output.css a { b: c, d, e, f; } <===> ================================================================================ <===> comma/first/input.scss a {b: join((c, d), e f)} <===> comma/first/output.css a { b: c, d, e, f; } <===> ================================================================================ <===> comma/second/input.scss a {b: join(c d, (e, f))} <===> comma/second/output.css a { b: c d e f; } <===> ================================================================================ <===> comma/separator/forces_comma/input.scss a {b: join(c, d, $separator: comma)} <===> comma/separator/forces_comma/output.css a { b: c, d; } <===> ================================================================================ <===> comma/separator/forces_not_comma/input.scss a {b: join((c, d), (e, f), $separator: space)} <===> comma/separator/forces_not_comma/output.css a { b: c d e f; } <===> ================================================================================ <===> space/both/input.scss a {b: join(c d, e f)} <===> space/both/output.css a { b: c d e f; } <===> ================================================================================ <===> space/separator/forces_space/input.scss a {b: join(c, d, $separator: space)} <===> space/separator/forces_space/output.css a { b: c d; } <===> ================================================================================ <===> space/separator/forces_not_space/input.scss a {b: join(c d, e f, $separator: comma)} <===> space/separator/forces_not_space/output.css a { b: c, d, e, f; } <===> ================================================================================ <===> bracketed/both/input.scss a {b: join([c d], [e f])} <===> bracketed/both/output.css a { b: [c d e f]; } <===> ================================================================================ <===> bracketed/first/input.scss a {b: join([c d], e f)} <===> bracketed/first/output.css a { b: [c d e f]; } <===> ================================================================================ <===> bracketed/second/input.scss a {b: join(c d, [e f])} <===> bracketed/second/output.css a { b: c d e f; } <===> ================================================================================ <===> bracketed/true/input.scss a {b: join(c, d, $bracketed: true)} <===> bracketed/true/output.css a { b: [c d]; } <===> ================================================================================ <===> bracketed/false/input.scss a {b: join([c], [d], $bracketed: false)} <===> bracketed/false/output.css a { b: c d; } <===> ================================================================================ <===> bracketed/and_separator/input.scss a {b: join(c, d, $bracketed: true, $separator: comma)} <===> bracketed/and_separator/output.css a { b: [c, d]; } <===> ================================================================================ <===> bracketed/positional/input.scss a {b: join(c, d, comma, true)} <===> bracketed/positional/output.css a { b: [c, d]; } <===> ================================================================================ <===> bracketed/truthy/input.scss a {b: join(c, d, $bracketed: e)} <===> bracketed/truthy/output.css a { b: [c d]; } <===> ================================================================================ <===> bracketed/falsey/input.scss a {b: join([c], [d], $bracketed: null)} <===> bracketed/falsey/output.css a { b: c d; } <===> ================================================================================ <===> map/both/input.scss a {b: join((c: d, e: f), (g: h, i: j))} <===> map/both/output.css a { b: c d, e f, g h, i j; } <===> ================================================================================ <===> map/first/space/input.scss a {b: inspect(join((c: d, e: f), g h))} <===> map/first/space/output.css a { b: c d, e f, g, h; } <===> ================================================================================ <===> map/first/comma/input.scss a {b: join((c: d, e: f), (g, h))} <===> map/first/comma/output.css a { b: c d, e f, g, h; } <===> ================================================================================ <===> map/second/space/input.scss // Use inspect() to prove that the map is converted to a list of pairs. a {b: inspect(join(c d, (e: f, g: h)))} <===> map/second/space/output.css a { b: c d (e f) (g h); } <===> ================================================================================ <===> map/second/comma/input.scss a {b: join((c, d), (e: f, g: h))} <===> map/second/comma/output.css a { b: c, d, e f, g h; } <===> ================================================================================ <===> named/input.scss a {b: join($list1: a b, $list2: c d, $separator: comma, $bracketed: true)} <===> named/output.css a { b: [a, b, c, d]; } sass-spec-libsass-3.6.3/spec/core_functions/list/join/single.hrx000066400000000000000000000123271355712145100247630ustar00rootroot00000000000000<===> ================================================================================ <===> both/undecided/input.scss a {b: join([1], [2])} <===> both/undecided/output.css a { b: [1 2]; } <===> ================================================================================ <===> both/space/first/input.scss @import "core_functions/list/utils"; a {b: join(with-separator(1, space), [2])} <===> both/space/first/output.css a { b: 1 2; } <===> ================================================================================ <===> both/space/last/input.scss @import "core_functions/list/utils"; a {b: join([1], with-separator(2, space))} <===> both/space/last/output.css a { b: [1 2]; } <===> ================================================================================ <===> both/comma/first/input.scss @import "core_functions/list/utils"; a {b: join((1,), [2])} <===> both/comma/first/output.css a { b: 1, 2; } <===> ================================================================================ <===> both/comma/last/options.yml --- :todo: - sass/libsass#2924 <===> both/comma/last/input.scss @import "core_functions/list/utils"; a {b: join([1], (2,))} <===> both/comma/last/output.css a { b: [1, 2]; } <===> ================================================================================ <===> first/undecided/and_space/input.scss a {b: join([1], 2 3 4)} <===> first/undecided/and_space/output.css a { b: [1 2 3 4]; } <===> ================================================================================ <===> first/undecided/and_comma/options.yml --- :todo: - sass/libsass#2924 <===> first/undecided/and_comma/input.scss a {b: join([1], (2, 3, 4))} <===> first/undecided/and_comma/output.css a { b: [1, 2, 3, 4]; } <===> ================================================================================ <===> first/space/input.scss @import "core_functions/list/utils"; a {b: join(with-separator(1, space), (2, 3, 4))} <===> first/space/output.css a { b: 1 2 3 4; } <===> ================================================================================ <===> first/comma/input.scss a {b: join((1,), 2 3 4)} <===> first/comma/output.css a { b: 1, 2, 3, 4; } <===> ================================================================================ <===> second/undecided/space/input.scss a {b: join(1 2 3, [4])} <===> second/undecided/space/output.css a { b: 1 2 3 4; } <===> ================================================================================ <===> second/undecided/comma/input.scss a {b: join((1, 2, 3), [4])} <===> second/undecided/comma/output.css a { b: 1, 2, 3, 4; } <===> ================================================================================ <===> second/space/input.scss @import "core_functions/list/utils"; a {b: join((1, 2, 3), with-separator(4, space))} <===> second/space/output.css a { b: 1, 2, 3, 4; } <===> ================================================================================ <===> second/comma/input.scss a {b: join(1 2 3, (4,))} <===> second/comma/output.css a { b: 1 2 3 4; } <===> ================================================================================ <===> non_list/both/input.scss a {b: join(c, d)} <===> non_list/both/output.css a { b: c d; } <===> ================================================================================ <===> non_list/first/space/input.scss a {b: inspect(join(c, d e))} <===> non_list/first/space/output.css a { b: c d e; } <===> ================================================================================ <===> non_list/first/comma/input.scss a {b: join(c, (d, e))} <===> non_list/first/comma/output.css a { b: c, d, e; } <===> ================================================================================ <===> non_list/first/undecided/input.scss @import "core_functions/list/utils"; $result: join(c, ()); a { value: inspect($result); type: type-of($result); // Note: LibSass's output here is strange but not strictly-speaking wrong. // See sass/libsass#2926 for details. separator: real-separator($result); } <===> non_list/first/undecided/output.css a { value: c; type: list; separator: space; } <===> non_list/first/undecided/output-libsass.css a { value: (c,); type: list; separator: space; } <===> ================================================================================ <===> non_list/second/space/input.scss a {b: inspect(join(c d, e))} <===> non_list/second/space/output.css a { b: c d e; } <===> ================================================================================ <===> non_list/second/comma/input.scss a {b: join((c, d), e)} <===> non_list/second/comma/output.css a { b: c, d, e; } <===> ================================================================================ <===> non_list/second/undecided/input.scss @import "core_functions/list/utils"; $result: join((), c); a { value: inspect($result); type: type-of($result); // Note: LibSass's output here is strange but not strictly-speaking wrong. // See sass/libsass#2926 for details. separator: real-separator($result); } <===> non_list/second/undecided/output.css a { value: c; type: list; separator: space; } <===> non_list/second/undecided/output-libsass.css a { value: (c,); type: list; separator: space; } sass-spec-libsass-3.6.3/spec/core_functions/list/length.hrx000066400000000000000000000043241355712145100240220ustar00rootroot00000000000000<===> 0/input.scss a {b: length(())} <===> 0/output.css a { b: 0; } <===> ================================================================================ <===> 1/input.scss a {b: length(join((), 1))} <===> 1/output.css a { b: 1; } <===> ================================================================================ <===> 2/input.scss a {b: length(c d)} <===> 2/output.css a { b: 2; } <===> ================================================================================ <===> many/input.scss a {b: length((1, 2, 3, 4, 5))} <===> many/output.css a { b: 5; } <===> ================================================================================ <===> map/empty/input.scss @import "core_functions/list/utils"; a {b: length($empty-map)} <===> map/empty/output.css a { b: 0; } <===> ================================================================================ <===> map/non_empty/input.scss a {b: length((1: 2, 3: 4))} <===> map/non_empty/output.css a { b: 2; } <===> ================================================================================ <===> non_list/input.scss a {b: length(c)} <===> non_list/output.css a { b: 1; } <===> ================================================================================ <===> named/input.scss a {b: length($list: 1 2 3)} <===> named/output.css a { b: 3; } <===> ================================================================================ <===> error/too_few_args/input.scss a {b: length()} <===> error/too_few_args/error Error: Missing argument $list. , 1 | a {b: length()} | ^^^^^^^^ ' input.scss 1:7 root stylesheet <===> error/too_few_args/error-libsass Error: Function length is missing argument $list. on line 1 of input.scss >> a {b: length()} ------^ <===> ================================================================================ <===> error/too_many_args/input.scss a {b: length(1, 2)} <===> error/too_many_args/error Error: Only 1 argument allowed, but 2 were passed. , 1 | a {b: length(1, 2)} | ^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> error/too_many_args/error-libsass Error: wrong number of arguments (2 for 1) for `length' on line 1:7 of input.scss >> a {b: length(1, 2)} ------^ sass-spec-libsass-3.6.3/spec/core_functions/list/nth.hrx000066400000000000000000000114251355712145100233320ustar00rootroot00000000000000<===> 1/of_1/input.scss a {b: nth(join((), c), 1)} <===> 1/of_1/output.css a { b: c; } <===> ================================================================================ <===> 1/of_2/input.scss a {b: nth(c d, 1)} <===> 1/of_2/output.css a { b: c; } <===> ================================================================================ <===> 2/of_2/input.scss a {b: nth(c d, 2)} <===> 2/of_2/output.css a { b: d; } <===> ================================================================================ <===> 2/of_4/input.scss a {b: nth(c d e f, 2)} <===> 2/of_4/output.css a { b: d; } <===> ================================================================================ <===> negative/1/of_1/input.scss a {b: nth(join((), c), -1)} <===> negative/1/of_1/output.css a { b: c; } <===> ================================================================================ <===> negative/1/of_2/input.scss a {b: nth(c d, -1)} <===> negative/1/of_2/output.css a { b: d; } <===> ================================================================================ <===> negative/2/of_2/input.scss a {b: nth(c d, -2)} <===> negative/2/of_2/output.css a { b: c; } <===> ================================================================================ <===> negative/2/of_4/input.scss a {b: nth(c d e f, -2)} <===> negative/2/of_4/output.css a { b: e; } <===> ================================================================================ <===> map/input.scss a {b: nth((c: d, e: f, g: h), 2)} <===> map/output.css a { b: e f; } <===> ================================================================================ <===> non_list/input.scss a {b: nth(c, 1)} <===> non_list/output.css a { b: c; } <===> ================================================================================ <===> named/input.scss a {b: nth($list: c d, $n: 1)} <===> named/output.css a { b: c; } <===> ================================================================================ <===> error/type/input.scss a {b: nth(c d, e)} <===> error/type/error Error: $n: e is not a number. , 1 | a {b: nth(c d, e)} | ^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> error/type/error-libsass Error: argument `$n` of `nth($list, $n)` must be a number on line 1:7 of input.scss, in function `nth` from line 1:7 of input.scss >> a {b: nth(c d, e)} ------^ <===> ================================================================================ <===> error/index/0/input.scss a {b: nth(c d, 0)} <===> error/index/0/error Error: $n: List index may not be 0. , 1 | a {b: nth(c d, 0)} | ^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> error/index/0/error-libsass Error: argument `$n` of `nth($list, $n)` must be non-zero on line 1:7 of input.scss, in function `nth` from line 1:7 of input.scss >> a {b: nth(c d, 0)} ------^ <===> ================================================================================ <===> error/index/too_high/input.scss a {b: nth(c d, 3)} <===> error/index/too_high/error Error: $n: Invalid index 3 for a list with 2 elements. , 1 | a {b: nth(c d, 3)} | ^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> error/index/too_high/error-libsass Error: index out of bounds for `nth($list, $n)` on line 1:7 of input.scss, in function `nth` from line 1:7 of input.scss >> a {b: nth(c d, 3)} ------^ <===> ================================================================================ <===> error/index/too_low/input.scss a {b: nth(c d, -3)} <===> error/index/too_low/error Error: $n: Invalid index -3 for a list with 2 elements. , 1 | a {b: nth(c d, -3)} | ^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> error/index/too_low/error-libsass Error: index out of bounds for `nth($list, $n)` on line 1:7 of input.scss, in function `nth` from line 1:7 of input.scss >> a {b: nth(c d, -3)} ------^ <===> ================================================================================ <===> error/too_few_args/input.scss a {b: nth(c d)} <===> error/too_few_args/error Error: Missing argument $n. , 1 | a {b: nth(c d)} | ^^^^^^^^ ' input.scss 1:7 root stylesheet <===> error/too_few_args/error-libsass Error: Function nth is missing argument $n. on line 1 of input.scss >> a {b: nth(c d)} ------^ <===> ================================================================================ <===> error/too_many_args/input.scss a {b: nth(c d, 1, 2)} <===> error/too_many_args/error Error: Only 2 arguments allowed, but 3 were passed. , 1 | a {b: nth(c d, 1, 2)} | ^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> error/too_many_args/error-libsass Error: wrong number of arguments (3 for 2) for `nth' on line 1:7 of input.scss >> a {b: nth(c d, 1, 2)} ------^ sass-spec-libsass-3.6.3/spec/core_functions/list/separator.hrx000066400000000000000000000053431355712145100245430ustar00rootroot00000000000000<===> empty/space/input.scss a {b: list-separator(())} <===> empty/space/output.css a { b: space; } <===> ================================================================================ <===> empty/comma/input.scss a {b: list-separator(join((), (), comma))} <===> empty/comma/output.css a { b: comma; } <===> ================================================================================ <===> empty/map/input.scss @import "core_functions/list/utils"; a {b: list-separator($empty-map)} <===> empty/map/output.css a { b: space; } <===> ================================================================================ <===> single/space/input.scss a {b: list-separator([1])} <===> single/space/output.css a { b: space; } <===> ================================================================================ <===> single/comma/input.scss a {b: list-separator((1,))} <===> single/comma/output.css a { b: comma; } <===> ================================================================================ <===> single/non_list/input.scss a {b: list-separator(1)} <===> single/non_list/output.css a { b: space; } <===> ================================================================================ <===> multi/space/input.scss a {b: list-separator(1 2 3)} <===> multi/space/output.css a { b: space; } <===> ================================================================================ <===> multi/comma/input.scss a {b: list-separator((1, 2, 3))} <===> multi/comma/output.css a { b: comma; } <===> ================================================================================ <===> multi/map/options.yml --- :todo: - sass/libsass#2925 <===> multi/map/input.scss a {b: list-separator((c: d, e: f, g: h))} <===> multi/map/output.css a { b: comma; } <===> ================================================================================ <===> error/too_few_args/input.scss a {b: list-separator()} <===> error/too_few_args/error Error: Missing argument $list. , 1 | a {b: list-separator()} | ^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> error/too_few_args/error-libsass Error: Function list-separator is missing argument $list. on line 1 of input.scss >> a {b: list-separator()} ------^ <===> ================================================================================ <===> error/too_many_args/input.scss a {b: list-separator(c, d)} <===> error/too_many_args/error Error: Only 1 argument allowed, but 2 were passed. , 1 | a {b: list-separator(c, d)} | ^^^^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> error/too_many_args/error-libsass Error: wrong number of arguments (2 for 1) for `list-separator' on line 1:7 of input.scss >> a {b: list-separator(c, d)} ------^ sass-spec-libsass-3.6.3/spec/core_functions/list/set_nth.hrx000066400000000000000000000125651355712145100242130ustar00rootroot00000000000000<===> 1/of_1/input.scss $result: set-nth(join((), b), 1, c); a { result: $result; type: type-of($result); } <===> 1/of_1/output.css a { result: c; type: list; } <===> ================================================================================ <===> 1/of_2/input.scss a {b: set-nth(c d, 1, e)} <===> 1/of_2/output.css a { b: e d; } <===> ================================================================================ <===> 2/of_2/input.scss a {b: set-nth(c d, 2, e)} <===> 2/of_2/output.css a { b: c e; } <===> ================================================================================ <===> 2/of_4/input.scss a {b: set-nth(c d e f, 2, g)} <===> 2/of_4/output.css a { b: c g e f; } <===> ================================================================================ <===> negative/1/of_1/input.scss $result: set-nth(join((), b), -1, c); a { result: $result; type: type-of($result); } <===> negative/1/of_1/output.css a { result: c; type: list; } <===> ================================================================================ <===> negative/1/of_2/input.scss a {b: set-nth(c d, -1, e)} <===> negative/1/of_2/output.css a { b: c e; } <===> ================================================================================ <===> negative/2/of_2/input.scss a {b: set-nth(c d, -2, e)} <===> negative/2/of_2/output.css a { b: e d; } <===> ================================================================================ <===> negative/2/of_4/input.scss a {b: set-nth(c d e f, -2, g)} <===> negative/2/of_4/output.css a { b: c d g f; } <===> ================================================================================ <===> map/input.scss a {b: set-nth((c: d, e: f, g: h), 2, i)} <===> map/output.css a { b: c d, i, g h; } <===> ================================================================================ <===> non_list/input.scss $result: set-nth(b, 1, c); a { result: $result; type: type-of($result); } <===> non_list/output.css a { result: c; type: list; } <===> ================================================================================ <===> named/input.scss a {b: set-nth($list: c d, $n: 1, $value: e)} <===> named/output.css a { b: e d; } <===> ================================================================================ <===> error/type/input.scss a {b: set-nth(c d, e, f)} <===> error/type/error Error: $n: e is not a number. , 1 | a {b: set-nth(c d, e, f)} | ^^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> error/type/error-libsass Error: argument `$n` of `set-nth($list, $n, $value)` must be a number on line 1:7 of input.scss, in function `set-nth` from line 1:7 of input.scss >> a {b: set-nth(c d, e, f)} ------^ <===> ================================================================================ <===> error/index/0/input.scss a {b: set-nth(c d, 0, e)} <===> error/index/0/error Error: $n: List index may not be 0. , 1 | a {b: set-nth(c d, 0, e)} | ^^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> error/index/0/error-libsass Error: index out of bounds for `set-nth($list, $n, $value)` on line 1:7 of input.scss, in function `set-nth` from line 1:7 of input.scss >> a {b: set-nth(c d, 0, e)} ------^ <===> ================================================================================ <===> error/index/too_high/input.scss a {b: set-nth(c d, 3, e)} <===> error/index/too_high/error Error: $n: Invalid index 3 for a list with 2 elements. , 1 | a {b: set-nth(c d, 3, e)} | ^^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> error/index/too_high/error-libsass Error: index out of bounds for `set-nth($list, $n, $value)` on line 1:7 of input.scss, in function `set-nth` from line 1:7 of input.scss >> a {b: set-nth(c d, 3, e)} ------^ <===> ================================================================================ <===> error/index/too_low/input.scss a {b: set-nth(c d, -3, e)} <===> error/index/too_low/error Error: $n: Invalid index -3 for a list with 2 elements. , 1 | a {b: set-nth(c d, -3, e)} | ^^^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> error/index/too_low/error-libsass Error: index out of bounds for `set-nth($list, $n, $value)` on line 1:7 of input.scss, in function `set-nth` from line 1:7 of input.scss >> a {b: set-nth(c d, -3, e)} ------^ <===> ================================================================================ <===> error/index/too_few_args/input.scss a {b: set-nth(c d, 1)} <===> error/index/too_few_args/error Error: Missing argument $value. , 1 | a {b: set-nth(c d, 1)} | ^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> error/index/too_few_args/error-libsass Error: Function set-nth is missing argument $value. on line 1 of input.scss >> a {b: set-nth(c d, 1)} ------^ <===> ================================================================================ <===> error/index/too_many_args/input.scss a {b: set-nth(c d, 1, 2, 3)} <===> error/index/too_many_args/error Error: Only 3 arguments allowed, but 4 were passed. , 1 | a {b: set-nth(c d, 1, 2, 3)} | ^^^^^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> error/index/too_many_args/error-libsass Error: wrong number of arguments (4 for 3) for `set-nth' on line 1:7 of input.scss >> a {b: set-nth(c d, 1, 2, 3)} ------^ sass-spec-libsass-3.6.3/spec/core_functions/list/utils.hrx000066400000000000000000000067331355712145100237070ustar00rootroot00000000000000<===> README.md These tests verify that `_utils.scss` works as intended. <===> ================================================================================ <===> real_separator/empty/undecided/options.yml --- :todo: - sass/libsass#2924 <===> real_separator/empty/undecided/input.scss @import "core_functions/list/utils"; a {b: real-separator(())} <===> real_separator/empty/undecided/output.css a { b: undecided; } <===> ================================================================================ <===> real_separator/empty/space/input.scss @import "core_functions/list/utils"; a {b: real-separator($empty-space-list)} <===> real_separator/empty/space/output.css a { b: space; } <===> ================================================================================ <===> real_separator/empty/comma/input.scss @import "core_functions/list/utils"; a {b: real-separator($empty-comma-list)} <===> real_separator/empty/comma/output.css a { b: comma; } <===> ================================================================================ <===> real_separator/single/undecided/options.yml --- :todo: - sass/libsass#2924 <===> real_separator/single/undecided/input.scss @import "core_functions/list/utils"; a {b: real-separator([1])} <===> real_separator/single/undecided/output.css a { b: undecided; } <===> ================================================================================ <===> real_separator/single/comma/input.scss @import "core_functions/list/utils"; a {b: real-separator((1,))} <===> real_separator/single/comma/output.css a { b: comma; } <===> ================================================================================ <===> real_separator/multi/space/input.scss @import "core_functions/list/utils"; a {b: real-separator(1 2)} <===> real_separator/multi/space/output.css a { b: space; } <===> ================================================================================ <===> real_separator/multi/comma/input.scss @import "core_functions/list/utils"; a {b: real-separator((1, 2))} <===> real_separator/multi/comma/output.css a { b: comma; } <===> ================================================================================ <===> with_separator/single/space/input.scss @import "core_functions/list/utils"; a {b: real-separator(with-separator((1,), space))} <===> with_separator/single/space/output.css a { b: space; } <===> ================================================================================ <===> with_separator/single/comma/input.scss @import "core_functions/list/utils"; a {b: real-separator(with-separator([1], comma))} <===> with_separator/single/comma/output.css a { b: comma; } <===> ================================================================================ <===> with_separator/multi/space/input.scss @import "core_functions/list/utils"; a {b: with-separator((1, 2), space)} <===> with_separator/multi/space/output.css a { b: 1 2; } <===> ================================================================================ <===> with_separator/multi/comma/input.scss @import "core_functions/list/utils"; a {b: with-separator(1 2, comma)} <===> with_separator/multi/comma/output.css a { b: 1, 2; } <===> ================================================================================ <===> empty_map/same_as_empty_list/options.yml --- :todo: - sass/libsass#2924 <===> empty_map/same_as_empty_list/input.scss @import "core_functions/list/utils"; a {b: $empty-map == ()} <===> empty_map/same_as_empty_list/output.css a { b: true; } sass-spec-libsass-3.6.3/spec/core_functions/list/zip.hrx000066400000000000000000000101641355712145100233420ustar00rootroot00000000000000<===> no_lists/input.scss @import "core_functions/list/utils"; $result: zip(); a { value: inspect($result); separator: real-separator($result); } <===> no_lists/output.css a { value: (); separator: comma; } <===> ================================================================================ <===> one_list/empty/input.scss @import "core_functions/list/utils"; $result: zip(()); a { value: inspect($result); separator: real-separator($result); } <===> one_list/empty/output.css a { value: (); separator: comma; } <===> ================================================================================ <===> one_list/space/input.scss @import "core_functions/list/utils"; $result: zip(1 2 3); $element: nth($result, 2); a { value: $result; element: $element { type: type-of($element); separator: real-separator($element); } } <===> one_list/space/output.css a { value: 1, 2, 3; element: 2; element-type: list; element-separator: space; } <===> ================================================================================ <===> one_list/comma/input.scss @import "core_functions/list/utils"; $result: zip((1, 2, 3)); $element: nth($result, 2); a { value: $result; element: $element { type: type-of($element); separator: real-separator($element); } } <===> one_list/comma/output.css a { value: 1, 2, 3; element: 2; element-type: list; element-separator: space; } <===> ================================================================================ <===> one_list/bracketed/input.scss @import "core_functions/list/utils"; $result: zip([1 2 3]); $element: nth($result, 2); a { value: $result; element: $element { type: type-of($element); separator: real-separator($element); } } <===> one_list/bracketed/output.css a { value: 1, 2, 3; element: 2; element-type: list; element-separator: space; } <===> ================================================================================ <===> two_lists/first_empty/input.scss a {b: inspect(zip((), 1 2 3))} <===> two_lists/first_empty/output.css a { b: (); } <===> ================================================================================ <===> two_lists/second_empty/input.scss a {b: inspect(zip(1 2 3, ()))} <===> two_lists/second_empty/output.css a { b: (); } <===> ================================================================================ <===> two_lists/first_longer/input.scss a {b: zip(1 2 3 4, c d)} <===> two_lists/first_longer/output.css a { b: 1 c, 2 d; } <===> ================================================================================ <===> two_lists/second_longer/input.scss a {b: zip(1 2, c d e f)} <===> two_lists/second_longer/output.css a { b: 1 c, 2 d; } <===> ================================================================================ <===> two_lists/same_length/input.scss a {b: zip(1 2 3, c d e)} <===> two_lists/same_length/output.css a { b: 1 c, 2 d, 3 e; } <===> ================================================================================ <===> three_lists/input.scss a {b: zip(1 2 3, c d e, red green blue)} <===> three_lists/output.css a { b: 1 c red, 2 d green, 3 e blue; } <===> ================================================================================ <===> map/empty/input.scss a {b: inspect(zip(map-remove((c: d), c)))} <===> map/empty/output.css a { b: (); } <===> ================================================================================ <===> map/non_empty/input.scss a {b: inspect(zip((c: d, e: f, g: h), 1 2 3))} <===> map/non_empty/output.css a { b: (c d) 1, (e f) 2, (g h) 3; } <===> ================================================================================ <===> non_list/input.scss a {b: zip(c, d, e)} <===> non_list/output.css a { b: c d e; } <===> ================================================================================ <===> error/README.md `zip()` is unique among built-in functions in that there's no possible invocation that produces an error, since it can take any number of arguments and any argument can be interpreted as a list. Since we don't normally test for passing invalid named parameters, it has no error tests. sass-spec-libsass-3.6.3/spec/core_functions/map/000077500000000000000000000000001355712145100216155ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/core_functions/map/get.hrx000066400000000000000000000056621355712145100231300ustar00rootroot00000000000000<===> not_found/empty/input.scss a {b: inspect(map-get((), 1))} <===> not_found/empty/output.css a { b: null; } <===> ================================================================================ <===> not_found/non_empty/input.scss a {b: inspect(map-get((c: d), d))} <===> not_found/non_empty/output.css a { b: null; } <===> ================================================================================ <===> not_found/dash_sensitive/input.scss a {b: inspect(map-get((c-d: e), c_d))} <===> not_found/dash_sensitive/output.css a { b: null; } <===> ================================================================================ <===> found/single/input.scss a {b: map-get((c: d), c)} <===> found/single/output.css a { b: d; } <===> ================================================================================ <===> found/first/input.scss a {b: map-get((1: 2, 3: 4, 5: 6), 1)} <===> found/first/output.css a { b: 2; } <===> ================================================================================ <===> found/middle/input.scss a {b: map-get((1: 2, 3: 4, 5: 6), 3)} <===> found/middle/output.css a { b: 4; } <===> ================================================================================ <===> found/last/input.scss a {b: map-get((1: 2, 3: 4, 5: 6), 5)} <===> found/last/output.css a { b: 6; } <===> ================================================================================ <===> named/input.scss a {b: map-get($map: (c: d), $key: c)} <===> named/output.css a { b: d; } <===> ================================================================================ <===> error/type/map/input.scss a {b: map-get(1, 2)} <===> error/type/map/error Error: $map: 1 is not a map. , 1 | a {b: map-get(1, 2)} | ^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> error/type/map/error-libsass Error: argument `$map` of `map-get($map, $key)` must be a map on line 1:7 of input.scss, in function `map-get` from line 1:7 of input.scss >> a {b: map-get(1, 2)} ------^ <===> ================================================================================ <===> error/too_few_args/input.scss a {b: map-get(1)} <===> error/too_few_args/error Error: Missing argument $key. , 1 | a {b: map-get(1)} | ^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> error/too_few_args/error-libsass Error: Function map-get is missing argument $key. on line 1 of input.scss >> a {b: map-get(1)} ------^ <===> ================================================================================ <===> error/too_many_args/input.scss a {b: map-get(1, 2, 3)} <===> error/too_many_args/error Error: Only 2 arguments allowed, but 3 were passed. , 1 | a {b: map-get(1, 2, 3)} | ^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> error/too_many_args/error-libsass Error: wrong number of arguments (3 for 2) for `map-get' on line 1:7 of input.scss >> a {b: map-get(1, 2, 3)} ------^ sass-spec-libsass-3.6.3/spec/core_functions/map/has_key.hrx000066400000000000000000000054501355712145100237670ustar00rootroot00000000000000<===> not_found/empty/input.scss a {b: map-has-key((), 1)} <===> not_found/empty/output.css a { b: false; } <===> ================================================================================ <===> not_found/non_empty/input.scss a {b: map-has-key((c: d), d)} <===> not_found/non_empty/output.css a { b: false; } <===> ================================================================================ <===> found/single/input.scss a {b: map-has-key((c: d), c)} <===> found/single/output.css a { b: true; } <===> ================================================================================ <===> found/first/input.scss a {b: map-has-key((1: 2, 3: 4, 5: 6), 1)} <===> found/first/output.css a { b: true; } <===> ================================================================================ <===> found/middle/input.scss a {b: map-has-key((1: 2, 3: 4, 5: 6), 3)} <===> found/middle/output.css a { b: true; } <===> ================================================================================ <===> found/last/input.scss a {b: map-has-key((1: 2, 3: 4, 5: 6), 5)} <===> found/last/output.css a { b: true; } <===> ================================================================================ <===> named/input.scss a {b: map-has-key($map: (c: d), $key: c)} <===> named/output.css a { b: true; } <===> ================================================================================ <===> error/type/map/input.scss a {b: map-has-key(1, 2)} <===> error/type/map/error Error: $map: 1 is not a map. , 1 | a {b: map-has-key(1, 2)} | ^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> error/type/map/error-libsass Error: argument `$map` of `map-has-key($map, $key)` must be a map on line 1:7 of input.scss, in function `map-has-key` from line 1:7 of input.scss >> a {b: map-has-key(1, 2)} ------^ <===> ================================================================================ <===> error/too_few_args/input.scss a {b: map-has-key(1)} <===> error/too_few_args/error Error: Missing argument $key. , 1 | a {b: map-has-key(1)} | ^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> error/too_few_args/error-libsass Error: Function map-has-key is missing argument $key. on line 1 of input.scss >> a {b: map-has-key(1)} ------^ <===> ================================================================================ <===> error/too_many_args/input.scss a {b: map-has-key(1, 2, 3)} <===> error/too_many_args/error Error: Only 2 arguments allowed, but 3 were passed. , 1 | a {b: map-has-key(1, 2, 3)} | ^^^^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> error/too_many_args/error-libsass Error: wrong number of arguments (3 for 2) for `map-has-key' on line 1:7 of input.scss >> a {b: map-has-key(1, 2, 3)} ------^ sass-spec-libsass-3.6.3/spec/core_functions/map/keys.hrx000066400000000000000000000044451355712145100233220ustar00rootroot00000000000000<===> empty/input.scss $result: map-keys(()); a { value: inspect($result); separator: list-separator($result); } <===> empty/output.css a { value: (); separator: comma; } <===> ================================================================================ <===> single/input.scss $result: map-keys((1: 2)); a { value: $result; type: type-of($result); separator: list-separator($result); } <===> single/output.css a { value: 1; type: list; separator: comma; } <===> ================================================================================ <===> multiple/input.scss a {b: map-keys((c: d, e: f, g: h))} <===> multiple/output.css a { b: c, e, g; } <===> ================================================================================ <===> named/input.scss a {b: map-keys($map: (1: 2, 3: 4))} <===> named/output.css a { b: 1, 3; } <===> ================================================================================ <===> error/type/input.scss a {b: map-keys(1)} <===> error/type/error Error: $map: 1 is not a map. , 1 | a {b: map-keys(1)} | ^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> error/type/error-libsass Error: argument `$map` of `map-keys($map)` must be a map on line 1:7 of input.scss, in function `map-keys` from line 1:7 of input.scss >> a {b: map-keys(1)} ------^ <===> ================================================================================ <===> error/too_few_args/input.scss a {b: map-keys()} <===> error/too_few_args/error Error: Missing argument $map. , 1 | a {b: map-keys()} | ^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> error/too_few_args/error-libsass Error: Function map-keys is missing argument $map. on line 1 of input.scss >> a {b: map-keys()} ------^ <===> ================================================================================ <===> error/too_many_args/input.scss a {b: map-keys((c: d), (e: f))} <===> error/too_many_args/error Error: Only 1 argument allowed, but 2 were passed. , 1 | a {b: map-keys((c: d), (e: f))} | ^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> error/too_many_args/error-libsass Error: wrong number of arguments (2 for 1) for `map-keys' on line 1:7 of input.scss >> a {b: map-keys((c: d), (e: f))} ------^ sass-spec-libsass-3.6.3/spec/core_functions/map/merge.hrx000066400000000000000000000070761355712145100234510ustar00rootroot00000000000000<===> empty/both/input.scss a {b: inspect(map-merge((), ()))} <===> empty/both/output.css a { b: (); } <===> ================================================================================ <===> empty/first/input.scss a {b: inspect(map-merge((), (c: d, e: f)))} <===> empty/first/output.css a { b: (c: d, e: f); } <===> ================================================================================ <===> empty/second/input.scss a {b: inspect(map-merge((c: d, e: f), ()))} <===> empty/second/output.css a { b: (c: d, e: f); } <===> ================================================================================ <===> different_keys/input.scss a {b: inspect(map-merge((c: d, e: f), (1: 2, 3: 4)))} <===> different_keys/output.css a { b: (c: d, e: f, 1: 2, 3: 4); } <===> ================================================================================ <===> same_keys/input.scss a {b: inspect(map-merge((c: d, e: f), (c: 1, e: 2)))} <===> same_keys/output.css a { b: (c: 1, e: 2); } <===> ================================================================================ <===> overlapping_keys/input.scss a {b: inspect(map-merge((c: d, e: f, g: h), (i: 1, e: 2, j: 3)))} <===> overlapping_keys/output.css a { b: (c: d, e: 2, g: h, i: 1, j: 3); } <===> ================================================================================ <===> named/input.scss a {b: inspect(map-merge($map1: (c: d), $map2: (1: 2)))} <===> named/output.css a { b: (c: d, 1: 2); } <===> ================================================================================ <===> error/type/map1/input.scss a {b: map-merge(1, (c: d))} <===> error/type/map1/error Error: $map1: 1 is not a map. , 1 | a {b: map-merge(1, (c: d))} | ^^^^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> error/type/map1/error-libsass Error: argument `$map1` of `map-merge($map1, $map2)` must be a map on line 1:7 of input.scss, in function `map-merge` from line 1:7 of input.scss >> a {b: map-merge(1, (c: d))} ------^ <===> ================================================================================ <===> error/type/map2/input.scss a {b: map-merge((c: d), 1)} <===> error/type/map2/error Error: $map2: 1 is not a map. , 1 | a {b: map-merge((c: d), 1)} | ^^^^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> error/type/map2/error-libsass Error: argument `$map2` of `map-merge($map1, $map2)` must be a map on line 1:7 of input.scss, in function `map-merge` from line 1:7 of input.scss >> a {b: map-merge((c: d), 1)} ------^ <===> ================================================================================ <===> error/too_few_args/input.scss a {b: map-merge((c: d))} <===> error/too_few_args/error Error: Missing argument $map2. , 1 | a {b: map-merge((c: d))} | ^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> error/too_few_args/error-libsass Error: Function map-merge is missing argument $map2. on line 1 of input.scss >> a {b: map-merge((c: d))} ------^ <===> ================================================================================ <===> error/too_many_args/input.scss a {b: map-merge((c: d), (e: f), (g: h))} <===> error/too_many_args/error Error: Only 2 arguments allowed, but 3 were passed. , 1 | a {b: map-merge((c: d), (e: f), (g: h))} | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> error/too_many_args/error-libsass Error: wrong number of arguments (3 for 2) for `map-merge' on line 1:7 of input.scss >> a {b: map-merge((c: d), (e: f), (g: h))} ------^ sass-spec-libsass-3.6.3/spec/core_functions/map/remove.hrx000066400000000000000000000073531355712145100236450ustar00rootroot00000000000000<===> not_found/empty/input.scss a {b: inspect(map-remove((), 1))} <===> not_found/empty/output.css a { b: (); } <===> ================================================================================ <===> not_found/non_empty/input.scss a {b: inspect(map-remove((c: d), d))} <===> not_found/non_empty/output.css a { b: (c: d); } <===> ================================================================================ <===> not_found/no_keys/input.scss a {b: inspect(map-remove((c: d)))} <===> not_found/no_keys/output.css a { b: (c: d); } <===> ================================================================================ <===> not_found/multiple/input.scss a {b: inspect(map-remove((c: d), e, f, g))} <===> not_found/multiple/output.css a { b: (c: d); } <===> ================================================================================ <===> found/single/input.scss a {b: inspect(map-remove((c: d), c))} <===> found/single/output.css a { b: (); } <===> ================================================================================ <===> found/first/input.scss a {b: inspect(map-remove((1: 2, 3: 4, 5: 6), 1))} <===> found/first/output.css a { b: (3: 4, 5: 6); } <===> ================================================================================ <===> found/middle/input.scss a {b: inspect(map-remove((1: 2, 3: 4, 5: 6), 3))} <===> found/middle/output.css a { b: (1: 2, 5: 6); } <===> ================================================================================ <===> found/last/input.scss a {b: inspect(map-remove((1: 2, 3: 4, 5: 6), 5))} <===> found/last/output.css a { b: (1: 2, 3: 4); } <===> ================================================================================ <===> found/multiple/all/input.scss a {b: inspect(map-remove((1: 2, 3: 4, 5: 6, 7: 8, 9: 10), 1, 5, 9))} <===> found/multiple/all/output.css a { b: (3: 4, 7: 8); } <===> ================================================================================ <===> found/multiple/some/input.scss a {b: inspect(map-remove((1: 2, 3: 4, 5: 6, 7: 8), 1, 5, 9))} <===> found/multiple/some/output.css a { b: (3: 4, 7: 8); } <===> ================================================================================ <===> named/input.scss a {b: inspect(map-remove($map: (c: d), $key: c))} <===> named/output.css a { b: (); } <===> ================================================================================ <===> error/type/map/input.scss a {b: map-remove(1)} <===> error/type/map/error Error: $map: 1 is not a map. , 1 | a {b: map-remove(1)} | ^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> error/type/map/error-libsass Error: argument `$map` of `map-remove($map, $keys...)` must be a map on line 1:7 of input.scss, in function `map-remove` from line 1:7 of input.scss >> a {b: map-remove(1)} ------^ <===> ================================================================================ <===> error/too_few_args/input.scss a {b: map-remove()} <===> error/too_few_args/error Error: Missing argument $map. , 1 | a {b: map-remove()} | ^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> error/too_few_args/error-libsass Error: Function map-remove is missing argument $map. on line 1 of input.scss >> a {b: map-remove()} ------^ <===> ================================================================================ <===> error/positional_and_named/options.yml --- :todo: - sass/libsass#2927 <===> error/positional_and_named/input.scss a {b: map-remove((c: d, e: f), c, $key: e)} <===> error/positional_and_named/error Error: Argument $key was passed both by position and by name. , 1 | a {b: map-remove((c: d, e: f), c, $key: e)} | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet sass-spec-libsass-3.6.3/spec/core_functions/map/values.hrx000066400000000000000000000045151355712145100236440ustar00rootroot00000000000000<===> empty/input.scss $result: map-values(()); a { value: inspect($result); separator: list-separator($result); } <===> empty/output.css a { value: (); separator: comma; } <===> ================================================================================ <===> single/input.scss $result: map-values((1: 2)); a { value: $result; type: type-of($result); separator: list-separator($result); } <===> single/output.css a { value: 2; type: list; separator: comma; } <===> ================================================================================ <===> multiple/input.scss a {b: map-values((c: d, e: f, g: h))} <===> multiple/output.css a { b: d, f, h; } <===> ================================================================================ <===> named/input.scss a {b: map-values($map: (1: 2, 3: 4))} <===> named/output.css a { b: 2, 4; } <===> ================================================================================ <===> error/type/input.scss a {b: map-values(1)} <===> error/type/error Error: $map: 1 is not a map. , 1 | a {b: map-values(1)} | ^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> error/type/error-libsass Error: argument `$map` of `map-values($map)` must be a map on line 1:7 of input.scss, in function `map-values` from line 1:7 of input.scss >> a {b: map-values(1)} ------^ <===> ================================================================================ <===> error/too_few_args/input.scss a {b: map-values()} <===> error/too_few_args/error Error: Missing argument $map. , 1 | a {b: map-values()} | ^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> error/too_few_args/error-libsass Error: Function map-values is missing argument $map. on line 1 of input.scss >> a {b: map-values()} ------^ <===> ================================================================================ <===> error/too_many_args/input.scss a {b: map-values((c: d), (e: f))} <===> error/too_many_args/error Error: Only 1 argument allowed, but 2 were passed. , 1 | a {b: map-values((c: d), (e: f))} | ^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> error/too_many_args/error-libsass Error: wrong number of arguments (2 for 1) for `map-values' on line 1:7 of input.scss >> a {b: map-values((c: d), (e: f))} ------^ sass-spec-libsass-3.6.3/spec/core_functions/math/000077500000000000000000000000001355712145100217715ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/core_functions/math/abs.hrx000066400000000000000000000050301355712145100232570ustar00rootroot00000000000000<===> zero/input.scss a {b: abs(0)} <===> zero/output.css a { b: 0; } <===> ================================================================================ <===> positive/integer/input.scss a {b: abs(1)} <===> positive/integer/output.css a { b: 1; } <===> ================================================================================ <===> positive/decimal/input.scss a {b: abs(5.6)} <===> positive/decimal/output.css a { b: 5.6; } <===> ================================================================================ <===> negative/integer/input.scss a {b: abs(-17)} <===> negative/integer/output.css a { b: 17; } <===> ================================================================================ <===> negative/decimal/input.scss a {b: abs(-123.456)} <===> negative/decimal/output.css a { b: 123.456; } <===> ================================================================================ <===> preserves_units/input.scss a {b: abs(-7px / 4em) * 1em} <===> preserves_units/output.css a { b: 1.75px; } <===> ================================================================================ <===> named/input.scss a {b: abs($number: -3)} <===> named/output.css a { b: 3; } <===> ================================================================================ <===> error/type/input.scss a {b: abs(c)} <===> error/type/error Error: $number: c is not a number. , 1 | a {b: abs(c)} | ^^^^^^ ' input.scss 1:7 root stylesheet <===> error/type/error-libsass Error: argument `$number` of `abs($number)` must be a number on line 1:7 of input.scss, in function `round` from line 1:7 of input.scss >> a {b: abs(c)} ------^ <===> ================================================================================ <===> error/too_few_args/input.scss a {b: abs()} <===> error/too_few_args/error Error: Missing argument $number. , 1 | a {b: abs()} | ^^^^^ ' input.scss 1:7 root stylesheet <===> error/too_few_args/error-libsass Error: Function abs is missing argument $number. on line 1 of input.scss >> a {b: abs()} ------^ <===> ================================================================================ <===> error/too_many_args/input.scss a {b: abs(1, 2)} <===> error/too_many_args/error Error: Only 1 argument allowed, but 2 were passed. , 1 | a {b: abs(1, 2)} | ^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> error/too_many_args/error-libsass Error: wrong number of arguments (2 for 1) for `abs' on line 1:7 of input.scss >> a {b: abs(1, 2)} ------^ sass-spec-libsass-3.6.3/spec/core_functions/math/ceil.hrx000066400000000000000000000044671355712145100234430ustar00rootroot00000000000000<===> integer/input.scss a {b: ceil(1)} <===> integer/output.css a { b: 1; } <===> ================================================================================ <===> high/input.scss a {b: ceil(2.9)} <===> high/output.css a { b: 3; } <===> ================================================================================ <===> low/input.scss a {b: ceil(6.000000000000001)} <===> low/output.css a { b: 7; } <===> ================================================================================ <===> negative/input.scss a {b: ceil(-7.6)} <===> negative/output.css a { b: -7; } <===> ================================================================================ <===> preserves_units/input.scss a {b: ceil(7px / 4em) * 1em} <===> preserves_units/output.css a { b: 2px; } <===> ================================================================================ <===> named/input.scss a {b: ceil($number: 1.6)} <===> named/output.css a { b: 2; } <===> ================================================================================ <===> error/type/input.scss a {b: ceil(c)} <===> error/type/error Error: $number: c is not a number. , 1 | a {b: ceil(c)} | ^^^^^^^ ' input.scss 1:7 root stylesheet <===> error/type/error-libsass Error: argument `$number` of `ceil($number)` must be a number on line 1:7 of input.scss, in function `round` from line 1:7 of input.scss >> a {b: ceil(c)} ------^ <===> ================================================================================ <===> error/too_few_args/input.scss a {b: ceil()} <===> error/too_few_args/error Error: Missing argument $number. , 1 | a {b: ceil()} | ^^^^^^ ' input.scss 1:7 root stylesheet <===> error/too_few_args/error-libsass Error: Function ceil is missing argument $number. on line 1 of input.scss >> a {b: ceil()} ------^ <===> ================================================================================ <===> error/too_many_args/input.scss a {b: ceil(1, 2)} <===> error/too_many_args/error Error: Only 1 argument allowed, but 2 were passed. , 1 | a {b: ceil(1, 2)} | ^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> error/too_many_args/error-libsass Error: wrong number of arguments (2 for 1) for `ceil' on line 1:7 of input.scss >> a {b: ceil(1, 2)} ------^ sass-spec-libsass-3.6.3/spec/core_functions/math/comparable.hrx000066400000000000000000000065461355712145100246340ustar00rootroot00000000000000<===> unitless/to_unitless/input.scss a {b: comparable(1, 2)} <===> unitless/to_unitless/output.css a { b: true; } <===> ================================================================================ <===> unitless/to_unit/input.scss a {b: comparable(1, 2px)} <===> unitless/to_unit/output.css a { b: true; } <===> ================================================================================ <===> unit/to_same/input.scss a {b: comparable(1px, 2px)} <===> unit/to_same/output.css a { b: true; } <===> ================================================================================ <===> unit/to_compatible/input.scss a {b: comparable(1px, 2in)} <===> unit/to_compatible/output.css a { b: true; } <===> ================================================================================ <===> unit/to_different/input.scss a {b: comparable(1px, 2em)} <===> unit/to_different/output.css a { b: false; } <===> ================================================================================ <===> unit/to_inverse/input.scss a {b: comparable(1px, 1/1px)} <===> unit/to_inverse/output.css a { b: false; } <===> ================================================================================ <===> named/input.scss a {b: comparable($number1: 1, $number2: 2)} <===> named/output.css a { b: true; } <===> ================================================================================ <===> error/type/arg_1/input.scss a {b: comparable(c, 1)} <===> error/type/arg_1/error Error: $number1: c is not a number. , 1 | a {b: comparable(c, 1)} | ^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> error/type/arg_1/error-libsass Error: argument `$number1` of `comparable($number1, $number2)` must be a number on line 1:7 of input.scss, in function `comparable` from line 1:7 of input.scss >> a {b: comparable(c, 1)} ------^ <===> ================================================================================ <===> error/type/arg_2/input.scss a {b: comparable(1, c)} <===> error/type/arg_2/error Error: $number2: c is not a number. , 1 | a {b: comparable(1, c)} | ^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> error/type/arg_2/error-libsass Error: argument `$number2` of `comparable($number1, $number2)` must be a number on line 1:7 of input.scss, in function `comparable` from line 1:7 of input.scss >> a {b: comparable(1, c)} ------^ <===> ================================================================================ <===> error/too_few_args/input.scss a {b: comparable(1)} <===> error/too_few_args/error Error: Missing argument $number2. , 1 | a {b: comparable(1)} | ^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> error/too_few_args/error-libsass Error: Function comparable is missing argument $number2. on line 1 of input.scss >> a {b: comparable(1)} ------^ <===> ================================================================================ <===> error/too_many_args/input.scss a {b: comparable(1, 2, 3)} <===> error/too_many_args/error Error: Only 2 arguments allowed, but 3 were passed. , 1 | a {b: comparable(1, 2, 3)} | ^^^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> error/too_many_args/error-libsass Error: wrong number of arguments (3 for 2) for `comparable' on line 1:7 of input.scss >> a {b: comparable(1, 2, 3)} ------^ sass-spec-libsass-3.6.3/spec/core_functions/math/floor.hrx000066400000000000000000000045141355712145100236410ustar00rootroot00000000000000<===> integer/input.scss a {b: floor(1)} <===> integer/output.css a { b: 1; } <===> ================================================================================ <===> high/input.scss a {b: floor(2.999999999999999)} <===> high/output.css a { b: 2; } <===> ================================================================================ <===> low/input.scss a {b: floor(6.1)} <===> low/output.css a { b: 6; } <===> ================================================================================ <===> negative/input.scss a {b: floor(-7.2)} <===> negative/output.css a { b: -8; } <===> ================================================================================ <===> preserves_units/input.scss a {b: floor(7px / 4em) * 1em} <===> preserves_units/output.css a { b: 1px; } <===> ================================================================================ <===> named/input.scss a {b: floor($number: 1.6)} <===> named/output.css a { b: 1; } <===> ================================================================================ <===> error/type/input.scss a {b: floor(c)} <===> error/type/error Error: $number: c is not a number. , 1 | a {b: floor(c)} | ^^^^^^^^ ' input.scss 1:7 root stylesheet <===> error/type/error-libsass Error: argument `$number` of `floor($number)` must be a number on line 1:7 of input.scss, in function `round` from line 1:7 of input.scss >> a {b: floor(c)} ------^ <===> ================================================================================ <===> error/too_few_args/input.scss a {b: floor()} <===> error/too_few_args/error Error: Missing argument $number. , 1 | a {b: floor()} | ^^^^^^^ ' input.scss 1:7 root stylesheet <===> error/too_few_args/error-libsass Error: Function floor is missing argument $number. on line 1 of input.scss >> a {b: floor()} ------^ <===> ================================================================================ <===> error/too_many_args/input.scss a {b: floor(1, 2)} <===> error/too_many_args/error Error: Only 1 argument allowed, but 2 were passed. , 1 | a {b: floor(1, 2)} | ^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> error/too_many_args/error-libsass Error: wrong number of arguments (2 for 1) for `floor' on line 1:7 of input.scss >> a {b: floor(1, 2)} ------^ sass-spec-libsass-3.6.3/spec/core_functions/math/max.hrx000066400000000000000000000066321355712145100233100ustar00rootroot00000000000000<===> README.md We have to pass at least one argument in a variable to avoid being parsed as plain-CSS max(). <===> ================================================================================ <===> one_arg/input.scss $arg: 1; a {b: max($arg)} <===> one_arg/output.css a { b: 1; } <===> ================================================================================ <===> two_args/input.scss $arg: 1; a {b: max($arg, 2)} <===> two_args/output.css a { b: 2; } <===> ================================================================================ <===> three_args/input.scss $arg: 1; a {b: max(3, $arg, 2)} <===> three_args/output.css a { b: 3; } <===> ================================================================================ <===> units/same/input.scss $arg: 6px; a {b: max($arg, 2px, 10px)} <===> units/same/output.css a { b: 10px; } <===> ================================================================================ <===> units/compatible/input.scss $arg: 1px; a {b: max($arg, 1in, 1cm)} <===> units/compatible/output.css a { b: 1in; } <===> ================================================================================ <===> units/and_unitless/input.scss $arg: 2px; a {b: max($arg, 1)} <===> units/and_unitless/output.css a { b: 2px; } <===> ================================================================================ <===> error/type/arg_1/input.scss $arg: c; a {b: max($arg)} <===> error/type/arg_1/error Error: c is not a number. , 2 | a {b: max($arg)} | ^^^^^^^^^ ' input.scss 2:7 root stylesheet <===> error/type/arg_1/error-libsass Error: "c" is not a number for `max' on line 2:7 of input.scss, in function `max` from line 2:7 of input.scss >> a {b: max($arg)} ------^ <===> ================================================================================ <===> error/type/arg_2/input.scss $arg: c; a {b: max(1, $arg)} <===> error/type/arg_2/error Error: c is not a number. , 2 | a {b: max(1, $arg)} | ^^^^^^^^^^^^ ' input.scss 2:7 root stylesheet <===> error/type/arg_2/error-libsass Error: "c" is not a number for `max' on line 2:7 of input.scss, in function `max` from line 2:7 of input.scss >> a {b: max(1, $arg)} ------^ <===> ================================================================================ <===> error/type/arg_3/input.scss $arg: c; a {b: max(1, 2, $arg)} <===> error/type/arg_3/error Error: c is not a number. , 2 | a {b: max(1, 2, $arg)} | ^^^^^^^^^^^^^^^ ' input.scss 2:7 root stylesheet <===> error/type/arg_3/error-libsass Error: "c" is not a number for `max' on line 2:7 of input.scss, in function `max` from line 2:7 of input.scss >> a {b: max(1, 2, $arg)} ------^ <===> ================================================================================ <===> error/too_few_args/input.scss a {b: max()} <===> error/too_few_args/error Error: At least one argument must be passed. , 1 | a {b: max()} | ^^^^^ ' input.scss 1:7 root stylesheet <===> ================================================================================ <===> error/incompatible_units/input.scss $arg: 1px; a {b: max($arg, 2s)} <===> error/incompatible_units/error Error: Incompatible units s and px. , 2 | a {b: max($arg, 2s)} | ^^^^^^^^^^^^^ ' input.scss 2:7 root stylesheet <===> error/incompatible_units/error-libsass Internal Error: Incompatible units: 'px' and 's'. sass-spec-libsass-3.6.3/spec/core_functions/math/min.hrx000066400000000000000000000066261355712145100233110ustar00rootroot00000000000000<===> README.md We have to pass at least one argument in a variable to avoid being parsed as plain-CSS min(). <===> ================================================================================ <===> one_arg/input.scss $arg: 1; a {b: min($arg)} <===> one_arg/output.css a { b: 1; } <===> ================================================================================ <===> two_args/input.scss $arg: 1; a {b: min($arg, 2)} <===> two_args/output.css a { b: 1; } <===> ================================================================================ <===> three_args/input.scss $arg: 1; a {b: min(3, $arg, 2)} <===> three_args/output.css a { b: 1; } <===> ================================================================================ <===> units/same/input.scss $arg: 6px; a {b: min($arg, 2px, 10px)} <===> units/same/output.css a { b: 2px; } <===> ================================================================================ <===> units/compatible/input.scss $arg: 1px; a {b: min($arg, 1in, 1cm)} <===> units/compatible/output.css a { b: 1px; } <===> ================================================================================ <===> units/and_unitless/input.scss $arg: 2px; a {b: min($arg, 1)} <===> units/and_unitless/output.css a { b: 1; } <===> ================================================================================ <===> error/type/arg_1/input.scss $arg: c; a {b: min($arg)} <===> error/type/arg_1/error Error: c is not a number. , 2 | a {b: min($arg)} | ^^^^^^^^^ ' input.scss 2:7 root stylesheet <===> error/type/arg_1/error-libsass Error: "c" is not a number for `min' on line 2:7 of input.scss, in function `min` from line 2:7 of input.scss >> a {b: min($arg)} ------^ <===> ================================================================================ <===> error/type/arg_2/input.scss $arg: c; a {b: min(1, $arg)} <===> error/type/arg_2/error Error: c is not a number. , 2 | a {b: min(1, $arg)} | ^^^^^^^^^^^^ ' input.scss 2:7 root stylesheet <===> error/type/arg_2/error-libsass Error: "c" is not a number for `min' on line 2:7 of input.scss, in function `min` from line 2:7 of input.scss >> a {b: min(1, $arg)} ------^ <===> ================================================================================ <===> error/type/arg_3/input.scss $arg: c; a {b: min(1, 2, $arg)} <===> error/type/arg_3/error Error: c is not a number. , 2 | a {b: min(1, 2, $arg)} | ^^^^^^^^^^^^^^^ ' input.scss 2:7 root stylesheet <===> error/type/arg_3/error-libsass Error: "c" is not a number for `min' on line 2:7 of input.scss, in function `min` from line 2:7 of input.scss >> a {b: min(1, 2, $arg)} ------^ <===> ================================================================================ <===> error/too_few_args/input.scss a {b: min()} <===> error/too_few_args/error Error: At least one argument must be passed. , 1 | a {b: min()} | ^^^^^ ' input.scss 1:7 root stylesheet <===> ================================================================================ <===> error/incompatible_units/input.scss $arg: 1px; a {b: min($arg, 2s)} <===> error/incompatible_units/error Error: Incompatible units s and px. , 2 | a {b: min($arg, 2s)} | ^^^^^^^^^^^^^ ' input.scss 2:7 root stylesheet <===> error/incompatible_units/error-libsass Internal Error: Incompatible units: 's' and 'px'. sass-spec-libsass-3.6.3/spec/core_functions/math/percentage.hrx000066400000000000000000000056711355712145100246420ustar00rootroot00000000000000<===> zero/input.scss a {b: percentage(0)} <===> zero/output.css a { b: 0%; } <===> ================================================================================ <===> small/input.scss a {b: percentage(0.246)} <===> small/output.css a { b: 24.6%; } <===> ================================================================================ <===> large/input.scss a {b: percentage(123.456)} <===> large/output.css a { b: 12345.6%; } <===> ================================================================================ <===> integer/input.scss a {b: percentage(42)} <===> integer/output.css a { b: 4200%; } <===> ================================================================================ <===> negative/input.scss a {b: percentage(-0.4)} <===> negative/output.css a { b: -40%; } <===> ================================================================================ <===> named/input.scss a {b: percentage($number: 1)} <===> named/output.css a { b: 100%; } <===> ================================================================================ <===> error/type/input.scss a {b: percentage(c)} <===> error/type/error Error: $number: c is not a number. , 1 | a {b: percentage(c)} | ^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> error/type/error-libsass Error: argument `$number` of `percentage($number)` must be a number on line 1:7 of input.scss, in function `percentage` from line 1:7 of input.scss >> a {b: percentage(c)} ------^ <===> ================================================================================ <===> error/unit/input.scss a {b: percentage(1%)} <===> error/unit/error Error: $number: Expected 1% to have no units. , 1 | a {b: percentage(1%)} | ^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> error/unit/error-libsass Error: argument $number of `percentage($number)` must be unitless on line 1:7 of input.scss, in function `percentage` from line 1:7 of input.scss >> a {b: percentage(1%)} ------^ <===> ================================================================================ <===> error/too_few_args/input.scss a {b: percentage()} <===> error/too_few_args/error Error: Missing argument $number. , 1 | a {b: percentage()} | ^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> error/too_few_args/error-libsass Error: Function percentage is missing argument $number. on line 1 of input.scss >> a {b: percentage()} ------^ <===> ================================================================================ <===> error/too_many_args/input.scss a {b: percentage(1, 2)} <===> error/too_many_args/error Error: Only 1 argument allowed, but 2 were passed. , 1 | a {b: percentage(1, 2)} | ^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> error/too_many_args/error-libsass Error: wrong number of arguments (2 for 1) for `percentage' on line 1:7 of input.scss >> a {b: percentage(1, 2)} ------^ sass-spec-libsass-3.6.3/spec/core_functions/math/random.hrx000066400000000000000000000103731355712145100240000ustar00rootroot00000000000000<===> _util.scss // Calls `random()` one thousand times, and throws an error if `$check` returns // `false` for any of the values. @mixin check-values($arg, $check) { @for $i from 1 through 1000 { $value: random($arg); @if not call($check, $value) { @error "#{$value} did not match expectation"; } } } <===> ================================================================================ <===> null/options.yml --- :todo: - sass/libsass#2915 <===> null/input.scss @import "../util"; @function check($value) {@return $value >= 0 and $value < 1} @include check-values(null, get-function(check)); <===> null/output.css <===> ================================================================================ <===> one/input.scss @import "../util"; @function check($value) {@return $value == 1} @include check-values(1, get-function(check)); <===> one/output.css <===> ================================================================================ <===> within_precision/input.scss // This is within the precision limit to be considered identical to 1. a {b: random(1.0000000000001)} <===> within_precision/output.css a { b: 1; } <===> ================================================================================ <===> two/input.scss @import "../util"; @function check($value) {@return $value == 1 or $value == 2} @include check-values(2, get-function(check)); <===> two/output.css <===> ================================================================================ <===> one_hundred/input.scss @import "../util"; @function check($value) {@return $value == round($value) and $value > 0 and $value <= 100} @include check-values(100, get-function(check)); <===> one_hundred/output.css <===> ================================================================================ <===> no_arg/input.scss $value: random(); a {b: $value >= 0 and $value < 1} <===> no_arg/output.css a { b: true; } <===> ================================================================================ <===> ignores_units/input.scss a {b: random(1px)} <===> ignores_units/output.css a { b: 1; } <===> ================================================================================ <===> named/input.scss $value: random($limit: 10); a {b: $value > 0 and $value <= 10} <===> named/output.css a { b: true; } <===> ================================================================================ <===> error/type/input.scss a {b: random(c)} <===> error/type/error Error: $limit: c is not a number. , 1 | a {b: random(c)} | ^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> error/type/error-libsass Error: $limit: "c" is not a number for `random' on line 1:7 of input.scss, in function `random` from line 1:7 of input.scss >> a {b: random(c)} ------^ <===> ================================================================================ <===> error/decimal/input.scss a {b: random(1.5)} <===> error/decimal/error Error: $limit: 1.5 is not an int. , 1 | a {b: random(1.5)} | ^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> error/decimal/error-libsass Error: Expected $limit to be an integer but got 1.5 for `random' on line 1:7 of input.scss, in function `random` from line 1:7 of input.scss >> a {b: random(1.5)} ------^ <===> ================================================================================ <===> error/zero/input.scss a {b: random(0)} <===> error/zero/error Error: $limit: Must be greater than 0, was 0. , 1 | a {b: random(0)} | ^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> error/zero/error-libsass Error: $limit 0 must be greater than or equal to 1 for `random' on line 1:7 of input.scss, in function `random` from line 1:7 of input.scss >> a {b: random(0)} ------^ <===> ================================================================================ <===> error/negative/input.scss a {b: random(-1)} <===> error/negative/error Error: $limit: Must be greater than 0, was -1. , 1 | a {b: random(-1)} | ^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> error/negative/error-libsass Error: $limit -1 must be greater than or equal to 1 for `random' on line 1:7 of input.scss, in function `random` from line 1:7 of input.scss >> a {b: random(-1)} ------^ sass-spec-libsass-3.6.3/spec/core_functions/math/round.hrx000066400000000000000000000073101355712145100236440ustar00rootroot00000000000000<===> integer/input.scss a {b: round(1)} <===> integer/output.css a { b: 1; } <===> ================================================================================ <===> up/high/input.scss a {b: round(2.9)} <===> up/high/output.css a { b: 3; } <===> ================================================================================ <===> up/point_five/input.scss a {b: round(16.5)} <===> up/point_five/output.css a { b: 17; } <===> ================================================================================ <===> up/negative/input.scss a {b: round(-5.4)} <===> up/negative/output.css a { b: -5; } <===> ================================================================================ <===> up/to_zero/input.scss a {b: round(-0.2)} <===> up/to_zero/output.css a { b: 0; } <===> ================================================================================ <===> up/within_precision/input.scss // This is the smallest number that's representable as a float and in the // precision range to be considered equal to 5. a {b: round(0.4999999999900001)} <===> up/within_precision/output.css a { b: 1; } <===> ================================================================================ <===> down/low/input.scss a {b: round(2.2)} <===> down/low/output.css a { b: 2; } <===> ================================================================================ <===> down/negative/input.scss a {b: round(-5.6)} <===> down/negative/output.css a { b: -6; } <===> ================================================================================ <===> down/to_zero/input.scss a {b: round(0.2)} <===> down/to_zero/output.css a { b: 0; } <===> ================================================================================ <===> down/within_precision/input.scss // This is the largest number that's representable as a float and outside the // precision range to be considered equal to 5. a {b: round(1.49999999999)} <===> down/within_precision/output.css a { b: 1; } <===> ================================================================================ <===> preserves_units/input.scss a {b: round(7px / 4em) * 1em} <===> preserves_units/output.css a { b: 2px; } <===> ================================================================================ <===> named/input.scss a {b: round($number: 1.6)} <===> named/output.css a { b: 2; } <===> ================================================================================ <===> error/type/input.scss a {b: round(c)} <===> error/type/error Error: $number: c is not a number. , 1 | a {b: round(c)} | ^^^^^^^^ ' input.scss 1:7 root stylesheet <===> error/type/error-libsass Error: argument `$number` of `round($number)` must be a number on line 1:7 of input.scss, in function `round` from line 1:7 of input.scss >> a {b: round(c)} ------^ <===> ================================================================================ <===> error/too_few_args/input.scss a {b: round()} <===> error/too_few_args/error Error: Missing argument $number. , 1 | a {b: round()} | ^^^^^^^ ' input.scss 1:7 root stylesheet <===> error/too_few_args/error-libsass Error: Function round is missing argument $number. on line 1 of input.scss >> a {b: round()} ------^ <===> ================================================================================ <===> error/too_many_args/input.scss a {b: round(1, 2)} <===> error/too_many_args/error Error: Only 1 argument allowed, but 2 were passed. , 1 | a {b: round(1, 2)} | ^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> error/too_many_args/error-libsass Error: wrong number of arguments (2 for 1) for `round' on line 1:7 of input.scss >> a {b: round(1, 2)} ------^ sass-spec-libsass-3.6.3/spec/core_functions/math/unit.hrx000066400000000000000000000066271355712145100235060ustar00rootroot00000000000000<===> README.md This function is intended for debugging and as such is not required to have totally consistent output across different implementations. <===> ================================================================================ <===> none/input.scss a {b: unit(1)} <===> none/output.css a { b: ""; } <===> ================================================================================ <===> one_numerator/input.scss a {b: unit(1px)} <===> one_numerator/output.css a { b: "px"; } <===> ================================================================================ <===> multiple_numerators/input.scss a {b: unit(1px * 1em * 1rad)} <===> multiple_numerators/output.css a { b: "px*em*rad"; } <===> multiple_numerators/output-libsass.css a { b: "em*px*rad"; } <===> ================================================================================ <===> one_denominator/input.scss a {b: unit(1/1px)} <===> one_denominator/output.css a { b: "px^-1"; } <===> one_denominator/output-libsass.css a { b: "/px"; } <===> ================================================================================ <===> multiple_denominators/input.scss a {b: unit(1 / 1px / 3em / 4rad)} <===> multiple_denominators/output.css a { b: "(px*em*rad)^-1"; } <===> multiple_denominators/output-libsass.css a { b: "/em*px*rad"; } <===> ================================================================================ <===> numerator_and_denominator/single/input.scss a {b: unit(1px / 1em)} <===> numerator_and_denominator/single/output.css a { b: "px/em"; } <===> ================================================================================ <===> numerator_and_denominator/multiple/input.scss a {b: unit(1px * 1em / 1rad / 1s)} <===> numerator_and_denominator/multiple/output.css a { b: "px*em/rad*s"; } <===> numerator_and_denominator/multiple/output-libsass.css a { b: "em*px/rad*s"; } <===> ================================================================================ <===> named/input.scss a {b: unit($number: 1)} <===> named/output.css a { b: ""; } <===> ================================================================================ <===> error/type/input.scss a {b: unit(c)} <===> error/type/error Error: $number: c is not a number. , 1 | a {b: unit(c)} | ^^^^^^^ ' input.scss 1:7 root stylesheet <===> error/type/error-libsass Error: argument `$number` of `unit($number)` must be a number on line 1:7 of input.scss, in function `unit` from line 1:7 of input.scss >> a {b: unit(c)} ------^ <===> ================================================================================ <===> error/too_few_args/input.scss a {b: unit()} <===> error/too_few_args/error Error: Missing argument $number. , 1 | a {b: unit()} | ^^^^^^ ' input.scss 1:7 root stylesheet <===> error/too_few_args/error-libsass Error: Function unit is missing argument $number. on line 1 of input.scss >> a {b: unit()} ------^ <===> ================================================================================ <===> error/too_many_args/input.scss a {b: unit(1, 2)} <===> error/too_many_args/error Error: Only 1 argument allowed, but 2 were passed. , 1 | a {b: unit(1, 2)} | ^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> error/too_many_args/error-libsass Error: wrong number of arguments (2 for 1) for `unit' on line 1:7 of input.scss >> a {b: unit(1, 2)} ------^ sass-spec-libsass-3.6.3/spec/core_functions/math/unitless.hrx000066400000000000000000000044071355712145100243670ustar00rootroot00000000000000<===> unitless/input.scss a {b: unitless(1)} <===> unitless/output.css a { b: true; } <===> ================================================================================ <===> numerator/input.scss a {b: unitless(1px)} <===> numerator/output.css a { b: false; } <===> ================================================================================ <===> denominator/input.scss a {b: unitless(1/1px)} <===> denominator/output.css a { b: false; } <===> ================================================================================ <===> numerator_and_denominator/input.scss a {b: unitless(1px/1em)} <===> numerator_and_denominator/output.css a { b: false; } <===> ================================================================================ <===> named/input.scss a {b: unitless($number: 100)} <===> named/output.css a { b: true; } <===> ================================================================================ <===> error/type/input.scss a {b: unitless(c)} <===> error/type/error Error: $number: c is not a number. , 1 | a {b: unitless(c)} | ^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> error/type/error-libsass Error: argument `$number` of `unitless($number)` must be a number on line 1:7 of input.scss, in function `unitless` from line 1:7 of input.scss >> a {b: unitless(c)} ------^ <===> ================================================================================ <===> error/too_few_args/input.scss a {b: unitless()} <===> error/too_few_args/error Error: Missing argument $number. , 1 | a {b: unitless()} | ^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> error/too_few_args/error-libsass Error: Function unitless is missing argument $number. on line 1 of input.scss >> a {b: unitless()} ------^ <===> ================================================================================ <===> error/too_many_args/input.scss a {b: unitless(1, 2)} <===> error/too_many_args/error Error: Only 1 argument allowed, but 2 were passed. , 1 | a {b: unitless(1, 2)} | ^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> error/too_many_args/error-libsass Error: wrong number of arguments (2 for 1) for `unitless' on line 1:7 of input.scss >> a {b: unitless(1, 2)} ------^ sass-spec-libsass-3.6.3/spec/core_functions/meta/000077500000000000000000000000001355712145100217665ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/core_functions/meta/call.hrx000066400000000000000000000075161355712145100234350ustar00rootroot00000000000000<===> args/none/input.scss @function a() {@return b} c {d: call(get-function("a"))} <===> args/none/output.css c { d: b; } <===> ================================================================================ <===> args/positional/input.scss a {b: call(get-function("rgb"), 1, 2, 3)} <===> args/positional/output.css a { b: #010203; } <===> ================================================================================ <===> args/named/input.scss a {b: call(get-function("rgb"), $blue: 1, $green: 2, $red: 3)} <===> args/named/output.css a { b: #030201; } <===> ================================================================================ <===> args/splat/positional/input.scss $args: 1, 2, 3; a {b: call(get-function("rgb"), $args...)} <===> args/splat/positional/output.css a { b: #010203; } <===> ================================================================================ <===> args/splat/named/input.scss $args: ("green": 1, "blue": 2, "red": 3); a {b: call(get-function("rgb"), $args...)} <===> args/splat/named/output.css a { b: #030102; } <===> ================================================================================ <===> args/splat/combined/options.yml --- :todo: - sass/libsass#2942 <===> args/splat/combined/input.scss $positional: 1 2; $named: ("blue": 3); a {b: call(get-function("rgb"), $positional..., $named...)} <===> args/splat/combined/output.css a { b: #010203; } <===> ================================================================================ <===> string/local/input.scss @function a($arg) {@return $arg + 1} a {b: call("a", 1)} <===> string/local/output.css a { b: 2; } <===> string/local/warning DEPRECATION WARNING: Passing a string to call() is deprecated and will be illegal in Dart Sass 2.0.0. Use call(get-function("a")) instead. , 2 | a {b: call("a", 1)} | ^^^^^^^^^^^^ ' input.scss 2:7 root stylesheet <===> ================================================================================ <===> string/built_in/input.scss a {b: call("rgb", 1, 2, 3)} <===> string/built_in/output.css a { b: #010203; } <===> string/built_in/warning DEPRECATION WARNING: Passing a string to call() is deprecated and will be illegal in Dart Sass 2.0.0. Use call(get-function("rgb")) instead. , 1 | a {b: call("rgb", 1, 2, 3)} | ^^^^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> ================================================================================ <===> named/input.scss a {b: call($function: get-function("rgb"), $red: 1, $green: 2, $blue: 3)} <===> named/output.css a { b: #010203; } <===> ================================================================================ <===> error/type/options.yml --- :todo: - sass/libsass#2940 <===> error/type/input.scss a {b: call(1)} <===> error/type/error Error: $function: 1 is not a function reference. , 1 | a {b: call(1)} | ^^^^^^^ ' input.scss 1:7 root stylesheet <===> ================================================================================ <===> error/too_few_args/input.scss a {b: call()} <===> error/too_few_args/error Error: Missing argument $function. , 1 | a {b: call()} | ^^^^^^ ' input.scss 1:7 root stylesheet <===> error/too_few_args/error-libsass Error: Function call is missing argument $function. on line 1 of input.scss >> a {b: call()} ------^ <===> ================================================================================ <===> error/invalid_args/input.scss a {b: call(get-function("rgb"), 1)} <===> error/invalid_args/error Error: Missing element $green. , 1 | a {b: call(get-function("rgb"), 1)} | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> error/invalid_args/error-libsass Error: Function rgb is missing argument $green. on line 1:7 of input.scss >> a {b: call(get-function("rgb"), 1)} ------^ sass-spec-libsass-3.6.3/spec/core_functions/meta/content_exists.hrx000066400000000000000000000056341355712145100255720ustar00rootroot00000000000000<===> options.yml --- :todo: - sass/libsass#2938 <===> ================================================================================ <===> false/top_level/input.scss @mixin a { b {c: content-exists()} } @include a; <===> false/top_level/output.css b { c: false; } <===> false/top_level/options.yml --- :todo: - libsass <===> ================================================================================ <===> false/through_content/input.scss @mixin call-content { @content; } @mixin print-content-exists { a {b: content-exists()} } @include call-content { @include print-content-exists; } <===> false/through_content/output.css a { b: false; } <===> ================================================================================ <===> true/empty/input.scss @mixin a { b {c: content-exists()} @content; } @include a {} <===> true/empty/output.css b { c: true; } <===> ================================================================================ <===> true/non_empty/input.scss @mixin a { b {c: content-exists()} @content; } @include a { d {e: f} } <===> true/non_empty/output.css b { c: true; } d { e: f; } <===> true/non_empty/options.yml --- :todo: - libsass <===> ================================================================================ <===> error/too_many_args/input.scss @mixin a { b {c: content-exists(1)} } @include a; <===> error/too_many_args/error Error: Only 0 arguments allowed, but 1 was passed. , 2 | b {c: content-exists(1)} | ^^^^^^^^^^^^^^^^^ ' input.scss 2:9 a() input.scss 4:1 root stylesheet <===> ================================================================================ <===> error/outside_mixin/input.scss a {b: content-exists()} <===> error/outside_mixin/error Error: content-exists() may only be called within a mixin. , 1 | a {b: content-exists()} | ^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> ================================================================================ <===> error/in_content/input.scss @mixin call-content { @content; } @include call-content { a {b: content-exists()} } <===> error/in_content/error Error: content-exists() may only be called within a mixin. , 6 | a {b: content-exists()} | ^^^^^^^^^^^^^^^^ ' input.scss 6:9 @content input.scss 2:3 call-content() input.scss 5:1 root stylesheet <===> ================================================================================ <===> error/in_function_called_by_mixin/input.scss @function call-content-exists() { @return content-exists(); } @mixin call-function { a {b: call-content-exists()}; } @include call-function; <===> error/in_function_called_by_mixin/error Error: content-exists() may only be called within a mixin. , 2 | @return content-exists(); | ^^^^^^^^^^^^^^^^ ' input.scss 2:11 call-content-exists() input.scss 6:9 call-function() input.scss 9:1 root stylesheet sass-spec-libsass-3.6.3/spec/core_functions/meta/feature_exists.hrx000066400000000000000000000071141355712145100255460ustar00rootroot00000000000000<===> README.md Obviously, an implementation should not report a feature as supported unless it actually fully supports that feature. <===> ================================================================================ <===> global_variable_shadowing/input.scss a {b: feature-exists(global-variable-shadowing)} <===> global_variable_shadowing/output.css a { b: true; } <===> ================================================================================ <===> extend_selector_pseudoclass/input.scss a {b: feature-exists(extend-selector-pseudoclass)} <===> extend_selector_pseudoclass/output.css a { b: true; } <===> ================================================================================ <===> units_level_3/input.scss a {b: feature-exists(units-level-3)} <===> units_level_3/output.css a { b: true; } <===> ================================================================================ <===> at_error/input.scss a {b: feature-exists(at-error)} <===> at_error/output.css a { b: true; } <===> ================================================================================ <===> custom_property/input.scss a {b: feature-exists(custom-property)} <===> custom_property/output.css a { b: true; } <===> ================================================================================ <===> unknown/input.scss a {b: feature-exists(unknown)} <===> unknown/output.css a { b: false; } <===> ================================================================================ <===> dash_sensitive/input.scss a {b: feature-exists(at_error)} <===> dash_sensitive/output.css a { b: false; } <===> ================================================================================ <===> quote_insensitive/input.scss a {b: feature-exists("at-error")} <===> quote_insensitive/output.css a { b: true; } <===> ================================================================================ <===> named/input.scss a {b: feature-exists($feature: at-error)} <===> named/output.css a { b: true; } <===> ================================================================================ <===> error/type/input.scss a {b: feature-exists(1)} <===> error/type/error Error: $feature: 1 is not a string. , 1 | a {b: feature-exists(1)} | ^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> error/type/error-libsass Error: argument `$feature` of `feature-exists($feature)` must be a string on line 1:7 of input.scss, in function `feature-exists` from line 1:7 of input.scss >> a {b: feature-exists(1)} ------^ <===> ================================================================================ <===> error/too_few_args/input.scss a {b: feature-exists()} <===> error/too_few_args/error Error: Missing argument $feature. , 1 | a {b: feature-exists()} | ^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> error/too_few_args/error-libsass Error: Function feature-exists is missing argument $feature. on line 1 of input.scss >> a {b: feature-exists()} ------^ <===> ================================================================================ <===> error/too_many_args/input.scss a {b: feature-exists(at-error, custom-property)} <===> error/too_many_args/error Error: Only 1 argument allowed, but 2 were passed. , 1 | a {b: feature-exists(at-error, custom-property)} | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> error/too_many_args/error-libsass Error: wrong number of arguments (2 for 1) for `feature-exists' on line 1:7 of input.scss >> a {b: feature-exists(at-error, custom-property)} ------^ sass-spec-libsass-3.6.3/spec/core_functions/meta/function_exists.hrx000066400000000000000000000220501355712145100257340ustar00rootroot00000000000000<===> same_module/global/input.scss @function global-function() {@return null} a {b: function-exists(global-function)} <===> same_module/global/output.css a { b: true; } <===> ================================================================================ <===> same_module/local/input.scss a { @function local-function() {@return null} b: function-exists(local-function); } <===> same_module/local/output.css a { b: true; } <===> ================================================================================ <===> same_module/through_import/input.scss @import "other"; a {b: function-exists(global-function)} <===> same_module/through_import/other.scss @function global-function() {@return null} <===> same_module/through_import/output.css a { b: true; } <===> ================================================================================ <===> same_module/dash_insensitive/dash_to_underscore/input.scss @function a_b() {@return null} c {d: function-exists(a-b)} <===> same_module/dash_insensitive/dash_to_underscore/output.css c { d: true; } <===> ================================================================================ <===> same_module/dash_insensitive/underscore_to_dash/input.scss @function a-b() {@return null} c {d: function-exists(a_b)} <===> same_module/dash_insensitive/underscore_to_dash/output.css c { d: true; } <===> ================================================================================ <===> same_module/non_existent/input.scss a { b: function-exists(non-existent); } <===> same_module/non_existent/output.css a { b: false; } <===> ================================================================================ <===> different_module/options.yml --- :todo: - sass/libsass#2807 <===> ================================================================================ <===> different_module/undefined/input.scss @use "sass:color"; a {b: function-exists("c", "color")} <===> different_module/undefined/output.css a { b: false; } <===> ================================================================================ <===> different_module/defined/input.scss @use "sass:color"; a {b: function-exists("red", "color")} <===> different_module/defined/output.css a { b: true; } <===> ================================================================================ <===> different_module/chosen_prefix/input.scss @use "sass:color" as a; b {c: function-exists("red", "a")} <===> different_module/chosen_prefix/output.css b { c: true; } <===> ================================================================================ <===> different_module/through_use/input.scss @use "other" as *; a {b: function-exists(global-function)} <===> different_module/through_use/other.scss @function global-function() {@return null} <===> different_module/through_use/output.css a { b: true; } <===> ================================================================================ <===> different_module/through_forward/bare/input.scss @use "midstream" as *; a {b: function-exists(c)} <===> different_module/through_forward/bare/_midstream.scss @forward "upstream"; <===> different_module/through_forward/bare/_upstream.scss @function c() {@return null} <===> different_module/through_forward/bare/output.css a { b: true; } <===> ================================================================================ <===> different_module/through_forward/as/input.scss @use "midstream" as *; a { with-prefix: function-exists(b-c); without-prefix: function-exists(c); } <===> different_module/through_forward/as/_midstream.scss @forward "upstream" as b-*; <===> different_module/through_forward/as/_upstream.scss @function c() {@return null} <===> different_module/through_forward/as/output.css a { with-prefix: true; without-prefix: false; } <===> ================================================================================ <===> different_module/through_forward/show/input.scss @use "midstream" as *; a { shown: function-exists(b); not-shown: function-exists(c); } <===> different_module/through_forward/show/_midstream.scss @forward "upstream" show b; <===> different_module/through_forward/show/_upstream.scss @function b() {@return null} @function c() {@return null} <===> different_module/through_forward/show/output.css a { shown: true; not-shown: false; } <===> ================================================================================ <===> different_module/through_forward/hide/input.scss @use "midstream" as *; a { hidden: function-exists(b); not-hidden: function-exists(c); } <===> different_module/through_forward/hide/_midstream.scss @forward "upstream" hide b; <===> different_module/through_forward/hide/_upstream.scss @function b() {@return null} @function c() {@return null} <===> different_module/through_forward/hide/output.css a { hidden: false; not-hidden: true; } <===> ================================================================================ <===> named/options.yml --- :todo: - sass/libsass#2807 <===> named/input.scss @use "sass:color"; a {b: function-exists($name: "red", $module: "color")} <===> named/output.css a { b: true; } <===> ================================================================================ <===> error/argument/type/name/input.scss a {b: function-exists(12px)} <===> error/argument/type/name/error Error: $name: 12px is not a string. , 1 | a {b: function-exists(12px)} | ^^^^^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> error/argument/type/name/error-libsass Error: $name: 12px is not a string for `function-exists' on line 1:7 of input.scss, in function `function-exists` from line 1:7 of input.scss >> a {b: function-exists(12px)} ------^ <===> ================================================================================ <===> error/argument/type/module/options.yml --- :todo: - sass/libsass#2807 <===> error/argument/type/module/input.scss a {b: function-exists("red", 1)} <===> error/argument/type/module/error Error: $module: 1 is not a string. , 1 | a {b: function-exists("red", 1)} | ^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> ================================================================================ <===> error/argument/too_few/input.scss a {b: function-exists()} <===> error/argument/too_few/error Error: Missing argument $name. , 1 | a {b: function-exists()} | ^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> error/argument/too_few/error-libsass Error: Function function-exists is missing argument $name. on line 1 of input.scss >> a {b: function-exists()} ------^ <===> ================================================================================ <===> error/argument/too_many/input.scss a {b: function-exists(c, d, e)} <===> error/argument/too_many/error Error: Only 2 arguments allowed, but 3 were passed. , 1 | a {b: function-exists(c, d, e)} | ^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> error/argument/too_many/error-libsass Error: wrong number of arguments (3 for 1) for `function-exists' on line 1:7 of input.scss >> a {b: function-exists(c, d, e)} ------^ <===> ================================================================================ <===> error/conflict/options.yml --- :todo: - sass/libsass#2807 <===> error/conflict/input.scss @use "other1" as *; @use "other2" as *; a {b: function-exists(member)} <===> error/conflict/other1.scss @function member() {@return from other1} <===> error/conflict/other2.scss @function member() {@return from other2} <===> error/conflict/error Error: This function is available from multiple global modules: * other1.scss * other2.scss , 4 | a {b: function-exists(member)} | ^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 4:7 root stylesheet <===> ================================================================================ <===> error/module/options.yml --- :todo: - sass/libsass#2807 <===> ================================================================================ <===> error/module/non_existent/input.scss a {b: function-exists("c", "d")} <===> error/module/non_existent/error Error: There is no module with the namespace "d". , 1 | a {b: function-exists("c", "d")} | ^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> ================================================================================ <===> error/module/built_in_but_not_loaded/input.scss a {b: function-exists("red", "color")} <===> error/module/built_in_but_not_loaded/error Error: There is no module with the namespace "color". , 1 | a {b: function-exists("red", "color")} | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> ================================================================================ <===> error/module/dash_sensitive/input.scss @use "sass:color" as a-b; c {d: function-exists("c", $module: "a_b")} <===> error/module/dash_sensitive/error Error: There is no module with the namespace "a_b". , 2 | c {d: function-exists("c", $module: "a_b")} | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 2:7 root stylesheet sass-spec-libsass-3.6.3/spec/core_functions/meta/get_function/000077500000000000000000000000001355712145100244525ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/core_functions/meta/get_function/different_module.hrx000066400000000000000000000050521355712145100305120ustar00rootroot00000000000000<===> options.yml --- :todo: - sass/libsass#2807 <===> ================================================================================ <===> defined/input.scss @use "sass:color"; a {b: call(get-function("red", $module: "color"), #abcdef)} <===> defined/output.css a { b: 171; } <===> ================================================================================ <===> chosen_prefix/input.scss @use "sass:color" as a; b {c: call(get-function("red", $module: "a"), #abcdef)} <===> chosen_prefix/output.css b { c: 171; } <===> ================================================================================ <===> through_use/input.scss @use "other" as *; a {b: call(get-function(add-two), 10)} <===> through_use/other.scss @function add-two($v) {@return $v + 2} <===> through_use/output.css a { b: 12; } <===> ================================================================================ <===> through_forward/bare/input.scss @use "midstream" as *; a {b: call(get-function(c))} <===> through_forward/bare/_midstream.scss @forward "upstream"; <===> through_forward/bare/_upstream.scss @function c() {@return c} <===> through_forward/bare/output.css a { b: c; } <===> ================================================================================ <===> through_forward/as/input.scss @use "midstream" as *; a { b: call(get-function(c-d)); } <===> through_forward/as/_midstream.scss @forward "upstream" as c-*; <===> through_forward/as/_upstream.scss @function d() {@return d} <===> through_forward/as/output.css a { b: d; } <===> ================================================================================ <===> through_forward/show/input.scss @use "midstream" as *; a { b: call(get-function(c)); } <===> through_forward/show/_midstream.scss @forward "upstream" show c; <===> through_forward/show/_upstream.scss @function c() {@return c} <===> through_forward/show/output.css a { b: c; } <===> ================================================================================ <===> through_forward/hide/input.scss @use "midstream" as *; a { b: call(get-function(d)); } <===> through_forward/hide/_midstream.scss @forward "upstream" hide c; <===> through_forward/hide/_upstream.scss @function d() {@return d} <===> through_forward/hide/output.css a { b: d; } <===> ================================================================================ <===> named/options.yml --- :todo: - sass/libsass#2807 <===> named/input.scss @use "sass:color"; a {b: call(get-function($name: "red", $module: "color"), #abcdef)} <===> named/output.css a { b: 171; } sass-spec-libsass-3.6.3/spec/core_functions/meta/get_function/equality.hrx000066400000000000000000000031271355712145100270350ustar00rootroot00000000000000<===> same_value/input.scss $lighten-fn: get-function(lighten); a {b: $lighten-fn == $lighten-fn} <===> same_value/output.css a { b: true; } <===> ================================================================================ <===> built_in/same/input.scss a {b: get-function(lighten) == get-function(lighten)} <===> built_in/same/output.css a { b: true; } <===> ================================================================================ <===> built_in/different/input.scss a {b: get-function(lighten) == get-function(darken)} <===> built_in/different/output.css a { b: false; } <===> ================================================================================ <===> user_defined/same/input.scss @function user-defined() {@return null} a {b: get-function(user-defined) == get-function(user-defined)} <===> user_defined/same/output.css a { b: true; } <===> ================================================================================ <===> user_defined/different/input.scss @function user-defined-1() {@return null} @function user-defined-2() {@return null} a {b: get-function(user-defined-1) == get-function(user-defined-2)} <===> user_defined/different/output.css a { b: false; } <===> ================================================================================ <===> user_defined/redefined/input.scss @function user-defined() {@return null} $first-reference: get-function(user-defined); @function user-defined() {@return null} $second-reference: get-function(user-defined); a {b: $first-reference == $second-reference} <===> user_defined/redefined/output.css a { b: false; } sass-spec-libsass-3.6.3/spec/core_functions/meta/get_function/error.hrx000066400000000000000000000176341355712145100263410ustar00rootroot00000000000000<===> argument/type/name/input.scss a {b: get-function(2px)} <===> argument/type/name/error Error: $name: 2px is not a string. , 1 | a {b: get-function(2px)} | ^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> argument/type/name/error-libsass Error: $name: 2px is not a string for `get-function' on line 1 of /sass/spec/core_functions/get-function/errors/illegal-argument/input.scss Use --trace for backtrace. <===> ================================================================================ <===> argument/type/module/options.yml --- :todo: - sass/libsass#2807 <===> argument/type/module/input.scss a {b: get-function(c, $module: 1)} <===> argument/type/module/error Error: $module: 1 is not a string. , 1 | a {b: get-function(c, $module: 1)} | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> ================================================================================ <===> argument/function_ref/input.scss @function foo() { @return null; } $foo-ref: get-function(foo); a {b: get-function($foo-ref)} <===> argument/function_ref/error Error: $name: get-function("foo") is not a string. , 6 | a {b: get-function($foo-ref)} | ^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 6:7 root stylesheet <===> argument/function_ref/error-libsass Error: $name: get-function("foo") is not a string for `get-function' on line 6 of /sass/spec/core_functions/get-function/errors/passed-fn-ref/input.scss Use --trace for backtrace. <===> ================================================================================ <===> argument/too_few/input.scss a {b: get-function()} <===> argument/too_few/error Error: Missing argument $name. , 1 | a {b: get-function()} | ^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> argument/too_few/error-libsass Error: Function get-function is missing argument $name. on line 1 of input.scss >> a {b: get-function()} ------^ <===> ================================================================================ <===> argument/too_many/input.scss a {b: get-function(c, true, d, e)} <===> argument/too_many/error Error: Only 3 arguments allowed, but 4 were passed. , 1 | a {b: get-function(c, true, d, e)} | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> argument/too_many/error-libsass Error: wrong number of arguments (4 for 2) for `get-function' on line 1:7 of input.scss >> a {b: get-function(c, true, d, e)} ------^ <===> ================================================================================ <===> non_existent/input.scss a {b: get-function(does-not-exist)} <===> non_existent/error Error: Function not found: does-not-exist , 1 | a {b: get-function(does-not-exist)} | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> non_existent/error-libsass Error: Function not found: does-not-exist on line 1 of /sass/spec/core_functions/get-function/errors/non-existent/input.scss Use --trace for backtrace. <===> ================================================================================ <===> through_forward/show/input.scss @use "midstream" as *; a { b: call(get-function(d)); } <===> through_forward/show/_midstream.scss @forward "upstream" show c; <===> through_forward/show/_upstream.scss @function d() {@return c} <===> through_forward/show/error Error: Function not found: d , 3 | b: call(get-function(d)); | ^^^^^^^^^^^^^^^ ' input.scss 3:11 root stylesheet <===> ================================================================================ <===> through_forward/hide/input.scss @use "midstream" as *; a { b: call(get-function(c)); } <===> through_forward/hide/_midstream.scss @forward "upstream" hide c; <===> through_forward/hide/_upstream.scss @function c() {@return c} <===> through_forward/hide/error Error: Function not found: c , 3 | b: call(get-function(c)); | ^^^^^^^^^^^^^^^ ' input.scss 3:11 root stylesheet <===> ================================================================================ <===> division/input.scss a {b: get-function(rgb) / get-function(lighten)} <===> division/error Error: get-function("rgb") isn't a valid CSS value. , 1 | a {b: get-function(rgb) / get-function(lighten)} | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> division/error-libsass Error: get-function("rgb") isn't a valid CSS value. on line 3 of /sass/spec/core_functions/get-function/errors/math/division/input.scss Use --trace for backtrace. <===> ================================================================================ <===> function_exists/input.scss @function add-two($v) { @return $v + 2; } $add-two-fn: get-function(add-two); .error { error: get-function($add-two-fn); } <===> function_exists/error Error: $name: get-function("add-two") is not a string. , 8 | error: get-function($add-two-fn); | ^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 8:10 root stylesheet <===> function_exists/error-libsass Error: $name: get-function("add-two") is not a string for `get-function' on line 8 of /sass/spec/core_functions/get-function/errors/get-function/input.scss Use --trace for backtrace. <===> ================================================================================ <===> conflict/options.yml --- :todo: - sass/libsass#2807 <===> conflict/input.scss @use "other1" as *; @use "other2" as *; a {b: get-function(member)} <===> conflict/other1.scss @function member() {@return from other1} <===> conflict/other2.scss @function member() {@return from other2} <===> conflict/error Error: This function is available from multiple global modules: * other1.scss * other2.scss , 4 | a {b: get-function(member)} | ^^^^^^^^^^^^^^^^^^^^ ' input.scss 4:7 root stylesheet <===> ================================================================================ <===> module/options.yml --- :todo: - sass/libsass#2807 <===> ================================================================================ <===> module/undefined/input.scss @use "sass:color"; a {b: get-function("c", $module: "color")} <===> module/undefined/error Error: Function not found: "c" , 2 | a {b: get-function("c", $module: "color")} | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 2:7 root stylesheet <===> ================================================================================ <===> module/non_existent/input.scss a {b: get-function("c", $module: "d")} <===> module/non_existent/error Error: There is no module with the namespace "d". , 1 | a {b: get-function("c", $module: "d")} | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> ================================================================================ <===> module/built_in_but_not_loaded/input.scss a {b: get-function("red", $module: "color")} <===> module/built_in_but_not_loaded/error Error: There is no module with the namespace "color". , 1 | a {b: get-function("red", $module: "color")} | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> ================================================================================ <===> module/dash_sensitive/input.scss @use "sass:color" as a-b; c {d: get-function("c", $module: "a_b")} <===> module/dash_sensitive/error Error: There is no module with the namespace "a_b". , 2 | c {d: get-function("c", $module: "a_b")} | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 2:7 root stylesheet <===> ================================================================================ <===> module/and_css/input.scss @use "sass:color"; a {b: get-function("red", $css: true, $module: "color")} <===> module/and_css/error Error: $css and $module may not both be passed at once. , 2 | a {b: get-function("red", $css: true, $module: "color")} | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 2:7 root stylesheet sass-spec-libsass-3.6.3/spec/core_functions/meta/get_function/meta.hrx000066400000000000000000000005051355712145100261230ustar00rootroot00000000000000<===> inspect/input.scss a {b: inspect(get-function(lighten))}; <===> inspect/output.css a { b: get-function("lighten"); } <===> ================================================================================ <===> type_of/input.scss a {b: type-of(get-function(lighten))}; <===> type_of/output.css a { b: function; } sass-spec-libsass-3.6.3/spec/core_functions/meta/get_function/same_module.hrx000066400000000000000000000041121355712145100274650ustar00rootroot00000000000000<===> user_defined/input.scss @function add-two($v) {@return $v + 2} $add-two-fn: get-function(add-two); a {b: call($add-two-fn, 10)} <===> user_defined/output.css a { b: 12; } <===> ================================================================================ <===> redefined/input.scss @function add-two($v) {@return $v + 2} $add-two-fn: get-function(add-two); // The function returned by `get-function()` is locked in place when it's // called. Redefining the function after the fact shouldn't affect the stored // value. @function add-two($v) {@error "Should not be called"} a {b: call($add-two-fn, 10)} <===> redefined/output.css a { b: 12; } <===> ================================================================================ <===> built_in/input.scss $lighten-fn: get-function(lighten); a {b: call($lighten-fn, red, 30%)} <===> built_in/output.css a { b: #ff9999; } <===> ================================================================================ <===> through_import/input.scss @import "other"; a {b: call(get-function(add-two), 10)} <===> through_import/other.scss @function add-two($v) {@return $v + 2} <===> through_import/output.css a { b: 12; } <===> ================================================================================ <===> plain_css/input.scss $sass-fn: get-function(lighten); $css-fn: get-function(lighten, $css: true); a { sass-fn: call($sass-fn, red, 30%); css-fn: call($css-fn, red, 30%); } <===> plain_css/output.css a { sass-fn: #ff9999; css-fn: lighten(red, 30%); } <===> ================================================================================ <===> dash_insensitive/dash_to_underscore/input.scss @function add_two($v) {@return $v + 2} a {b: call(get-function(add-two), 10)} <===> dash_insensitive/dash_to_underscore/output.css a { b: 12; } <===> ================================================================================ <===> dash_insensitive/underscore_to_dash/input.scss @function add-two($v) {@return $v + 2} a {b: call(get-function(add_two), 10)} <===> dash_insensitive/underscore_to_dash/output.css a { b: 12; } sass-spec-libsass-3.6.3/spec/core_functions/meta/get_function/scope.hrx000066400000000000000000000020271355712145100263070ustar00rootroot00000000000000<===> stores_local_scope/options.yml --- :todo: - sass/libsass#2830 <===> stores_local_scope/input.scss $add-two-fn: null; .scope { @function add-two($v) {@return $v + 2} // This function reference will still refer to this nested `add-two` function // even when it goes out of scope. $add-two-fn: get-function(add-two) !global; } a {b: call($add-two-fn, 10)} <===> stores_local_scope/output.css a { b: 12; } <===> ================================================================================ <===> captures_inner_scope/input.scss @function add-two($v) {@error "Should not be called"} .scope1 { @function add-two($v) {@error "Should not be called"} .scope2 { @function add-two($v) {@error "Should not be called"} .scope3 { @function add-two($v) {@return $v + 2} // Like a normal function call, get-function() will always use the // innermost definition of a function. a: call(get-function(add-two), 10); } } } <===> captures_inner_scope/output.css .scope1 .scope2 .scope3 { a: 12; } sass-spec-libsass-3.6.3/spec/core_functions/meta/global_variable_exists.hrx000066400000000000000000000223001355712145100272120ustar00rootroot00000000000000<===> same_module/global/input.scss $global-variable: null; a {b: global-variable-exists(global-variable)} <===> same_module/global/output.css a { b: true; } <===> ================================================================================ <===> same_module/local/input.scss a { $local-variable: null; b: global-variable-exists(local-variable); } <===> same_module/local/output.css a { b: false; } <===> ================================================================================ <===> same_module/through_import/input.scss @import "other"; a {b: global-variable-exists(global-variable)} <===> same_module/through_import/other.scss $global-variable: null; <===> same_module/through_import/output.css a { b: true; } <===> ================================================================================ <===> dash_insensitive/dash_to_underscore/input.scss $a_b: null; c {d: global-variable-exists(a-b)} <===> dash_insensitive/dash_to_underscore/output.css c { d: true; } <===> ================================================================================ <===> dash_insensitive/underscore_to_dash/input.scss $a-b: null; c {d: global-variable-exists(a_b)} <===> dash_insensitive/underscore_to_dash/output.css c { d: true; } <===> ================================================================================ <===> same_module/non_existent/input.scss a { b: global-variable-exists(non-existent); } <===> same_module/non_existent/output.css a { b: false; } <===> ================================================================================ <===> different_module/options.yml --- :todo: - sass/libsass#2807 <===> ================================================================================ <===> different_module/undefined/input.scss @use "sass:color"; a {b: global-variable-exists("c", "color")} <===> different_module/undefined/output.css a { b: false; } <===> ================================================================================ <===> different_module/defined/input.scss @use "other"; a {b: global-variable-exists("c", "other")} <===> different_module/defined/_other.scss $c: null; <===> different_module/defined/output.css a { b: true; } <===> ================================================================================ <===> different_module/chosen_prefix/input.scss @use "other" as a; b {c: global-variable-exists("d", "a")} <===> different_module/chosen_prefix/_other.scss $d: null; <===> different_module/chosen_prefix/output.css b { c: true; } <===> ================================================================================ <===> different_module/through_use/input.scss @use "other" as *; a {b: global-variable-exists(global-variable)} <===> different_module/through_use/other.scss $global-variable: null; <===> different_module/through_use/output.css a { b: true; } <===> ================================================================================ <===> different_module/through_forward/bare/input.scss @use "midstream" as *; a {b: variable-exists(c)} <===> different_module/through_forward/bare/_midstream.scss @forward "upstream"; <===> different_module/through_forward/bare/_upstream.scss $c: null; <===> different_module/through_forward/bare/output.css a { b: true; } <===> ================================================================================ <===> different_module/through_forward/as/input.scss @use "midstream" as *; a { with-prefix: global-variable-exists(b-c); without-prefix: global-variable-exists(c); } <===> different_module/through_forward/as/_midstream.scss @forward "upstream" as b-*; <===> different_module/through_forward/as/_upstream.scss $c: null; <===> different_module/through_forward/as/output.css a { with-prefix: true; without-prefix: false; } <===> ================================================================================ <===> different_module/through_forward/show/input.scss @use "midstream" as *; a { shown: global-variable-exists(b); not-shown: global-variable-exists(c); } <===> different_module/through_forward/show/_midstream.scss @forward "upstream" show $b; <===> different_module/through_forward/show/_upstream.scss $b: null; $c: null; <===> different_module/through_forward/show/output.css a { shown: true; not-shown: false; } <===> ================================================================================ <===> different_module/through_forward/hide/input.scss @use "midstream" as *; a { hidden: global-variable-exists(b); not-hidden: global-variable-exists(c); } <===> different_module/through_forward/hide/_midstream.scss @forward "upstream" hide $b; <===> different_module/through_forward/hide/_upstream.scss $b: null; $c: null; <===> different_module/through_forward/hide/output.css a { hidden: false; not-hidden: true; } <===> ================================================================================ <===> named/options.yml --- :todo: - sass/libsass#2807 <===> named/input.scss @use "other"; a {b: global-variable-exists($name: "c", $module: "other")} <===> named/_other.scss $c: null; <===> named/output.css a { b: true; } <===> ================================================================================ <===> error/argument/type/name/input.scss a {b: global-variable-exists(12px)} <===> error/argument/type/name/error Error: $name: 12px is not a string. , 1 | a {b: global-variable-exists(12px)} | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> error/argument/type/name/error-libsass Error: argument `$name` of `global-variable-exists($name)` must be a string on line 1:7 of input.scss, in function `global-variable-exists` from line 1:7 of input.scss >> a {b: global-variable-exists(12px)} ------^ <===> ================================================================================ <===> error/argument/type/module/options.yml --- :todo: - sass/libsass#2807 <===> error/argument/type/module/input.scss a {b: global-variable-exists("c", 1)} <===> error/argument/type/module/error Error: $module: 1 is not a string. , 1 | a {b: global-variable-exists("c", 1)} | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> ================================================================================ <===> error/argument/too_few/input.scss a {b: global-variable-exists()} <===> error/argument/too_few/error Error: Missing argument $name. , 1 | a {b: global-variable-exists()} | ^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> error/argument/too_few/error-libsass Error: Function global-variable-exists is missing argument $name. on line 1 of input.scss >> a {b: global-variable-exists()} ------^ <===> ================================================================================ <===> error/argument/too_many/input.scss a {b: global-variable-exists(c, d, e)} <===> error/argument/too_many/error Error: Only 2 arguments allowed, but 3 were passed. , 1 | a {b: global-variable-exists(c, d, e)} | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> error/argument/too_many/error-libsass Error: wrong number of arguments (3 for 1) for `global-variable-exists' on line 1:7 of input.scss >> a {b: global-variable-exists(c, d, e)} ------^ <===> ================================================================================ <===> error/conflict/options.yml --- :todo: - sass/libsass#2807 <===> error/conflict/input.scss @use "other1" as *; @use "other2" as *; a {b: global-variable-exists(member)} <===> error/conflict/other1.scss $member: from other1; <===> error/conflict/other2.scss $member: from other2; <===> error/conflict/error Error: This variable is available from multiple global modules: * other1.scss * other2.scss , 4 | a {b: global-variable-exists(member)} | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 4:7 root stylesheet <===> ================================================================================ <===> error/module/options.yml --- :todo: - sass/libsass#2807 <===> ================================================================================ <===> error/module/non_existent/input.scss a {b: global-variable-exists("c", "d")} <===> error/module/non_existent/error Error: There is no module with the namespace "d". , 1 | a {b: global-variable-exists("c", "d")} | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> ================================================================================ <===> error/module/built_in_but_not_loaded/input.scss a {b: global-variable-exists("c", "color")} <===> error/module/built_in_but_not_loaded/error Error: There is no module with the namespace "color". , 1 | a {b: global-variable-exists("c", "color")} | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> ================================================================================ <===> error/module/dash_sensitive/input.scss @use "sass:color" as a-b; c {d: global-variable-exists("c", $module: "a_b")} <===> error/module/dash_sensitive/error Error: There is no module with the namespace "a_b". , 2 | c {d: global-variable-exists("c", $module: "a_b")} | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 2:7 root stylesheet sass-spec-libsass-3.6.3/spec/core_functions/meta/inspect.hrx000066400000000000000000000403271355712145100241640ustar00rootroot00000000000000<===> number/unitless/input.scss $result: inspect(123.456); a { value: $result; type: type-of($result); } <===> number/unitless/output.css a { value: 123.456; type: string; } <===> ================================================================================ <===> number/unit/input.scss // We explicitly don't test the inspect format for complex units. Their format // isn't guaranteed by the spec, since they can't be written literally in Sass. $result: inspect(50px); a { value: $result; type: type-of($result); } <===> number/unit/output.css a { value: 50px; type: string; } <===> ================================================================================ <===> string/unquoted/input.scss $result: inspect(foo); a { value: $result; type: type-of($result); } <===> string/unquoted/output.css a { value: foo; type: string; } <===> ================================================================================ <===> string/quoted/input.scss $result: inspect("foo"); a { value: $result; type: type-of($result); // inspect() should always return an unquoted string, so when it's passed a // quoted string its return value should contain quote characters. We check // the length to verify that the quotes are included, since there's no // built-in way to check whether a string is quoted. length: str-length($result); } <===> string/quoted/output.css a { value: "foo"; type: string; length: 5; } <===> ================================================================================ <===> color/literal/README.md When colors are written literally by the user, rather than being generated by a function, inspect() should return them in the same format the user wrote them. <===> ================================================================================ <===> color/literal/short_hex/input.scss $result: inspect(#00f); a { value: $result; type: type-of($result); } <===> color/literal/short_hex/output.css a { value: #00f; type: string; } <===> ================================================================================ <===> color/literal/long_hex/input.scss $result: inspect(#0000ff); a { value: $result; type: type-of($result); } <===> color/literal/long_hex/output.css a { value: #0000ff; type: string; } <===> ================================================================================ <===> color/literal/named/input.scss $result: inspect(blue); a { value: $result; type: type-of($result); } <===> color/literal/named/output.css a { value: blue; type: string; } <===> ================================================================================ <===> color/literal/transparent/input.scss $result: inspect(transparent); a { value: $result; type: type-of($result); } <===> color/literal/transparent/output.css a { value: transparent; type: string; } <===> ================================================================================ <===> color/generated/README.md A color that's generated from a function should be returned as rgba() if its alpha channel is anything other than 1, or the color name if it has one, or else the hex code. <===> color/generated/_utils.scss /// Returns a copy of `$color` that doesn't have color-literal metadata /// associated with it. @function generated-color($color) { // This doesn't change the value of `$color` at all, but it does construct a // new object. @return scale-color($color, $blue: 0%); } <===> ================================================================================ <===> color/generated/alpha/input.scss $result: inspect(rgba(1, 2, 3, 0.4)); a { value: $result; type: type-of($result); } <===> color/generated/alpha/output.css a { value: rgba(1, 2, 3, 0.4); type: string; } <===> ================================================================================ <===> color/generated/transparent/input.scss @import "../utils"; $result: inspect(generated-color(transparent)); a { value: $result; type: type-of($result); } <===> color/generated/transparent/output.css a { value: rgba(0, 0, 0, 0); type: string; } <===> ================================================================================ <===> color/generated/named/input.scss @import "../utils"; $result: inspect(generated-color(#00f)); a { value: $result; type: type-of($result); } <===> color/generated/named/output.css a { value: blue; type: string; } <===> ================================================================================ <===> color/generated/short_hex/input.scss @import "../utils"; $result: inspect(generated-color(#abc)); a { value: $result; type: type-of($result); } <===> color/generated/short_hex/output.css a { value: #aabbcc; type: string; } <===> ================================================================================ <===> color/generated/long_hex/input.scss @import "../utils"; $result: inspect(generated-color(#abcdef)); a { value: $result; type: type-of($result); } <===> color/generated/long_hex/output.css a { value: #abcdef; type: string; } <===> ================================================================================ <===> boolean/true/input.scss $result: inspect(true); a { value: $result; type: type-of($result); } <===> boolean/true/output.css a { value: true; type: string; } <===> ================================================================================ <===> boolean/false/input.scss $result: inspect(false); a { value: $result; type: type-of($result); } <===> boolean/false/output.css a { value: false; type: string; } <===> ================================================================================ <===> null/input.scss $result: inspect(null); a { value: $result; type: type-of($result); } <===> null/output.css a { value: null; type: string; } <===> ================================================================================ <===> list/empty/input.scss $result: inspect(()); a { value: $result; type: type-of($result); } <===> list/empty/output.css a { value: (); type: string; } <===> ================================================================================ <===> list/single/space/options.yml --- :todo: - sass/libsass#2926 <===> list/single/space/input.scss $result: inspect(append((), 1, space)); a { value: $result; type: type-of($result); } <===> list/single/space/output.css a { value: 1; type: string; } <===> ================================================================================ <===> list/single/comma/input.scss $result: inspect((1,)); a { value: $result; type: type-of($result); } <===> list/single/comma/output.css a { value: (1,); type: string; } <===> ================================================================================ <===> list/single/bracketed/undecided/input.scss $result: inspect([1]); a { value: $result; type: type-of($result); } <===> list/single/bracketed/undecided/output.css a { value: [1]; type: string; } <===> ================================================================================ <===> list/single/bracketed/comma/input.scss $result: inspect([1,]); a { value: $result; type: type-of($result); } <===> list/single/bracketed/comma/output.css a { value: [1,]; type: string; } <===> ================================================================================ <===> list/space/input.scss $result: inspect(1 2 3); a { value: $result; type: type-of($result); } <===> list/space/output.css a { value: 1 2 3; type: string; } <===> ================================================================================ <===> list/comma/input.scss $result: inspect((1, 2, 3)); a { value: $result; type: type-of($result); } <===> list/comma/output.css a { value: 1, 2, 3; type: string; } <===> ================================================================================ <===> list/bracketed/input.scss $result: inspect([1, 2, 3]); a { value: $result; type: type-of($result); } <===> list/bracketed/output.css a { value: [1, 2, 3]; type: string; } <===> ================================================================================ <===> list/nested/empty/in_space/bracketed/options.yml --- :todo: - sass/libsass#2654 <===> list/nested/empty/in_space/bracketed/input.scss $result: inspect([() ()]); a { value: $result; type: type-of($result); } <===> list/nested/empty/in_space/bracketed/output.css a { value: [() ()]; type: string; } <===> ================================================================================ <===> list/nested/empty/in_space/unbracketed/input.scss $result: inspect(() ()); a { value: $result; type: type-of($result); } <===> list/nested/empty/in_space/unbracketed/output.css a { value: () (); type: string; } <===> ================================================================================ <===> list/nested/empty/in_comma/bracketed/input.scss $result: inspect([(), ()]); a { value: $result; type: type-of($result); } <===> list/nested/empty/in_comma/bracketed/output.css a { value: [(), ()]; type: string; } <===> ================================================================================ <===> list/nested/empty/in_comma/unbracketed/input.scss $result: inspect(((), ())); a { value: $result; type: type-of($result); } <===> list/nested/empty/in_comma/unbracketed/output.css a { value: (), (); type: string; } <===> ================================================================================ <===> list/nested/space/in_space/bracketed/options.yml --- :todo: - sass/libsass#2654 <===> list/nested/space/in_space/bracketed/input.scss $result: inspect([(1 2) (3 4)]); a { value: $result; type: type-of($result); } <===> list/nested/space/in_space/bracketed/output.css a { value: [(1 2) (3 4)]; type: string; } <===> ================================================================================ <===> list/nested/space/in_space/unbracketed/input.scss $result: inspect((1 2) (3 4)); a { value: $result; type: type-of($result); } <===> list/nested/space/in_space/unbracketed/output.css a { value: (1 2) (3 4); type: string; } <===> ================================================================================ <===> list/nested/space/in_comma/bracketed/input.scss $result: inspect([1 2, 3 4]); a { value: $result; type: type-of($result); } <===> list/nested/space/in_comma/bracketed/output.css a { value: [1 2, 3 4]; type: string; } <===> ================================================================================ <===> list/nested/space/in_comma/unbracketed/input.scss $result: inspect((1 2, 3 4)); a { value: $result; type: type-of($result); } <===> list/nested/space/in_comma/unbracketed/output.css a { value: 1 2, 3 4; type: string; } <===> ================================================================================ <===> list/nested/comma/in_space/bracketed/options.yml --- :todo: - sass/libsass#2931 <===> list/nested/comma/in_space/bracketed/input.scss $result: inspect([(1, 2) (3, 4)]); a { value: $result; type: type-of($result); } <===> list/nested/comma/in_space/bracketed/output.css a { value: [(1, 2) (3, 4)]; type: string; } <===> ================================================================================ <===> list/nested/comma/in_space/unbracketed/options.yml --- :todo: - sass/libsass#2931 <===> list/nested/comma/in_space/unbracketed/input.scss $result: inspect((1, 2) (3, 4)); a { value: $result; type: type-of($result); } <===> list/nested/comma/in_space/unbracketed/output.css a { value: (1, 2) (3, 4); type: string; } <===> ================================================================================ <===> list/nested/comma/in_comma/bracketed/input.scss $result: inspect([(1, 2), (3, 4)]); a { value: $result; type: type-of($result); } <===> list/nested/comma/in_comma/bracketed/output.css a { value: [(1, 2), (3, 4)]; type: string; } <===> ================================================================================ <===> list/nested/comma/in_comma/unbracketed/input.scss $result: inspect(((1, 2), (3, 4))); a { value: $result; type: type-of($result); } <===> list/nested/comma/in_comma/unbracketed/output.css a { value: (1, 2), (3, 4); type: string; } <===> ================================================================================ <===> list/nested/bracketed/in_space/bracketed/input.scss $result: inspect([[1, 2] [3, 4]]); a { value: $result; type: type-of($result); } <===> list/nested/bracketed/in_space/bracketed/output.css a { value: [[1, 2] [3, 4]]; type: string; } <===> ================================================================================ <===> list/nested/bracketed/in_space/unbracketed/input.scss $result: inspect([1, 2] [3, 4]); a { value: $result; type: type-of($result); } <===> list/nested/bracketed/in_space/unbracketed/output.css a { value: [1, 2] [3, 4]; type: string; } <===> ================================================================================ <===> list/nested/bracketed/in_comma/bracketed/input.scss $result: inspect([[1, 2], [3, 4]]); a { value: $result; type: type-of($result); } <===> list/nested/bracketed/in_comma/bracketed/output.css a { value: [[1, 2], [3, 4]]; type: string; } <===> ================================================================================ <===> list/nested/bracketed/in_comma/unbracketed/input.scss $result: inspect(((1, 2), (3, 4))); a { value: $result; type: type-of($result); } <===> list/nested/bracketed/in_comma/unbracketed/output.css a { value: (1, 2), (3, 4); type: string; } <===> ================================================================================ <===> map/number/input.scss $result: inspect((1: 2, 3: 4)); a { value: $result; type: type-of($result); } <===> map/number/output.css a { value: (1: 2, 3: 4); type: string; } <===> ================================================================================ <===> map/list/key/space/input.scss $result: inspect((1 2: 3, 4 5: 6)); a { value: $result; type: type-of($result); } <===> map/list/key/space/output.css a { value: (1 2: 3, 4 5: 6); type: string; } <===> ================================================================================ <===> map/list/key/comma/options.yml --- :todo: - sass/libsass#2932 <===> map/list/key/comma/input.scss $result: inspect(((1, 2): 3, (4, 5): 6)); a { value: $result; type: type-of($result); } <===> map/list/key/comma/output.css a { value: ((1, 2): 3, (4, 5): 6); type: string; } <===> ================================================================================ <===> map/list/value/space/input.scss $result: inspect((1: 2 3, 4: 5 6)); a { value: $result; type: type-of($result); } <===> map/list/value/space/output.css a { value: (1: 2 3, 4: 5 6); type: string; } <===> map/list/value/space/output-libsass.css a { value: (1: (2 3), 4: (5 6)); type: string; } <===> ================================================================================ <===> map/list/value/comma/input.scss $result: inspect((1: (2, 3), 4: (5, 6))); a { value: $result; type: type-of($result); } <===> map/list/value/comma/output.css a { value: (1: (2, 3), 4: (5, 6)); type: string; } <===> ================================================================================ <===> function/input.scss $result: inspect(get-function("get-function")); a { value: $result; type: type-of($result); } <===> function/output.css a { value: get-function("get-function"); type: string; } <===> ================================================================================ <===> error/too_few_args/input.scss a {a: inspect()} <===> error/too_few_args/error Error: Missing argument $value. , 1 | a {a: inspect()} | ^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> error/too_few_args/error-libsass Error: Function inspect is missing argument $value. on line 1 of input.scss >> a {a: inspect()} ------^ <===> ================================================================================ <===> error/too_many_args/input.scss a {a: inspect(1, 2)} <===> error/too_many_args/error Error: Only 1 argument allowed, but 2 were passed. , 1 | a {a: inspect(1, 2)} | ^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> error/too_many_args/error-libsass Error: wrong number of arguments (2 for 1) for `inspect' on line 1:7 of input.scss >> a {a: inspect(1, 2)} ------^ sass-spec-libsass-3.6.3/spec/core_functions/meta/keywords.hrx000066400000000000000000000114321355712145100243610ustar00rootroot00000000000000<===> _utils.scss /// Returns the keyword arguments passed to this function as a map. @function args-to-keywords($args...) { @return keywords($args); } <===> ================================================================================ <===> empty/no_args/input.scss @import "../../utils"; a {b: inspect(args-to-keywords())} <===> empty/no_args/output.css a { b: (); } <===> ================================================================================ <===> empty/positional/input.scss @import "../../utils"; a {b: inspect(args-to-keywords(1, 2, 3))} <===> empty/positional/output.css a { b: (); } <===> ================================================================================ <===> one_arg/input.scss @import "../utils"; a {b: inspect(args-to-keywords($c: d))} <===> one_arg/output.css a { b: (c: d); } <===> ================================================================================ <===> multi_arg/input.scss @import "../utils"; a {b: inspect(args-to-keywords($c: d, $e: f, $g: h))} <===> multi_arg/output.css a { b: (c: d, e: f, g: h); } <===> ================================================================================ <===> forwarded/function/input.scss @import "../../utils"; @function args-to-keywords-forward($args...) { @return args-to-keywords($args...); } a {b: inspect(args-to-keywords-forward($c: d))} <===> forwarded/function/output.css a { b: (c: d); } <===> ================================================================================ <===> forwarded/call/input.scss @import "../../utils"; @function args-to-keywords-forward($args...) { @return call(get-function("args-to-keywords"), $args...); } a {b: inspect(args-to-keywords-forward($c: d))} <===> forwarded/call/output.css a { b: (c: d); } <===> ================================================================================ <===> forwarded/mixin/input.scss @import "../../utils"; @mixin args-to-keywords-forward($args...) { a {b: inspect(args-to-keywords($args...))} } @include args-to-keywords-forward($c: d); <===> forwarded/mixin/output.css a { b: (c: d); } <===> ================================================================================ <===> forwarded/content/input.scss @import "../../utils"; @mixin args-to-keywords-forward($args...) { @content($args...); } @include args-to-keywords-forward($c: d) using ($args...) { a {b: inspect(args-to-keywords($args...))} } <===> forwarded/content/output.css a { b: (c: d); } <===> ================================================================================ <===> dash_insensitive/input.scss @import "../utils"; a {b: inspect(args-to-keywords($c-d: e, $f_g: h))} <===> dash_insensitive/output.css a { b: (c-d: e, f-g: h); } <===> ================================================================================ <===> named/input.scss @function args-to-keywords($args...) { @return keywords($args: $args); } a {b: inspect(args-to-keywords($c: d))} <===> named/output.css a { b: (c: d); } <===> ================================================================================ <===> error/type/non_arg_list/options.yml --- :todo: - sass/libsass#2937 <===> error/type/non_arg_list/input.scss a {b: keywords(1 2 3)} <===> error/type/non_arg_list/error Error: $args: 1 2 3 is not an argument list. , 1 | a {b: keywords(1 2 3)} | ^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> ================================================================================ <===> error/type/non_list/input.scss a {b: keywords(1)} <===> error/type/non_list/error Error: $args: 1 is not an argument list. , 1 | a {b: keywords(1)} | ^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> error/type/non_list/error-libsass Error: argument `$args` of `keywords($args)` must be a list on line 1:7 of input.scss, in function `keywords` from line 1:7 of input.scss >> a {b: keywords(1)} ------^ <===> ================================================================================ <===> error/too_few_args/input.scss a {b: keywords()} <===> error/too_few_args/error Error: Missing argument $args. , 1 | a {b: keywords()} | ^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> error/too_few_args/error-libsass Error: Function keywords is missing argument $args. on line 1 of input.scss >> a {b: keywords()} ------^ <===> ================================================================================ <===> error/too_many_args/input.scss a {b: keywords(1, 2)} <===> error/too_many_args/error Error: Only 1 argument allowed, but 2 were passed. , 1 | a {b: keywords(1, 2)} | ^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> error/too_many_args/error-libsass Error: wrong number of arguments (2 for 1) for `keywords' on line 1:7 of input.scss >> a {b: keywords(1, 2)} ------^ sass-spec-libsass-3.6.3/spec/core_functions/meta/load_css/000077500000000000000000000000001355712145100235555ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/core_functions/meta/load_css/error.hrx000066400000000000000000000364301355712145100254370ustar00rootroot00000000000000<===> type/url/input.scss @use "sass:meta"; @include meta.load-css(1); <===> type/url/error Error: $module: 1 is not a string. , 2 | @include meta.load-css(1); | ^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 2:1 root stylesheet <===> ================================================================================ <===> type/with/map/input.scss @use "sass:meta"; @include meta.load-css("other", $with: 1); <===> type/with/map/error Error: $with: 1 is not a map. , 2 | @include meta.load-css("other", $with: 1); | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 2:1 root stylesheet <===> ================================================================================ <===> type/with/key/input.scss @use "sass:meta"; @include meta.load-css("other", $with: (1: null)); <===> type/with/key/error Error: $with key: 1 is not a string. , 2 | @include meta.load-css("other", $with: (1: null)); | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 2:1 root stylesheet <===> ================================================================================ <===> too_few_args/input.scss @use "sass:meta"; @include meta.load-css(); <===> too_few_args/error Error: Missing argument $module. , 2 | @include meta.load-css(); | ^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 2:1 root stylesheet <===> ================================================================================ <===> too_many_args/input.scss @use "sass:meta"; @include meta.load-css("other", (), "a"); <===> too_many_args/error Error: Only 2 arguments allowed, but 3 were passed. , 2 | @include meta.load-css("other", (), "a"); | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 2:1 root stylesheet <===> ================================================================================ <===> load/README.md This mixin should load modules in the same way as the `@use` rule. To avoid tons of duplicated tests, we just test a couple basic error cases. <===> ================================================================================ <===> load/missing/input.scss @use "sass:meta"; @include meta.load-css("other"); <===> load/missing/error Error: Can't find stylesheet to import. , 2 | @include meta.load-css("other"); | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 2:1 root stylesheet <===> ================================================================================ <===> load/loop/input.scss @use "sass:meta"; @include meta.load-css("other"); <===> load/loop/_other.scss @use "sass:meta"; @include meta.load-css("input"); <===> load/loop/error Error: Module loop: input.scss is already being loaded. , 2 | @include meta.load-css("input"); | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' _other.scss 2:1 load-css() input.scss 2:1 root stylesheet <===> ================================================================================ <===> with/undefined/input.scss @use "sass:meta"; @include meta.load-css("other", $with: (a: b)); <===> with/undefined/_other.scss // This file defines no variables. <===> with/undefined/error Error: $a was not declared with !default in the @used module. , 2 | @include meta.load-css("other", $with: (a: b)); | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 2:1 load-css() input.scss 2:1 root stylesheet <===> ================================================================================ <===> with/not_default/input.scss @use "sass:meta"; @include meta.load-css("other", $with: (a: b)); <===> with/not_default/_other.scss $a: c; <===> with/not_default/error Error: $a was not declared with !default in the @used module. , 2 | @include meta.load-css("other", $with: (a: b)); | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 2:1 load-css() input.scss 2:1 root stylesheet <===> ================================================================================ <===> with/namespace/input.scss @use "sass:meta"; @include meta.load-css("midstream", $with: (a: b)); <===> with/namespace/_midstream.scss @use "upstream"; upstream.$a: c !default; <===> with/namespace/_upstream.scss $a: d; <===> with/namespace/error Error: $a was not declared with !default in the @used module. , 2 | @include meta.load-css("midstream", $with: (a: b)); | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 2:1 load-css() input.scss 2:1 root stylesheet <===> ================================================================================ <===> with/nested/input.scss @use "sass:meta"; @include meta.load-css("other", $with: (a: b)); <===> with/nested/_other.scss c {$a: d !default} <===> with/nested/error Error: $a was not declared with !default in the @used module. , 2 | @include meta.load-css("other", $with: (a: b)); | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 2:1 load-css() input.scss 2:1 root stylesheet <===> ================================================================================ <===> with/conflict/input.scss @use "sass:meta"; @include meta.load-css("midstream", $with: (a: b)); <===> with/conflict/_midstream.scss @use "left" as *; @use "right" as *; $a: c !default; <===> with/conflict/_left.scss $a: left; <===> with/conflict/_right.scss $a: right; <===> with/conflict/error Error: This variable is available from multiple global modules: * _left.scss * _right.scss , 4 | $a: c !default; | ^^^^^^^^^^^^^^ ' _midstream.scss 4:1 load-css() input.scss 2:1 root stylesheet <===> ================================================================================ <===> with/repeated_variable/input.scss @use "sass:meta"; @include meta.load-css("other", $with: (a-b: c, a_b: c)); <===> with/repeated_variable/_other.scss $a-b: c !default; <===> with/repeated_variable/error Error: The variable $a-b was configured twice. , 2 | @include meta.load-css("other", $with: (a-b: c, a_b: c)); | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 2:1 root stylesheet <===> ================================================================================ <===> with/core_module/input.scss @use "sass:meta"; @include meta.load-css("sass:color", $with: (a: b)); <===> with/core_module/error Error: Built-in module sass:color can't be configured. , 2 | @include meta.load-css("sass:color", $with: (a: b)); | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 2:1 root stylesheet <===> ================================================================================ <===> with/multi_configuration/README.md The same file can't be configured multiple times, even if the configuration is identical. <===> ================================================================================ <===> with/multi_configuration/double_load/both_configured/input.scss @use "sass:meta"; @include meta.load-css("other", $with: (a: b)); @include meta.load-css("other", $with: (a: b)); <===> with/multi_configuration/double_load/both_configured/_other.scss $a: c !default; <===> with/multi_configuration/double_load/both_configured/error Error: _other.scss was already loaded, so it can't be configured using "with". , 3 | @include meta.load-css("other", $with: (a: b)); | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 3:1 root stylesheet <===> ================================================================================ <===> with/multi_configuration/double_load/unconfigured_first/input.scss @use "sass:meta"; @include meta.load-css("other"); @include meta.load-css("other", $with: (a: b)); <===> with/multi_configuration/double_load/unconfigured_first/_other.scss $a: c !default; <===> with/multi_configuration/double_load/unconfigured_first/error Error: _other.scss was already loaded, so it can't be configured using "with". , 3 | @include meta.load-css("other", $with: (a: b)); | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 3:1 root stylesheet <===> ================================================================================ <===> with/multi_configuration/double_load/through_forward/input.scss @use "sass:meta"; @include meta.load-css("forwarded"); @include meta.load-css("midstream", $with: (a: b)); <===> with/multi_configuration/double_load/through_forward/_midstream.scss @forward "forwarded"; $a: c !default; <===> with/multi_configuration/double_load/through_forward/_forwarded.scss // This file defines no variables, but it still may not be loaded both with and // without configuration. <===> with/multi_configuration/double_load/through_forward/error Error: This module was already loaded, so it can't be configured using "with". , 1 | @forward "forwarded"; | ^^^^^^^^^^^^^^^^^^^^ ' _midstream.scss 1:1 load-css() input.scss 3:1 root stylesheet <===> ================================================================================ <===> with/multi_configuration/use_and_load/both_configured/input.scss @use "sass:meta"; @use "other" with ($a: b); @include meta.load-css("other", $with: (a: b)); <===> with/multi_configuration/use_and_load/both_configured/_other.scss $a: c !default; <===> with/multi_configuration/use_and_load/both_configured/error Error: _other.scss was already loaded, so it can't be configured using "with". , 3 | @include meta.load-css("other", $with: (a: b)); | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 3:1 root stylesheet <===> ================================================================================ <===> with/multi_configuration/use_and_load/load_first/input.scss // This indirection is necessary so that we can execute `meta.load-css()` before // we begin loading `used`. @use "loads"; @use "other" with ($a: b); <===> with/multi_configuration/use_and_load/load_first/_loads.scss @use "sass:meta"; @include meta.load-css("other", $with: (a: b)); <===> with/multi_configuration/use_and_load/load_first/_other.scss $a: c !default; <===> with/multi_configuration/use_and_load/load_first/error Error: This module was already loaded, so it can't be configured using "with". , 4 | @use "other" with ($a: b); | ^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 4:1 root stylesheet <===> ================================================================================ <===> with/multi_configuration/use_and_load/unconfigured_first/input.scss @use "sass:meta"; @use "other"; @include meta.load-css("other", $with: (a: b)); <===> with/multi_configuration/use_and_load/unconfigured_first/_other.scss $a: c !default; <===> with/multi_configuration/use_and_load/unconfigured_first/error Error: _other.scss was already loaded, so it can't be configured using "with". , 3 | @include meta.load-css("other", $with: (a: b)); | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 3:1 root stylesheet <===> ================================================================================ <===> with/multi_configuration/use_and_load/through_forward/input.scss @use "sass:meta"; @use "forwarded"; @include meta.load-css("midstream", $with: (a: b)); <===> with/multi_configuration/use_and_load/through_forward/_midstream.scss @forward "forwarded"; $a: c !default; <===> with/multi_configuration/use_and_load/through_forward/_forwarded.scss // This file defines no variables, but it still may not be loaded both with and // without configuration. <===> with/multi_configuration/use_and_load/through_forward/error Error: This module was already loaded, so it can't be configured using "with". , 1 | @forward "forwarded"; | ^^^^^^^^^^^^^^^^^^^^ ' _midstream.scss 1:1 load-css() input.scss 3:1 root stylesheet <===> ================================================================================ <===> with/through_forward/show/input.scss @use "sass:meta"; @include meta.load-css("used", $with: (a: b)); <===> with/through_forward/show/_used.scss @forward "forwarded" show $b; <===> with/through_forward/show/_forwarded.scss $a: d !default; <===> with/through_forward/show/error Error: $a was not declared with !default in the @used module. , 2 | @include meta.load-css("used", $with: (a: b)); | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 2:1 load-css() input.scss 2:1 root stylesheet <===> ================================================================================ <===> with/through_forward/hide/input.scss @use "sass:meta"; @include meta.load-css("used", $with: (a: b)); <===> with/through_forward/hide/_used.scss @forward "forwarded" hide $a; <===> with/through_forward/hide/_forwarded.scss $a: d !default; <===> with/through_forward/hide/error Error: $a was not declared with !default in the @used module. , 2 | @include meta.load-css("used", $with: (a: b)); | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 2:1 load-css() input.scss 2:1 root stylesheet <===> ================================================================================ <===> with/through_forward/as/input.scss @use "sass:meta"; @include meta.load-css("used", $with: (a: b)); <===> with/through_forward/as/_used.scss @forward "forwarded" as c-*; <===> with/through_forward/as/_forwarded.scss $a: d !default; <===> with/through_forward/as/error Error: $a was not declared with !default in the @used module. , 2 | @include meta.load-css("used", $with: (a: b)); | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 2:1 load-css() input.scss 2:1 root stylesheet <===> ================================================================================ <===> from_other/syntax/input.scss @use "sass:meta"; @include meta.load-css("other"); <===> from_other/syntax/_other.scss a {b: } <===> from_other/syntax/error Error: Expected expression. , 1 | a {b: } | ^ ' _other.scss 1:7 load-css() input.scss 2:1 root stylesheet <===> ================================================================================ <===> from_other/runtime/input.scss @use "sass:meta"; @include meta.load-css("other"); <===> from_other/runtime/_other.scss a {b: 1px + 1em} <===> from_other/runtime/error Error: Incompatible units em and px. , 1 | a {b: 1px + 1em} | ^^^^^^^^^ ' _other.scss 1:7 load-css() input.scss 2:1 root stylesheet <===> ================================================================================ <===> from_other/extend/input.scss @use "sass:meta"; @include meta.load-css("other"); <===> from_other/extend/_other.scss a {@extend missing} <===> from_other/extend/error Error: The target selector was not found. Use "@extend missing !optional" to avoid this error. , 1 | a {@extend missing} | ^^^^^^^^^^^^^^^ ' _other.scss 1:4 load-css() input.scss 2:1 root stylesheet <===> ================================================================================ <===> member/README.md Members from modules loaded by `load-css` are not avaialable in the loading module. <===> ================================================================================ <===> member/global/input.scss @use "sass:meta"; @meta.load-css("other"); a {b: $c} <===> member/global/_other.scss $c: d; <===> member/global/error Error: Undefined variable. , 4 | a {b: $c} | ^^ ' input.scss 4:7 root stylesheet <===> ================================================================================ <===> member/namespace/input.scss @use "sass:meta"; @meta.load-css("other"); a {b: other.$c} <===> member/namespace/_other.scss $c: d; <===> member/namespace/error Error: There is no module with the namespace "other". , 4 | a {b: other.$c} | ^^^^^^^^ ' input.scss 4:7 root stylesheet sass-spec-libsass-3.6.3/spec/core_functions/meta/load_css/extend.hrx000066400000000000000000000024741355712145100255760ustar00rootroot00000000000000<===> in_input/before/input.scss @use "sass:meta"; d {@extend a} @include meta.load-css("other"); <===> in_input/before/_other.scss a {b: c} <===> in_input/before/output.css a, d { b: c; } <===> ================================================================================ <===> in_input/after/input.scss @use "sass:meta"; @include meta.load-css("other"); d {@extend a} <===> in_input/after/_other.scss a {b: c} <===> in_input/after/output.css a, d { b: c; } <===> ================================================================================ <===> in_other/README.md Extensions in `_other.scss` don't affect syles in `input.scss`, both because `input.scss` is downstream and because the CSS in `_other.scss` is fully resolved before it's loaded. <===> ================================================================================ <===> in_other/before/input.scss @use "sass:meta"; a {b: c} @include meta.load-css("other"); <===> in_other/before/_other.scss d {@extend a !optional} <===> in_other/before/output.css a { b: c; } <===> ================================================================================ <===> in_other/after/input.scss @use "sass:meta"; @include meta.load-css("other"); a {b: c} <===> in_other/after/_other.scss d {@extend a !optional} <===> in_other/after/output.css a { b: c; } sass-spec-libsass-3.6.3/spec/core_functions/meta/load_css/options.yml000066400000000000000000000000371355712145100257730ustar00rootroot00000000000000--- :todo: - sass/libsass#2807 sass-spec-libsass-3.6.3/spec/core_functions/meta/load_css/plain_css.hrx000066400000000000000000000065001355712145100262540ustar00rootroot00000000000000<===> empty/user_defined/input.scss @use "sass:meta"; @include meta.load-css("other"); /* No output other than this */ <===> empty/user_defined/_other.scss // No CSS here! <===> empty/user_defined/output.css /* No output other than this */ <===> ================================================================================ <===> empty/built_in/input.scss @use "sass:meta"; @include meta.load-css("sass:color"); /* No output other than this */ <===> empty/built_in/output.css /* No output other than this */ <===> ================================================================================ <===> style_rule/input.scss @use "sass:meta"; @include meta.load-css("other"); <===> style_rule/_other.scss a {b: c} <===> style_rule/output.css a { b: c; } <===> ================================================================================ <===> at_rule/input.scss @use "sass:meta"; @include meta.load-css("other"); <===> at_rule/_other.scss @media screen {a {b: c}} <===> at_rule/output.css @media screen { a { b: c; } } <===> ================================================================================ <===> plain_css_import/input.scss @use "sass:meta"; a {b: c} @include meta.load-css("other"); <===> plain_css_import/_other.scss d {e: f} // This should be lifted to the top of the output stylesheet. @import "style.css"; <===> plain_css_import/output.css @import "style.css"; a { b: c; } d { e: f; } <===> ================================================================================ <===> through_other_mixin/input.scss @use "subdir/midstream"; @include midstream.load-css("upstream"); <===> through_other_mixin/subdir/_midstream.scss @use "sass:meta"; // This should load relative to _midstream.scss, not input.scss. @mixin load-css($module) { @include meta.load-css($module); } <===> through_other_mixin/subdir/_upstream.scss a {b: in subdir} <===> through_other_mixin/_upstream.scss a {b: in main dir} <===> through_other_mixin/output.css a { b: in subdir; } <===> ================================================================================ <===> nested/plain_plain_css/input.scss @use "sass:meta"; a {@include meta.load-css("other")} <===> nested/plain_plain_css/_other.scss b {c: d} <===> nested/plain_plain_css/output.css a b { c: d; } <===> ================================================================================ <===> nested/parent_selector/input.scss @use "sass:meta"; a {@include meta.load-css("other")} <===> nested/parent_selector/_other.scss b { // This & should *not* refer to the `a` in `input.scss`, because the CSS is // resolved context-independently. c & {x: y} } <===> nested/parent_selector/output.css a c b { x: y; } <===> ================================================================================ <===> nested/media_query/input.scss // Regression test for dart-sass#843 @use "sass:meta"; @include meta.load-css("midstream") <===> nested/media_query/_midstream.scss @use "upstream"; a { @media b {c: d} } <===> nested/media_query/_upstream.scss /**/ <===> nested/media_query/output.css /**/ @media b { a { c: d; } } <===> ================================================================================ <===> named/input.scss @use "sass:meta"; @include meta.load-css($module: "other"); <===> named/_other.scss a {b: c} <===> named/output.css a { b: c; } sass-spec-libsass-3.6.3/spec/core_functions/meta/load_css/twice.hrx000066400000000000000000000064241355712145100254210ustar00rootroot00000000000000<===> shares_state/input.scss @use "sass:meta"; @use "shared"; @include meta.load-css("other"); a {shared-b: shared.$b} <===> shares_state/_other.scss @use "shared"; shared.$b: value set by other; <===> shares_state/_shared.scss $b: default value; <===> shares_state/output.css a { shared-b: value set by other; } <===> ================================================================================ <===> use/different_nesting/input.scss @use "sass:meta"; @use "other"; a {@include meta.load-css("other")} <===> use/different_nesting/_other.scss b {c: d} <===> use/different_nesting/output.css b { c: d; } a b { c: d; } <===> ================================================================================ <===> use/different_extend/input.scss @use "sass:meta"; @use "midstream"; @include meta.load-css("other") <===> use/different_extend/_midstream.scss @use "other"; // This extension should only apply to the copy of `_other.scss` loaded from // `@use`, *not* the copy loaded from `load-css()`. a {@extend b} <===> use/different_extend/_other.scss b {c: d} <===> use/different_extend/output.css b, a { c: d; } b { c: d; } <===> ================================================================================ <===> use/runs_once/same_text/input.scss @use "sass:meta"; @use "other"; @include meta.load-css("other"); /* No output other than this */ <===> use/runs_once/same_text/_other.scss @debug "in other"; <===> use/runs_once/same_text/output.css /* No output other than this */ <===> use/runs_once/same_text/warning _other.scss:1 DEBUG: in other <===> ================================================================================ <===> use/runs_once/different_text/input.scss @use "sass:meta"; @use "other"; @include meta.load-css("_other"); /* No output other than this */ <===> use/runs_once/different_text/_other.scss @debug "in other"; <===> use/runs_once/different_text/output.css /* No output other than this */ <===> use/runs_once/different_text/warning _other.scss:1 DEBUG: in other <===> ================================================================================ <===> load_css/different_nesting/input.scss @use "sass:meta"; a {@include meta.load-css("other")} b {@include meta.load-css("other")} <===> load_css/different_nesting/_other.scss c {d: e} <===> load_css/different_nesting/output.css a c { d: e; } b c { d: e; } <===> ================================================================================ <===> load_css/different_extend/input.scss @use "left"; @use "right"; <===> load_css/different_extend/_left.scss @use "sass:meta"; @include meta.load-css("other"); left {@extend a} <===> load_css/different_extend/_right.scss @use "sass:meta"; @include meta.load-css("other"); right {@extend a} <===> load_css/different_extend/_other.scss a {b: c} <===> load_css/different_extend/output.css a, left { b: c; } a, right { b: c; } <===> ================================================================================ <===> load_css/runs_once/input.scss @use "sass:meta"; @include meta.load-css("other"); @include meta.load-css("other"); /* No output other than this */ <===> load_css/runs_once/_other.scss @debug "in other"; <===> load_css/runs_once/output.css /* No output other than this */ <===> load_css/runs_once/warning _other.scss:1 DEBUG: in other sass-spec-libsass-3.6.3/spec/core_functions/meta/load_css/with.hrx000066400000000000000000000173071355712145100252630ustar00rootroot00000000000000<===> README.md Most changes here should also be reflected in directives/use/with.hrx. <===> empty/input.scss @use "sass:meta"; @include meta.load-css("other", $with: ()); <===> empty/_other.scss a {b: c} <===> empty/output.css a { b: c; } <===> ================================================================================ <===> single/input.scss @use "sass:meta"; @include meta.load-css("other", $with: (a: configured)); <===> single/_other.scss $a: original !default; b {c: $a} <===> single/output.css b { c: configured; } <===> ================================================================================ <===> dash_insensitive/input.scss @use "sass:meta"; @include meta.load-css("other", $with: (a_b: configured)); <===> dash_insensitive/_other.scss $a-b: original !default; b {c: $a-b} <===> dash_insensitive/output.css b { c: configured; } <===> ================================================================================ <===> multiple/input.scss @use "sass:meta"; @include meta.load-css("other", $with: ( a: configured a, b: configured b, c: configured c )); <===> multiple/_other.scss $a: original a !default; $b: original b !default; $c: original c !default; d { a: $a; b: $b; c: $c; } <===> multiple/output.css d { a: configured a; b: configured b; c: configured c; } <===> ================================================================================ <===> some_unconfigured/input.scss @use "sass:meta"; @include meta.load-css("other", $with: (a: configured a)); <===> some_unconfigured/_other.scss $a: original a !default; $b: original b !default; c { a: $a; b: $b; } <===> some_unconfigured/output.css c { a: configured a; b: original b; } <===> ================================================================================ <===> doesnt_run_default/input.scss @use "sass:meta"; @include meta.load-css("other", $with: (a: configured)); <===> doesnt_run_default/_other.scss // This will throw an error if it's evaluated, but it shouldn't be because `$a` // already has a value. $a: 1px + 1em !default; b {c: $a} <===> doesnt_run_default/output.css b { c: configured; } <===> ================================================================================ <===> variable_exists/input.scss @use "sass:meta"; @include meta.load-css("other", $with: (a: configured)); <===> variable_exists/_other.scss $before-declaration: variable-exists(a); $a: original !default; b { before-declaration: $before-declaration; after-declaration: variable-exists(a); } <===> variable_exists/output.css b { before-declaration: false; after-declaration: true; } <===> ================================================================================ <===> through_import/direct/input.scss @use "sass:meta"; @include meta.load-css("loaded", $with: (a: configured)); <===> through_import/direct/_loaded.scss @import "imported"; <===> through_import/direct/_imported.scss $a: original !default; b {c: $a} <===> through_import/direct/output.css b { c: configured; } <===> ================================================================================ <===> through_import/transitive/input.scss @use "sass:meta"; @include meta.load-css("loaded", $with: (a: configured)); <===> through_import/transitive/_loaded.scss @import "midstream"; <===> through_import/transitive/_midstream.scss @import "upstream"; <===> through_import/transitive/_upstream.scss $a: original !default; b {c: $a} <===> through_import/transitive/output.css b { c: configured; } <===> ================================================================================ <===> through_forward/bare/input.scss @use "sass:meta"; @include meta.load-css("loaded", $with: (a: configured)); <===> through_forward/bare/_loaded.scss @forward "forwarded"; <===> through_forward/bare/_forwarded.scss $a: original !default; b {c: $a} <===> through_forward/bare/output.css b { c: configured; } <===> ================================================================================ <===> through_forward/transitive/input.scss @use "sass:meta"; @include meta.load-css("loaded", $with: (a: configured)); <===> through_forward/transitive/_loaded.scss @forward "midstream"; <===> through_forward/transitive/_midstream.scss @forward "upstream"; <===> through_forward/transitive/_upstream.scss $a: original !default; b {c: $a} <===> through_forward/transitive/output.css b { c: configured; } <===> ================================================================================ <===> through_forward/show/input.scss @use "sass:meta"; @include meta.load-css("loaded", $with: (a: configured)); <===> through_forward/show/_loaded.scss @forward "forwarded" show $a; <===> through_forward/show/_forwarded.scss $a: original !default; b {c: $a} <===> through_forward/show/output.css b { c: configured; } <===> ================================================================================ <===> through_forward/hide/input.scss @use "sass:meta"; @include meta.load-css("loaded", $with: (a: configured)); <===> through_forward/hide/_loaded.scss @forward "forwarded" hide $b; <===> through_forward/hide/_forwarded.scss $a: original !default; b {c: $a} <===> through_forward/hide/output.css b { c: configured; } <===> ================================================================================ <===> through_forward/as/input.scss @use "sass:meta"; @include meta.load-css("loaded", $with: (b-a: configured)); <===> through_forward/as/_loaded.scss @forward "forwarded" as b-*; <===> through_forward/as/_forwarded.scss $a: original !default; c {d: $a} <===> through_forward/as/output.css c { d: configured; } <===> ================================================================================ <===> core_module/indirect/input.scss // Regression test for sass/dart-sass#838. @use "sass:meta"; @include meta.load-css("other", $with: (c: e)); <===> core_module/indirect/_other.scss @use "sass:color"; $c: d !default; a {b: $c} <===> core_module/indirect/output.css a { b: e; } <===> ================================================================================ <===> multi_load/README.md If a module is first loaded with a configuration, future loads with no configuration will use the configured module. <===> ================================================================================ <===> multi_load/use/input.scss @use "sass:meta"; @include meta.load-css("upstream", $with: (a: configured)); // We have to load this dynamically, because we can't have a `@use` after an // `@include`. @include meta.load-css("midstream"); <===> multi_load/use/_midstream.scss @use "upstream"; b {c: upstream.$a} <===> multi_load/use/_upstream.scss $a: original !default; <===> multi_load/use/output.css b { c: configured; } <===> ================================================================================ <===> multi_load/forward/input.scss // This indirection is necessary so that we can execute `meta.load-css()` before // we begin loading `used`. @use "loads"; @use "midstream"; b {c: midstream.$a} <===> multi_load/forward/_loads.scss @use "sass:meta"; @include meta.load-css("upstream", $with: (a: configured)); <===> multi_load/forward/_midstream.scss @forward "upstream"; <===> multi_load/forward/_upstream.scss $a: original !default; <===> multi_load/forward/output.css b { c: configured; } <===> ================================================================================ <===> multi_load/empty/input.scss @use "sass:meta"; @include meta.load-css("upstream", $with: (a: configured)); // An empty configuration map counts as no configuration. @include meta.load-css("midstream", $with: ()); <===> multi_load/empty/_midstream.scss @use "upstream"; b {c: upstream.$a} <===> multi_load/empty/_upstream.scss $a: original !default; <===> multi_load/empty/output.css b { c: configured; } sass-spec-libsass-3.6.3/spec/core_functions/meta/mixin_exists.hrx000066400000000000000000000203631355712145100252400ustar00rootroot00000000000000<===> same_module/global/input.scss @mixin global-mixin() {} a {b: mixin-exists(global-mixin)} <===> same_module/global/output.css a { b: true; } <===> ================================================================================ <===> same_module/local/input.scss a { @mixin local-mixin() {} b: mixin-exists(local-mixin); } <===> same_module/local/output.css a { b: true; } <===> ================================================================================ <===> same_module/through_import/input.scss @import "other"; a {b: mixin-exists(global-mixin)} <===> same_module/through_import/other.scss @mixin global-mixin() {} <===> same_module/through_import/output.css a { b: true; } <===> ================================================================================ <===> same_module/non_existent/input.scss a { b: mixin-exists(non-existent); } <===> same_module/non_existent/output.css a { b: false; } <===> ================================================================================ <===> different_module/options.yml --- :todo: - sass/libsass#2807 <===> ================================================================================ <===> different_module/undefined/input.scss @use "sass:color"; a {b: mixin-exists("c", "color")} <===> different_module/undefined/output.css a { b: false; } <===> ================================================================================ <===> different_module/defined/input.scss @use "other"; a {b: mixin-exists("c", "other")} <===> different_module/defined/_other.scss @mixin c() {} <===> different_module/defined/output.css a { b: true; } <===> ================================================================================ <===> different_module/chosen_prefix/input.scss @use "other" as a; b {c: mixin-exists("d", "a")} <===> different_module/chosen_prefix/_other.scss @mixin d() {} <===> different_module/chosen_prefix/output.css b { c: true; } <===> ================================================================================ <===> different_module/through_use/input.scss @use "other" as *; a {b: mixin-exists(global-mixin)} <===> different_module/through_use/other.scss @mixin global-mixin() {} <===> different_module/through_use/output.css a { b: true; } <===> ================================================================================ <===> different_module/through_forward/bare/input.scss @use "midstream" as *; a {b: mixin-exists(c)} <===> different_module/through_forward/bare/_midstream.scss @forward "upstream"; <===> different_module/through_forward/bare/_upstream.scss @mixin c() {} <===> different_module/through_forward/bare/output.css a { b: true; } <===> ================================================================================ <===> different_module/through_forward/as/input.scss @use "midstream" as *; a { with-prefix: mixin-exists(b-c); without-prefix: mixin-exists(c); } <===> different_module/through_forward/as/_midstream.scss @forward "upstream" as b-*; <===> different_module/through_forward/as/_upstream.scss @mixin c() {} <===> different_module/through_forward/as/output.css a { with-prefix: true; without-prefix: false; } <===> ================================================================================ <===> different_module/through_forward/show/input.scss @use "midstream" as *; a { shown: mixin-exists(b); not-shown: mixin-exists(c); } <===> different_module/through_forward/show/_midstream.scss @forward "upstream" show b; <===> different_module/through_forward/show/_upstream.scss @mixin b() {} @mixin c() {} <===> different_module/through_forward/show/output.css a { shown: true; not-shown: false; } <===> ================================================================================ <===> different_module/through_forward/hide/input.scss @use "midstream" as *; a { hidden: mixin-exists(b); not-hidden: mixin-exists(c); } <===> different_module/through_forward/hide/_midstream.scss @forward "upstream" hide b; <===> different_module/through_forward/hide/_upstream.scss @mixin b() {} @mixin c() {} <===> different_module/through_forward/hide/output.css a { hidden: false; not-hidden: true; } <===> ================================================================================ <===> named/options.yml --- :todo: - sass/libsass#2807 <===> named/input.scss @use "other"; a {b: mixin-exists($name: "c", $module: "other")} <===> named/_other.scss @mixin c() {} <===> named/output.css a { b: true; } <===> ================================================================================ <===> error/argument/type/name/input.scss a {b: mixin-exists(12px)} <===> error/argument/type/name/error Error: $name: 12px is not a string. , 1 | a {b: mixin-exists(12px)} | ^^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> error/argument/type/name/error-libsass Error: argument `$name` of `mixin-exists($name)` must be a string on line 1:7 of input.scss, in function `mixin-exists` from line 1:7 of input.scss >> a {b: mixin-exists(12px)} ------^ <===> ================================================================================ <===> error/argument/type/module/options.yml --- :todo: - sass/libsass#2807 <===> error/argument/type/module/input.scss a {b: mixin-exists(c, 1)} <===> error/argument/type/module/error Error: $module: 1 is not a string. , 1 | a {b: mixin-exists(c, 1)} | ^^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> ================================================================================ <===> error/argument/too_few/input.scss a {b: mixin-exists()} <===> error/argument/too_few/error Error: Missing argument $name. , 1 | a {b: mixin-exists()} | ^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> error/argument/too_few/error-libsass Error: Function mixin-exists is missing argument $name. on line 1 of input.scss >> a {b: mixin-exists()} ------^ <===> ================================================================================ <===> error/argument/too_many/input.scss a {b: mixin-exists(c, d, e)} <===> error/argument/too_many/error Error: Only 2 arguments allowed, but 3 were passed. , 1 | a {b: mixin-exists(c, d, e)} | ^^^^^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> error/argument/too_many/error-libsass Error: wrong number of arguments (3 for 1) for `mixin-exists' on line 1:7 of input.scss >> a {b: mixin-exists(c, d, e)} ------^ <===> ================================================================================ <===> error/conflict/options.yml --- :todo: - sass/libsass#2807 <===> error/conflict/input.scss @use "other1" as *; @use "other2" as *; a {b: mixin-exists(member)} <===> error/conflict/other1.scss @mixin member() {} <===> error/conflict/other2.scss @mixin member() {} <===> error/conflict/error Error: This mixin is available from multiple global modules: * other1.scss * other2.scss , 4 | a {b: mixin-exists(member)} | ^^^^^^^^^^^^^^^^^^^^ ' input.scss 4:7 root stylesheet <===> ================================================================================ <===> error/module/options.yml --- :todo: - sass/libsass#2807 <===> ================================================================================ <===> error/module/non_existent/input.scss a {b: mixin-exists("c", "d")} <===> error/module/non_existent/error Error: There is no module with the namespace "d". , 1 | a {b: mixin-exists("c", "d")} | ^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> ================================================================================ <===> error/module/built_in_but_not_loaded/input.scss a {b: mixin-exists("c", "color")} <===> error/module/built_in_but_not_loaded/error Error: There is no module with the namespace "color". , 1 | a {b: mixin-exists("c", "color")} | ^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> ================================================================================ <===> error/module/dash_sensitive/input.scss @use "sass:color" as a-b; c {d: mixin-exists("c", $module: "a_b")} <===> error/module/dash_sensitive/error Error: There is no module with the namespace "a_b". , 2 | c {d: mixin-exists("c", $module: "a_b")} | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 2:7 root stylesheet sass-spec-libsass-3.6.3/spec/core_functions/meta/module_functions.hrx000066400000000000000000000203071355712145100260700ustar00rootroot00000000000000<===> options.yml --- :todo: - sass/libsass#2807 <===> ================================================================================ <===> empty/input.scss @use "sass:meta"; @use "other"; a {b: meta.inspect(meta.module-functions("other"))} <===> empty/_other.scss // This module defines no functions. <===> empty/output.css a { b: (); } <===> ================================================================================ <===> _util.scss @use "sass:meta"; @mixin print-function-map($functions) { a { @each $name, $function in $functions { #{$name}: meta.call($function); } } } <===> ================================================================================ <===> multiple/input.scss @use "sass:meta"; @use "../util"; @use "other"; @include util.print-function-map(meta.module-functions("other")); <===> multiple/_other.scss @function b() {@return b value} @function c() {@return c value} @function d() {@return d value} <===> multiple/output.css a { b: b value; c: c value; d: d value; } <===> ================================================================================ <===> dash_sensitive/input.scss @use "sass:meta"; @use "../util"; @use "other"; @include util.print-function-map(meta.module-functions("other")); <===> dash_sensitive/_other.scss @function b-c() {@return b-c value} @function d_e() {@return d_e value} <===> dash_sensitive/output.css a { b-c: b-c value; d-e: d_e value; } <===> ================================================================================ <===> as/input.scss @use "sass:meta"; @use "../util"; @use "other" as b; @include util.print-function-map(meta.module-functions("b")) <===> as/_other.scss @function c() {@return c value} @function d() {@return d value} @function e() {@return e value} <===> as/output.css a { c: c value; d: d value; e: e value; } <===> ================================================================================ <===> through_import/input.scss @use "sass:meta"; @use "../util"; @use "used"; @include util.print-function-map(meta.module-functions("used")); <===> through_import/_used.scss @import "imported"; <===> through_import/_imported.scss @function b() {@return b value} @function c() {@return c value} @function d() {@return d value} <===> through_import/output.css a { b: b value; c: c value; d: d value; } <===> ================================================================================ <===> core_module/input.scss @use "sass:map"; @use "sass:meta"; // We don't want to print every function name in this module, since that would // make this test brittle when new functions are added. Instead we just test // that a couple functions work. $functions: meta.module-functions("meta"); a { variable-exists: meta.call(map.get($functions, "variable-exists"), "functions"); inspect: meta.call(map.get($functions, "inspect"), ()); } <===> core_module/output.css a { variable-exists: true; inspect: (); } <===> ================================================================================ <===> through_forward/bare/input.scss @use "sass:meta"; @use "../../util"; @use "used"; @include util.print-function-map(meta.module-functions("used")); <===> through_forward/bare/_used.scss @forward "forwarded"; <===> through_forward/bare/_forwarded.scss @function b() {@return b value} @function c() {@return c value} @function d() {@return d value} <===> through_forward/bare/output.css a { b: b value; c: c value; d: d value; } <===> ================================================================================ <===> through_forward/as/input.scss @use "sass:meta"; @use "../../util"; @use "used"; @include util.print-function-map(meta.module-functions("used")); <===> through_forward/as/_used.scss @forward "forwarded" as b-*; <===> through_forward/as/_forwarded.scss @function c() {@return c value} @function d() {@return d value} @function e() {@return e value} <===> through_forward/as/output.css a { b-c: c value; b-d: d value; b-e: e value; } <===> ================================================================================ <===> through_forward/show/input.scss @use "sass:meta"; @use "../../util"; @use "used"; @include util.print-function-map(meta.module-functions("used")); <===> through_forward/show/_used.scss @forward "forwarded" show b, c; <===> through_forward/show/_forwarded.scss @function b() {@return b value} @function c() {@return c value} @function d() {@return d value} <===> through_forward/show/output.css a { b: b value; c: c value; } <===> ================================================================================ <===> through_forward/hide/input.scss @use "sass:meta"; @use "../../util"; @use "used"; @include util.print-function-map(meta.module-functions("used")); <===> through_forward/hide/_used.scss @forward "forwarded" hide b, c; <===> through_forward/hide/_forwarded.scss @function b() {@return b value} @function c() {@return c value} @function d() {@return d value} <===> through_forward/hide/output.css a { d: d value; } <===> ================================================================================ <===> named/input.scss @use "sass:meta"; @use "../util"; @use "other"; @include util.print-function-map(meta.module-functions($module: "other")); <===> named/_other.scss @function b() {@return b value} @function c() {@return c value} @function d() {@return d value} <===> named/output.css a { b: b value; c: c value; d: d value; } <===> ================================================================================ <===> error/type/input.scss @use "sass:meta"; $a: meta.module-functions(1); <===> error/type/error Error: $module: 1 is not a string. , 2 | $a: meta.module-functions(1); | ^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 2:5 root stylesheet <===> ================================================================================ <===> error/too_few_args/input.scss @use "sass:meta"; $a: meta.module-functions(); <===> error/too_few_args/error Error: Missing argument $module. , 2 | $a: meta.module-functions(); | ^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 2:5 root stylesheet <===> ================================================================================ <===> error/too_many_args/input.scss @use "sass:meta"; $a: meta.module-functions("meta", "c"); <===> error/too_many_args/error Error: Only 1 argument allowed, but 2 were passed. , 2 | $a: meta.module-functions("meta", "c"); | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 2:5 root stylesheet <===> ================================================================================ <===> error/missing/input.scss @use "sass:meta"; $a: meta.module-functions("other"); <===> error/missing/error Error: There is no module with namespace "other". , 2 | $a: meta.module-functions("other"); | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 2:5 root stylesheet <===> ================================================================================ <===> error/dash_sensitive/input.scss @use "sass:meta"; @use "other-module"; $a: meta.module-functions("other_module"); <===> error/dash_sensitive/_other-module.scss // This module defines no functions. <===> error/dash_sensitive/error Error: There is no module with namespace "other_module". , 4 | $a: meta.module-functions("other_module"); | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 4:5 root stylesheet <===> ================================================================================ <===> error/global/input.scss @use "sass:meta"; @use "other" as *; $a: meta.module-functions("other"); <===> error/global/_other.scss // This module defines no functions. <===> error/global/error Error: There is no module with namespace "other". , 4 | $a: meta.module-functions("other"); | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 4:5 root stylesheet <===> ================================================================================ <===> error/before_load/input.scss @use "sass:meta"; $a: meta.module-functions("other"); @use "other"; <===> error/before_load/_other.scss // This module defines no functions. <===> error/before_load/error Error: There is no module with namespace "other". , 3 | $a: meta.module-functions("other"); | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 3:5 root stylesheet sass-spec-libsass-3.6.3/spec/core_functions/meta/module_variables.hrx000066400000000000000000000162741355712145100260400ustar00rootroot00000000000000<===> options.yml --- :todo: - sass/libsass#2807 <===> ================================================================================ <===> empty/input.scss @use "sass:meta"; @use "other"; a {b: meta.inspect(meta.module-variables("other"))} <===> empty/_other.scss // This module defines no variables. <===> empty/output.css a { b: (); } <===> ================================================================================ <===> multiple/input.scss @use "sass:meta"; @use "other"; a {b: meta.inspect(meta.module-variables("other"))} <===> multiple/_other.scss $c: c value; $d: d value; $e: e value; <===> multiple/output.css a { b: ("c": c value, "d": d value, "e": e value); } <===> ================================================================================ <===> dash_sensitive/input.scss @use "sass:meta"; @use "other"; a {b: meta.inspect(meta.module-variables("other"))} <===> dash_sensitive/_other.scss $c-d: c-d value; $e_f: e_f value; <===> dash_sensitive/output.css a { b: ("c-d": c-d value, "e-f": e_f value); } <===> ================================================================================ <===> as/input.scss @use "sass:meta"; @use "other" as a; b {c: meta.inspect(meta.module-variables("a"))} <===> as/_other.scss $d: d value; $e: e value; $f: f value; <===> as/output.css b { c: ("d": d value, "e": e value, "f": f value); } <===> ================================================================================ <===> through_import/input.scss @use "sass:meta"; @use "used"; a {b: meta.inspect(meta.module-variables("used"))} <===> through_import/_used.scss @import "imported"; <===> through_import/_imported.scss $c: c value; $d: d value; $e: e value; <===> through_import/output.css a { b: ("c": c value, "d": d value, "e": e value); } <===> ================================================================================ <===> core_module/input.scss @use "sass:meta"; a {b: meta.inspect(meta.module-variables("meta"))} <===> core_module/output.css a { b: (); } <===> ================================================================================ <===> through_forward/bare/input.scss @use "sass:meta"; @use "used"; a {b: meta.inspect(meta.module-variables("used"))} <===> through_forward/bare/_used.scss @forward "forwarded"; <===> through_forward/bare/_forwarded.scss $c: c value; $d: d value; $e: e value; <===> through_forward/bare/output.css a { b: ("c": c value, "d": d value, "e": e value); } <===> ================================================================================ <===> through_forward/as/input.scss @use "sass:meta"; @use "used"; a {b: meta.inspect(meta.module-variables("used"))} <===> through_forward/as/_used.scss @forward "forwarded" as c-*; <===> through_forward/as/_forwarded.scss $d: d value; $e: e value; $f: f value; <===> through_forward/as/output.css a { b: ("c-d": d value, "c-e": e value, "c-f": f value); } <===> ================================================================================ <===> through_forward/show/input.scss @use "sass:meta"; @use "used"; a {b: meta.inspect(meta.module-variables("used"))} <===> through_forward/show/_used.scss @forward "forwarded" show $c, $d; <===> through_forward/show/_forwarded.scss $c: c value; $d: d value; $e: e value; <===> through_forward/show/output.css a { b: ("c": c value, "d": d value); } <===> ================================================================================ <===> through_forward/hide/input.scss @use "sass:meta"; @use "used"; a {b: meta.inspect(meta.module-variables("used"))} <===> through_forward/hide/_used.scss @forward "forwarded" hide $c, $d; <===> through_forward/hide/_forwarded.scss $c: c value; $d: d value; $e: e value; <===> through_forward/hide/output.css a { b: ("e": e value); } <===> ================================================================================ <===> named/input.scss @use "sass:meta"; @use "other"; a {b: meta.inspect(meta.module-variables($module: "other"))} <===> named/_other.scss $c: c value; $d: d value; $e: e value; <===> named/output.css a { b: ("c": c value, "d": d value, "e": e value); } <===> ================================================================================ <===> error/type/input.scss @use "sass:meta"; a {b: meta.inspect(meta.module-variables(1))} <===> error/type/error Error: $module: 1 is not a string. , 2 | a {b: meta.inspect(meta.module-variables(1))} | ^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 2:20 root stylesheet <===> ================================================================================ <===> error/too_few_args/input.scss @use "sass:meta"; a {b: meta.inspect(meta.module-variables())} <===> error/too_few_args/error Error: Missing argument $module. , 2 | a {b: meta.inspect(meta.module-variables())} | ^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 2:20 root stylesheet <===> ================================================================================ <===> error/too_many_args/input.scss @use "sass:meta"; a {b: meta.inspect(meta.module-variables("meta", "c"))} <===> error/too_many_args/error Error: Only 1 argument allowed, but 2 were passed. , 2 | a {b: meta.inspect(meta.module-variables("meta", "c"))} | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 2:20 root stylesheet <===> ================================================================================ <===> error/missing/input.scss @use "sass:meta"; a {b: meta.inspect(meta.module-variables("other"))} <===> error/missing/error Error: There is no module with namespace "other". , 2 | a {b: meta.inspect(meta.module-variables("other"))} | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 2:20 root stylesheet <===> ================================================================================ <===> error/dash_sensitive/input.scss @use "sass:meta"; @use "other-module"; a {b: meta.inspect(meta.module-variables("other_module"))} <===> error/dash_sensitive/_other-module.scss // This module defines no variables. <===> error/dash_sensitive/error Error: There is no module with namespace "other_module". , 4 | a {b: meta.inspect(meta.module-variables("other_module"))} | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 4:20 root stylesheet <===> ================================================================================ <===> error/global/input.scss @use "sass:meta"; @use "other" as *; a {b: meta.inspect(meta.module-variables("other"))} <===> error/global/_other.scss // This module defines no variables. <===> error/global/error Error: There is no module with namespace "other". , 4 | a {b: meta.inspect(meta.module-variables("other"))} | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 4:20 root stylesheet <===> ================================================================================ <===> error/before_load/input.scss @use "sass:meta"; $variables: meta.module-variables("other"); @use "other"; <===> error/before_load/_other.scss // This module defines no variables. <===> error/before_load/error Error: There is no module with namespace "other". , 3 | $variables: meta.module-variables("other"); | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 3:13 root stylesheet sass-spec-libsass-3.6.3/spec/core_functions/meta/type_of.hrx000066400000000000000000000072211355712145100241600ustar00rootroot00000000000000<===> boolean/true/input.scss a {b: type-of(true)} <===> boolean/true/output.css a { b: bool; } <===> ================================================================================ <===> boolean/false/input.scss a {b: type-of(false)} <===> boolean/false/output.css a { b: bool; } <===> ================================================================================ <===> color/input.scss a {b: type-of(red)} <===> color/output.css a { b: color; } <===> ================================================================================ <===> list/empty/input.scss a {b: type-of(())} <===> list/empty/output.css a { b: list; } <===> ================================================================================ <===> list/non_empty/input.scss a {b: type-of(1 2 3)} <===> list/non_empty/output.css a { b: list; } <===> ================================================================================ <===> map/empty/input.scss a {b: type-of(map-remove((c: d), c))} <===> map/empty/output.css a { b: map; } <===> ================================================================================ <===> map/non_empty/input.scss a {b: type-of((c: d))} <===> map/non_empty/output.css a { b: map; } <===> ================================================================================ <===> null/input.scss a {b: type-of(null)} <===> null/output.css a { b: null; } <===> ================================================================================ <===> number/unitless/input.scss a {b: type-of(1)} <===> number/unitless/output.css a { b: number; } <===> ================================================================================ <===> number/unit/input.scss a {b: type-of(1.5px * 3.4em)} <===> number/unit/output.css a { b: number; } <===> ================================================================================ <===> function/input.scss a {b: type-of(get-function("type-of"))} <===> function/output.css a { b: function; } <===> ================================================================================ <===> string/quoted/input.scss a {b: type-of("c")} <===> string/quoted/output.css a { b: string; } <===> ================================================================================ <===> string/unquoted/input.scss a {b: type-of(c)} <===> string/unquoted/output.css a { b: string; } <===> ================================================================================ <===> arglist/input.scss @function type-of-arglist($args...) { @return type-of($args); } a {b: type-of-arglist()} <===> arglist/output.css a { b: arglist; } <===> ================================================================================ <===> named/input.scss a {b: type-of($value: c)} <===> named/output.css a { b: string; } <===> ================================================================================ <===> error/too_few_args/input.scss a {b: type-of()} <===> error/too_few_args/error Error: Missing argument $value. , 1 | a {b: type-of()} | ^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> error/too_few_args/error-libsass Error: Function type-of is missing argument $value. on line 1 of input.scss >> a {b: type-of()} ------^ <===> ================================================================================ <===> error/too_many_args/input.scss a {b: type-of(1, 2)} <===> error/too_many_args/error Error: Only 1 argument allowed, but 2 were passed. , 1 | a {b: type-of(1, 2)} | ^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> error/too_many_args/error-libsass Error: wrong number of arguments (2 for 1) for `type-of' on line 1:7 of input.scss >> a {b: type-of(1, 2)} ------^ sass-spec-libsass-3.6.3/spec/core_functions/meta/variable_exists.hrx000066400000000000000000000126551355712145100257060ustar00rootroot00000000000000<===> global/input.scss $global-variable: null; a {b: variable-exists(global-variable)} <===> global/output.css a { b: true; } <===> ================================================================================ <===> local/input.scss a { $local-variable: null; b: variable-exists(local-variable); } <===> local/output.css a { b: true; } <===> ================================================================================ <===> dash_insensitive/dash_to_underscore/input.scss $a_b: null; c {d: variable-exists(a-b)} <===> dash_insensitive/dash_to_underscore/output.css c { d: true; } <===> ================================================================================ <===> dash_insensitive/underscore_to_dash/input.scss $a-b: null; c {d: variable-exists(a_b)} <===> dash_insensitive/underscore_to_dash/output.css c { d: true; } <===> ================================================================================ <===> through_import/input.scss @import "other"; a {b: variable-exists(global-variable)} <===> through_import/other.scss $global-variable: null; <===> through_import/output.css a { b: true; } <===> ================================================================================ <===> through_use/options.yml --- :todo: - sass/libsass#2807 <===> through_use/input.scss @use "other" as *; a {b: variable-exists(global-variable)} <===> through_use/other.scss $global-variable: null; <===> through_use/output.css a { b: true; } <===> ================================================================================ <===> through_forward/options.yml --- :todo: - sass/libsass#2807 <===> ================================================================================ <===> through_forward/as/input.scss @use "midstream" as *; a { with-prefix: variable-exists(b-c); without-prefix: variable-exists(c); } <===> through_forward/as/_midstream.scss @forward "upstream" as b-*; <===> through_forward/as/_upstream.scss $c: null; <===> through_forward/as/output.css a { with-prefix: true; without-prefix: false; } <===> ================================================================================ <===> through_forward/show/input.scss @use "midstream" as *; a { shown: variable-exists(b); not-shown: variable-exists(c); } <===> through_forward/show/_midstream.scss @forward "upstream" show $b; <===> through_forward/show/_upstream.scss $b: null; $c: null; <===> through_forward/show/output.css a { shown: true; not-shown: false; } <===> ================================================================================ <===> through_forward/hide/input.scss @use "midstream" as *; a { hidden: variable-exists(b); not-hidden: variable-exists(c); } <===> through_forward/hide/_midstream.scss @forward "upstream" hide $b; <===> through_forward/hide/_upstream.scss $b: null; $c: null; <===> through_forward/hide/output.css a { hidden: false; not-hidden: true; } <===> ================================================================================ <===> non_existent/input.scss a { b: variable-exists(non-existent); } <===> non_existent/output.css a { b: false; } <===> ================================================================================ <===> keyword/input.scss a {b: variable-exists($name: foo)} <===> keyword/output.css a { b: false; } <===> ================================================================================ <===> error/argument/type/input.scss a {b: variable-exists(12px)} <===> error/argument/type/error Error: $name: 12px is not a string. , 1 | a {b: variable-exists(12px)} | ^^^^^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> error/argument/type/error-libsass Error: argument `$name` of `variable-exists($name)` must be a string on line 1:7 of input.scss, in function `variable-exists` from line 1:7 of input.scss >> a {b: variable-exists(12px)} ------^ <===> ================================================================================ <===> error/argument/too_few/input.scss a {b: variable-exists()} <===> error/argument/too_few/error Error: Missing argument $name. , 1 | a {b: variable-exists()} | ^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> error/argument/too_few/error-libsass Error: Function variable-exists is missing argument $name. on line 1 of input.scss >> a {b: variable-exists()} ------^ <===> ================================================================================ <===> error/argument/too_many/input.scss a {b: variable-exists(foo, bar)} <===> error/argument/too_many/error Error: Only 1 argument allowed, but 2 were passed. , 1 | a {b: variable-exists(foo, bar)} | ^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> error/argument/too_many/error-libsass Error: wrong number of arguments (2 for 1) for `variable-exists' on line 1:7 of input.scss >> a {b: variable-exists(foo, bar)} ------^ <===> ================================================================================ <===> conflict/options.yml --- :todo: - sass/libsass#2807 <===> conflict/input.scss @use "other1" as *; @use "other2" as *; a {b: variable-exists(member)} <===> conflict/other1.scss $member: from other1; <===> conflict/other2.scss $member: from other2; <===> conflict/error Error: This variable is available from multiple global modules: * other1.scss * other2.scss , 4 | a {b: variable-exists(member)} | ^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 4:7 root stylesheet sass-spec-libsass-3.6.3/spec/core_functions/modules/000077500000000000000000000000001355712145100225105ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/core_functions/modules/README.md000066400000000000000000000011041355712145100237630ustar00rootroot00000000000000This directory tests that core functions are accessible from the `sass:` modules as defined in [the module system proposal][]. For the time being, it just tests that each individual function is accessible with the correct name, and that removed or renamed functions are not accessible. Once all implementations support the module system, we should migrate all the function tests to use module functions and just have simple tests for the global versions instead. [the module system proposal]: https://github.com/sass/sass/blob/master/accepted/module-system.md#built-in-modules-1 sass-spec-libsass-3.6.3/spec/core_functions/modules/color.hrx000066400000000000000000000260121355712145100243520ustar00rootroot00000000000000<===> red/input.scss @use "sass:color"; a {b: color.red(#abcdef)} <===> red/output.css a { b: 171; } <===> ================================================================================ <===> green/input.scss @use "sass:color"; a {b: color.green(#abcdef)} <===> green/output.css a { b: 205; } <===> ================================================================================ <===> blue/input.scss @use "sass:color"; a {b: color.blue(#abcdef)} <===> blue/output.css a { b: 239; } <===> ================================================================================ <===> hue/input.scss @use "sass:color"; a {b: color.hue(#abcdef)} <===> hue/output.css a { b: 210deg; } <===> ================================================================================ <===> saturation/input.scss @use "sass:color"; a {b: color.saturation(#abcdef)} <===> saturation/output.css a { b: 68%; } <===> ================================================================================ <===> lightness/input.scss @use "sass:color"; a {b: color.lightness(#abcdef)} <===> lightness/output.css a { b: 80.3921568627%; } <===> ================================================================================ <===> mix/input.scss @use "sass:color"; a {b: color.mix(#abcdef, #daddee)} <===> mix/output.css a { b: #c3d5ef; } <===> ================================================================================ <===> complement/input.scss @use "sass:color"; a {b: color.complement(#abcdef)} <===> complement/output.css a { b: #efcdab; } <===> ================================================================================ <===> invert/input.scss @use "sass:color"; a {b: color.invert(#abcdef)} <===> invert/output.css a { b: #543210; } <===> ================================================================================ <===> alpha/input.scss @use "sass:color"; a {b: color.alpha(#abcdef)} <===> alpha/output.css a { b: 1; } <===> ================================================================================ <===> adjust/input.scss @use "sass:color"; a {b: color.adjust(#abcdef, $red: 10)} <===> adjust/output.css a { b: #b5cdef; } <===> ================================================================================ <===> scale/input.scss @use "sass:color"; a {b: color.scale(#abcdef, $red: 10%)} <===> scale/output.css a { b: #b3cdef; } <===> ================================================================================ <===> change/input.scss @use "sass:color"; a {b: color.change(#abcdef, $red: 10)} <===> change/output.css a { b: #0acdef; } <===> ================================================================================ <===> ie_hex_str/input.scss @use "sass:color"; a {b: color.ie-hex-str(#abcdef)} <===> ie_hex_str/output.css a { b: #FFABCDEF; } <===> ================================================================================ <===> css_overloads/README.md CSS overloads are still supported for module functions to ease the transition, but they should produce deprecation warnings. <===> ================================================================================ <===> css_overloads/grayscale/input.scss @use "sass:color"; a {b: color.grayscale(1)} <===> css_overloads/grayscale/output.css a { b: grayscale(1); } <===> css_overloads/grayscale/warning WARNING: Passing a number to color.grayscale() is deprecated. Recommendation: grayscale(1) , 2 | a {b: color.grayscale(1)} | ^^^^^^^^^^^^^^^^^^ ' input.scss 2:7 root stylesheet <===> ================================================================================ <===> css_overloads/invert/input.scss @use "sass:color"; a {b: color.invert(1)} <===> css_overloads/invert/output.css a { b: invert(1); } <===> css_overloads/invert/warning WARNING: Passing a number to color.invert() is deprecated. Recommendation: invert(1) , 2 | a {b: color.invert(1)} | ^^^^^^^^^^^^^^^ ' input.scss 2:7 root stylesheet <===> ================================================================================ <===> css_overloads/alpha/one_arg/input.scss @use "sass:color"; a {b: color.alpha(c=d)} <===> css_overloads/alpha/one_arg/output.css a { b: alpha(c=d); } <===> css_overloads/alpha/one_arg/warning WARNING: Using color.alpha() for a Microsoft filter is deprecated. Recommendation: alpha(c=d) , 2 | a {b: color.alpha(c=d)} | ^^^^^^^^^^^^^^^^ ' input.scss 2:7 root stylesheet <===> ================================================================================ <===> css_overloads/alpha/multi_arg/input.scss @use "sass:color"; a {b: color.alpha(c=d, e=f, g=h)} <===> css_overloads/alpha/multi_arg/output.css a { b: alpha(c=d, e=f, g=h); } <===> css_overloads/alpha/multi_arg/warning WARNING: Using color.alpha() for a Microsoft filter is deprecated. Recommendation: alpha(c=d, e=f, g=h) , 2 | a {b: color.alpha(c=d, e=f, g=h)} | ^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 2:7 root stylesheet <===> ================================================================================ <===> css_overloads/opacity/input.scss @use "sass:color"; a {b: color.opacity(1)} <===> css_overloads/opacity/output.css a { b: opacity(1); } <===> css_overloads/opacity/warning WARNING: Passing a number to color.opacity() is deprecated. Recommendation: opacity(1) , 2 | a {b: color.opacity(1)} | ^^^^^^^^^^^^^^^^ ' input.scss 2:7 root stylesheet <===> ================================================================================ <===> error/adjust_color/input.scss @use "sass:color"; a {b: color.adjust-color(#abcdef, $red: 10)} <===> error/adjust_color/error Error: Undefined function. , 2 | a {b: color.adjust-color(#abcdef, $red: 10)} | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 2:7 root stylesheet <===> ================================================================================ <===> error/scale_color/input.scss @use "sass:color"; a {b: color.scale-color(#abcdef, $red: 10%)} <===> error/scale_color/error Error: Undefined function. , 2 | a {b: color.scale-color(#abcdef, $red: 10%)} | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 2:7 root stylesheet <===> ================================================================================ <===> error/change_color/input.scss @use "sass:color"; a {b: color.change-color(#abcdef, $red: 10)} <===> error/change_color/error Error: Undefined function. , 2 | a {b: color.change-color(#abcdef, $red: 10)} | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 2:7 root stylesheet <===> ================================================================================ <===> error/adjust_hue/input.scss @use "sass:color"; a {b: color.adjust-hue(#abcdef, 10)} <===> error/adjust_hue/error Error: The function adjust-hue() isn't in the sass:color module. Recommendation: color.adjust(#abcdef, $hue: 10) More info: https://sass-lang.com/documentation/functions/color#adjust-hue , 2 | a {b: color.adjust-hue(#abcdef, 10)} | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 2:7 root stylesheet <===> ================================================================================ <===> error/lighten/input.scss @use "sass:color"; a {b: color.lighten(#abcdef, 10%)} <===> error/lighten/error Error: The function lighten() isn't in the sass:color module. Recommendation: color.adjust(#abcdef, $lightness: 10%) More info: https://sass-lang.com/documentation/functions/color#lighten , 2 | a {b: color.lighten(#abcdef, 10%)} | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 2:7 root stylesheet <===> ================================================================================ <===> error/darken/input.scss @use "sass:color"; a {b: color.darken(#abcdef, 10%)} <===> error/darken/error Error: The function darken() isn't in the sass:color module. Recommendation: color.adjust(#abcdef, $lightness: -10%) More info: https://sass-lang.com/documentation/functions/color#darken , 2 | a {b: color.darken(#abcdef, 10%)} | ^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 2:7 root stylesheet <===> ================================================================================ <===> error/saturate/input.scss @use "sass:color"; a {b: color.saturate(#abcdef, 10%)} <===> error/saturate/error Error: The function saturate() isn't in the sass:color module. Recommendation: color.adjust(#abcdef, $saturation: 10%) More info: https://sass-lang.com/documentation/functions/color#saturate , 2 | a {b: color.saturate(#abcdef, 10%)} | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 2:7 root stylesheet <===> ================================================================================ <===> error/desaturate/input.scss @use "sass:color"; a {b: color.desaturate(#abcdef, 10%)} <===> error/desaturate/error Error: The function desaturate() isn't in the sass:color module. Recommendation: color.adjust(#abcdef, $saturation: -10%) More info: https://sass-lang.com/documentation/functions/color#desaturate , 2 | a {b: color.desaturate(#abcdef, 10%)} | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 2:7 root stylesheet <===> ================================================================================ <===> error/opacify/input.scss @use "sass:color"; a {b: color.opacify(#abcdef, 0.5)} <===> error/opacify/error Error: The function opacify() isn't in the sass:color module. Recommendation: color.adjust(#abcdef, $alpha: 0.5) More info: https://sass-lang.com/documentation/functions/color#opacify , 2 | a {b: color.opacify(#abcdef, 0.5)} | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 2:7 root stylesheet <===> ================================================================================ <===> error/fade_in/input.scss @use "sass:color"; a {b: color.fade-in(#abcdef, 0.5)} <===> error/fade_in/error Error: The function fade-in() isn't in the sass:color module. Recommendation: color.adjust(#abcdef, $alpha: 0.5) More info: https://sass-lang.com/documentation/functions/color#fade-in , 2 | a {b: color.fade-in(#abcdef, 0.5)} | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 2:7 root stylesheet <===> ================================================================================ <===> error/transparentize/input.scss @use "sass:color"; a {b: color.transparentize(#abcdef, 0.5)} <===> error/transparentize/error Error: The function transparentize() isn't in the sass:color module. Recommendation: color.adjust(#abcdef, $alpha: -0.5) More info: https://sass-lang.com/documentation/functions/color#transparentize , 2 | a {b: color.transparentize(#abcdef, 0.5)} | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 2:7 root stylesheet <===> ================================================================================ <===> error/fade_out/input.scss @use "sass:color"; a {b: color.fade-out(#abcdef, 0.5)} <===> error/fade_out/error Error: The function fade-out() isn't in the sass:color module. Recommendation: color.adjust(#abcdef, $alpha: -0.5) More info: https://sass-lang.com/documentation/functions/color#fade-out , 2 | a {b: color.fade-out(#abcdef, 0.5)} | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 2:7 root stylesheet sass-spec-libsass-3.6.3/spec/core_functions/modules/general.hrx000066400000000000000000000045521355712145100246560ustar00rootroot00000000000000<===> global/input.scss @use "sass:math" as *; a {b: compatible(1px, 1in)} <===> global/output.css a { b: true; } <===> ================================================================================ <===> as/input.scss @use "sass:math" as m; a {b: m.round(0.7)} <===> as/output.css a { b: 1; } <===> ================================================================================ <===> error/set_variable/input.scss @use "sass:math"; math.$a: b; <===> error/set_variable/error Error: Undefined variable. , 2 | math.$a: b; | ^^^^^^^^^^ ' input.scss 2:1 root stylesheet <===> ================================================================================ <===> forward/bare/input.scss @use "other"; a {b: other.round(0.7)} <===> forward/bare/_other.scss @forward "sass:math"; <===> forward/bare/output.css a { b: 1; } <===> ================================================================================ <===> forward/show/input.scss @use "other"; a {b: other.round(0.7)} <===> forward/show/_other.scss @forward "sass:math" show round; <===> forward/show/output.css a { b: 1; } <===> ================================================================================ <===> forward/hide/input.scss @use "other"; a {b: other.round(0.7)} <===> forward/hide/_other.scss @forward "sass:math" hide ceil; <===> forward/hide/output.css a { b: 1; } <===> ================================================================================ <===> forward/as/input.scss @use "other"; a {b: other.s-round(0.7)} <===> forward/as/_other.scss @forward "sass:math" as s-*; <===> forward/as/output.css a { b: 1; } <===> ================================================================================ <===> forward/error/show/input.scss @use "other"; a {b: other.round(0.7)} <===> forward/error/show/_other.scss @forward "sass:math" show ceil; <===> forward/error/show/error Error: Undefined function. , 2 | a {b: other.round(0.7)} | ^^^^^^^^^^^^^^^^ ' input.scss 2:7 root stylesheet <===> ================================================================================ <===> forward/error/hide/input.scss @use "other"; a {b: other.round(0.7)} <===> forward/error/hide/_other.scss @forward "sass:math" hide round; <===> forward/error/hide/error Error: Undefined function. , 2 | a {b: other.round(0.7)} | ^^^^^^^^^^^^^^^^ ' input.scss 2:7 root stylesheet sass-spec-libsass-3.6.3/spec/core_functions/modules/map.hrx000066400000000000000000000063721355712145100240200ustar00rootroot00000000000000<===> get/input.scss @use "sass:map"; a {b: map.get((c: d), c)} <===> get/output.css a { b: d; } <===> ================================================================================ <===> merge/input.scss @use "sass:map"; @use "sass:meta"; a {b: meta.inspect(map.merge((c: d), (e: f)))} <===> merge/output.css a { b: (c: d, e: f); } <===> ================================================================================ <===> remove/input.scss @use "sass:map"; @use "sass:meta"; a {b: meta.inspect(map.remove((c: d), c))} <===> remove/output.css a { b: (); } <===> ================================================================================ <===> keys/input.scss @use "sass:map"; a {b: map.keys((c: d))} <===> keys/output.css a { b: c; } <===> ================================================================================ <===> values/input.scss @use "sass:map"; a {b: map.values((c: d))} <===> values/output.css a { b: d; } <===> ================================================================================ <===> has_key/input.scss @use "sass:map"; a {b: map.has-key((c: d), c)} <===> has_key/output.css a { b: true; } <===> ================================================================================ <===> error/map_get/input.scss @use "sass:map"; a {b: map.map-get((c: d), c)} <===> error/map_get/error Error: Undefined function. , 2 | a {b: map.map-get((c: d), c)} | ^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 2:7 root stylesheet <===> ================================================================================ <===> error/map_merge/input.scss @use "sass:map"; @use "sass:meta"; a {b: meta.map-inspect(map.merge((c: d), (e: f)))} <===> error/map_merge/error Error: Undefined function. , 3 | a {b: meta.map-inspect(map.merge((c: d), (e: f)))} | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 3:7 root stylesheet <===> ================================================================================ <===> error/map_remove/input.scss @use "sass:map"; @use "sass:meta"; a {b: meta.map-inspect(map.remove((c: d), c))} <===> error/map_remove/error Error: Undefined function. , 3 | a {b: meta.map-inspect(map.remove((c: d), c))} | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 3:7 root stylesheet <===> ================================================================================ <===> error/map_keys/input.scss @use "sass:map"; a {b: map.map-keys((c: d))} <===> error/map_keys/error Error: Undefined function. , 2 | a {b: map.map-keys((c: d))} | ^^^^^^^^^^^^^^^^^^^^ ' input.scss 2:7 root stylesheet <===> ================================================================================ <===> error/map_values/input.scss @use "sass:map"; a {b: map.map-values((c: d), c)} <===> error/map_values/error Error: Undefined function. , 2 | a {b: map.map-values((c: d), c)} | ^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 2:7 root stylesheet <===> ================================================================================ <===> error/map_has_key/input.scss @use "sass:map"; a {b: map.map-has-key((c: d), c)} <===> error/map_has_key/error Error: Undefined function. , 2 | a {b: map.map-has-key((c: d), c)} | ^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 2:7 root stylesheet sass-spec-libsass-3.6.3/spec/core_functions/modules/math.hrx000066400000000000000000000052341355712145100241700ustar00rootroot00000000000000<===> percentage/input.scss @use "sass:math"; a {b: math.percentage(0.5)} <===> percentage/output.css a { b: 50%; } <===> ================================================================================ <===> round/input.scss @use "sass:math"; a {b: math.round(0.5)} <===> round/output.css a { b: 1; } <===> ================================================================================ <===> ceil/input.scss @use "sass:math"; a {b: math.ceil(0.5)} <===> ceil/output.css a { b: 1; } <===> ================================================================================ <===> floor/input.scss @use "sass:math"; a {b: math.floor(0.5)} <===> floor/output.css a { b: 0; } <===> ================================================================================ <===> abs/input.scss @use "sass:math"; a {b: math.abs(-1)} <===> abs/output.css a { b: 1; } <===> ================================================================================ <===> min/input.scss @use "sass:math"; a {b: math.min(1, 2, 3)} <===> min/output.css a { b: 1; } <===> ================================================================================ <===> max/input.scss @use "sass:math"; a {b: math.max(1, 2, 3)} <===> max/output.css a { b: 3; } <===> ================================================================================ <===> random/input.scss @use "sass:math"; a {b: math.random(5) <= 5} <===> random/output.css a { b: true; } <===> ================================================================================ <===> unit/input.scss @use "sass:math"; a {b: math.unit(5px)} <===> unit/output.css a { b: "px"; } <===> ================================================================================ <===> is_unitless/input.scss @use "sass:math"; a {b: math.is-unitless(1)} <===> is_unitless/output.css a { b: true; } <===> ================================================================================ <===> compatible/input.scss @use "sass:math"; a {b: math.compatible(1px, 1in)} <===> compatible/output.css a { b: true; } <===> ================================================================================ <===> error/unitless/input.scss @use "sass:math"; a {b: math.unitless(1)} <===> error/unitless/error Error: Undefined function. , 2 | a {b: math.unitless(1)} | ^^^^^^^^^^^^^^^^ ' input.scss 2:7 root stylesheet <===> ================================================================================ <===> error/comparable/input.scss @use "sass:math"; a {b: math.comparable(1px, 1in)} <===> error/comparable/error Error: Undefined function. , 2 | a {b: math.comparable(1px, 1in)} | ^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 2:7 root stylesheet sass-spec-libsass-3.6.3/spec/core_functions/modules/meta.hrx000066400000000000000000000046401355712145100241650ustar00rootroot00000000000000<===> inspect/input.scss @use "sass:meta"; a {b: meta.inspect(())} <===> inspect/output.css a { b: (); } <===> ================================================================================ <===> feature_exists/input.scss @use "sass:meta"; a {b: meta.feature-exists(at-error)} <===> feature_exists/output.css a { b: true; } <===> ================================================================================ <===> variable_exists/input.scss @use "sass:meta"; a {b: meta.variable-exists(c)} <===> variable_exists/output.css a { b: false; } <===> ================================================================================ <===> global_variable_exists/input.scss @use "sass:meta"; a {b: meta.global-variable-exists(c)} <===> global_variable_exists/output.css a { b: false; } <===> ================================================================================ <===> function_exists/input.scss @use "sass:meta"; a {b: meta.function-exists(c)} <===> function_exists/output.css a { b: false; } <===> ================================================================================ <===> mixin_exists/input.scss @use "sass:meta"; a {b: meta.mixin-exists(c)} <===> mixin_exists/output.css a { b: false; } <===> ================================================================================ <===> get_function/input.scss @use "sass:meta"; a {b: meta.inspect(meta.get-function(rgb))} <===> get_function/output.css a { b: get-function("rgb"); } <===> ================================================================================ <===> type_of/input.scss @use "sass:meta"; a {b: meta.type-of(())} <===> type_of/output.css a { b: list; } <===> ================================================================================ <===> call/input.scss @use "sass:meta"; a {b: meta.call(meta.get-function("rgb"), 1, 2, 3)} <===> call/output.css a { b: #010203; } <===> ================================================================================ <===> content_exists/input.scss @use "sass:meta"; @mixin print-content-exists { a {b: meta.content-exists()} } @include print-content-exists; <===> content_exists/output.css a { b: false; } <===> ================================================================================ <===> keywords/input.scss @use "sass:meta"; @function keywords($args...) { @return meta.keywords($args); } a {b: meta.inspect(keywords($c: d))} <===> keywords/output.css a { b: (c: d); } sass-spec-libsass-3.6.3/spec/core_functions/modules/options.yml000066400000000000000000000000511355712145100247220ustar00rootroot00000000000000--- :todo: - libsass # sass/libsass#2807 sass-spec-libsass-3.6.3/spec/core_functions/modules/selector.hrx000066400000000000000000000074631355712145100250650ustar00rootroot00000000000000<===> nest/input.scss @use "sass:selector"; a {b: selector.nest(c, d)} <===> nest/output.css a { b: c d; } <===> ================================================================================ <===> append/input.scss @use "sass:selector"; a {b: selector.append(c, d)} <===> append/output.css a { b: cd; } <===> ================================================================================ <===> replace/input.scss @use "sass:selector"; a {b: selector.replace(c, c, d)} <===> replace/output.css a { b: d; } <===> ================================================================================ <===> extend/input.scss @use "sass:selector"; a {b: selector.extend(c, c, d)} <===> extend/output.css a { b: c, d; } <===> ================================================================================ <===> unify/input.scss @use "sass:selector"; a {b: selector.unify(".c", ".d")} <===> unify/output.css a { b: .c.d; } <===> ================================================================================ <===> is_superselector/input.scss @use "sass:selector"; a {b: selector.is-superselector(c, d)} <===> is_superselector/output.css a { b: false; } <===> ================================================================================ <===> simple_selectors/input.scss @use "sass:selector"; a {b: selector.simple-selectors(".c.d")} <===> simple_selectors/output.css a { b: .c, .d; } <===> ================================================================================ <===> parse/input.scss @use "sass:selector"; a {b: selector.parse(".c, .d")} <===> parse/output.css a { b: .c, .d; } <===> ================================================================================ <===> error/selector_nest/input.scss @use "sass:selector"; a {b: selector.selector-nest(c, d)} <===> error/selector_nest/error Error: Undefined function. , 2 | a {b: selector.selector-nest(c, d)} | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 2:7 root stylesheet <===> ================================================================================ <===> error/selector_append/input.scss @use "sass:selector"; a {b: selector.selector-append(c, d)} <===> error/selector_append/error Error: Undefined function. , 2 | a {b: selector.selector-append(c, d)} | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 2:7 root stylesheet <===> ================================================================================ <===> error/selector_replace/input.scss @use "sass:selector"; a {b: selector.selector-replace(c, c, d)} <===> error/selector_replace/error Error: Undefined function. , 2 | a {b: selector.selector-replace(c, c, d)} | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 2:7 root stylesheet <===> ================================================================================ <===> error/selector_extend/input.scss @use "sass:selector"; a {b: selector.selector-extend(c, c, d)} <===> error/selector_extend/error Error: Undefined function. , 2 | a {b: selector.selector-extend(c, c, d)} | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 2:7 root stylesheet <===> ================================================================================ <===> error/selector_unify/input.scss @use "sass:selector"; a {b: selector.selector-unify(".c", ".d")} <===> error/selector_unify/error Error: Undefined function. , 2 | a {b: selector.selector-unify(".c", ".d")} | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 2:7 root stylesheet <===> ================================================================================ <===> error/selector_parse/input.scss @use "sass:selector"; a {b: selector.selector-parse(".c.d")} <===> error/selector_parse/error Error: Undefined function. , 2 | a {b: selector.selector-parse(".c.d")} | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 2:7 root stylesheet sass-spec-libsass-3.6.3/spec/core_functions/modules/string.hrx000066400000000000000000000056331355712145100245500ustar00rootroot00000000000000<===> unquote/input.scss @use "sass:string"; a {b: string.unquote("c")} <===> unquote/output.css a { b: c; } <===> ================================================================================ <===> quote/input.scss @use "sass:string"; a {b: string.quote(c)} <===> quote/output.css a { b: "c"; } <===> ================================================================================ <===> length/input.scss @use "sass:string"; a {b: string.length("c")} <===> length/output.css a { b: 1; } <===> ================================================================================ <===> insert/input.scss @use "sass:string"; a {b: string.insert("c", "d", 1)} <===> insert/output.css a { b: "dc"; } <===> ================================================================================ <===> index/input.scss @use "sass:string"; a {b: string.index("c", "c")} <===> index/output.css a { b: 1; } <===> ================================================================================ <===> slice/input.scss @use "sass:string"; a {b: string.slice("c", 1, 1)} <===> slice/output.css a { b: "c"; } <===> ================================================================================ <===> to_upper_case/input.scss @use "sass:string"; a {b: string.to-upper-case("c")} <===> to_upper_case/output.css a { b: "C"; } <===> ================================================================================ <===> unique_id/input.scss @use "sass:meta"; @use "sass:string"; a {b: meta.type-of(string.unique-id())} <===> unique_id/output.css a { b: string; } <===> ================================================================================ <===> error/str_length/input.scss @use "sass:string"; a {b: string.str-length("c")} <===> error/str_length/error Error: Undefined function. , 2 | a {b: string.str-length("c")} | ^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 2:7 root stylesheet <===> ================================================================================ <===> error/str_insert/input.scss @use "sass:string"; a {b: string.str-insert("c", 1, "d")} <===> error/str_insert/error Error: Undefined function. , 2 | a {b: string.str-insert("c", 1, "d")} | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 2:7 root stylesheet <===> ================================================================================ <===> error/str_index/input.scss @use "sass:string"; a {b: string.str-index("c", "c")} <===> error/str_index/error Error: Undefined function. , 2 | a {b: string.str-index("c", "c")} | ^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 2:7 root stylesheet <===> ================================================================================ <===> error/str_slice/input.scss @use "sass:string"; a {b: string.str-slice("c", 1, 1)} <===> error/str_slice/error Error: Undefined function. , 2 | a {b: string.str-slice("c", 1, 1)} | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 2:7 root stylesheet sass-spec-libsass-3.6.3/spec/core_functions/selector/000077500000000000000000000000001355712145100226605ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/core_functions/selector/append.hrx000066400000000000000000000125471355712145100246630ustar00rootroot00000000000000<===> classes/single/input.scss a {b: selector-append(".c", ".d")} <===> classes/single/output.css a { b: .c.d; } <===> ================================================================================ <===> classes/double/input.scss a {b: selector-append(".c, .d", ".e, .f")} <===> classes/double/output.css a { b: .c.e, .c.f, .d.e, .d.f; } <===> classes/double/output-libsass.css a { b: .c.e, .d.e, .c.f, .d.f; } <===> ================================================================================ <===> suffix/single/input.scss a {b: selector-append(".c", "d")} <===> suffix/single/output.css a { b: .cd; } <===> ================================================================================ <===> suffix/multiple/input.scss a {b: selector-append(".c, .d", "e, f")} <===> suffix/multiple/output.css a { b: .ce, .cf, .de, .df; } <===> suffix/multiple/output-libsass.css a { b: .ce, .de, .cf, .df; } <===> ================================================================================ <===> suffix/descendant/input.scss a {b: selector-append("c d", "e f")} <===> suffix/descendant/output.css a { b: c de f; } <===> ================================================================================ <===> one_arg/input.scss a {b: selector-append(".c.d")} <===> one_arg/output.css a { b: .c.d; } <===> ================================================================================ <===> many_args/input.scss a {b: selector-append(".c", ".d", ".e")} <===> many_args/output.css a { b: .c.d.e; } <===> ================================================================================ <===> input/input.scss // The full set of possible input formats is tested with `selector-parse()`; // this spec just verifies one example for `selector-append()`. a {b: selector-append((c, d e), (f, g h))} <===> input/output.css a { b: cf, cg h, d ef, d eg h; } <===> input/output-libsass.css a { b: cf, d ef, cg h, d eg h; } <===> ================================================================================ <===> error/universal/options.yml --- :todo: - sass/libsass#2982 <===> error/universal/input.scss a {b: selector-append(".c", "*")} <===> error/universal/error Error: Can't append * to .c. , 1 | a {b: selector-append(".c", "*")} | ^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> ================================================================================ <===> error/leading_combinator/input.scss a {b: selector-append(".c", "> .d")} <===> error/leading_combinator/error Error: Can't append > .d to .c. , 1 | a {b: selector-append(".c", "> .d")} | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> error/leading_combinator/error-libsass Error: Can't append "> .d" to ".c" for `selector-append' on line 1:7 of input.scss, in function `selector-append` from line 1:7 of input.scss >> a {b: selector-append(".c", "> .d")} ------^ <===> ================================================================================ <===> error/namespace/options.yml --- :todo: - sass/libsass#2976 <===> error/namespace/input.scss a {b: selector-append("c", "|d")} <===> error/namespace/error Error: Can't append |d to c. , 1 | a {b: selector-append("c", "|d")} | ^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> ================================================================================ <===> error/parent/options.yml --- :todo: - sass/libsass#2983 <===> error/parent/input.scss a {b: selector-append(".c", "&")} <===> error/parent/error Error: Parent selectors aren't allowed here. , 1 | & | ^ ' - 1:1 root stylesheet , 1 | a {b: selector-append(".c", "&")} | ^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> ================================================================================ <===> error/invalid/input.scss a {b: selector-append("[c", "d")} <===> error/invalid/error Error: expected more input. , 1 | [c | ^ ' - 1:3 root stylesheet , 1 | a {b: selector-append("[c", "d")} | ^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> error/invalid/error-libsass Error: invalid operator in attribute selector for c on line 1:24 of input.scss, in function `selector-append` from line 1:7 of input.scss >> a {b: selector-append("[c", "d")} -----------------------^ <===> ================================================================================ <===> error/type/options.yml --- :todo: - sass/libsass#2964 <===> error/type/input.scss a {b: selector-append("c", 1)} <===> error/type/error Error: 1 is not a valid selector: it must be a string, a list of strings, or a list of lists of strings. , 1 | a {b: selector-append("c", 1)} | ^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> ================================================================================ <===> error/too_few_args/input.scss a {b: selector-append()} <===> error/too_few_args/error Error: $selectors: At least one selector must be passed. , 1 | a {b: selector-append()} | ^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> error/too_few_args/error-libsass Error: $selectors: At least one selector must be passed for `selector-append' on line 1:7 of input.scss, in function `selector-append` from line 1:7 of input.scss >> a {b: selector-append()} ------^ sass-spec-libsass-3.6.3/spec/core_functions/selector/is_superselector/000077500000000000000000000000001355712145100262525ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/core_functions/selector/is_superselector/complex.hrx000066400000000000000000000267531355712145100304610ustar00rootroot00000000000000<===> descendant/single/in_sub/input.scss a {b: is-superselector("c", "d c")} <===> descendant/single/in_sub/output.css a { b: true; } <===> ================================================================================ <===> descendant/single/in_super/input.scss a {b: is-superselector("c d", "d")} <===> descendant/single/in_super/output.css a { b: false; } <===> ================================================================================ <===> descendant/single/in_both/equal/input.scss a {b: is-superselector("c d", "c d")} <===> descendant/single/in_both/equal/output.css a { b: true; } <===> ================================================================================ <===> descendant/single/in_both/subset/input.scss a {b: is-superselector("c d", "c.e d.f")} <===> descendant/single/in_both/subset/output.css a { b: true; } <===> ================================================================================ <===> descendant/single/in_both/superset/input.scss a {b: is-superselector("c.e d.f", "c d")} <===> descendant/single/in_both/superset/output.css a { b: false; } <===> ================================================================================ <===> descendant/multiple/in_sub/input.scss a {b: is-superselector("c", "d e c")} <===> descendant/multiple/in_sub/output.css a { b: true; } <===> ================================================================================ <===> descendant/multiple/match_first/input.scss a {b: is-superselector("d c", "d e c")} <===> descendant/multiple/match_first/output.css a { b: true; } <===> ================================================================================ <===> descendant/multiple/match_second/input.scss a {b: is-superselector("e c", "d e c")} <===> descendant/multiple/match_second/output.css a { b: true; } <===> ================================================================================ <===> descendant/multiple/match_neither/input.scss a {b: is-superselector("f c", "d e c")} <===> descendant/multiple/match_neither/output.css a { b: false; } <===> ================================================================================ <===> descendant/and_child/super/input.scss a {b: is-superselector("d c", "d > c")} <===> descendant/and_child/super/output.css a { b: true; } <===> ================================================================================ <===> descendant/and_child/sub/input.scss a {b: is-superselector("d > c", "d c")} <===> descendant/and_child/sub/output.css a { b: false; } <===> ================================================================================ <===> descendant/and_child/multiple/first/input.scss a {b: is-superselector("d c", "d > e > c")} <===> descendant/and_child/multiple/first/output.css a { b: true; } <===> ================================================================================ <===> descendant/and_child/multiple/second/input.scss a {b: is-superselector("e c", "d > e > c")} <===> descendant/and_child/multiple/second/output.css a { b: true; } <===> ================================================================================ <===> descendant/and_child/multiple/neither/input.scss a {b: is-superselector("f c", "d > e > c")} <===> descendant/and_child/multiple/neither/output.css a { b: false; } <===> ================================================================================ <===> sibling/single/in_sub/input.scss a {b: is-superselector("c", "d ~ c")} <===> sibling/single/in_sub/output.css a { b: true; } <===> ================================================================================ <===> sibling/single/in_super/input.scss a {b: is-superselector("c ~ d", "d")} <===> sibling/single/in_super/output.css a { b: false; } <===> ================================================================================ <===> sibling/single/in_both/equal/input.scss a {b: is-superselector("c ~ d", "c ~ d")} <===> sibling/single/in_both/equal/output.css a { b: true; } <===> ================================================================================ <===> sibling/single/in_both/subset/input.scss a {b: is-superselector("c ~ d", "c.e ~ d.f")} <===> sibling/single/in_both/subset/output.css a { b: true; } <===> ================================================================================ <===> sibling/single/in_both/superset/input.scss a {b: is-superselector("c.e ~ d.f", "c ~ d")} <===> sibling/single/in_both/superset/output.css a { b: false; } <===> ================================================================================ <===> sibling/multiple/in_sub/input.scss a {b: is-superselector("c", "d ~ e ~ c")} <===> sibling/multiple/in_sub/output.css a { b: true; } <===> ================================================================================ <===> sibling/multiple/first/options.yml --- :todo: - sass/dart-sass#791 - sass/libsass#2966 <===> sibling/multiple/first/input.scss a {b: is-superselector("d ~ c", "d ~ e ~ c")} <===> sibling/multiple/first/output.css a { b: true; } <===> ================================================================================ <===> sibling/multiple/second/options.yml --- :todo: - sass/dart-sass#791 - sass/libsass#2966 <===> sibling/multiple/second/input.scss a {b: is-superselector("e ~ c", "d ~ e ~ c")} <===> sibling/multiple/second/output.css a { b: true; } <===> ================================================================================ <===> sibling/multiple/neither/input.scss a {b: is-superselector("f ~ c", "d ~ e ~ c")} <===> sibling/multiple/neither/output.css a { b: false; } <===> ================================================================================ <===> sibling/and_adjacent_sibling/super/input.scss a {b: is-superselector("d ~ c", "d + c")} <===> sibling/and_adjacent_sibling/super/output.css a { b: true; } <===> ================================================================================ <===> sibling/and_adjacent_sibling/sub/input.scss a {b: is-superselector("d + c", "d ~ c")} <===> sibling/and_adjacent_sibling/sub/output.css a { b: false; } <===> ================================================================================ <===> sibling/and_adjacent_sibling/multiple/first/options.yml --- :todo: - sass/dart-sass#791 - sass/libsass#2966 <===> sibling/and_adjacent_sibling/multiple/first/input.scss a {b: is-superselector("d ~ c", "d + e + c")} <===> sibling/and_adjacent_sibling/multiple/first/output.css a { b: true; } <===> ================================================================================ <===> sibling/and_adjacent_sibling/multiple/second/options.yml --- :todo: - sass/dart-sass#791 - sass/libsass#2966 <===> sibling/and_adjacent_sibling/multiple/second/input.scss a {b: is-superselector("e ~ c", "d + e + c")} <===> sibling/and_adjacent_sibling/multiple/second/output.css a { b: true; } <===> ================================================================================ <===> sibling/and_adjacent_sibling/multiple/neither/input.scss a {b: is-superselector("f ~ c", "d + e + c")} <===> sibling/and_adjacent_sibling/multiple/neither/output.css a { b: false; } <===> ================================================================================ <===> adjacent_sibling/single/in_sub/input.scss a {b: is-superselector("c", "d + c")} <===> adjacent_sibling/single/in_sub/output.css a { b: true; } <===> ================================================================================ <===> adjacent_sibling/single/in_super/input.scss a {b: is-superselector("c + d", "d")} <===> adjacent_sibling/single/in_super/output.css a { b: false; } <===> ================================================================================ <===> adjacent_sibling/single/in_both/equal/input.scss a {b: is-superselector("c + d", "c + d")} <===> adjacent_sibling/single/in_both/equal/output.css a { b: true; } <===> ================================================================================ <===> adjacent_sibling/single/in_both/subset/input.scss a {b: is-superselector("c + d", "c.e + d.f")} <===> adjacent_sibling/single/in_both/subset/output.css a { b: true; } <===> ================================================================================ <===> adjacent_sibling/single/in_both/superset/input.scss a {b: is-superselector("c.e + d.f", "c + d")} <===> adjacent_sibling/single/in_both/superset/output.css a { b: false; } <===> ================================================================================ <===> adjacent_sibling/multiple/in_sub/input.scss a {b: is-superselector("c", "d + e + c")} <===> adjacent_sibling/multiple/in_sub/output.css a { b: true; } <===> ================================================================================ <===> adjacent_sibling/multiple/first/input.scss a {b: is-superselector("d + c", "d + e + c")} <===> adjacent_sibling/multiple/first/output.css a { b: false; } <===> ================================================================================ <===> adjacent_sibling/multiple/second/options.yml --- :todo: - sass/dart-sass#791 - sass/libsass#2966 <===> adjacent_sibling/multiple/second/input.scss a {b: is-superselector("e + c", "d + e + c")} <===> adjacent_sibling/multiple/second/output.css a { b: true; } <===> ================================================================================ <===> adjacent_sibling/multiple/neither/input.scss a {b: is-superselector("f + c", "d + e + c")} <===> adjacent_sibling/multiple/neither/output.css a { b: false; } <===> ================================================================================ <===> child/single/in_sub/input.scss a {b: is-superselector("c", "d > c")} <===> child/single/in_sub/output.css a { b: true; } <===> ================================================================================ <===> child/single/in_super/input.scss a {b: is-superselector("c > d", "d")} <===> child/single/in_super/output.css a { b: false; } <===> ================================================================================ <===> child/single/in_both/equal/input.scss a {b: is-superselector("c > d", "c > d")} <===> child/single/in_both/equal/output.css a { b: true; } <===> ================================================================================ <===> child/single/in_both/subset/input.scss a {b: is-superselector("c > d", "c.e > d.f")} <===> child/single/in_both/subset/output.css a { b: true; } <===> ================================================================================ <===> child/single/in_both/superset/input.scss a {b: is-superselector("c.e > d.f", "c > d")} <===> child/single/in_both/superset/output.css a { b: false; } <===> ================================================================================ <===> child/multiple/in_sub/input.scss a {b: is-superselector("c", "d > e > c")} <===> child/multiple/in_sub/output.css a { b: true; } <===> ================================================================================ <===> child/multiple/first/input.scss a {b: is-superselector("d > c", "d > e > c")} <===> child/multiple/first/output.css a { b: false; } <===> ================================================================================ <===> child/multiple/second/options.yml --- :todo: - sass/dart-sass#791 - sass/libsass#2966 <===> child/multiple/second/input.scss a {b: is-superselector("e > c", "d > e > c")} <===> child/multiple/second/output.css a { b: true; } <===> ================================================================================ <===> child/multiple/neither/input.scss a {b: is-superselector("f > c", "d > e > c")} <===> child/multiple/neither/output.css a { b: false; } sass-spec-libsass-3.6.3/spec/core_functions/selector/is_superselector/compound.hrx000066400000000000000000000060471355712145100306300ustar00rootroot00000000000000<===> README.md Given two compound selectors Q and R without pseudo-elements such that Q's simple selectors are a subset of R's, Q is always a superselector of R. This is because additional simple selectors can only ever eliminate possible matches, not add new ones. The only exception is pseudo-ELEMENTS, which change the target of the selector. A Q and R's pseudo-elements must match in order for either to be a superselector of the other. <===> ================================================================================ <===> same_order/input.scss a {b: is-superselector("c", "c.d")} <===> same_order/output.css a { b: true; } <===> ================================================================================ <===> different_order/input.scss a {b: is-superselector("c.e", "c:d.e")} <===> different_order/output.css a { b: true; } <===> ================================================================================ <===> superset/input.scss a {b: is-superselector("c.d", "c")} <===> superset/output.css a { b: false; } <===> ================================================================================ <===> pseudo_element/present/input.scss a {b: is-superselector("::d", "c::d")} <===> pseudo_element/present/output.css a { b: true; } <===> ================================================================================ <===> pseudo_element/absent/input.scss a {b: is-superselector("c", "c::d")} <===> pseudo_element/absent/output.css a { b: false; } <===> ================================================================================ <===> pseudo_element/same_order/input.scss a {b: is-superselector("::d:e", "::d:e")} <===> pseudo_element/same_order/output.css a { b: true; } <===> ================================================================================ <===> pseudo_element/different_order/options.yml --- :todo: - sass/dart-sass#790 - sass/libsass#2963 <===> pseudo_element/different_order/input.scss a {b: is-superselector(":e::d", "::d:e")} <===> pseudo_element/different_order/output.css a { b: false; } <===> ================================================================================ <===> pseudo_element/class_syntax/before/input.scss a {b: is-superselector("c", "c:before")} <===> pseudo_element/class_syntax/before/output.css a { b: false; } <===> ================================================================================ <===> pseudo_element/class_syntax/after/input.scss a {b: is-superselector("c", "c:after")} <===> pseudo_element/class_syntax/after/output.css a { b: false; } <===> ================================================================================ <===> pseudo_element/class_syntax/first_line/input.scss a {b: is-superselector("c", "c:first-line")} <===> pseudo_element/class_syntax/first_line/output.css a { b: false; } <===> ================================================================================ <===> pseudo_element/class_syntax/first_letter/input.scss a {b: is-superselector("c", "c:first-letter")} <===> pseudo_element/class_syntax/first_letter/output.css a { b: false; } sass-spec-libsass-3.6.3/spec/core_functions/selector/is_superselector/error.hrx000066400000000000000000000104761355712145100301360ustar00rootroot00000000000000<===> super/parent/input.scss a {b: is-superselector("&", "c")} <===> super/parent/error Error: $super: Parent selectors aren't allowed here. , 1 | & | ^ ' - 1:1 root stylesheet , 1 | a {b: is-superselector("&", "c")} | ^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> super/parent/error-libsass Error: Parent selectors aren't allowed here. on line 1:24 of input.scss, in function `is-superselector` from line 1:7 of input.scss >> a {b: is-superselector("&", "c")} -----------------------^ <===> ================================================================================ <===> super/invalid/input.scss a {b: is-superselector("[c", "d")} <===> super/invalid/error Error: $super: expected more input. , 1 | [c | ^ ' - 1:3 root stylesheet , 1 | a {b: is-superselector("[c", "d")} | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> super/invalid/error-libsass Error: invalid operator in attribute selector for c on line 1:25 of input.scss, in function `is-superselector` from line 1:7 of input.scss >> a {b: is-superselector("[c", "d")} ------------------------^ <===> ================================================================================ <===> super/type/options.yml --- :todo: - sass/libsass#2964 <===> super/type/input.scss a {b: is-superselector(1, "c")} <===> super/type/error Error: $super: 1 is not a valid selector: it must be a string, a list of strings, or a list of lists of strings. , 1 | a {b: is-superselector(1, "c")} | ^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> ================================================================================ <===> sub/parent/input.scss a {b: is-superselector("c", "&")} <===> sub/parent/error Error: $sub: Parent selectors aren't allowed here. , 1 | & | ^ ' - 1:1 root stylesheet , 1 | a {b: is-superselector("c", "&")} | ^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> sub/parent/error-libsass Error: Parent selectors aren't allowed here. on line 1:29 of input.scss, in function `is-superselector` from line 1:7 of input.scss >> a {b: is-superselector("c", "&")} ----------------------------^ <===> ================================================================================ <===> sub/invalid/input.scss a {b: is-superselector("c", "[d")} <===> sub/invalid/error Error: $sub: expected more input. , 1 | [d | ^ ' - 1:3 root stylesheet , 1 | a {b: is-superselector("c", "[d")} | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> sub/invalid/error-libsass Error: invalid operator in attribute selector for d on line 1:30 of input.scss, in function `is-superselector` from line 1:7 of input.scss >> a {b: is-superselector("c", "[d")} -----------------------------^ <===> ================================================================================ <===> sub/type/options.yml --- :todo: - sass/libsass#2964 <===> sub/type/input.scss a {b: is-superselector("c", 1)} <===> sub/type/error Error: $sub: 1 is not a valid selector: it must be a string, a list of strings, or a list of lists of strings. , 1 | a {b: is-superselector("c", 1)} | ^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> ================================================================================ <===> too_many_args/input.scss a {b: is-superselector("c", "d", "e")} <===> too_many_args/error Error: Only 2 arguments allowed, but 3 were passed. , 1 | a {b: is-superselector("c", "d", "e")} | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> too_many_args/error-libsass Error: wrong number of arguments (3 for 2) for `is-superselector' on line 1:7 of input.scss >> a {b: is-superselector("c", "d", "e")} ------^ <===> ================================================================================ <===> too_few_args/input.scss a {b: is-superselector("c")} <===> too_few_args/error Error: Missing argument $sub. , 1 | a {b: is-superselector("c")} | ^^^^^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> too_few_args/error-libsass Error: Function is-superselector is missing argument $sub. on line 1 of input.scss >> a {b: is-superselector("c")} ------^ sass-spec-libsass-3.6.3/spec/core_functions/selector/is_superselector/input.hrx000066400000000000000000000003561355712145100301400ustar00rootroot00000000000000<===> input.scss // The full set of possible input formats is tested with `selector-parse()`; // this spec just verifies one example for `is-superselector()`. a {b: is-superselector((c, d e), (c, d e))} <===> output.css a { b: true; } sass-spec-libsass-3.6.3/spec/core_functions/selector/is_superselector/list.hrx000066400000000000000000000040721355712145100277530ustar00rootroot00000000000000<===> two/in_sub/input.scss a {b: is-superselector("c", "c, d")} <===> two/in_sub/output.css a { b: false; } <===> ================================================================================ <===> two/in_super/input.scss a {b: is-superselector("c, d", "c")} <===> two/in_super/output.css a { b: true; } <===> ================================================================================ <===> two/in_both/equal/input.scss a {b: is-superselector("c, d", "c, d")} <===> two/in_both/equal/output.css a { b: true; } <===> ================================================================================ <===> two/in_both/subset/input.scss a {b: is-superselector("c, d", "c.e, d.f")} <===> two/in_both/subset/output.css a { b: true; } <===> ================================================================================ <===> two/in_both/superset/input.scss a {b: is-superselector("c.e, d.f", "c, d")} <===> two/in_both/superset/output.css a { b: false; } <===> ================================================================================ <===> two/both_satisfied_by_one_superselector/input.scss a {b: is-superselector(".c", "d.c, e.c")} <===> two/both_satisfied_by_one_superselector/output.css a { b: true; } <===> ================================================================================ <===> three/match_one/input.scss a {b: is-superselector("c, d, e", "d")} <===> three/match_one/output.css a { b: true; } <===> ================================================================================ <===> three/match_two/input.scss a {b: is-superselector("c, d, e", "e, c")} <===> three/match_two/output.css a { b: true; } <===> ================================================================================ <===> three/match_three/input.scss a {b: is-superselector("c, d, e", "d, c, e")} <===> three/match_three/output.css a { b: true; } <===> ================================================================================ <===> three/miss_one/input.scss a {b: is-superselector("c, d, e", "c, f")} <===> three/miss_one/output.css a { b: false; } sass-spec-libsass-3.6.3/spec/core_functions/selector/is_superselector/named.hrx000066400000000000000000000001461355712145100300620ustar00rootroot00000000000000<===> input.scss a {b: is-superselector($super: "c", $sub: "c.d")} <===> output.css a { b: true; } sass-spec-libsass-3.6.3/spec/core_functions/selector/is_superselector/simple/000077500000000000000000000000001355712145100275435ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/core_functions/selector/is_superselector/simple/README.md000066400000000000000000000001021355712145100310130ustar00rootroot00000000000000"Simple" as in "simple selectors", not as in "simple test cases". sass-spec-libsass-3.6.3/spec/core_functions/selector/is_superselector/simple/attribute.hrx000066400000000000000000000013501355712145100322700ustar00rootroot00000000000000<===> equal/input.scss a {b: is-superselector("[c=d]", "[c=d]")} <===> equal/output.css a { b: true; } <===> ================================================================================ <===> unequal/name/input.scss a {b: is-superselector("[c=d]", "[e=d]")} <===> unequal/name/output.css a { b: false; } <===> ================================================================================ <===> unequal/value/input.scss a {b: is-superselector("[c=d]", "[c=e]")} <===> unequal/value/output.css a { b: false; } <===> ================================================================================ <===> unequal/operator/input.scss a {b: is-superselector("[c=d]", "[c^=d]")} <===> unequal/operator/output.css a { b: false; } sass-spec-libsass-3.6.3/spec/core_functions/selector/is_superselector/simple/class.hrx000066400000000000000000000004451355712145100313760ustar00rootroot00000000000000<===> equal/input.scss a {b: is-superselector(".c", ".c")} <===> equal/output.css a { b: true; } <===> ================================================================================ <===> unequal/input.scss a {b: is-superselector(".c", ".d")} <===> unequal/output.css a { b: false; } sass-spec-libsass-3.6.3/spec/core_functions/selector/is_superselector/simple/id.hrx000066400000000000000000000004451355712145100306650ustar00rootroot00000000000000<===> equal/input.scss a {b: is-superselector("#c", "#c")} <===> equal/output.css a { b: true; } <===> ================================================================================ <===> unequal/input.scss a {b: is-superselector("#c", "#d")} <===> unequal/output.css a { b: false; } sass-spec-libsass-3.6.3/spec/core_functions/selector/is_superselector/simple/placeholder.hrx000066400000000000000000000004451355712145100325530ustar00rootroot00000000000000<===> equal/input.scss a {b: is-superselector("%c", "%c")} <===> equal/output.css a { b: true; } <===> ================================================================================ <===> unequal/input.scss a {b: is-superselector("%c", "%d")} <===> unequal/output.css a { b: false; } sass-spec-libsass-3.6.3/spec/core_functions/selector/is_superselector/simple/pseudo/000077500000000000000000000000001355712145100310425ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/core_functions/selector/is_superselector/simple/pseudo/arg.hrx000066400000000000000000000033171355712145100323420ustar00rootroot00000000000000<===> class/equal/input.scss a {b: is-superselector(":c(@#$)", ":c(@#$)")} <===> class/equal/output.css a { b: true; } <===> ================================================================================ <===> class/unequal/name/input.scss a {b: is-superselector(":c(@#$)", ":d(@#$)")} <===> class/unequal/name/output.css a { b: false; } <===> ================================================================================ <===> class/unequal/argument/input.scss a {b: is-superselector(":c(@#$)", ":c(*&^)")} <===> class/unequal/argument/output.css a { b: false; } <===> ================================================================================ <===> class/unequal/has_argument/input.scss a {b: is-superselector(":c(@#$)", ":c")} <===> class/unequal/has_argument/output.css a { b: false; } <===> ================================================================================ <===> element/equal/input.scss a {b: is-superselector("::c(@#$)", "::c(@#$)")} <===> element/equal/output.css a { b: true; } <===> ================================================================================ <===> element/unequal/name/input.scss a {b: is-superselector("::c(@#$)", ":d(@#$)")} <===> element/unequal/name/output.css a { b: false; } <===> ================================================================================ <===> element/unequal/argument/input.scss a {b: is-superselector("::c(@#$)", "::c(*&^)")} <===> element/unequal/argument/output.css a { b: false; } <===> ================================================================================ <===> element/unequal/has_argument/input.scss a {b: is-superselector("::c(@#$)", "::c")} <===> element/unequal/has_argument/output.css a { b: false; } sass-spec-libsass-3.6.3/spec/core_functions/selector/is_superselector/simple/pseudo/no_arg.hrx000066400000000000000000000022121355712145100330270ustar00rootroot00000000000000<===> class/equal/input.scss a {b: is-superselector(":c", ":c")} <===> class/equal/output.css a { b: true; } <===> ================================================================================ <===> class/unequal/input.scss a {b: is-superselector(":c", ":d")} <===> class/unequal/output.css a { b: false; } <===> ================================================================================ <===> class/and_element/input.scss a {b: is-superselector(":c", "::c")} <===> class/and_element/output.css a { b: false; } <===> ================================================================================ <===> element/equal/input.scss a {b: is-superselector("::c", "::c")} <===> element/equal/output.css a { b: true; } <===> ================================================================================ <===> element/unequal/input.scss a {b: is-superselector("::c", "::d")} <===> element/unequal/output.css a { b: false; } <===> ================================================================================ <===> element/and_class/input.scss a {b: is-superselector("::c", ":c")} <===> element/and_class/output.css a { b: false; } sass-spec-libsass-3.6.3/spec/core_functions/selector/is_superselector/simple/pseudo/selector_arg/000077500000000000000000000000001355712145100335135ustar00rootroot00000000000000any.hrx000066400000000000000000000023431355712145100347500ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/core_functions/selector/is_superselector/simple/pseudo/selector_arg<===> README.md `:any()` is a deprecated alias for `:matches()` that Sass still supports for legacy reasons. It should support the full range of behavior of `:matches()`, but only a small range is tested here. <===> ================================================================================ <===> superset/options.yml --- :todo: - sass/libsass#2972 <===> superset/input.scss a {b: is-superselector(":any(c d, e f, g h)", "c d.i, e j f")} <===> superset/output.css a { b: true; } <===> ================================================================================ <===> subset/input.scss a {b: is-superselector(":any(c d.i, e j f)", "c d, e f, g h")} <===> subset/output.css a { b: false; } <===> ================================================================================ <===> prefix/superset/options.yml --- :todo: - sass/libsass#2972 <===> prefix/superset/input.scss a {b: is-superselector(":-pfx-any(c d, e f, g h)", "c d.i, e j f")} <===> prefix/superset/output.css a { b: true; } <===> ================================================================================ <===> prefix/subset/input.scss a {b: is-superselector(":-pfx-any(c d.i, e j f)", "c d, e f, g h")} <===> prefix/subset/output.css a { b: false; } current.hrx000066400000000000000000000032141355712145100356410ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/core_functions/selector/is_superselector/simple/pseudo/selector_arg<===> superset/input.scss a {b: is-superselector(":current(c d, e f, g h)", ":current(c d.i, e j f)")} <===> superset/output.css a { b: false; } <===> ================================================================================ <===> subset/input.scss a {b: is-superselector(":current(c d.i, e j f)", ":current(c d, e f, g h)")} <===> subset/output.css a { b: false; } <===> ================================================================================ <===> equal/input.scss a {b: is-superselector(":current(c d, e f)", ":current(c d, e f)")} <===> equal/output.css a { b: true; } <===> ================================================================================ <===> bare_sub/input.scss a {b: is-superselector(":current(c d, e f)", "c d, e f")} <===> bare_sub/output.css a { b: false; } <===> ================================================================================ <===> prefix/superset/input.scss a { b: is-superselector( ":-pfx-current(c d, e f, g h)", ":-pfx-current(c d.i, e j f)"); } <===> prefix/superset/output.css a { b: false; } <===> ================================================================================ <===> prefix/subset/input.scss a { b: is-superselector( ":-pfx-current(c d.i, e j f)", ":-pfx-current(c d, e f, g h)"); } <===> prefix/subset/output.css a { b: false; } <===> ================================================================================ <===> prefix/equal/options.yml --- :todo: - sass/libsass#2973 <===> prefix/equal/input.scss a {b: is-superselector(":-pfx-current(c d, e f)", ":-pfx-current(c d, e f)")} <===> prefix/equal/output.css a { b: true; } has.hrx000066400000000000000000000020751355712145100347360ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/core_functions/selector/is_superselector/simple/pseudo/selector_arg<===> superset/input.scss a {b: is-superselector(":has(c d, e f, g h)", ":has(c d.i, e j f)")} <===> superset/output.css a { b: true; } <===> ================================================================================ <===> subset/input.scss a {b: is-superselector(":has(c d.i, e j f)", ":has(c d, e f, g h)")} <===> subset/output.css a { b: false; } <===> ================================================================================ <===> bare_sub/input.scss a {b: is-superselector(":has(c d, e f, g h)", "c d, e f, g h")} <===> bare_sub/output.css a { b: false; } <===> ================================================================================ <===> prefix/superset/input.scss a {b: is-superselector(":-pfx-has(c d, e f, g h)", ":-pfx-has(c d.i, e j f)")} <===> prefix/superset/output.css a { b: true; } <===> ================================================================================ <===> prefix/subset/input.scss a {b: is-superselector(":-pfx-has(c d.i, e j f)", ":-pfx-has(c d, e f, g h)")} <===> prefix/subset/output.css a { b: false; } host.hrx000066400000000000000000000021061355712145100351330ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/core_functions/selector/is_superselector/simple/pseudo/selector_arg<===> superset/input.scss a {b: is-superselector(":host(c d, e f, g h)", ":host(c d.i, e j f)")} <===> superset/output.css a { b: true; } <===> ================================================================================ <===> subset/input.scss a {b: is-superselector(":host(c d.i, e j f)", ":host(c d, e f, g h)")} <===> subset/output.css a { b: false; } <===> ================================================================================ <===> bare_sub/input.scss a {b: is-superselector(":host(c d, e f, g h)", "c d, e f, g h")} <===> bare_sub/output.css a { b: false; } <===> ================================================================================ <===> prefix/superset/input.scss a {b: is-superselector(":-pfx-host(c d, e f, g h)", ":-pfx-host(c d.i, e j f)")} <===> prefix/superset/output.css a { b: true; } <===> ================================================================================ <===> prefix/subset/input.scss a {b: is-superselector(":-pfx-host(c d.i, e j f)", ":-pfx-host(c d, e f, g h)")} <===> prefix/subset/output.css a { b: false; } host_context.hrx000066400000000000000000000022161355712145100367010ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/core_functions/selector/is_superselector/simple/pseudo/selector_arg<===> superset/input.scss a {b: is-superselector(":host-context(c d, e f, g h)", ":host-context(c d.i, e j f)")} <===> superset/output.css a { b: true; } <===> ================================================================================ <===> subset/input.scss a {b: is-superselector(":host-context(c d.i, e j f)", ":host-context(c d, e f, g h)")} <===> subset/output.css a { b: false; } <===> ================================================================================ <===> bare_sub/input.scss a {b: is-superselector(":host-context(c d, e f, g h)", "c d, e f, g h")} <===> bare_sub/output.css a { b: false; } <===> ================================================================================ <===> prefix/superset/input.scss a {b: is-superselector(":-pfx-host-context(c d, e f, g h)", ":-pfx-host-context(c d.i, e j f)")} <===> prefix/superset/output.css a { b: true; } <===> ================================================================================ <===> prefix/subset/input.scss a {b: is-superselector(":-pfx-host-context(c d.i, e j f)", ":-pfx-host-context(c d, e f, g h)")} <===> prefix/subset/output.css a { b: false; } matches.hrx000066400000000000000000000110341355712145100356020ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/core_functions/selector/is_superselector/simple/pseudo/selector_arg<===> README.md Because `:matches()` is extremely flexible, there are more cases where it is technically a superselector or subselector than those represented here. However, universally supporting these would require the equivalent of fully resolving the `:matches()` declaration in the same manner as `@extend` which would add way too much implementation complexity for such a marginal edge case. In particular, we don't require that superselectors be detected when the subselector contains `:matches()` and the superselector does not (even though `c` is semantically a superselector of `:matches(c)`). <===> ================================================================================ <===> simple/equal/input.scss a {b: is-superselector(":matches(c)", "c")} <===> simple/equal/output.css a { b: true; } <===> ================================================================================ <===> simple/unequal/input.scss a {b: is-superselector(":matches(c)", "d")} <===> simple/unequal/output.css a { b: false; } <===> ================================================================================ <===> compound/superset/input.scss a {b: is-superselector(":matches(c.e)", "c.d.e")} <===> compound/superset/output.css a { b: true; } <===> ================================================================================ <===> compound/subset/input.scss a {b: is-superselector(":matches(c.d.e)", "c e")} <===> compound/subset/output.css a { b: false; } <===> ================================================================================ <===> complex/superset/options.yml --- :todo: - sass/libsass#2972 <===> complex/superset/input.scss a {b: is-superselector(":matches(c e)", "c d e")} <===> complex/superset/output.css a { b: true; } <===> ================================================================================ <===> complex/subset/input.scss a {b: is-superselector(":matches(c d e)", "c e")} <===> complex/subset/output.css a { b: false; } <===> ================================================================================ <===> list/superset/options.yml --- :todo: - sass/libsass#2972 <===> list/superset/input.scss a {b: is-superselector(":matches(c d, e f, g h)", "c d, e f")} <===> list/superset/output.css a { b: true; } <===> ================================================================================ <===> list/subset/input.scss a {b: is-superselector(":matches(c d, e f)", "c d, e f, g h")} <===> list/subset/output.css a { b: false; } <===> ================================================================================ <===> both/README.md We do *allow* `:matches()` in the subselector, we just require there to be a corresponding `:matches()` in the superselector. Then we do a superselector check on those two selectors in isolation. <===> ================================================================================ <===> both/superset/input.scss a {b: is-superselector(":matches(c d, e f, g h)", ":matches(c d.i, e j f)")} <===> both/superset/output.css a { b: true; } <===> ================================================================================ <===> both/subset/input.scss a {b: is-superselector(":matches(c d.i, e j f)", ":matches(c d, e f, g h)")} <===> both/subset/output.css a { b: false; } <===> ================================================================================ <===> prefix/superset/options.yml --- :todo: - sass/libsass#2972 <===> prefix/superset/input.scss a {b: is-superselector(":-pfx-matches(c d, e f, g h)", "c d.i, e j f")} <===> prefix/superset/output.css a { b: true; } <===> ================================================================================ <===> prefix/subset/input.scss a {b: is-superselector(":-pfx-matches(c d.i, e j f)", "c d, e f, g h")} <===> prefix/subset/output.css a { b: false; } <===> ================================================================================ <===> not_superselector_of/README.md `:matches()` isn't considered a superselector of other selectors with the same semantics, because in practice they match different browsers. <===> ================================================================================ <===> not_superselector_of/any/input.scss a {b: is-superselector(":matches(c, d)", ":any(c, d)")} <===> not_superselector_of/any/output.css a { b: false; } <===> ================================================================================ <===> not_superselector_of/prefixed/input.scss a {b: is-superselector(":matches(c, d)", ":-pfx-matches(c, d)")} <===> not_superselector_of/prefixed/output.css a { b: false; } not.hrx000066400000000000000000000054561355712145100347710ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/core_functions/selector/is_superselector/simple/pseudo/selector_arg<===> superset/input.scss a {b: is-superselector(":not(c d, e f, g h)", ":not(c d.i, e j f)")} <===> superset/output.css a { b: false; } <===> ================================================================================ <===> subset/input.scss a {b: is-superselector(":not(c d.i, e j f)", ":not(c d, e f, g h)")} <===> subset/output.css a { b: true; } <===> ================================================================================ <===> bare_sub/input.scss a {b: is-superselector(":not(c d, e f, g h)", "c d, e f, g h")} <===> bare_sub/output.css a { b: false; } <===> ================================================================================ <===> type/input.scss a {b: is-superselector(":not(c.d)", "e")} <===> type/output.css a { b: true; } <===> ================================================================================ <===> id/input.scss a {b: is-superselector(":not(#c.d)", "#e")} <===> id/output.css a { b: true; } <===> ================================================================================ <===> equivalence/README.md Because the set of elements a `:not()` matches gets smaller the larger the set of elements matched by its selector gets, `:not(X, Y)` is equivalent to `:not(X):not(Y)`. <===> ================================================================================ <===> equivalence/split_super/superset/input.scss a {b: is-superselector(":not(c d):not(e f):not(g h)", ":not(c d.i, e j f)")} <===> equivalence/split_super/superset/output.css a { b: false; } <===> ================================================================================ <===> equivalence/split_super/subset/input.scss a {b: is-superselector(":not(c d.i):not(e j f)", ":not(c d, e f, g h)")} <===> equivalence/split_super/subset/output.css a { b: true; } <===> ================================================================================ <===> equivalence/split_sub/superset/input.scss a {b: is-superselector(":not(c d, e f, g h)", ":not(c d.i):not(e j f)")} <===> equivalence/split_sub/superset/output.css a { b: false; } <===> ================================================================================ <===> equivalence/split_sub/subset/input.scss a {b: is-superselector(":not(c d.i, e j f)", ":not(c d):not(e f):not(g h)")} <===> equivalence/split_sub/subset/output.css a { b: true; } <===> ================================================================================ <===> prefix/superset/input.scss a {b: is-superselector(":-pfx-not(c d, e f, g h)", ":-pfx-not(c d.i, e j f)")} <===> prefix/superset/output.css a { b: false; } <===> ================================================================================ <===> prefix/subset/input.scss a {b: is-superselector(":-pfx-not(c d.i, e j f)", ":-pfx-not(c d, e f, g h)")} <===> prefix/subset/output.css a { b: true; } nth_child.hrx000066400000000000000000000032761355712145100361230ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/core_functions/selector/is_superselector/simple/pseudo/selector_arg<===> superset/input.scss a { b: is-superselector( ":nth-child(n+1 of c d, e f, g h)", ":nth-child(n+1 of c d.i, e j f)"); } <===> superset/output.css a { b: true; } <===> ================================================================================ <===> subset/input.scss a { b: is-superselector( ":nth-child(n+1 of c d.i, e j f)", ":nth-child(n+1 of c d, e f, g h)"); } <===> subset/output.css a { b: false; } <===> ================================================================================ <===> different_arg/input.scss a {b: is-superselector(":nth-child(n+1 of c)", ":nth-child(n+2 of c)")} <===> different_arg/output.css a { b: false; } <===> ================================================================================ <===> bare_super/input.scss a {b: is-superselector("c", ":nth-child(n+1 of c)")} <===> bare_super/output.css a { b: true; } <===> ================================================================================ <===> bare_sub/input.scss a {b: is-superselector(":nth-child(n+1 of c d, e f, g h)", "c d, e f, g h")} <===> bare_sub/output.css a { b: false; } <===> ================================================================================ <===> prefix/superset/input.scss a { b: is-superselector( ":-pfx-nth-child(n+1 of c d, e f, g h)", ":-pfx-nth-child(n+1 of c d.i, e j f)"); } <===> prefix/superset/output.css a { b: true; } <===> ================================================================================ <===> prefix/subset/input.scss a { b: is-superselector( ":-pfx-nth-child(n+1 of c d.i, e j f)", ":-pfx-nth-child(n+1 of c d, e f, g h)"); } <===> prefix/subset/output.css a { b: false; } nth_last_child.hrx000066400000000000000000000034201355712145100371350ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/core_functions/selector/is_superselector/simple/pseudo/selector_arg<===> superset/input.scss a { b: is-superselector( ":nth-last-child(n+1 of c d, e f, g h)", ":nth-last-child(n+1 of c d.i, e j f)"); } <===> superset/output.css a { b: true; } <===> ================================================================================ <===> subset/input.scss a { b: is-superselector( ":nth-last-child(n+1 of c d.i, e j f)", ":nth-last-child(n+1 of c d, e f, g h)"); } <===> subset/output.css a { b: false; } <===> ================================================================================ <===> different_arg/input.scss a { b: is-superselector( ":nth-last-child(n+1 of c)", ":nth-last-child(n+2 of c)"); } <===> different_arg/output.css a { b: false; } <===> ================================================================================ <===> bare_super/input.scss a {b: is-superselector("c", ":nth-last-child(n+1 of c)")} <===> bare_super/output.css a { b: true; } <===> ================================================================================ <===> bare_sub/input.scss a {b: is-superselector(":nth-last-child(n+1 of c d, e f, g h)", "c d, e f, g h")} <===> bare_sub/output.css a { b: false; } <===> ================================================================================ <===> prefix/superset/input.scss a { b: is-superselector( ":-pfx-nth-last-child(n+1 of c d, e f, g h)", ":-pfx-nth-last-child(n+1 of c d.i, e j f)"); } <===> prefix/superset/output.css a { b: true; } <===> ================================================================================ <===> prefix/subset/input.scss a { b: is-superselector( ":-pfx-nth-last-child(n+1 of c d.i, e j f)", ":-pfx-nth-last-child(n+1 of c d, e f, g h)"); } <===> prefix/subset/output.css a { b: false; } slotted.hrx000066400000000000000000000023471355712145100356430ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/core_functions/selector/is_superselector/simple/pseudo/selector_arg<===> superset/options.yml --- :todo: - sass/libsass#2974 <===> superset/input.scss a {b: is-superselector("::slotted(c d, e f, g h)", "::slotted(c d.i, e j f)")} <===> superset/output.css a { b: true; } <===> ================================================================================ <===> subset/input.scss a {b: is-superselector("::slotted(c d.i, e j f)", "::slotted(c d, e f, g h)")} <===> subset/output.css a { b: false; } <===> ================================================================================ <===> bare_sub/input.scss a {b: is-superselector("::slotted(c d, e f, g h)", "c d, e f, g h")} <===> bare_sub/output.css a { b: false; } <===> ================================================================================ <===> prefix/superset/options.yml --- :todo: - sass/libsass#2974 <===> prefix/superset/input.scss a {b: is-superselector("::-pfx-slotted(c d, e f, g h)", "::-pfx-slotted(c d.i, e j f)")} <===> prefix/superset/output.css a { b: true; } <===> ================================================================================ <===> prefix/subset/input.scss a {b: is-superselector("::-pfx-slotted(c d.i, e j f)", "::-pfx-slotted(c d, e f, g h)")} <===> prefix/subset/output.css a { b: false; } sass-spec-libsass-3.6.3/spec/core_functions/selector/is_superselector/simple/type.hrx000066400000000000000000000075451355712145100312620ustar00rootroot00000000000000<===> equal/input.scss a {b: is-superselector("c", "c")} <===> equal/output.css a { b: true; } <===> ================================================================================ <===> unequal/input.scss a {b: is-superselector("c", "d")} <===> unequal/output.css a { b: false; } <===> ================================================================================ <===> and_universal/input.scss a {b: is-superselector("c", "*")} <===> and_universal/output.css a { b: false; } <===> ================================================================================ <===> namespace/explicit/and_explicit/equal/input.scss a {b: is-superselector("c|d", "c|d")} <===> namespace/explicit/and_explicit/equal/output.css a { b: true; } <===> ================================================================================ <===> namespace/explicit/and_explicit/unequal/input.scss a {b: is-superselector("c|d", "e|d")} <===> namespace/explicit/and_explicit/unequal/output.css a { b: false; } <===> ================================================================================ <===> namespace/explicit/and_implicit/input.scss a {b: is-superselector("c|d", "d")} <===> namespace/explicit/and_implicit/output.css a { b: false; } <===> ================================================================================ <===> namespace/explicit/and_empty/input.scss a {b: is-superselector("c|d", "|d")} <===> namespace/explicit/and_empty/output.css a { b: false; } <===> ================================================================================ <===> namespace/explicit/and_universal/input.scss a {b: is-superselector("c|d", "*|d")} <===> namespace/explicit/and_universal/output.css a { b: false; } <===> ================================================================================ <===> namespace/empty/and_explicit/input.scss a {b: is-superselector("|c", "d|c")} <===> namespace/empty/and_explicit/output.css a { b: false; } <===> ================================================================================ <===> namespace/empty/and_implicit/input.scss a {b: is-superselector("|c", "c")} <===> namespace/empty/and_implicit/output.css a { b: false; } <===> ================================================================================ <===> namespace/empty/and_empty/input.scss a {b: is-superselector("|c", "|c")} <===> namespace/empty/and_empty/output.css a { b: true; } <===> ================================================================================ <===> namespace/empty/and_universal/input.scss a {b: is-superselector("|c", "*|c")} <===> namespace/empty/and_universal/output.css a { b: false; } <===> ================================================================================ <===> namespace/universal/and_explicit/options.yml --- :todo: - sass/dart-sass#789 - sass/libsass#2962 <===> namespace/universal/and_explicit/input.scss a {b: is-superselector("*|c", "d|c")} <===> namespace/universal/and_explicit/output.css a { b: true; } <===> ================================================================================ <===> namespace/universal/and_implicit/options.yml --- :todo: - sass/dart-sass#789 - sass/libsass#2962 <===> namespace/universal/and_implicit/input.scss a {b: is-superselector("*|c", "c")} <===> namespace/universal/and_implicit/output.css a { b: true; } <===> ================================================================================ <===> namespace/universal/and_empty/options.yml --- :todo: - sass/dart-sass#789 - sass/libsass#2962 <===> namespace/universal/and_empty/input.scss a {b: is-superselector("*|c", "|c")} <===> namespace/universal/and_empty/output.css a { b: true; } <===> ================================================================================ <===> namespace/universal/and_universal/input.scss a {b: is-superselector("*|c", "*|c")} <===> namespace/universal/and_universal/output.css a { b: true; } sass-spec-libsass-3.6.3/spec/core_functions/selector/is_superselector/simple/universal.hrx000066400000000000000000000202221355712145100322740ustar00rootroot00000000000000<===> equal/input.scss a {b: is-superselector("*", "*")} <===> equal/output.css a { b: true; } <===> ================================================================================ <===> and_type/options.yml --- :todo: - sass/dart-sass#789 - sass/libsass#2962 <===> and_type/input.scss a {b: is-superselector("*", "c")} <===> and_type/output.css a { b: true; } <===> ================================================================================ <===> and_class/options.yml --- :todo: - sass/dart-sass#789 - sass/libsass#2962 <===> and_class/input.scss a {b: is-superselector("*", ".c")} <===> and_class/output.css a { b: true; } <===> ================================================================================ <===> namespace/explicit/and_type/explicit/equal/options.yml --- :todo: - sass/dart-sass#789 - sass/libsass#2962 <===> namespace/explicit/and_type/explicit/equal/input.scss a {b: is-superselector("c|*", "c|d")} <===> namespace/explicit/and_type/explicit/equal/output.css a { b: true; } <===> ================================================================================ <===> namespace/explicit/and_type/explicit/unequal/input.scss a {b: is-superselector("c|*", "e|d")} <===> namespace/explicit/and_type/explicit/unequal/output.css a { b: false; } <===> ================================================================================ <===> namespace/explicit/and_type/implicit/input.scss a {b: is-superselector("c|*", "d")} <===> namespace/explicit/and_type/implicit/output.css a { b: false; } <===> ================================================================================ <===> namespace/explicit/and_type/empty/input.scss a {b: is-superselector("c|*", "|d")} <===> namespace/explicit/and_type/empty/output.css a { b: false; } <===> ================================================================================ <===> namespace/explicit/and_universal/explicit/equal/options.yml --- :todo: - sass/dart-sass#789 <===> namespace/explicit/and_universal/explicit/equal/input.scss a {b: is-superselector("c|*", "c|*")} <===> namespace/explicit/and_universal/explicit/equal/output.css a { b: true; } <===> ================================================================================ <===> namespace/explicit/and_universal/explicit/unequal/input.scss a {b: is-superselector("c|*", "d|*")} <===> namespace/explicit/and_universal/explicit/unequal/output.css a { b: false; } <===> ================================================================================ <===> namespace/explicit/and_universal/implicit/input.scss a {b: is-superselector("c|*", "*")} <===> namespace/explicit/and_universal/implicit/output.css a { b: false; } <===> ================================================================================ <===> namespace/explicit/and_universal/empty/input.scss a {b: is-superselector("c|*", "|*")} <===> namespace/explicit/and_universal/empty/output.css a { b: false; } <===> ================================================================================ <===> namespace/explicit/and_universal/universal/input.scss a {b: is-superselector("c|*", "*|*")} <===> namespace/explicit/and_universal/universal/output.css a { b: false; } <===> ================================================================================ <===> namespace/explicit/and_class/input.scss a {b: is-superselector("c|*", ".d")} <===> namespace/explicit/and_class/output.css a { b: false; } <===> ================================================================================ <===> namespace/empty/and_type/explicit/input.scss a {b: is-superselector("|*", "c|d")} <===> namespace/empty/and_type/explicit/output.css a { b: false; } <===> ================================================================================ <===> namespace/empty/and_type/implicit/input.scss a {b: is-superselector("|*", "d")} <===> namespace/empty/and_type/implicit/output.css a { b: false; } <===> ================================================================================ <===> namespace/empty/and_type/empty/options.yml --- :todo: - sass/dart-sass#789 - sass/libsass#2962 <===> namespace/empty/and_type/empty/input.scss a {b: is-superselector("|*", "|d")} <===> namespace/empty/and_type/empty/output.css a { b: true; } <===> ================================================================================ <===> namespace/empty/and_universal/explicit/input.scss a {b: is-superselector("|*", "c|*")} <===> namespace/empty/and_universal/explicit/output.css a { b: false; } <===> ================================================================================ <===> namespace/empty/and_universal/implicit/input.scss a {b: is-superselector("|*", "*")} <===> namespace/empty/and_universal/implicit/output.css a { b: false; } <===> ================================================================================ <===> namespace/empty/and_universal/empty/input.scss a {b: is-superselector("|*", "|*")} <===> namespace/empty/and_universal/empty/output.css a { b: true; } <===> ================================================================================ <===> namespace/empty/and_universal/universal/input.scss a {b: is-superselector("|*", "*|*")} <===> namespace/empty/and_universal/universal/output.css a { b: false; } <===> ================================================================================ <===> namespace/empty/and_class/input.scss a {b: is-superselector("|*", ".d")} <===> namespace/empty/and_class/output.css a { b: false; } <===> ================================================================================ <===> namespace/universal/and_type/explicit/options.yml --- :todo: - sass/dart-sass#789 - sass/libsass#2962 <===> namespace/universal/and_type/explicit/input.scss a {b: is-superselector("*|*", "c|d")} <===> namespace/universal/and_type/explicit/output.css a { b: true; } <===> ================================================================================ <===> namespace/universal/and_type/implicit/options.yml --- :todo: - sass/dart-sass#789 - sass/libsass#2962 <===> namespace/universal/and_type/implicit/input.scss a {b: is-superselector("*|*", "d")} <===> namespace/universal/and_type/implicit/output.css a { b: true; } <===> ================================================================================ <===> namespace/universal/and_type/empty/options.yml --- :todo: - sass/dart-sass#789 - sass/libsass#2962 <===> namespace/universal/and_type/empty/input.scss a {b: is-superselector("*|*", "|d")} <===> namespace/universal/and_type/empty/output.css a { b: true; } <===> ================================================================================ <===> namespace/universal/and_universal/explicit/options.yml --- :todo: - sass/dart-sass#789 - sass/libsass#2962 <===> namespace/universal/and_universal/explicit/input.scss a {b: is-superselector("*|*", "c|*")} <===> namespace/universal/and_universal/explicit/output.css a { b: true; } <===> ================================================================================ <===> namespace/universal/and_universal/implicit/options.yml --- :todo: - sass/dart-sass#789 - sass/libsass#2962 <===> namespace/universal/and_universal/implicit/input.scss a {b: is-superselector("*|*", "*")} <===> namespace/universal/and_universal/implicit/output.css a { b: true; } <===> ================================================================================ <===> namespace/universal/and_universal/empty/options.yml --- :todo: - sass/dart-sass#789 - sass/libsass#2962 <===> namespace/universal/and_universal/empty/input.scss a {b: is-superselector("*|*", "|*")} <===> namespace/universal/and_universal/empty/output.css a { b: true; } <===> ================================================================================ <===> namespace/universal/and_universal/universal/input.scss a {b: is-superselector("*|*", "*|*")} <===> namespace/universal/and_universal/universal/output.css a { b: true; } <===> ================================================================================ <===> namespace/universal/and_class/options.yml --- :todo: - sass/dart-sass#789 - sass/libsass#2962 <===> namespace/universal/and_class/input.scss a {b: is-superselector("*|*", ".d")} <===> namespace/universal/and_class/output.css a { b: true; } sass-spec-libsass-3.6.3/spec/core_functions/selector/parse/000077500000000000000000000000001355712145100237725ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/core_functions/selector/parse/README.md000066400000000000000000000005051355712145100252510ustar00rootroot00000000000000These tests verify that `selector-parse()` accepts a wide range of input structures and selector types. We don't test the full gamut of possible inputs for every selector function because it's assumed that they use the same parsing infrastructure, but they are required to support all the same inputs as `selector-parse()`. sass-spec-libsass-3.6.3/spec/core_functions/selector/parse/error.hrx000066400000000000000000000105241355712145100256500ustar00rootroot00000000000000<===> parent/input.scss a {b: selector-parse("&")} <===> parent/error Error: $selector: Parent selectors aren't allowed here. , 1 | & | ^ ' - 1:1 root stylesheet , 1 | a {b: selector-parse("&")} | ^^^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> parent/error-libsass Error: Parent selectors aren't allowed here. on line 1:22 of input.scss, in function `selector-parse` from line 1:7 of input.scss >> a {b: selector-parse("&")} ---------------------^ <===> ================================================================================ <===> parse/invalid/input.scss a {b: selector-parse("[c")} <===> parse/invalid/error Error: $selector: expected more input. , 1 | [c | ^ ' - 1:3 root stylesheet , 1 | a {b: selector-parse("[c")} | ^^^^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> parse/invalid/error-libsass Error: invalid operator in attribute selector for c on line 1:23 of input.scss, in function `selector-parse` from line 1:7 of input.scss >> a {b: selector-parse("[c")} ----------------------^ <===> ================================================================================ <===> parse/extra/options.yml --- :todo: - sass/libsass#2965 <===> parse/extra/input.scss a {b: selector-parse("c {")} <===> parse/extra/error Error: $selector: expected selector. , 1 | c { | ^ ' - 1:3 root stylesheet , 1 | a {b: selector-parse("c {")} | ^^^^^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> ================================================================================ <===> too_nested/options.yml --- :todo: - sass/libsass#2964 <===> too_nested/input.scss a {b: selector-parse((append((), append((), c)),))} <===> too_nested/error Error: c is not a valid selector: it must be a string, a list of strings, or a list of lists of strings. , 1 | a {b: selector-parse((append((), append((), c)),))} | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> ================================================================================ <===> inner_comma/options.yml --- :todo: - sass/libsass#2964 <===> inner_comma/input.scss a {b: selector-parse(((c,),))} <===> inner_comma/error Error: $selector: ((c,),) is not a valid selector: it must be a string, a list of strings, or a list of lists of strings. , 1 | a {b: selector-parse(((c,),))} | ^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> ================================================================================ <===> outer_space/options.yml --- :todo: - sass/libsass#2964 <===> outer_space/input.scss a {b: selector-parse(append((), append((), c)))} <===> outer_space/error Error: $selector: c is not a valid selector: it must be a string, a list of strings, or a list of lists of strings. , 1 | a {b: selector-parse(append((), append((), c)))} | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> ================================================================================ <===> type/options.yml --- :todo: - sass/libsass#2964 <===> type/input.scss a {b: selector-parse(1)} <===> type/error Error: $selector: 1 is not a valid selector: it must be a string, a list of strings, or a list of lists of strings. , 1 | a {b: selector-parse(1)} | ^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> ================================================================================ <===> too_many_args/input.scss a {b: selector-parse(c, d)} <===> too_many_args/error Error: Only 1 argument allowed, but 2 were passed. , 1 | a {b: selector-parse(c, d)} | ^^^^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> too_many_args/error-libsass Error: wrong number of arguments (2 for 1) for `selector-parse' on line 1:7 of input.scss >> a {b: selector-parse(c, d)} ------^ <===> ================================================================================ <===> too_few_args/input.scss a {b: selector-parse()} <===> too_few_args/error Error: Missing argument $selector. , 1 | a {b: selector-parse()} | ^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> too_few_args/error-libsass Error: Function selector-parse is missing argument $selector. on line 1 of input.scss >> a {b: selector-parse()} ------^ sass-spec-libsass-3.6.3/spec/core_functions/selector/parse/named.hrx000066400000000000000000000001271355712145100256010ustar00rootroot00000000000000<===> input.scss a {b: selector-parse($selector: "c")} <===> output.css a { b: c; } sass-spec-libsass-3.6.3/spec/core_functions/selector/parse/selector.hrx000066400000000000000000000116241355712145100263410ustar00rootroot00000000000000<===> simple/type/input.scss a {b: selector-parse("c")} <===> simple/type/output.css a { b: c; } <===> ================================================================================ <===> simple/class/input.scss a {b: selector-parse(".c")} <===> simple/class/output.css a { b: .c; } <===> ================================================================================ <===> simple/id/input.scss a {b: selector-parse("#c")} <===> simple/id/output.css a { b: #c; } <===> ================================================================================ <===> simple/placeholder/input.scss a {b: selector-parse("%c")} <===> simple/placeholder/output.css a { b: %c; } <===> ================================================================================ <===> simple/attribute/input.scss a {b: selector-parse("[c^=d]")} <===> simple/attribute/output.css a { b: [c^=d]; } <===> ================================================================================ <===> simple/universal/input.scss a {b: selector-parse("*")} <===> simple/universal/output.css a { b: *; } <===> ================================================================================ <===> simple/pseudo/class/no_arg/input.scss a {b: selector-parse(":c")} <===> simple/pseudo/class/no_arg/output.css a { b: :c; } <===> ================================================================================ <===> simple/pseudo/class/arg/input.scss a {b: selector-parse(":c(@#$)")} <===> simple/pseudo/class/arg/output.css a { b: :c(@#$); } <===> ================================================================================ <===> simple/pseudo/class/selector_arg/input.scss $result: selector-parse(":matches(b, c)"); a { result: $result; structure: $result == (append((), ":matches(b, c)"),); } <===> simple/pseudo/class/selector_arg/output.css a { result: :matches(b, c); structure: true; } <===> ================================================================================ <===> simple/pseudo/class/combined_arg/options.yml --- :todo: - sass/libsass#2961 <===> simple/pseudo/class/combined_arg/input.scss $result: selector-parse(":nth-child(2n+1 of b, c)"); a { result: $result; structure: $result == (append((), ":nth-child(2n+1 of b, c)"),); } <===> simple/pseudo/class/combined_arg/output.css a { result: :nth-child(2n+1 of b, c); structure: true; } <===> ================================================================================ <===> simple/pseudo/element/no_arg/input.scss a {b: selector-parse("::c")} <===> simple/pseudo/element/no_arg/output.css a { b: ::c; } <===> ================================================================================ <===> simple/pseudo/element/arg/input.scss a {b: selector-parse("::c(@#$)")} <===> simple/pseudo/element/arg/output.css a { b: ::c(@#$); } <===> ================================================================================ <===> simple/pseudo/element/selector_arg/input.scss $result: selector-parse("::slotted(b, c)"); a { result: $result; structure: $result == (append((), "::slotted(b, c)"),); } <===> simple/pseudo/element/selector_arg/output.css a { result: ::slotted(b, c); structure: true; } <===> ================================================================================ <===> compound/input.scss $result: selector-parse("b.c:d"); a { result: $result; structure: $result == (append((), "b.c:d"),); } <===> compound/output.css a { result: b.c:d; structure: true; } <===> ================================================================================ <===> complex/descendant/input.scss $result: selector-parse("b c d"); a { result: $result; structure: $result == (b c d,); } <===> complex/descendant/output.css a { result: b c d; structure: true; } <===> ================================================================================ <===> complex/sibling/input.scss $result: selector-parse("b ~ c ~ d"); a { result: $result; structure: $result == (b "~" c "~" d,); } <===> complex/sibling/output.css a { result: b ~ c ~ d; structure: true; } <===> ================================================================================ <===> complex/adjacent_sibling/input.scss $result: selector-parse("b + c + d"); a { result: $result; structure: $result == (b "+" c "+" d,); } <===> complex/adjacent_sibling/output.css a { result: b + c + d; structure: true; } <===> ================================================================================ <===> complex/child/input.scss $result: selector-parse("b > c > d"); a { result: $result; structure: $result == (b ">" c ">" d,); } <===> complex/child/output.css a { result: b > c > d; structure: true; } <===> ================================================================================ <===> list/input.scss $result: selector-parse("b c, d e, f g"); a { result: $result; structure: $result == (b c, d e, f g); } <===> list/output.css a { result: b c, d e, f g; structure: true; } sass-spec-libsass-3.6.3/spec/core_functions/selector/parse/structure.hrx000066400000000000000000000071241355712145100265610ustar00rootroot00000000000000<===> full_string/quoted/input.scss a {b: selector-parse("c d, e f")} <===> full_string/quoted/output.css a { b: c d, e f; } <===> ================================================================================ <===> full_string/unquoted/input.scss a {b: selector-parse(unquote("c d, e f"))} <===> full_string/unquoted/output.css a { b: c d, e f; } <===> ================================================================================ <===> decomposed/full/quoted/options.yml --- :todo: - sass/libsass#2960 <===> decomposed/full/quoted/input.scss a {b: selector-parse(("c" "d", "e" "f"))} <===> decomposed/full/quoted/output.css a { b: c d, e f; } <===> ================================================================================ <===> decomposed/full/unquoted/input.scss a {b: selector-parse((c d, e f))} <===> decomposed/full/unquoted/output.css a { b: c d, e f; } <===> ================================================================================ <===> decomposed/full/mixed/options.yml --- :todo: - sass/libsass#2960 <===> decomposed/full/mixed/input.scss a {b: selector-parse((c "d", e "f"))} <===> decomposed/full/mixed/output.css a { b: c d, e f; } <===> ================================================================================ <===> decomposed/partial/quoted/options.yml --- :todo: - sass/libsass#2960 <===> decomposed/partial/quoted/input.scss a {b: selector-parse(("c d", "e f"))} <===> decomposed/partial/quoted/output.css a { b: c d, e f; } <===> ================================================================================ <===> decomposed/partial/unquoted/input.scss a {b: selector-parse((unquote("c d"), unquote("e f")))} <===> decomposed/partial/unquoted/output.css a { b: c d, e f; } <===> ================================================================================ <===> decomposed/partial/mixed/input.scss a {b: selector-parse((c d, unquote("e f")))} <===> decomposed/partial/mixed/output.css a { b: c d, e f; } <===> ================================================================================ <===> decomposed/middle/quoted/options.yml --- :todo: - sass/libsass#2960 <===> decomposed/middle/quoted/input.scss a {b: selector-parse("c" "d, e" "f")} <===> decomposed/middle/quoted/output.css a { b: c d, e f; } <===> ================================================================================ <===> decomposed/middle/unquoted/input.scss a {b: selector-parse(c unquote("d, e") f)} <===> decomposed/middle/unquoted/output.css a { b: c d, e f; } <===> ================================================================================ <===> decomposed/middle/mixed/options.yml --- :todo: - sass/libsass#2960 <===> decomposed/middle/mixed/input.scss a {b: selector-parse(c "d, e" f)} <===> decomposed/middle/mixed/output.css a { b: c d, e f; } <===> ================================================================================ <===> decomposed/complex/quoted/options.yml --- :todo: - sass/libsass#2960 <===> decomposed/complex/quoted/input.scss a {b: selector-parse("c" "d" "e")} <===> decomposed/complex/quoted/output.css a { b: c d e; } <===> ================================================================================ <===> decomposed/complex/unquoted/input.scss a {b: selector-parse(c d e)} <===> decomposed/complex/unquoted/output.css a { b: c d e; } <===> ================================================================================ <===> decomposed/complex/mixed/options.yml --- :todo: - sass/libsass#2960 <===> decomposed/complex/mixed/input.scss a {b: selector-parse(c "d" e)} <===> decomposed/complex/mixed/output.css a { b: c d e; } sass-spec-libsass-3.6.3/spec/core_functions/string/000077500000000000000000000000001355712145100223465ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/core_functions/string/index.hrx000066400000000000000000000064731355712145100242120ustar00rootroot00000000000000<===> both_empty/input.scss a {b: str-index("", "")} <===> both_empty/output.css a { b: 1; } <===> ================================================================================ <===> empty_substring/input.scss a {b: str-index("cde", "")} <===> empty_substring/output.css a { b: 1; } <===> ================================================================================ <===> beginning/input.scss a {b: str-index("cde", "c")} <===> beginning/output.css a { b: 1; } <===> ================================================================================ <===> middle/input.scss a {b: str-index("cde", "d")} <===> middle/output.css a { b: 2; } <===> ================================================================================ <===> end/input.scss a {b: str-index("cde", "e")} <===> end/output.css a { b: 3; } <===> ================================================================================ <===> not_found/input.scss a {b: inspect(str-index("cde", "f"))} <===> not_found/output.css a { b: null; } <===> ================================================================================ <===> named/input.scss a {b: str-index($string: "cde", $substring: "c")} <===> named/output.css a { b: 1; } <===> ================================================================================ <===> error/type/string/input.scss a {b: str-index(1, "c")} <===> error/type/string/error Error: $string: 1 is not a string. , 1 | a {b: str-index(1, "c")} | ^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> error/type/string/error-libsass Error: argument `$string` of `str-index($string, $substring)` must be a string on line 1:7 of input.scss, in function `str-index` from line 1:7 of input.scss >> a {b: str-index(1, "c")} ------^ <===> ================================================================================ <===> error/type/substring/input.scss a {b: str-index("c", 1)} <===> error/type/substring/error Error: $substring: 1 is not a string. , 1 | a {b: str-index("c", 1)} | ^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> error/type/substring/error-libsass Error: argument `$substring` of `str-index($string, $substring)` must be a string on line 1:7 of input.scss, in function `str-index` from line 1:7 of input.scss >> a {b: str-index("c", 1)} ------^ <===> ================================================================================ <===> error/too_few_args/input.scss a {b: str-index("c")} <===> error/too_few_args/error Error: Missing argument $substring. , 1 | a {b: str-index("c")} | ^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> error/too_few_args/error-libsass Error: Function str-index is missing argument $substring. on line 1 of input.scss >> a {b: str-index("c")} ------^ <===> ================================================================================ <===> error/too_many_args/input.scss a {b: str-index("c", "d", "e")} <===> error/too_many_args/error Error: Only 2 arguments allowed, but 3 were passed. , 1 | a {b: str-index("c", "d", "e")} | ^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> error/too_many_args/error-libsass Error: wrong number of arguments (3 for 2) for `str-index' on line 1:7 of input.scss >> a {b: str-index("c", "d", "e")} ------^ sass-spec-libsass-3.6.3/spec/core_functions/string/insert.hrx000066400000000000000000000167551355712145100244130ustar00rootroot00000000000000<===> empty_destination/empty_source/input.scss a {b: str-insert("", "", 1)} <===> empty_destination/empty_source/output.css a { b: ""; } <===> ================================================================================ <===> empty_destination/index_0/input.scss a {b: str-insert("", "c", 0)} <===> empty_destination/index_0/output.css a { b: "c"; } <===> ================================================================================ <===> empty_destination/index_1/input.scss a {b: str-insert("", "c", 1)} <===> empty_destination/index_1/output.css a { b: "c"; } <===> ================================================================================ <===> empty_destination/index_2/input.scss a {b: str-insert("", "c", 2)} <===> empty_destination/index_2/output.css a { b: "c"; } <===> ================================================================================ <===> empty_destination/index_negative_1/input.scss a {b: str-insert("", "c", -1)} <===> empty_destination/index_negative_1/output.css a { b: "c"; } <===> ================================================================================ <===> empty_insertion/input.scss a {b: str-insert("cde", "", 1)} <===> empty_insertion/output.css a { b: "cde"; } <===> ================================================================================ <===> index/positive/0/input.scss a {b: str-insert("cde", "f", 0)} <===> index/positive/0/output.css a { b: "fcde"; } <===> ================================================================================ <===> index/positive/1/input.scss a {b: str-insert("cde", "f", 1)} <===> index/positive/1/output.css a { b: "fcde"; } <===> ================================================================================ <===> index/positive/2/input.scss a {b: str-insert("cde", "f", 2)} <===> index/positive/2/output.css a { b: "cfde"; } <===> ================================================================================ <===> index/positive/last/input.scss a {b: str-insert("cde", "f", 4)} <===> index/positive/last/output.css a { b: "cdef"; } <===> ================================================================================ <===> index/positive/after_last/input.scss a {b: str-insert("cde", "f", 100)} <===> index/positive/after_last/output.css a { b: "cdef"; } <===> ================================================================================ <===> index/negative/1/input.scss a {b: str-insert("cde", "f", -1)} <===> index/negative/1/output.css a { b: "cdef"; } <===> ================================================================================ <===> index/negative/2/input.scss a {b: str-insert("cde", "f", -2)} <===> index/negative/2/output.css a { b: "cdfe"; } <===> ================================================================================ <===> index/negative/last/input.scss a {b: str-insert("cde", "f", -4)} <===> index/negative/last/output.css a { b: "fcde"; } <===> ================================================================================ <===> index/negative/after_last/input.scss a {b: str-insert("cde", "f", -100)} <===> index/negative/after_last/output.css a { b: "fcde"; } <===> ================================================================================ <===> double_width_character/input.scss // Sass treats strings as sequences of Unicode codepoint; it doesn't care if a // character is represented as two UTF-16 code units, so inserting a character // at index 2 shouldn't break this emoji in two. a {b: str-insert("👭", "c", 2)} <===> double_width_character/output.css @charset "UTF-8"; a { b: "👭c"; } <===> ================================================================================ <===> combining_character/input.scss // Sass does *not* treat strings as sequences of glyphs, so this string which // contains "c" followed by a combining umlaut should be considered two separate // characters even though it's rendered as only one and the "d" should be // injected between the two. a {b: str-insert("c\0308", "d", 2)} <===> combining_character/output.css @charset "UTF-8"; a { b: "cd̈"; } <===> ================================================================================ <===> named/input.scss a {b: str-insert($string: "cde", $insert: "f", $index: 2)} <===> named/output.css a { b: "cfde"; } <===> ================================================================================ <===> error/type/string/input.scss a {b: str-insert(1, "", 1)} <===> error/type/string/error Error: $string: 1 is not a string. , 1 | a {b: str-insert(1, "", 1)} | ^^^^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> error/type/string/error-libsass Error: argument `$string` of `str-insert($string, $insert, $index)` must be a string on line 1:7 of input.scss, in function `str-insert` from line 1:7 of input.scss >> a {b: str-insert(1, "", 1)} ------^ <===> ================================================================================ <===> error/type/insert/input.scss a {b: str-insert("", 1, 1)} <===> error/type/insert/error Error: $insert: 1 is not a string. , 1 | a {b: str-insert("", 1, 1)} | ^^^^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> error/type/insert/error-libsass Error: argument `$insert` of `str-insert($string, $insert, $index)` must be a string on line 1:7 of input.scss, in function `str-insert` from line 1:7 of input.scss >> a {b: str-insert("", 1, 1)} ------^ <===> ================================================================================ <===> error/type/index/input.scss a {b: str-insert("", "", "")} <===> error/type/index/error Error: $index: "" is not a number. , 1 | a {b: str-insert("", "", "")} | ^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> error/type/index/error-libsass Error: argument `$index` of `str-insert($string, $insert, $index)` must be a number on line 1:7 of input.scss, in function `str-insert` from line 1:7 of input.scss >> a {b: str-insert("", "", "")} ------^ <===> ================================================================================ <===> error/decimal/input.scss a {b: str-insert("", "", 0.5)} <===> error/decimal/error Error: $index: 0.5 is not an int. , 1 | a {b: str-insert("", "", 0.5)} | ^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> error/decimal/error-libsass Error: $index: 0.500000 is not an int on line 1:7 of input.scss, in function `str-insert` from line 1:7 of input.scss >> a {b: str-insert("", "", 0.5)} ------^ <===> ================================================================================ <===> error/too_few_args/input.scss a {b: str-insert("", "")} <===> error/too_few_args/error Error: Missing argument $index. , 1 | a {b: str-insert("", "")} | ^^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> error/too_few_args/error-libsass Error: Function str-insert is missing argument $index. on line 1 of input.scss >> a {b: str-insert("", "")} ------^ <===> ================================================================================ <===> error/too_many_args/input.scss a {b: str-insert("", "", 1, 2)} <===> error/too_many_args/error Error: Only 3 arguments allowed, but 4 were passed. , 1 | a {b: str-insert("", "", 1, 2)} | ^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> error/too_many_args/error-libsass Error: wrong number of arguments (4 for 3) for `str-insert' on line 1:7 of input.scss >> a {b: str-insert("", "", 1, 2)} ------^ sass-spec-libsass-3.6.3/spec/core_functions/string/length.hrx000066400000000000000000000060331355712145100243540ustar00rootroot00000000000000<===> empty/input.scss a {b: str-length("")} <===> empty/output.css a { b: 0; } <===> ================================================================================ <===> one_character/input.scss a {b: str-length("c")} <===> one_character/output.css a { b: 1; } <===> ================================================================================ <===> multiple_characters/input.scss a {b: str-length("fblthp abatement")} <===> multiple_characters/output.css a { b: 16; } <===> ================================================================================ <===> double_width_character/input.scss // Sass treats strings as sequences of Unicode codepoint; it doesn't care if a // character is represented as two UTF-16 code units. a {b: str-length("👭")} <===> double_width_character/output.css a { b: 1; } <===> ================================================================================ <===> combining_character/input.scss // Sass does *not* treat strings as sequences of glyphs, so this string which // contains "c" followed by a combining umlaut should be considered two separate // characters even though it's rendered as only one. a {b: str-length("c\0308")} <===> combining_character/output.css a { b: 2; } <===> ================================================================================ <===> unquoted/input.scss a {b: str-length(loofamonster)} <===> unquoted/output.css a { b: 12; } <===> ================================================================================ <===> named/input.scss a {b: str-length($string: "c")} <===> named/output.css a { b: 1; } <===> ================================================================================ <===> error/type/input.scss a {b: str-length(1)} <===> error/type/error Error: $string: 1 is not a string. , 1 | a {b: str-length(1)} | ^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> error/type/error-libsass Error: argument `$string` of `str-length($string)` must be a string on line 1:7 of input.scss, in function `str-length` from line 1:7 of input.scss >> a {b: str-length(1)} ------^ <===> ================================================================================ <===> error/too_few_args/input.scss a {b: str-length()} <===> error/too_few_args/error Error: Missing argument $string. , 1 | a {b: str-length()} | ^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> error/too_few_args/error-libsass Error: Function str-length is missing argument $string. on line 1 of input.scss >> a {b: str-length()} ------^ <===> ================================================================================ <===> error/too_many_args/input.scss a {b: str-length(c, d)} <===> error/too_many_args/error Error: Only 1 argument allowed, but 2 were passed. , 1 | a {b: str-length(c, d)} | ^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> error/too_many_args/error-libsass Error: wrong number of arguments (2 for 1) for `str-length' on line 1:7 of input.scss >> a {b: str-length(c, d)} ------^ sass-spec-libsass-3.6.3/spec/core_functions/string/quote.hrx000066400000000000000000000053701355712145100242330ustar00rootroot00000000000000<===> unquoted/input.scss a {b: quote(c)} <===> unquoted/output.css a { b: "c"; } <===> ================================================================================ <===> quoted_double/input.scss a {b: quote("c")} <===> quoted_double/output.css a { b: "c"; } <===> ================================================================================ <===> quoted_single/input.scss a {b: quote('c')} <===> quoted_single/output.css a { b: "c"; } <===> ================================================================================ <===> quote_unquoted_quote/single/input.scss // See sass/libsass#2873 a {b: quote(unquote('"'))} <===> quote_unquoted_quote/single/output.css a { b: '"'; } <===> ================================================================================ <===> quote_unquoted_quote/double/input.scss // See sass/libsass#2873 a {b: quote(unquote('"') + unquote("'"))} <===> quote_unquoted_quote/double/output.css a { b: "\"'"; } <===> ================================================================================ <===> escape/input.scss a {b: quote(\0)} <===> escape/output.css a { b: "\\0 "; } <===> escape/output-libsass.css a { b: "\\0"; } <===> ================================================================================ <===> named/input.scss a {b: quote($string: c)} <===> named/output.css a { b: "c"; } <===> ================================================================================ <===> error/type/input.scss a {b: quote((1, 2, 3))} <===> error/type/error Error: $string: 1, 2, 3 is not a string. , 1 | a {b: quote((1, 2, 3))} | ^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> error/type/error-libsass Error: argument `$string` of `quote($string)` must be a string on line 1:7 of input.scss, in function `quote` from line 1:7 of input.scss >> a {b: quote((1, 2, 3))} ------^ <===> ================================================================================ <===> error/too_few_args/input.scss a {b: quote()} <===> error/too_few_args/error Error: Missing argument $string. , 1 | a {b: quote()} | ^^^^^^^ ' input.scss 1:7 root stylesheet <===> error/too_few_args/error-libsass Error: Function quote is missing argument $string. on line 1 of input.scss >> a {b: quote()} ------^ <===> ================================================================================ <===> error/too_many_args/input.scss a {b: quote(c, d)} <===> error/too_many_args/error Error: Only 1 argument allowed, but 2 were passed. , 1 | a {b: quote(c, d)} | ^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> error/too_many_args/error-libsass Error: wrong number of arguments (2 for 1) for `quote' on line 1:7 of input.scss >> a {b: quote(c, d)} ------^ sass-spec-libsass-3.6.3/spec/core_functions/string/slice.hrx000066400000000000000000000245341355712145100242000ustar00rootroot00000000000000<===> empty/start/0/input.scss a {b: str-slice("", 0)} <===> empty/start/0/output.css a { b: ""; } <===> ================================================================================ <===> empty/start/1/input.scss a {b: str-slice("", 1)} <===> empty/start/1/output.css a { b: ""; } <===> ================================================================================ <===> empty/start/2/input.scss a {b: str-slice("", 2)} <===> empty/start/2/output.css a { b: ""; } <===> ================================================================================ <===> empty/start/negative_1/input.scss a {b: str-slice("", -1)} <===> empty/start/negative_1/output.css a { b: ""; } <===> ================================================================================ <===> empty/end/0/input.scss a {b: str-slice("", 1, 0)} <===> empty/end/0/output.css a { b: ""; } <===> ================================================================================ <===> empty/end/1/input.scss a {b: str-slice("", 1, 1)} <===> empty/end/1/output.css a { b: ""; } <===> ================================================================================ <===> empty/end/2/input.scss a {b: str-slice("", 1, 2)} <===> empty/end/2/output.css a { b: ""; } <===> ================================================================================ <===> start/positive/0/input.scss a {b: str-slice("cde", 0)} <===> start/positive/0/output.css a { b: "cde"; } <===> ================================================================================ <===> start/positive/1/input.scss a {b: str-slice("cde", 1)} <===> start/positive/1/output.css a { b: "cde"; } <===> ================================================================================ <===> start/positive/2/input.scss a {b: str-slice("cde", 2)} <===> start/positive/2/output.css a { b: "de"; } <===> ================================================================================ <===> start/positive/last/input.scss a {b: str-slice("cde", 4)} <===> start/positive/last/output.css a { b: ""; } <===> ================================================================================ <===> start/positive/after_last/input.scss a {b: str-slice("cde", 100)} <===> start/positive/after_last/output.css a { b: ""; } <===> ================================================================================ <===> start/positive/after_end/input.scss a {b: str-slice("cdef", 3, 2)} <===> start/positive/after_end/output.css a { b: ""; } <===> ================================================================================ <===> start/negative/1/input.scss a {b: str-slice("cde", -1)} <===> start/negative/1/output.css a { b: "e"; } <===> ================================================================================ <===> start/negative/2/input.scss a {b: str-slice("cde", -2)} <===> start/negative/2/output.css a { b: "de"; } <===> ================================================================================ <===> start/negative/last/input.scss a {b: str-slice("cde", -3)} <===> start/negative/last/output.css a { b: "cde"; } <===> ================================================================================ <===> start/negative/after_last/input.scss a {b: str-slice("cde", -100)} <===> start/negative/after_last/output.css a { b: "cde"; } <===> ================================================================================ <===> end/positive/0/input.scss a {b: str-slice("cde", 1, 0)} <===> end/positive/0/output.css a { b: ""; } <===> ================================================================================ <===> end/positive/1/input.scss a {b: str-slice("cde", 1, 1)} <===> end/positive/1/output.css a { b: "c"; } <===> ================================================================================ <===> end/positive/2/input.scss a {b: str-slice("cde", 1, 2)} <===> end/positive/2/output.css a { b: "cd"; } <===> ================================================================================ <===> end/positive/last/input.scss a {b: str-slice("cde", 1, 3)} <===> end/positive/last/output.css a { b: "cde"; } <===> ================================================================================ <===> end/positive/after_last/input.scss a {b: str-slice("cde", 1, 100)} <===> end/positive/after_last/output.css a { b: "cde"; } <===> ================================================================================ <===> end/positive/after_start/input.scss a {b: str-slice("cdef", 2, 3)} <===> end/positive/after_start/output.css a { b: "de"; } <===> ================================================================================ <===> end/negative/1/input.scss a {b: str-slice("cde", 1, -1)} <===> end/negative/1/output.css a { b: "cde"; } <===> ================================================================================ <===> end/negative/2/input.scss a {b: str-slice("cde", 1, -2)} <===> end/negative/2/output.css a { b: "cd"; } <===> ================================================================================ <===> end/negative/last/input.scss a {b: str-slice("cde", 1, -4)} <===> end/negative/last/output.css a { b: ""; } <===> ================================================================================ <===> end/negative/after_last/input.scss a {b: str-slice("cde", 1, -100)} <===> end/negative/after_last/output.css a { b: ""; } <===> ================================================================================ <===> double_width_character/input.scss // Sass treats strings as sequences of Unicode codepoint; it doesn't care if a // character is represented as two UTF-16 code units, so inserting a character // at index 2 shouldn't break this emoji in two. a {b: str-slice("c👭d", 2, 2)} <===> double_width_character/output.css @charset "UTF-8"; a { b: "👭"; } <===> ================================================================================ <===> combining_character/input.scss // Sass does *not* treat strings as sequences of glyphs, so this string which // contains "c" followed by a combining umlaut should be considered two separate // characters even though it's rendered as only one and only the "d" should be // sliced out. a {b: str-slice("cd\0308e", 2, 2)} <===> combining_character/output.css a { b: "d"; } <===> ================================================================================ <===> unquoted/input.scss a {b: str-slice(cdefgh, 3, 5)} <===> unquoted/output.css a { b: efg; } <===> ================================================================================ <===> named/input.scss a {b: str-slice($string: "cde", $start-at: 2, $end-at: 2)} <===> named/output.css a { b: "d"; } <===> ================================================================================ <===> error/type/string/input.scss a {b: str-slice(1, 2)} <===> error/type/string/error Error: $string: 1 is not a string. , 1 | a {b: str-slice(1, 2)} | ^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> error/type/string/error-libsass Error: argument `$string` of `str-slice($string, $start-at, $end-at:-1)` must be a string on line 1:7 of input.scss, in function `str-slice` from line 1:7 of input.scss >> a {b: str-slice(1, 2)} ------^ <===> ================================================================================ <===> error/type/start_at/input.scss a {b: str-slice("cde", "f")} <===> error/type/start_at/error Error: $start-at: "f" is not a number. , 1 | a {b: str-slice("cde", "f")} | ^^^^^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> error/type/start_at/error-libsass Error: argument `$start-at` of `str-slice($string, $start-at, $end-at:-1)` must be a number on line 1:7 of input.scss, in function `str-slice` from line 1:7 of input.scss >> a {b: str-slice("cde", "f")} ------^ <===> ================================================================================ <===> error/type/end_at/input.scss a {b: str-slice("cde", 1, "f")} <===> error/type/end_at/error Error: $end-at: "f" is not a number. , 1 | a {b: str-slice("cde", 1, "f")} | ^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> error/type/end_at/error-libsass Error: argument `$end-at` of `str-slice($string, $start-at, $end-at:-1)` must be a number on line 1:7 of input.scss, in function `str-slice` from line 1:7 of input.scss >> a {b: str-slice("cde", 1, "f")} ------^ <===> ================================================================================ <===> error/decimal/start/input.scss a {b: str-slice("", 0.5)} <===> error/decimal/start/error Error: 0.5 is not an int. , 1 | a {b: str-slice("", 0.5)} | ^^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> error/decimal/start/error-libsass Error: $start-at: 0.500000 is not an int on line 1:7 of input.scss, in function `str-slice` from line 1:7 of input.scss >> a {b: str-slice("", 0.5)} ------^ <===> ================================================================================ <===> error/decimal/end/input.scss a {b: str-slice("", 1, 1.5)} <===> error/decimal/end/error Error: 1.5 is not an int. , 1 | a {b: str-slice("", 1, 1.5)} | ^^^^^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> error/decimal/end/error-libsass Error: $end-at: 1.500000 is not an int on line 1:7 of input.scss, in function `str-slice` from line 1:7 of input.scss >> a {b: str-slice("", 1, 1.5)} ------^ <===> ================================================================================ <===> error/too_few_args/input.scss a {b: str-slice("cde")} <===> error/too_few_args/error Error: Missing argument $start-at. , 1 | a {b: str-slice("cde")} | ^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> error/too_few_args/error-libsass Error: Function str-slice is missing argument $start-at. on line 1 of input.scss >> a {b: str-slice("cde")} ------^ <===> ================================================================================ <===> error/too_many_args/input.scss a {b: str-slice("cde", 1, 2, 3)} <===> error/too_many_args/error Error: Only 3 arguments allowed, but 4 were passed. , 1 | a {b: str-slice("cde", 1, 2, 3)} | ^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> error/too_many_args/error-libsass Error: wrong number of arguments (4 for 3) for `str-slice' on line 1:7 of input.scss >> a {b: str-slice("cde", 1, 2, 3)} ------^ sass-spec-libsass-3.6.3/spec/core_functions/string/to_lower_case.hrx000066400000000000000000000052261355712145100257230ustar00rootroot00000000000000<===> empty/input.scss a {b: to-lower-case("")} <===> empty/output.css a { b: ""; } <===> ================================================================================ <===> alphabet/input.scss a {b: to-lower-case("ABCDEFGHIJKLMNOPQRSTUVQXYZ")} <===> alphabet/output.css a { b: "abcdefghijklmnopqrstuvqxyz"; } <===> ================================================================================ <===> number/input.scss a {b: to-lower-case("1234567890")} <===> number/output.css a { b: "1234567890"; } <===> ================================================================================ <===> non_ascii/input.scss // Only ASCII characters have their case changed. a {b: to-lower-case("ÄÇÐØÞ")} <===> non_ascii/output.css @charset "UTF-8"; a { b: "ÄÇÐØÞ"; } <===> ================================================================================ <===> unquoted/input.scss a {b: to-lower-case(aBcDeF)} <===> unquoted/output.css a { b: abcdef; } <===> ================================================================================ <===> named/input.scss a {b: to-lower-case($string: abcDEF)} <===> named/output.css a { b: abcdef; } <===> ================================================================================ <===> error/type/input.scss a {b: to-lower-case(1)} <===> error/type/error Error: $string: 1 is not a string. , 1 | a {b: to-lower-case(1)} | ^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> error/type/error-libsass Error: argument `$string` of `to-lower-case($string)` must be a string on line 1:7 of input.scss, in function `to-lower-case` from line 1:7 of input.scss >> a {b: to-lower-case(1)} ------^ <===> ================================================================================ <===> error/too_few_args/input.scss a {b: to-lower-case()} <===> error/too_few_args/error Error: Missing argument $string. , 1 | a {b: to-lower-case()} | ^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> error/too_few_args/error-libsass Error: Function to-lower-case is missing argument $string. on line 1 of input.scss >> a {b: to-lower-case()} ------^ <===> ================================================================================ <===> error/too_many_args/input.scss a {b: to-lower-case("", "")} <===> error/too_many_args/error Error: Only 1 argument allowed, but 2 were passed. , 1 | a {b: to-lower-case("", "")} | ^^^^^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> error/too_many_args/error-libsass Error: wrong number of arguments (2 for 1) for `to-lower-case' on line 1:7 of input.scss >> a {b: to-lower-case("", "")} ------^ sass-spec-libsass-3.6.3/spec/core_functions/string/to_upper_case.hrx000066400000000000000000000052261355712145100257260ustar00rootroot00000000000000<===> empty/input.scss a {b: to-upper-case("")} <===> empty/output.css a { b: ""; } <===> ================================================================================ <===> alphabet/input.scss a {b: to-upper-case("abcdefghijklmnopqrstuvqxyz")} <===> alphabet/output.css a { b: "ABCDEFGHIJKLMNOPQRSTUVQXYZ"; } <===> ================================================================================ <===> number/input.scss a {b: to-upper-case("1234567890")} <===> number/output.css a { b: "1234567890"; } <===> ================================================================================ <===> non_ascii/input.scss // Only ASCII characters have their case changed. a {b: to-upper-case("äçðøþ")} <===> non_ascii/output.css @charset "UTF-8"; a { b: "äçðøþ"; } <===> ================================================================================ <===> unquoted/input.scss a {b: to-upper-case(aBcDeF)} <===> unquoted/output.css a { b: ABCDEF; } <===> ================================================================================ <===> named/input.scss a {b: to-upper-case($string: abcDEF)} <===> named/output.css a { b: ABCDEF; } <===> ================================================================================ <===> error/type/input.scss a {b: to-upper-case(1)} <===> error/type/error Error: $string: 1 is not a string. , 1 | a {b: to-upper-case(1)} | ^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> error/type/error-libsass Error: argument `$string` of `to-upper-case($string)` must be a string on line 1:7 of input.scss, in function `to-upper-case` from line 1:7 of input.scss >> a {b: to-upper-case(1)} ------^ <===> ================================================================================ <===> error/too_few_args/input.scss a {b: to-upper-case()} <===> error/too_few_args/error Error: Missing argument $string. , 1 | a {b: to-upper-case()} | ^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> error/too_few_args/error-libsass Error: Function to-upper-case is missing argument $string. on line 1 of input.scss >> a {b: to-upper-case()} ------^ <===> ================================================================================ <===> error/too_many_args/input.scss a {b: to-upper-case("", "")} <===> error/too_many_args/error Error: Only 1 argument allowed, but 2 were passed. , 1 | a {b: to-upper-case("", "")} | ^^^^^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> error/too_many_args/error-libsass Error: wrong number of arguments (2 for 1) for `to-upper-case' on line 1:7 of input.scss >> a {b: to-upper-case("", "")} ------^ sass-spec-libsass-3.6.3/spec/core_functions/string/unique_id.hrx000066400000000000000000000022551355712145100250570ustar00rootroot00000000000000<===> is_unique/input.scss // As the name suggests, every call to unique-id() should return a different // value. $ids: (); @for $i from 1 to 1000 { $id: unique-id(); @if map-has-key($ids, $id) { @error "#{$id} generated more than once"; } $ids: map-merge($ids, ($id: null)); } <===> is_unique/output.css <===> ================================================================================ <===> is_identifier/input.scss // Every call to unique-id() should return a valid CSS identifier. We can't test // this directly, so we make sure it can parse as a class selector with // selector-parse(). @for $i from 1 to 1000 { $_: selector-parse(".#{unique-id()}"); } <===> is_identifier/output.css <===> ================================================================================ <===> error/too_many_args/input.scss a {b: unique-id(c)} <===> error/too_many_args/error Error: Only 0 arguments allowed, but 1 was passed. , 1 | a {b: unique-id(c)} | ^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> error/too_many_args/error-libsass Error: wrong number of arguments (1 for 0) for `unique-id' on line 1:7 of input.scss >> a {b: unique-id(c)} ------^ sass-spec-libsass-3.6.3/spec/core_functions/string/unquote.hrx000066400000000000000000000103431355712145100245720ustar00rootroot00000000000000<===> README.md Many of these specs test the returned string's length and equality to other strings to ensure that it's a string with the correct structure, not just some value with the same serialization. <===> ================================================================================ <===> unquoted/input.scss a {b: unquote(c)} <===> unquoted/output.css a { b: c; } <===> ================================================================================ <===> quoted/input.scss a {b: unquote("c")} <===> quoted/output.css a { b: c; } <===> ================================================================================ <===> empty/input.scss $result: unquote(""); a { result: $result; // This will not be emitted because the contents is empty. length: str-length($result); same: $result == ""; } <===> empty/output.css a { length: 0; same: true; } <===> ================================================================================ <===> escaped_quotes/unquoted/input.scss // Unquoting an unquoted string returns it exactly as-is, leaving escapes // totally unchanged (whether they're quotes or not). $result: unquote(\"c\"); a { result: $result; length: str-length($result); same: $result == \"c\"; } <===> escaped_quotes/unquoted/output.css a { result: \"c\"; length: 5; same: true; } <===> ================================================================================ <===> escaped_quotes/quoted/input.scss // Unquoting a quoted string returns an unquoted string with the same code // points. Code points such as quotes that need to be escaped in the original // don't need escaping in the output. $result: unquote("\"c\""); a { result: $result; length: str-length($result); same: $result == "\"c\""; } <===> escaped_quotes/quoted/output.css a { result: "c"; length: 3; same: true; } <===> ================================================================================ <===> meaningful_css_characters/input.scss // Unquoted strings aren't required to be valid CSS identifiers, and the // `unquote()` function does *not* escape characters that aren't valid // identifier characters. This allows it to be used as an escape hatch to // produce CSS that Sass doesn't otherwise support. $result: unquote("b; c {d: e"); a { result: $result; length: str-length($result); same: $result == "b; c {d: e"; } <===> meaningful_css_characters/output.css a { result: b; c {d: e; length: 10; same: true; } <===> ================================================================================ <===> escaped_backslash/input.scss $result: unquote("\\0 "); a { result: $result; length: str-length($result); same-as-argument: $result == "\\0 "; same-as-literal: $result == \0 ; } <===> escaped_backslash/output.css a { result: \0 ; length: 3; same-as-argument: true; same-as-literal: true; } <===> ================================================================================ <===> named/input.scss a {b: unquote($string: c)} <===> named/output.css a { b: c; } <===> ================================================================================ <===> error/type/options.yml --- :todo: - sass/libsass#2923 <===> error/type/input.scss a {b: unquote(1)} <===> error/type/error Error: $string: 1 is not a string. , 1 | a {b: unquote(1)} | ^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> ================================================================================ <===> error/too_few_args/input.scss a {b: unquote()} <===> error/too_few_args/error Error: Missing argument $string. , 1 | a {b: unquote()} | ^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> error/too_few_args/error-libsass Error: Function unquote is missing argument $string. on line 1 of input.scss >> a {b: unquote()} ------^ <===> ================================================================================ <===> error/too_many_args/input.scss a {b: unquote(c, d)} <===> error/too_many_args/error Error: Only 1 argument allowed, but 2 were passed. , 1 | a {b: unquote(c, d)} | ^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> error/too_many_args/error-libsass Error: wrong number of arguments (2 for 1) for `unquote' on line 1:7 of input.scss >> a {b: unquote(c, d)} ------^ sass-spec-libsass-3.6.3/spec/css/000077500000000000000000000000001355712145100166105ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/css/blockless_directive_without_semicolon.hrx000066400000000000000000000000731355712145100272050ustar00rootroot00000000000000<===> input.scss @foo "bar"; <===> output.css @foo "bar"; sass-spec-libsass-3.6.3/spec/css/comment.hrx000066400000000000000000000042041355712145100207750ustar00rootroot00000000000000<===> multiple/input.scss .foo { /* Foo Bar */ /* Baz Bang */ } <===> multiple/output.css .foo { /* Foo Bar */ /* Baz Bang */ } <===> ================================================================================ <===> multiple_stars/input.scss a /***/ b {x: y} a /****/ b {x: y} a /* **/ b {x: y} a /** */ b {x: y} <===> multiple_stars/output.css a b { x: y; } a b { x: y; } a b { x: y; } a b { x: y; } <===> ================================================================================ <===> weird_indentation/input.scss .foo { /* Foo Bar Baz */ a: b; } <===> weird_indentation/output.css .foo { /* Foo Bar Baz */ a: b; } <===> weird_indentation/output-libsass.css .foo { /* Foo Bar Baz */ a: b; } <===> ================================================================================ <===> converts_newlines/README.md Everything CSS considers a newline (including `\r\n`, `\r`, and `\f`) should be converted to a newline in a comment's contents. Note that we don't test CR LF because the spec runner normalizes those itself, so we can't usefully verify that they're converted. Individual implementations should include their own tests for CR LF newlines. <===> ================================================================================ <===> converts_newlines/scss/cr/input.scss /* foo * bar */ <===> converts_newlines/scss/cr/output.css /* foo * bar */ <===> ================================================================================ <===> converts_newlines/scss/ff/input.scss /* foo * bar */ <===> converts_newlines/scss/ff/output.css /* foo * bar */ <===> ================================================================================ <===> converts_newlines/sass/cr/input.sass /* foo bar <===> converts_newlines/sass/cr/output.css /* foo * bar */ <===> converts_newlines/sass/cr/output-libsass.css /* foo bar */ <===> ================================================================================ <===> converts_newlines/sass/ff/input.sass /* foo bar <===> converts_newlines/sass/ff/output.css /* foo * bar */ <===> converts_newlines/sass/ff/output-libsass.css /* foo bar */ sass-spec-libsass-3.6.3/spec/css/custom_properties/000077500000000000000000000000001355712145100223765ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/css/custom_properties/error.hrx000066400000000000000000000117061355712145100242570ustar00rootroot00000000000000<===> empty/input.scss // CSS requires at least one token in a custom property. .empty { --property:; } <===> empty/error Error: Expected token. , 3 | --property:; | ^ ' input.scss 3:14 root stylesheet <===> empty/error-libsass Error: Custom property values may not be empty. on line 3:13 of input.scss >> --property:; ------------^ <===> ================================================================================ <===> empty_interpolation/input.scss // CSS requires at least one token in a custom property. .empty { --property:#{""}; } <===> empty_interpolation/error Error: Custom property values may not be empty. , 3 | --property:#{""}; | ^^^^^ ' input.scss 3:14 root stylesheet <===> empty_interpolation/error-libsass Error: Custom property values may not be empty. on line 3:13 of input.scss >> --property:#{""}; ------------^ <===> ================================================================================ <===> nested/options.yml --- :todo: - libsass <===> nested/input.sass .no-nesting --foo: bar baz: qux <===> nested/error Error: Illegal nesting: Nothing may be nested beneath custom properties. on line 3 of /sass/spec/css/custom_properties/error/no_nesting/input.sass Use --trace for backtrace. <===> nested/error-dart-sass Error: Nothing may be indented beneath a custom property. , 3 | baz: qux | ^ ' input.sass 3:5 root stylesheet <===> ================================================================================ <===> brackets/curly/input.scss .curly { --prop: }; } <===> brackets/curly/error Error: Invalid CSS after " --prop: };": expected selector or at-rule, was "}" on line 3 of /sass/spec/css/custom_properties/error/unmatched_brackets/curly/input.scss Use --trace for backtrace. <===> brackets/curly/error-dart-sass Error: unmatched "}". , 3 | } | ^ ' input.scss 3:1 root stylesheet <===> ================================================================================ <===> brackets/paren/input.scss .paren { --prop: ); } <===> brackets/paren/error Error: Invalid CSS after " --prop: ": expected "}", was ");" on line 2 of /sass/spec/css/custom_properties/error/unmatched_brackets/paren/input.scss Use --trace for backtrace. <===> brackets/paren/error-dart-sass Error: expected ";". , 2 | --prop: ); | ^ ' input.scss 2:11 root stylesheet <===> brackets/paren/error-libsass Error: Invalid CSS after " --prop:": expected "}", was ");" on line 2 of /sass/spec/css/custom_properties/error/unmatched_brackets/paren/input.scss Use --trace for backtrace. <===> ================================================================================ <===> brackets/square/input.scss .square { --prop: ]; } <===> brackets/square/error Error: Invalid CSS after " --prop: ": expected "}", was "];" on line 2 of /sass/spec/css/custom_properties/error/unmatched_brackets/square/input.scss Use --trace for backtrace. <===> brackets/square/error-dart-sass Error: expected ";". , 2 | --prop: ]; | ^ ' input.scss 2:11 root stylesheet <===> brackets/square/error-libsass Error: Invalid CSS after " --prop:": expected "}", was "];" on line 2 of /sass/spec/css/custom_properties/error/unmatched_brackets/square/input.scss Use --trace for backtrace. <===> ================================================================================ <===> brackets/curly_in_square/input.scss .curly-in-square { --prop: [{]; } <===> brackets/curly_in_square/error Error: Invalid CSS after " --prop: [{": expected "}", was "];" on line 2 of /sass/spec/css/custom_properties/error/unmatched_brackets/curly_in_square/input.scss Use --trace for backtrace. <===> brackets/curly_in_square/error-dart-sass Error: expected "}". , 2 | --prop: [{]; | ^ ' input.scss 2:13 root stylesheet <===> ================================================================================ <===> brackets/paren_in_curly/input.scss .paren-in-curly { --prop: {(}; } <===> brackets/paren_in_curly/error Error: Invalid CSS after " --prop: {(": expected ")", was "};" on line 2 of /sass/spec/css/custom_properties/error/unmatched_brackets/paren_in_curly/input.scss Use --trace for backtrace. <===> brackets/paren_in_curly/error-dart-sass Error: expected ")". , 2 | --prop: {(}; | ^ ' input.scss 2:13 root stylesheet <===> ================================================================================ <===> brackets/square_in_paren/input.scss .square-in-paren { --prop: ([); } <===> brackets/square_in_paren/error Error: Invalid CSS after " --prop: ([": expected "]", was ");" on line 2 of /sass/spec/css/custom_properties/error/unmatched_brackets/square_in_paren/input.scss Use --trace for backtrace. <===> brackets/square_in_paren/error-dart-sass Error: expected "]". , 2 | --prop: ([); | ^ ' input.scss 2:13 root stylesheet sass-spec-libsass-3.6.3/spec/css/custom_properties/exclamation.hrx000066400000000000000000000014051355712145100254250ustar00rootroot00000000000000<===> input.scss .exclamation { // `!` is technically not allowed at the top-level of a custom property, but // that's only because `!important` is filtered out before the custom property // is parsed by the CSS parser. As far as Sass is concerned, it's fine. --important: value !important; // We even allow constructions like these for forwards-compatibility with // additional flags or syntax CSS might add. --multiple: !important !important; --other-word: !something; --in-identifier: foo!bar; --just-exclam: !; --just-exclams: !!!!!!!; } <===> output.css .exclamation { --important: value !important; --multiple: !important !important; --other-word: !something; --in-identifier: foo!bar; --just-exclam: !; --just-exclams: !!!!!!!; } sass-spec-libsass-3.6.3/spec/css/custom_properties/indentation.hrx000066400000000000000000000013201355712145100254310ustar00rootroot00000000000000<===> options.yml --- :todo: - libsass <===> input.scss .indentation { --simple: { foo: bar; }; --empty-line: { foo: bar; baz: bang; }; --multi-level: { one two three four }; --all-indented: { foo: bar; }; --below-base: foo bar baz; --deep-base: { foo: bar; }; --hard-tabs: { foo: bar; }; } <===> output.css .indentation { --simple: { foo: bar; }; --empty-line: { foo: bar; baz: bang; }; --multi-level: { one two three four }; --all-indented: { foo: bar; }; --below-base: foo bar baz; --deep-base: { foo: bar; }; --hard-tabs: { foo: bar; }; } sass-spec-libsass-3.6.3/spec/css/custom_properties/name_interpolation.hrx000066400000000000000000000016041355712145100270110ustar00rootroot00000000000000<===> input.scss .name-interpolation { // If the entire name is interpolated, SassScript is allowed on the // right-hand side because we don't know it's a custom property at parse time. #{--entire}: 1 + 2; // Same if the first hyphen is interpolated. -#{-first-hyphen}: 1 + 2; // But if the name is interpolated, the right-hand side is static. --#{only-name}: 1 + 2; // However, interpolation is still allowed on the right-hand side. --#{only-name-interp-value}: #{1 + 2}; // The name can also be partially interpolated. --#{initial}-interp: 1 + 2; --midd#{le-int}erp: 1 + 2; --final-#{interp}: 1 + 2; --#{doub}le-int#{erp}: 1 + 2; } <===> output.css .name-interpolation { --entire: 3; --first-hyphen: 3; --only-name: 1 + 2; --only-name-interp-value: 3; --initial-interp: 1 + 2; --middle-interp: 1 + 2; --final-interp: 1 + 2; --double-interp: 1 + 2; } sass-spec-libsass-3.6.3/spec/css/custom_properties/nesting_characters.hrx000066400000000000000000000012131355712145100267640ustar00rootroot00000000000000<===> input.scss .nesting-characters { --parens: (foo; (bar: baz;) bang!); --curly: {foo; {bar: baz;} bang!}; --square: [foo; [bar: baz;] bang!]; --multiple: [({{([])}})]; // Nested properties aren't supported in custom properties. --nested-props: {foo: bar;}; // A property that's ambiguous with a nested selector is interpreted as a // custom property. --ambiguous:foo {bar: baz;}; } <===> output.css .nesting-characters { --parens: (foo; (bar: baz;) bang!); --curly: {foo; {bar: baz;} bang!}; --square: [foo; [bar: baz;] bang!]; --multiple: [({{([])}})]; --nested-props: {foo: bar;}; --ambiguous:foo {bar: baz;}; } sass-spec-libsass-3.6.3/spec/css/custom_properties/script.hrx000066400000000000000000000005531355712145100244300ustar00rootroot00000000000000<===> input.scss .script { // All script values except interpolation are interpreted statically. --variable: $variable; --operator: 1 + 1; --function: red(#ffffff); --list: (a b c); --map: (a: b, c: d); } <===> output.css .script { --variable: $variable; --operator: 1 + 1; --function: red(#ffffff); --list: (a b c); --map: (a: b, c: d); } sass-spec-libsass-3.6.3/spec/css/custom_properties/simple.hrx000066400000000000000000000013071355712145100244130ustar00rootroot00000000000000<===> input.scss .simple { --single: value; --multiple: value1 value2; --function: foo(bar); --url: url(http://foo.com/bar); --color: #foo; --exponent: 12.6e7; --close-comment: */; // The whitespace here DOES count as a token and needs to be preserved. --empty: ; // Single-line comments are not supported in variables. --single-line: // ( ); // Extra whitespace isn't added. --no-extra-whitespace:value; } <===> output.css .simple { --single: value; --multiple: value1 value2; --function: foo(bar); --url: url(http://foo.com/bar); --color: #foo; --exponent: 12.6e7; --close-comment: */; --empty: ; --single-line: // ( ); --no-extra-whitespace:value; } sass-spec-libsass-3.6.3/spec/css/custom_properties/strings.hrx000066400000000000000000000005531355712145100246150ustar00rootroot00000000000000<===> input.scss .strings { // Strings are tokenized as units, so their contents shouldn't affect anything // else. --text: "foo"; --bang: "!"; --semicolon: ";"; --square: "]["; --curly: "}{"; --parens: ")("; } <===> output.css .strings { --text: "foo"; --bang: "!"; --semicolon: ";"; --square: "]["; --curly: "}{"; --parens: ")("; } sass-spec-libsass-3.6.3/spec/css/custom_properties/syntax.hrx000066400000000000000000000022571355712145100244550ustar00rootroot00000000000000<===> options.yml --- :todo: - sass/libsass#2987 <===> ================================================================================ <===> initial_digit/declare/input.scss a {--1: b} <===> initial_digit/declare/output.css a { --1: b; } <===> ================================================================================ <===> initial_digit/use/input.scss a {b: var(--1)} <===> initial_digit/use/output.css a { b: var(--1); } <===> ================================================================================ <===> double_dash/declare/input.scss a {--: b} <===> double_dash/declare/output.css a { --: b; } <===> ================================================================================ <===> double_dash/use/input.scss a {b: var(--)} <===> double_dash/use/output.css a { b: var(--); } <===> ================================================================================ <===> triple_dash/declare/input.scss a {---: b} <===> triple_dash/declare/output.css a { ---: b; } <===> ================================================================================ <===> triple_dash/use/input.scss a {b: var(---)} <===> triple_dash/use/output.css a { b: var(---); } sass-spec-libsass-3.6.3/spec/css/custom_properties/trailing_whitespace.hrx000066400000000000000000000010471355712145100271500ustar00rootroot00000000000000<===> input.scss .trailing-whitespace { --space: value ; --tab: value ; --newline: value ; --before-closing-brace: value } <===> output.css .trailing-whitespace { --space: value ; --tab: value ; --newline: value ; --before-closing-brace: value ; } <===> output-dart-sass.css .trailing-whitespace { --space: value ; --tab: value ; --newline: value ; --before-closing-brace: value ; } <===> output-libsass.css .trailing-whitespace { --space: value ; --tab: value ; --newline: value ; --before-closing-brace: value ; } sass-spec-libsass-3.6.3/spec/css/custom_properties/value_interpolation.hrx000066400000000000000000000006531355712145100272100ustar00rootroot00000000000000<===> input.scss .value-interpolation { // Interpolation is the only Sass construct that's supported in custom // variables. --alone: #{1 + 2}; --in-list: a #{1 + 2} c; --in-ident: foo#{1 + 2}bar; --in-string: "foo#{1 + 2}bar"; --in-uri: uri(foo#{1 + 2}bar); } <===> output.css .value-interpolation { --alone: 3; --in-list: a 3 c; --in-ident: foo3bar; --in-string: "foo3bar"; --in-uri: uri(foo3bar); } sass-spec-libsass-3.6.3/spec/css/custom_properties/without_semicolon.hrx000066400000000000000000000007221355712145100266750ustar00rootroot00000000000000<===> input.scss .simple-value { // A custom property at the end of a style rule doesn't need a semicolon. --without-semicolon: value } .bracketed-value { --without-semicolon: { a: b } } <===> output.css .simple-value { --without-semicolon: value ; } .bracketed-value { --without-semicolon: { a: b } ; } <===> output-libsass.css .simple-value { --without-semicolon: value ; } .bracketed-value { --without-semicolon: { a: b } ; } sass-spec-libsass-3.6.3/spec/css/directive_with_lots_of_whitespace.hrx000066400000000000000000000000731355712145100263050ustar00rootroot00000000000000<===> input.scss @foo "bar"; <===> output.css @foo "bar"; sass-spec-libsass-3.6.3/spec/css/empty_block_directive.hrx000066400000000000000000000000631355712145100237000ustar00rootroot00000000000000<===> input.scss @foo {} <===> output.css @foo {} sass-spec-libsass-3.6.3/spec/css/function_name_identifiers.hrx000066400000000000000000000002611355712145100245440ustar00rootroot00000000000000<===> input.scss a { b: url; c: calc; d: element; e: expression; f: progid; } <===> output.css a { b: url; c: calc; d: element; e: expression; f: progid; } sass-spec-libsass-3.6.3/spec/css/keyframes.hrx000066400000000000000000000002301355712145100213140ustar00rootroot00000000000000<===> bubble/empty/input.scss // Regression test for sass/dart-sass#611. a { @keyframes {/**/} } <===> bubble/empty/output.css @keyframes { /**/ } sass-spec-libsass-3.6.3/spec/css/media/000077500000000000000000000000001355712145100176675ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/css/media/range/000077500000000000000000000000001355712145100207635ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/css/media/range/error.hrx000066400000000000000000000132221355712145100226370ustar00rootroot00000000000000<===> invalid_binary_operator/README.md The SassScript binary operators `=`, `>`, `>=`, `<`, and `<=` aren't allowed in media query expressions, since they can create syntactic ambiguities. <===> ================================================================================ <===> invalid_binary_operator/before_colon/input.scss // Even though this isn't *technically* ambiguous, disallowing it makes parsing // much easier because you don't have to disambiguate what the first `<` (or // other comparison operator) is. @media (1 < 2: 10px) {a {b: c}} <===> invalid_binary_operator/before_colon/error Error: expected ")". , 4 | @media (1 < 2: 10px) {a {b: c}} | ^ ' input.scss 4:14 root stylesheet <===> ================================================================================ <===> invalid_binary_operator/in_subexpression/input.scss // Even though `1 < 2` here isn't syntactically at the top-level, because `<` // binds more tightly than `or`, it's disallowed because it's not in parentheses // or square brackets. @media (1 < 2 or false = width) {a {b: c}} <===> invalid_binary_operator/in_subexpression/error Error: expected ")". , 4 | @media (1 < 2 or false = width) {a {b: c}} | ^ ' input.scss 4:24 root stylesheet <===> ================================================================================ <===> invalid_binary_operator/lt/input.scss @media (1 < width < 2 < 3) {a {b: c}} <===> invalid_binary_operator/lt/error Error: expected ")". , 1 | @media (1 < width < 2 < 3) {a {b: c}} | ^ ' input.scss 1:23 root stylesheet <===> ================================================================================ <===> invalid_binary_operator/lte/input.scss @media (1 <= width <= 2 <= 3) {a {b: c}} <===> invalid_binary_operator/lte/error Error: expected ")". , 1 | @media (1 <= width <= 2 <= 3) {a {b: c}} | ^ ' input.scss 1:25 root stylesheet <===> ================================================================================ <===> invalid_binary_operator/eq/input.scss @media (1 = 2 = width) {a {b: c}} <===> invalid_binary_operator/eq/error Error: expected ")". , 1 | @media (1 = 2 = width) {a {b: c}} | ^ ' input.scss 1:15 root stylesheet <===> ================================================================================ <===> invalid_binary_operator/gte/input.scss @media (3 >= width >= 2 >= 1) {a {b: c}} <===> invalid_binary_operator/gte/error Error: expected ")". , 1 | @media (3 >= width >= 2 >= 1) {a {b: c}} | ^ ' input.scss 1:25 root stylesheet <===> ================================================================================ <===> invalid_binary_operator/gt/input.scss @media (3 > width > 2 > 1) {a {b: c}} <===> invalid_binary_operator/gt/error Error: expected ")". , 1 | @media (3 > width > 2 > 1) {a {b: c}} | ^ ' input.scss 1:23 root stylesheet <===> ================================================================================ <===> invalid_comparison/README.md The `<=` and `>=` comparison operators may not contain spaces. <===> ================================================================================ <===> invalid_comparison/lte/input.scss @media (width < = 100px) {a {b: c}} <===> invalid_comparison/lte/error Error: Expected expression. , 1 | @media (width < = 100px) {a {b: c}} | ^ ' input.scss 1:17 root stylesheet <===> ================================================================================ <===> invalid_comparison/gte/input.scss @media (width > = 100px) {a {b: c}} <===> invalid_comparison/gte/error Error: Expected expression. , 1 | @media (width > = 100px) {a {b: c}} | ^ ' input.scss 1:17 root stylesheet <===> ================================================================================ <===> invalid_comparison/range_gte/input.scss @media (10px > width > = 1px) {a {b: c}} <===> invalid_comparison/range_gte/error Error: Expected expression. , 1 | @media (10px > width > = 1px) {a {b: c}} | ^ ' input.scss 1:24 root stylesheet <===> ================================================================================ <===> mismatched_range/README.md A range-format media feature must have the first operator match the second. <===> ================================================================================ <===> mismatched_range/gt_lt/input.scss @media (1px > width < 2px) {a {b: c}} <===> mismatched_range/gt_lt/error Error: expected ")". , 1 | @media (1px > width < 2px) {a {b: c}} | ^ ' input.scss 1:21 root stylesheet <===> ================================================================================ <===> mismatched_range/gte_lte/input.scss @media (1px >= width <= 2px) {a {b: c}} <===> mismatched_range/gte_lte/error Error: expected ")". , 1 | @media (1px >= width <= 2px) {a {b: c}} | ^ ' input.scss 1:22 root stylesheet <===> ================================================================================ <===> mismatched_range/lt_gt/input.scss @media (1px < width > 2px) {a {b: c}} <===> mismatched_range/lt_gt/error Error: expected ")". , 1 | @media (1px < width > 2px) {a {b: c}} | ^ ' input.scss 1:21 root stylesheet <===> ================================================================================ <===> mismatched_range/lte_gte/input.scss @media (1px <= width >= 2px) {a {b: c}} <===> mismatched_range/lte_gte/error Error: expected ")". , 1 | @media (1px <= width >= 2px) {a {b: c}} | ^ ' input.scss 1:22 root stylesheet sass-spec-libsass-3.6.3/spec/css/media/range/from_interpolation.hrx000066400000000000000000000013541355712145100254230ustar00rootroot00000000000000<===> input.scss // Range syntax that's generated by interpolation is allowed. This falls out of // the general property that CSS media features are parsed as // s. @media #{"(100px < width < 500px)"} {a {interpolation: total}} @media (#{"100px < width < 500px"}) {a {interpolation: in-parens}} @media (#{"100px < width"} < 500px) {a {interpolation: left}} @media (100px < #{"width < 500px"}) {a {interpolation: right}} <===> output.css @media (100px < width < 500px) { a { interpolation: total; } } @media (100px < width < 500px) { a { interpolation: in-parens; } } @media (100px < width < 500px) { a { interpolation: left; } } @media (100px < width < 500px) { a { interpolation: right; } } sass-spec-libsass-3.6.3/spec/css/media/range/options.yml000066400000000000000000000000251355712145100231760ustar00rootroot00000000000000--- :todo: - libsass sass-spec-libsass-3.6.3/spec/css/media/range/static.hrx000066400000000000000000000031731355712145100230010ustar00rootroot00000000000000<===> input.scss // Plain CSS examples of the media query range syntax. // Test all the comparison operators. @media (height < 600px) {a {b: c}} @media (height <= 600px) {a {b: c}} @media (height = 600px) {a {b: c}} @media (height >= 600px) {a {b: c}} @media (height > 600px) {a {b: c}} // Test all the range operators. @media (10px < width < 15px) {a {b: c}} @media (10px < width <= 15px) {a {b: c}} @media (10px <= width < 15px) {a {b: c}} @media (10px <= width <= 15px) {a {b: c}} @media (10px > width > 15px) {a {b: c}} @media (10px > width >= 15px) {a {b: c}} @media (10px >= width > 15px) {a {b: c}} @media (10px >= width >= 15px) {a {b: c}} // Ratio syntax should fall out from Sass's existing rules for handling `/`. @media (device-aspect-ratio > 3/2) {a {b: c}} @media (3/2 < device-aspect-ratio < 16/9) {a {b: c}} <===> output.css @media (height < 600px) { a { b: c; } } @media (height <= 600px) { a { b: c; } } @media (height = 600px) { a { b: c; } } @media (height >= 600px) { a { b: c; } } @media (height > 600px) { a { b: c; } } @media (10px < width < 15px) { a { b: c; } } @media (10px < width <= 15px) { a { b: c; } } @media (10px <= width < 15px) { a { b: c; } } @media (10px <= width <= 15px) { a { b: c; } } @media (10px > width > 15px) { a { b: c; } } @media (10px > width >= 15px) { a { b: c; } } @media (10px >= width > 15px) { a { b: c; } } @media (10px >= width >= 15px) { a { b: c; } } @media (device-aspect-ratio > 3/2) { a { b: c; } } @media (3/2 < device-aspect-ratio < 16/9) { a { b: c; } } sass-spec-libsass-3.6.3/spec/css/media/range/with_expressions.hrx000066400000000000000000000030201355712145100251160ustar00rootroot00000000000000<===> input.scss // Media query range syntax with SassScript expressions. // Single comparisons. $width: width; @media ($width < 600px) {a {dynamic: left}} @media (width < 500px + 100px) {a {dynamic: right}} @media ($width < 500px + 100px) {a {dynamic: both}} @media ($width = 500px + 100px) {a {separator: equals}} // Ranges. @media (50px + 50px < width < 600px) {a {dynamic: left}} @media (100px < $width < 600px) {a {dynamic: middle}} @media (100px < width < 500px + 100px) {a {dynamic: right}} @media (50px + 50px < $width < 500px + 100px) {a {dynamic: all}} // Comparison operators are allowed as long as they're not at the top level. @media (width < (1 < 2)) {a {comparison: in-operator}} @media (width < if(1 < 2, 500px, 600px)) {a {comparison: in-function}} @media (width < [1 < 2]) {a {comparison: in-square-brackets}} <===> output.css @media (width < 600px) { a { dynamic: left; } } @media (width < 600px) { a { dynamic: right; } } @media (width < 600px) { a { dynamic: both; } } @media (width = 600px) { a { separator: equals; } } @media (100px < width < 600px) { a { dynamic: left; } } @media (100px < width < 600px) { a { dynamic: middle; } } @media (100px < width < 600px) { a { dynamic: right; } } @media (100px < width < 600px) { a { dynamic: all; } } @media (width < true) { a { comparison: in-operator; } } @media (width < 500px) { a { comparison: in-function; } } @media (width < [true]) { a { comparison: in-square-brackets; } } sass-spec-libsass-3.6.3/spec/css/min_max/000077500000000000000000000000001355712145100202405ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/css/min_max/error.hrx000066400000000000000000000024231355712145100221150ustar00rootroot00000000000000<===> plain_css_function/input.scss // A plain CSS function causes min() to be parsed as Sass, and then fail at // runtime because the argument isn't a number. .plain-css-function { x: min(something(1px), 2px); } <===> plain_css_function/error Error: something(1px) is not a number. , 4 | x: min(something(1px), 2px); | ^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 4:6 root stylesheet <===> plain_css_function/error-libsass Error: "something(1px)" is not a number for `min' on line 4:6 of /sass/spec/css/min_max/error/plain_css_function/input.scss, in function `min` from line 4:6 of /sass/spec/css/min_max/error/plain_css_function/input.scss >> x: min(something(1px), 2px); -----^ <===> dangling_operator/input.scss // A dangling operator is a syntax error in both syntaxes, so it should fail to // compile. .dangling-operator { x: min(1px +, 2px); } <===> dangling_operator/error Error: Expected expression. , 4 | x: min(1px +, 2px); | ^ ' input.scss 4:15 root stylesheet <===> dangling_operator/error-libsass Error: Invalid CSS after " x: min(1px +": expected expression (e.g. 1px, bold), was ", 2px);" on line 4:15 of /sass/spec/css/min_max/error/dangling_operator/input.scss >> x: min(1px +, 2px); --------------^ sass-spec-libsass-3.6.3/spec/css/min_max/plain_css.hrx000066400000000000000000000032441355712145100227410ustar00rootroot00000000000000<===> options.yml --- :todo: - libsass <===> input.scss // If a min() or max() function would be a valid plain CSS value, possibly // including interoplation, parse it as plain CSS. .plain-css { number: min(1px) max(1px); interpolation: min(#{1px + 2px}) max(#{1px + 2px}); nested-min-max: min(max(1px, 2px)) max(min(1px, 2px)); calc: min(calc(10% + 1px)) max(calc(10% + 1px)); env: min(env(--foo), env(@&[*^{$(*)&}@^]%$), env(inter#{p + o}lated)) max(env(--foo), env(@&[*^{$(*)&}@^]%$), env(inter#{p + o}lated)); var: min(var(--foo), var(@&[*^{$(*)&}@^]%$), var(inter#{p + o}lated)) max(var(--foo), var(@&[*^{$(*)&}@^]%$), var(inter#{p + o}lated)); operations: min(1px - 2px * 3px / 4px) max(1px - 2px * 3px / 4px); parens: min((1px + 2px) * 3px) max((1px + 2px) * 3px); two-arguments: min(1px, 2px) max(1px, 2px); three-arguments: min(1px, 2px, 3px) max(1px, 2px, 3px); case-insensitive: mIn(1px + 2px) MaX(1px + 2px); } <===> output.css .plain-css { number: min(1px) max(1px); interpolation: min(3px) max(3px); nested-min-max: min(max(1px, 2px)) max(min(1px, 2px)); calc: min(calc(10% + 1px)) max(calc(10% + 1px)); env: min(env(--foo), env(@&[*^{$(*)&}@^]%$), env(interpolated)) max(env(--foo), env(@&[*^{$(*)&}@^]%$), env(interpolated)); var: min(var(--foo), var(@&[*^{$(*)&}@^]%$), var(interpolated)) max(var(--foo), var(@&[*^{$(*)&}@^]%$), var(interpolated)); operations: min(1px - 2px * 3px / 4px) max(1px - 2px * 3px / 4px); parens: min((1px + 2px) * 3px) max((1px + 2px) * 3px); two-arguments: min(1px, 2px) max(1px, 2px); three-arguments: min(1px, 2px, 3px) max(1px, 2px, 3px); case-insensitive: min(1px + 2px) max(1px + 2px); } sass-spec-libsass-3.6.3/spec/css/min_max/sass_function.hrx000066400000000000000000000010651355712145100236430ustar00rootroot00000000000000<===> input.scss // If a min() or max() function uses a SassScript feature, parse it as Sass. .sass-function { $two-px: 2px; variable: min(1px, $two-px) max(1px, $two-px); function: min(1px, floor(10.6px)) max(1px, floor(10.6px)); nested-min-max: min(1px, max($two-px, 3px)) max(1px, min($two-px, 3px)); modulo: min(1px, 7px % 4) max(1px, 7px % 4); trailing-comma: min(1px, 2px,) max(1px, 2px,); } <===> output.css .sass-function { variable: 1px 2px; function: 1px 10px; nested-min-max: 1px 2px; modulo: 1px 3px; trailing-comma: 1px 2px; } sass-spec-libsass-3.6.3/spec/css/moz_document/000077500000000000000000000000001355712145100213135ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/css/moz_document/README.md000066400000000000000000000020371355712145100225740ustar00rootroot00000000000000`@-moz-document` is a Firefox-specific at-rule that was originally based on a draft of the [CSS Conditional Rules][] module. It's syntactically unusual in that it defines a url-prefix() "function" that takes an unquoted URL. This can't be parsed using Sass's normal unknown-at-rule parsing, since it may contain the characters `//` that should not be interpreted as a single-line comment. [CSS Conditional Rules]: https://www.w3.org/TR/css3-conditional/ However, support for `@-moz-document` is [being removed from Firefox][] for security concerns. Sass support for them should be deprecated and eventually removed; see [issue 2529][] for details. These specs track deprecated support for the old syntax, as well as the special case of `@-moz-document url-prefix()` which is still supported at time of writing as a hack for targeting CSS at Firefox only. [being removed from Firefox]: https://www.fxsitecompat.com/en-CA/docs/2018/moz-document-support-has-been-dropped-except-for-empty-url-prefix/ [issue 2529]: https://github.com/sass/sass/issues/2529 sass-spec-libsass-3.6.3/spec/css/moz_document/empty_prefix.hrx000066400000000000000000000012121355712145100245450ustar00rootroot00000000000000<===> input.scss // An empty url-prefix() should not be deprecated yet, as it's still supported // in Firefox's release channel at time of writing. @-moz-document url-prefix() { a {b: c} } @-moz-document url-prefix("") { a {b: c} } @-moz-document url-prefix('') { a {b: c} } <===> output.css @-moz-document url-prefix() { a { b: c; } } @-moz-document url-prefix("") { a { b: c; } } @-moz-document url-prefix("") { a { b: c; } } <===> output-libsass.css @-moz-document url-prefix() { a { b: c; } } @-moz-document url-prefix("") { a { b: c; } } @-moz-document url-prefix('') { a { b: c; } } sass-spec-libsass-3.6.3/spec/css/moz_document/functions/000077500000000000000000000000001355712145100233235ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/css/moz_document/functions/interpolated.hrx000066400000000000000000000113701355712145100265420ustar00rootroot00000000000000<===> options.yml --- :todo: - libsass <===> input.scss @-moz-document url(#{"sass-lang.com"}) { a {type: unquoted full url} } @-moz-document url(#{sa + ss}-lang.com) { a {type: unquoted partial url} } @-moz-document url("#{sa + ss}-lang.com") { a {type: quoted partial url} } @-moz-document url-prefix(#{"https://sass-lang.com/docs"}) { a {type: unquoted full url-prefix} } @-moz-document url-prefix(#{ht + tps}://sass-lang.com/docs) { a {type: unquoted partial url-prefix} } @-moz-document url-prefix("#{ht + tps}://sass-lang.com/docs") { a {type: quoted partial url-prefix} } @-moz-document domain(#{"sass-lang.com"}) { a {type: unquoted full domain} } @-moz-document domain(#{sa + ss}-lang.com) { a {type: unquoted partial domain} } @-moz-document domain("#{sa + ss}-lang.com") { a {type: quoted partial domain} } @-moz-document regexp("#{ht + tp}s:.*") { a {type: regexp} } <===> output.css @-moz-document url(sass-lang.com) { a { type: unquoted full url; } } @-moz-document url(sass-lang.com) { a { type: unquoted partial url; } } @-moz-document url("sass-lang.com") { a { type: quoted partial url; } } @-moz-document url-prefix(https://sass-lang.com/docs) { a { type: unquoted full url-prefix; } } @-moz-document url-prefix(https://sass-lang.com/docs) { a { type: unquoted partial url-prefix; } } @-moz-document url-prefix("https://sass-lang.com/docs") { a { type: quoted partial url-prefix; } } @-moz-document domain(sass-lang.com) { a { type: unquoted full domain; } } @-moz-document domain(sass-lang.com) { a { type: unquoted partial domain; } } @-moz-document domain("sass-lang.com") { a { type: quoted partial domain; } } @-moz-document regexp("https:.*") { a { type: regexp; } } <===> warning DEPRECATION WARNING on line 1, column 1 of input.scss: @-moz-document is deprecated and support will be removed from Sass in a future relase. For details, see http://bit.ly/moz-document. , 1 | / @-moz-document url(#{"sass-lang.com"}) { 2 | | a {type: unquoted full url} 3 | \ } ' DEPRECATION WARNING on line 4, column 1 of input.scss: @-moz-document is deprecated and support will be removed from Sass in a future relase. For details, see http://bit.ly/moz-document. , 4 | / @-moz-document url(#{sa + ss}-lang.com) { 5 | | a {type: unquoted partial url} 6 | \ } ' DEPRECATION WARNING on line 7, column 1 of input.scss: @-moz-document is deprecated and support will be removed from Sass in a future relase. For details, see http://bit.ly/moz-document. , 7 | / @-moz-document url("#{sa + ss}-lang.com") { 8 | | a {type: quoted partial url} 9 | \ } ' DEPRECATION WARNING on line 11, column 1 of input.scss: @-moz-document is deprecated and support will be removed from Sass in a future relase. For details, see http://bit.ly/moz-document. , 11 | / @-moz-document url-prefix(#{"https://sass-lang.com/docs"}) { 12 | | a {type: unquoted full url-prefix} 13 | \ } ' DEPRECATION WARNING on line 14, column 1 of input.scss: @-moz-document is deprecated and support will be removed from Sass in a future relase. For details, see http://bit.ly/moz-document. , 14 | / @-moz-document url-prefix(#{ht + tps}://sass-lang.com/docs) { 15 | | a {type: unquoted partial url-prefix} 16 | \ } ' DEPRECATION WARNING on line 17, column 1 of input.scss: @-moz-document is deprecated and support will be removed from Sass in a future relase. For details, see http://bit.ly/moz-document. , 17 | / @-moz-document url-prefix("#{ht + tps}://sass-lang.com/docs") { 18 | | a {type: quoted partial url-prefix} 19 | \ } ' DEPRECATION WARNING on line 21, column 1 of input.scss: @-moz-document is deprecated and support will be removed from Sass in a future relase. For details, see http://bit.ly/moz-document. , 21 | / @-moz-document domain(#{"sass-lang.com"}) { 22 | | a {type: unquoted full domain} 23 | \ } ' DEPRECATION WARNING on line 24, column 1 of input.scss: @-moz-document is deprecated and support will be removed from Sass in a future relase. For details, see http://bit.ly/moz-document. , 24 | / @-moz-document domain(#{sa + ss}-lang.com) { 25 | | a {type: unquoted partial domain} 26 | \ } ' DEPRECATION WARNING on line 27, column 1 of input.scss: @-moz-document is deprecated and support will be removed from Sass in a future relase. For details, see http://bit.ly/moz-document. , 27 | / @-moz-document domain("#{sa + ss}-lang.com") { 28 | | a {type: quoted partial domain} 29 | \ } ' DEPRECATION WARNING on line 31, column 1 of input.scss: @-moz-document is deprecated and support will be removed from Sass in a future relase. For details, see http://bit.ly/moz-document. , 31 | / @-moz-document regexp("#{ht + tp}s:.*") { 32 | | a {type: regexp} 33 | \ } ' sass-spec-libsass-3.6.3/spec/css/moz_document/functions/static.hrx000066400000000000000000000061221355712145100253360ustar00rootroot00000000000000<===> input.scss @-moz-document url(sass-lang.com) { a {type: unquoted url} } @-moz-document url("sass-lang.com") { a {type: quoted url} } @-moz-document url-prefix(https://sass-lang.com/docs) { a {type: unquoted url-prefix} } @-moz-document url-prefix("https://sass-lang.com/docs") { a {type: quoted url-prefix} } @-moz-document domain(sass-lang.com) { a {type: unquoted domain} } @-moz-document domain("sass-lang.com") { a {type: quoted domain} } @-moz-document regexp("https:.*") { a {type: regexp} } <===> output.css @-moz-document url(sass-lang.com) { a { type: unquoted url; } } @-moz-document url("sass-lang.com") { a { type: quoted url; } } @-moz-document url-prefix(https://sass-lang.com/docs) { a { type: unquoted url-prefix; } } @-moz-document url-prefix("https://sass-lang.com/docs") { a { type: quoted url-prefix; } } @-moz-document domain(sass-lang.com) { a { type: unquoted domain; } } @-moz-document domain("sass-lang.com") { a { type: quoted domain; } } @-moz-document regexp("https:.*") { a { type: regexp; } } <===> warning DEPRECATION WARNING on line 1, column 1 of input.scss: @-moz-document is deprecated and support will be removed from Sass in a future relase. For details, see http://bit.ly/moz-document. , 1 | / @-moz-document url(sass-lang.com) { 2 | | a {type: unquoted url} 3 | \ } ' DEPRECATION WARNING on line 4, column 1 of input.scss: @-moz-document is deprecated and support will be removed from Sass in a future relase. For details, see http://bit.ly/moz-document. , 4 | / @-moz-document url("sass-lang.com") { 5 | | a {type: quoted url} 6 | \ } ' DEPRECATION WARNING on line 8, column 1 of input.scss: @-moz-document is deprecated and support will be removed from Sass in a future relase. For details, see http://bit.ly/moz-document. , 8 | / @-moz-document url-prefix(https://sass-lang.com/docs) { 9 | | a {type: unquoted url-prefix} 10| \ } ' DEPRECATION WARNING on line 11, column 1 of input.scss: @-moz-document is deprecated and support will be removed from Sass in a future relase. For details, see http://bit.ly/moz-document. , 11 | / @-moz-document url-prefix("https://sass-lang.com/docs") { 12 | | a {type: quoted url-prefix} 13 | \ } ' DEPRECATION WARNING on line 15, column 1 of input.scss: @-moz-document is deprecated and support will be removed from Sass in a future relase. For details, see http://bit.ly/moz-document. , 15 | / @-moz-document domain(sass-lang.com) { 16 | | a {type: unquoted domain} 17 | \ } ' DEPRECATION WARNING on line 18, column 1 of input.scss: @-moz-document is deprecated and support will be removed from Sass in a future relase. For details, see http://bit.ly/moz-document. , 18 | / @-moz-document domain("sass-lang.com") { 19 | | a {type: quoted domain} 20 | \ } ' DEPRECATION WARNING on line 22, column 1 of input.scss: @-moz-document is deprecated and support will be removed from Sass in a future relase. For details, see http://bit.ly/moz-document. , 22 | / @-moz-document regexp("https:.*") { 23 | | a {type: regexp} 24 | \ } ' sass-spec-libsass-3.6.3/spec/css/moz_document/multi_function.hrx000066400000000000000000000014721355712145100251010ustar00rootroot00000000000000<===> input.scss @-moz-document url(http://www.w3.org/), url-prefix(http://www.w3.org/Style/), domain(mozilla.org), regexp("https:.*") { a {b: c} } <===> output.css @-moz-document url(http://www.w3.org/), url-prefix(http://www.w3.org/Style/), domain(mozilla.org), regexp("https:.*") { a { b: c; } } <===> warning DEPRECATION WARNING on line 1, column 1 of input.scss: @-moz-document is deprecated and support will be removed from Sass in a future relase. For details, see http://bit.ly/moz-document. , 1 | / @-moz-document url(http://www.w3.org/), 2 | | url-prefix(http://www.w3.org/Style/), 3 | | domain(mozilla.org), 4 | | regexp("https:.*") { 5 | | a {b: c} 6 | \ } ' sass-spec-libsass-3.6.3/spec/css/moz_document/options.yml000066400000000000000000000000351355712145100235270ustar00rootroot00000000000000--- :warning_todo: - libsass sass-spec-libsass-3.6.3/spec/css/ms_long_filter_syntax.hrx000066400000000000000000000010131355712145100237370ustar00rootroot00000000000000<===> input.scss foo { filter: progid:DXImageTransform.Microsoft.gradient(GradientType=1, startColorstr=#c0ff3300, endColorstr=#ff000000); filter: progid:DXImageTransform.Microsoft.gradient(GradientType=1, startColorstr=#c0ff3300, endColorstr=#ff000000); } <===> output.css foo { filter: progid:DXImageTransform.Microsoft.gradient(GradientType=1, startColorstr=#c0ff3300, endColorstr=#ff000000); filter: progid:DXImageTransform.Microsoft.gradient(GradientType=1, startColorstr=#c0ff3300, endColorstr=#ff000000); } sass-spec-libsass-3.6.3/spec/css/plain/000077500000000000000000000000001355712145100177135ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/css/plain/README.md000066400000000000000000000007661355712145100212030ustar00rootroot00000000000000These specs are for CSS files that are imported by Sass, using `@import "foo"` to import `foo.css`. These files should be parsed as plain CSS, and should not allow any Sass-specific features. As a rule, anything in the plain CSS files that would be interpreted differently if it were SCSS should produce an error. Although some of these could theoretically be valid CSS, such as `@import url("#{foo}")`, it's much more likely that they're a mistake on the user's part that they should be notified of. sass-spec-libsass-3.6.3/spec/css/plain/boolean_operations.hrx000066400000000000000000000003131355712145100243150ustar00rootroot00000000000000<===> input.scss @import "plain"; <===> plain.css a { and: true and false; or: true or false; not: not true; } <===> output.css a { and: true and false; or: true or false; not: not true; } sass-spec-libsass-3.6.3/spec/css/plain/error/000077500000000000000000000000001355712145100210445ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/css/plain/error/expression.hrx000066400000000000000000000222721355712145100237730ustar00rootroot00000000000000<===> function/built_in/input.scss @import 'plain' <===> function/built_in/plain.css a { x: index(1 2 3, 1); } <===> function/built_in/error Error: This function isn't allowed in plain CSS. , 2 | x: index(1 2 3, 1); | ^^^^^^^^^^^^^^^ ' plain.css 2:6 @import input.scss 1:9 root stylesheet <===> ================================================================================ <===> function/variable_arguments/input.scss @import 'plain' <===> function/variable_arguments/plain.css a { x: hsl(0, 100%, 50%...); } <===> function/variable_arguments/error Error: expected ")". , 2 | x: hsl(0, 100%, 50%...); | ^ ' plain.css 2:22 @import input.scss 1:9 root stylesheet <===> ================================================================================ <===> function/keyword_arguments/input.scss @import 'plain' <===> function/keyword_arguments/plain.css a { x: hsl(0, 100%, $lightness: 50%); } <===> function/keyword_arguments/error Error: Sass variables aren't allowed in plain CSS. , 2 | x: hsl(0, 100%, $lightness: 50%); | ^^^^^^^^^^ ' plain.css 2:19 @import input.scss 1:9 root stylesheet <===> ================================================================================ <===> list/empty/input.scss @import 'plain' <===> list/empty/plain.css a { x: (); } <===> list/empty/error Error: Parentheses aren't allowed in plain CSS. , 2 | x: (); | ^ ' plain.css 2:6 @import input.scss 1:9 root stylesheet <===> ================================================================================ <===> list/empty_comma/input.scss @import 'plain' <===> list/empty_comma/plain.css a { x: (,); } <===> list/empty_comma/error Error: Parentheses aren't allowed in plain CSS. , 2 | x: (,); | ^ ' plain.css 2:6 @import input.scss 1:9 root stylesheet <===> ================================================================================ <===> map/input.scss @import 'plain' <===> map/plain.css a { x: (y: z); } <===> map/error Error: Parentheses aren't allowed in plain CSS. , 2 | x: (y: z); | ^ ' plain.css 2:6 @import input.scss 1:9 root stylesheet <===> ================================================================================ <===> parentheses/input.scss @import 'plain' <===> parentheses/plain.css a { x: (y); } <===> parentheses/error Error: Parentheses aren't allowed in plain CSS. , 2 | x: (y); | ^ ' plain.css 2:6 @import input.scss 1:9 root stylesheet <===> ================================================================================ <===> parent_selector/input.scss @import 'plain' <===> parent_selector/plain.css a { x: &; } <===> parent_selector/error Error: The parent selector isn't allowed in plain CSS. , 2 | x: &; | ^ ' plain.css 2:6 @import input.scss 1:9 root stylesheet <===> ================================================================================ <===> variable/use/input.scss @import 'plain' <===> variable/use/plain.css a { x: $var; } <===> variable/use/error Error: Sass variables aren't allowed in plain CSS. , 2 | x: $var; | ^^^^ ' plain.css 2:6 @import input.scss 1:9 root stylesheet <===> ================================================================================ <===> variable/declaration/input.scss @import 'plain' <===> variable/declaration/plain.css $var: value; <===> variable/declaration/error Error: Sass variables aren't allowed in plain CSS. , 1 | $var: value; | ^^^^ ' plain.css 1:1 @import input.scss 1:9 root stylesheet <===> ================================================================================ <===> interpolation/calc/input.scss @import 'plain' <===> interpolation/calc/plain.css a { w: calc(#{1px} + 10%); } <===> interpolation/calc/error Error: Interpolation isn't allowed in plain CSS. , 2 | w: calc(#{1px} + 10%); | ^^^^^^ ' plain.css 2:11 @import input.scss 1:9 root stylesheet <===> ================================================================================ <===> interpolation/identifier/input.scss @import 'plain' <===> interpolation/identifier/plain.css a { w: x#{y}z; } <===> interpolation/identifier/error Error: Interpolation isn't allowed in plain CSS. , 2 | w: x#{y}z; | ^^^^ ' plain.css 2:7 @import input.scss 1:9 root stylesheet <===> ================================================================================ <===> interpolation/quoted_string/input.scss @import 'plain' <===> interpolation/quoted_string/plain.css a { w: "x#{y}z"; } <===> interpolation/quoted_string/error Error: Interpolation isn't allowed in plain CSS. , 2 | w: "x#{y}z"; | ^^^^ ' plain.css 2:8 @import input.scss 1:9 root stylesheet <===> ================================================================================ <===> interpolation/standalone/input.scss @import 'plain' <===> interpolation/standalone/plain.css a { w: #{x}; } <===> interpolation/standalone/error Error: Interpolation isn't allowed in plain CSS. , 2 | w: #{x}; | ^^^^ ' plain.css 2:6 @import input.scss 1:9 root stylesheet <===> ================================================================================ <===> operation/addition/input.scss @import 'plain' <===> operation/addition/plain.css a { x: y + z; } <===> operation/addition/error Error: Operators aren't allowed in plain CSS. , 2 | x: y + z; | ^ ' plain.css 2:8 @import input.scss 1:9 root stylesheet <===> ================================================================================ <===> operation/subtraction/input.scss @import 'plain' <===> operation/subtraction/plain.css a { x: y - z; } <===> operation/subtraction/error Error: Operators aren't allowed in plain CSS. , 2 | x: y - z; | ^ ' plain.css 2:8 @import input.scss 1:9 root stylesheet <===> ================================================================================ <===> operation/multiplication/input.scss @import 'plain' <===> operation/multiplication/plain.css a { x: y * z; } <===> operation/multiplication/error Error: Operators aren't allowed in plain CSS. , 2 | x: y * z; | ^ ' plain.css 2:8 @import input.scss 1:9 root stylesheet <===> ================================================================================ <===> operation/modulo/input.scss @import 'plain' <===> operation/modulo/plain.css a { x: y % z; } <===> operation/modulo/error Error: Operators aren't allowed in plain CSS. , 2 | x: y % z; | ^ ' plain.css 2:8 @import input.scss 1:9 root stylesheet <===> ================================================================================ <===> operation/less_than/input.scss @import 'plain' <===> operation/less_than/plain.css a { x: y < z; } <===> operation/less_than/error Error: Operators aren't allowed in plain CSS. , 2 | x: y < z; | ^ ' plain.css 2:8 @import input.scss 1:9 root stylesheet <===> ================================================================================ <===> operation/less_than_or_equal/input.scss @import 'plain' <===> operation/less_than_or_equal/plain.css a { x: y <= z; } <===> operation/less_than_or_equal/error Error: Operators aren't allowed in plain CSS. , 2 | x: y <= z; | ^^ ' plain.css 2:8 @import input.scss 1:9 root stylesheet <===> ================================================================================ <===> operation/greater_than/input.scss @import 'plain' <===> operation/greater_than/plain.css a { x: y > z; } <===> operation/greater_than/error Error: Operators aren't allowed in plain CSS. , 2 | x: y > z; | ^ ' plain.css 2:8 @import input.scss 1:9 root stylesheet <===> ================================================================================ <===> operation/greater_than_or_equal/input.scss @import 'plain' <===> operation/greater_than_or_equal/plain.css a { x: y >= z; } <===> operation/greater_than_or_equal/error Error: Operators aren't allowed in plain CSS. , 2 | x: y >= z; | ^^ ' plain.css 2:8 @import input.scss 1:9 root stylesheet <===> ================================================================================ <===> operation/equals/input.scss @import 'plain' <===> operation/equals/plain.css a { x: y == z; } <===> operation/equals/error Error: Operators aren't allowed in plain CSS. , 2 | x: y == z; | ^^ ' plain.css 2:8 @import input.scss 1:9 root stylesheet <===> ================================================================================ <===> operation/not_equals/input.scss @import 'plain' <===> operation/not_equals/plain.css a { x: y != z; } <===> operation/not_equals/error Error: Operators aren't allowed in plain CSS. , 2 | x: y != z; | ^^ ' plain.css 2:8 @import input.scss 1:9 root stylesheet <===> ================================================================================ <===> silent_comment/input.scss @import 'plain' <===> silent_comment/plain.css a { b: c // d e; } <===> silent_comment/error Error: Silent comments aren't allowed in plain CSS. , 2 | b: c // d | ^^^^ ' plain.css 2:8 @import input.scss 1:9 root stylesheet sass-spec-libsass-3.6.3/spec/css/plain/error/options.yml000066400000000000000000000000251355712145100232570ustar00rootroot00000000000000--- :todo: - libsass sass-spec-libsass-3.6.3/spec/css/plain/error/statement.hrx000066400000000000000000000220411355712145100235720ustar00rootroot00000000000000<===> at_rule/at_root/input.scss @import 'plain' <===> at_rule/at_root/plain.css a { @at-root b { x: y; } } <===> at_rule/at_root/error Error: This at-rule isn't allowed in plain CSS. , 2 | @at-root b { | ^^^^^^^^^^^ ' plain.css 2:3 @import input.scss 1:9 root stylesheet <===> ================================================================================ <===> at_rule/content/input.scss @import 'plain' <===> at_rule/content/plain.css @content; <===> at_rule/content/error Error: This at-rule isn't allowed in plain CSS. , 1 | @content; | ^^^^^^^^ ' plain.css 1:1 @import input.scss 1:9 root stylesheet <===> ================================================================================ <===> at_rule/debug/input.scss @import 'plain' <===> at_rule/debug/plain.css @debug foo; <===> at_rule/debug/error Error: This at-rule isn't allowed in plain CSS. , 1 | @debug foo; | ^^^^^^^^^^ ' plain.css 1:1 @import input.scss 1:9 root stylesheet <===> ================================================================================ <===> at_rule/each/input.scss @import 'plain' <===> at_rule/each/plain.css @each $i in 1 2 3 { a { x: y; } } <===> at_rule/each/error Error: This at-rule isn't allowed in plain CSS. , 1 | @each $i in 1 2 3 { | ^^^^^^^^^^^^^^^^^^ ' plain.css 1:1 @import input.scss 1:9 root stylesheet <===> ================================================================================ <===> at_rule/error/input.scss @import 'plain' <===> at_rule/error/plain.css @error foo; <===> at_rule/error/error Error: This at-rule isn't allowed in plain CSS. , 1 | @error foo; | ^^^^^^^^^^ ' plain.css 1:1 @import input.scss 1:9 root stylesheet <===> ================================================================================ <===> at_rule/extend/input.scss @import 'plain' <===> at_rule/extend/plain.css a { @extend b; } <===> at_rule/extend/error Error: This at-rule isn't allowed in plain CSS. , 2 | @extend b; | ^^^^^^^^^ ' plain.css 2:3 @import input.scss 1:9 root stylesheet <===> ================================================================================ <===> at_rule/for/input.scss @import 'plain' <===> at_rule/for/plain.css @for $i from 1 to 5 { a { x: y; } } <===> at_rule/for/error Error: This at-rule isn't allowed in plain CSS. , 1 | @for $i from 1 to 5 { | ^^^^^^^^^^^^^^^^^^^^ ' plain.css 1:1 @import input.scss 1:9 root stylesheet <===> ================================================================================ <===> at_rule/function/input.scss @import 'plain' <===> at_rule/function/plain.css @function foo() { @return 1; } <===> at_rule/function/error Error: This at-rule isn't allowed in plain CSS. , 1 | @function foo() { | ^^^^^^^^^^^^^^^^ ' plain.css 1:1 @import input.scss 1:9 root stylesheet <===> ================================================================================ <===> at_rule/if/input.scss @import 'plain' <===> at_rule/if/plain.css @if true { a { x: y; } } <===> at_rule/if/error Error: This at-rule isn't allowed in plain CSS. , 1 | @if true { | ^^^^^^^^^ ' plain.css 1:1 @import input.scss 1:9 root stylesheet <===> ================================================================================ <===> at_rule/import/interpolated/input.scss @import 'plain' <===> at_rule/import/interpolated/plain.css @import url("foo#{bar}baz"); <===> at_rule/import/interpolated/error Error: Interpolation isn't allowed in plain CSS. , 1 | @import url("foo#{bar}baz"); | ^^^^^^ ' plain.css 1:17 @import input.scss 1:9 root stylesheet <===> ================================================================================ <===> at_rule/import/nested/input.scss @import 'plain' <===> at_rule/import/nested/plain.css a { @import "foo"; } <===> at_rule/import/nested/output.css a { @import "foo"; } <===> ================================================================================ <===> at_rule/import/multi/input.scss @import 'plain' <===> at_rule/import/multi/plain.css @import "foo", "bar"; <===> at_rule/import/multi/error Error: expected ";". , 1 | @import "foo", "bar"; | ^ ' plain.css 1:14 @import input.scss 1:9 root stylesheet <===> ================================================================================ <===> at_rule/include/input.scss @import 'plain' <===> at_rule/include/plain.css @include foo; <===> at_rule/include/error Error: This at-rule isn't allowed in plain CSS. , 1 | @include foo; | ^^^^^^^^^^^^ ' plain.css 1:1 @import input.scss 1:9 root stylesheet <===> ================================================================================ <===> at_rule/mixin/input.scss @import 'plain' <===> at_rule/mixin/plain.css @mixin foo { a { x: y; } } <===> at_rule/mixin/error Error: This at-rule isn't allowed in plain CSS. , 1 | @mixin foo { | ^^^^^^^^^^^ ' plain.css 1:1 @import input.scss 1:9 root stylesheet <===> ================================================================================ <===> at_rule/return/input.scss @import 'plain' <===> at_rule/return/plain.css @return foo; <===> at_rule/return/error Error: This at-rule isn't allowed in plain CSS. , 1 | @return foo; | ^^^^^^^^^^^ ' plain.css 1:1 @import input.scss 1:9 root stylesheet <===> ================================================================================ <===> at_rule/warn/input.scss @import 'plain' <===> at_rule/warn/plain.css @warn foo; <===> at_rule/warn/error Error: This at-rule isn't allowed in plain CSS. , 1 | @warn foo; | ^^^^^^^^^ ' plain.css 1:1 @import input.scss 1:9 root stylesheet <===> ================================================================================ <===> at_rule/while/input.scss @import 'plain' <===> at_rule/while/plain.css @while false { a { x: y; } } <===> at_rule/while/error Error: This at-rule isn't allowed in plain CSS. , 1 | @while false { | ^^^^^^^^^^^^^ ' plain.css 1:1 @import input.scss 1:9 root stylesheet <===> ================================================================================ <===> at_rule/interpolation/input.scss @import 'plain' <===> at_rule/interpolation/plain.css @foo a#{b}c; <===> at_rule/interpolation/error Error: Interpolation isn't allowed in plain CSS. , 1 | @foo a#{b}c; | ^^^^ ' plain.css 1:7 @import input.scss 1:9 root stylesheet <===> ================================================================================ <===> style_rule/nested/input.scss @import 'plain' <===> style_rule/nested/plain.css a { b { x: y; } } <===> style_rule/nested/error Error: expected ":". , 2 | b { | ^ ' plain.css 2:5 @import input.scss 1:9 root stylesheet <===> ================================================================================ <===> style_rule/nested_property/input.scss @import 'plain' <===> style_rule/nested_property/plain.css a { x: { y: z; } } <===> style_rule/nested_property/error Error: Nested declarations aren't allowed in plain CSS. , 2 | x: { | ^ ' plain.css 2:6 @import input.scss 1:9 root stylesheet <===> ================================================================================ <===> style_rule/parent_selector/input.scss @import 'plain' <===> style_rule/parent_selector/plain.css &.foo { x: y } <===> style_rule/parent_selector/error Error: Parent selectors aren't allowed here. , 1 | &.foo{ | ^ ' plain.css 1:1 @import input.scss 1:9 root stylesheet <===> ================================================================================ <===> style_rule/placeholder_selector/input.scss @import 'plain' <===> style_rule/placeholder_selector/plain.css %foo { x: y; } <===> style_rule/placeholder_selector/error Error: Placeholder selectors aren't allowed here. , 1 | %foo{ | ^^^^ ' plain.css 1:1 @import input.scss 1:9 root stylesheet <===> ================================================================================ <===> style_rule/interpolation/selector/input.scss @import 'plain' <===> style_rule/interpolation/selector/plain.css a#{b}c { x: y; } <===> style_rule/interpolation/selector/error Error: Interpolation isn't allowed in plain CSS. , 1 | a#{b}c { | ^^^^ ' plain.css 1:2 @import input.scss 1:9 root stylesheet <===> ================================================================================ <===> style_rule/interpolation/declaration/input.scss @import 'plain' <===> style_rule/interpolation/declaration/plain.css a { w#{x}y: z; } <===> style_rule/interpolation/declaration/error Error: Interpolation isn't allowed in plain CSS. , 2 | w#{x}y: z; | ^^^^ ' plain.css 2:4 @import input.scss 1:9 root stylesheet <===> ================================================================================ <===> silent_comment/input.scss @import 'plain' <===> silent_comment/plain.css // silent <===> silent_comment/error Error: Silent comments aren't allowed in plain CSS. , 1 | // silent | ^^^^^^^^^ ' plain.css 1:1 @import input.scss 1:9 root stylesheet sass-spec-libsass-3.6.3/spec/css/plain/extend.hrx000066400000000000000000000001571355712145100217300ustar00rootroot00000000000000<===> input.scss @import "plain"; a {@extend b} <===> _plain.css b {c: d} <===> output.css b, a { c: d; } sass-spec-libsass-3.6.3/spec/css/plain/functions.hrx000066400000000000000000000041301355712145100224440ustar00rootroot00000000000000<===> options.yml --- :todo: - sass/libsass#2699 <===> ================================================================================ <===> defined_elsewhere/input.scss @function a() {@return b} @import "plain"; <===> defined_elsewhere/plain.css c {d: a()} <===> defined_elsewhere/output.css c { d: a(); } <===> ================================================================================ <===> hsl/input.scss @import "plain"; <===> hsl/plain.css a {b: hsl(0, 100%, 50%)} <===> hsl/output.css a { b: hsl(0, 100%, 50%); } <===> ================================================================================ <===> hsla/input.scss @import "plain"; <===> hsla/plain.css a {b: hsla(0, 100%, 50%, 0.5)} <===> hsla/output.css a { b: hsla(0, 100%, 50%, 0.5); } <===> ================================================================================ <===> rgb/input.scss @import "plain"; <===> rgb/plain.css a {b: rgb(10, 20, 30)} <===> rgb/output.css a { b: rgb(10, 20, 30); } <===> ================================================================================ <===> rgba/input.scss @import "plain"; <===> rgba/plain.css a {b: rgba(10, 20, 30, 0.5)} <===> rgba/output.css a { b: rgba(10, 20, 30, 0.5); } <===> ================================================================================ <===> grayscale/input.scss @import "plain"; <===> grayscale/plain.css a {b: grayscale(0.1)} <===> grayscale/output.css a { b: grayscale(0.1); } <===> ================================================================================ <===> invert/input.scss @import "plain"; <===> invert/plain.css a {b: invert(0.1)} <===> invert/output.css a { b: invert(0.1); } <===> ================================================================================ <===> alpha/input.scss @import "plain"; <===> alpha/plain.css a {b: alpha(0.1)} <===> alpha/output.css a { b: alpha(0.1); } <===> ================================================================================ <===> saturate/input.scss @import "plain"; <===> saturate/plain.css a {b: saturate(0.1)} <===> saturate/output.css a { b: saturate(0.1); } sass-spec-libsass-3.6.3/spec/css/plain/hacks.hrx000066400000000000000000000003131355712145100215240ustar00rootroot00000000000000<===> options.yml --- :todo: - libsass <===> input.scss @import "plain"; <===> plain.css .hacks { *x: y; :x: y; #x: y; .x: y; } <===> output.css .hacks { *x: y; :x: y; #x: y; .x: y; } sass-spec-libsass-3.6.3/spec/css/plain/import/000077500000000000000000000000001355712145100212255ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/css/plain/import/css_before_index.hrx000066400000000000000000000002401355712145100252450ustar00rootroot00000000000000<===> index/other.scss other {index: true} <===> input.scss @import 'other'; <===> other.css other {index: false} <===> output.css other { index: false; } sass-spec-libsass-3.6.3/spec/css/plain/import/in_css.hrx000066400000000000000000000002251355712145100232250ustar00rootroot00000000000000<===> options.yml --- :todo: - libsass <===> input.scss @import "plain"; <===> plain.css @import "whatever"; <===> output.css @import "whatever"; sass-spec-libsass-3.6.3/spec/css/plain/import/partial_conflict.hrx000066400000000000000000000005061355712145100252660ustar00rootroot00000000000000<===> options.yml --- :todo: - libsass <===> _plain.css plain {partial: true} <===> input.scss @import "plain"; <===> plain.css plain {partial: false} <===> error Error: It's not clear which file to import. Found: _plain.css plain.css , 1 | @import "plain"; | ^^^^^^^ ' input.scss 1:9 root stylesheet sass-spec-libsass-3.6.3/spec/css/plain/import/sass_takes_precedence.hrx000066400000000000000000000003021355712145100262600ustar00rootroot00000000000000<===> options.yml --- :todo: - libsass <===> input.scss @import "other"; <===> other.css other {syntax: css} <===> other.sass other syntax: sass <===> output.css other { syntax: sass; } sass-spec-libsass-3.6.3/spec/css/plain/import/scss_takes_precedence.hrx000066400000000000000000000003021355712145100262620ustar00rootroot00000000000000<===> options.yml --- :todo: - libsass <===> input.scss @import "other"; <===> other.css other {syntax: css} <===> other.scss other {syntax: scss} <===> output.css other { syntax: scss; } sass-spec-libsass-3.6.3/spec/css/plain/null.hrx000066400000000000000000000001471355712145100214120ustar00rootroot00000000000000<===> input.scss @import "plain"; <===> plain.css a { x: null; } <===> output.css a { x: null; } sass-spec-libsass-3.6.3/spec/css/plain/single_equals.hrx000066400000000000000000000002311355712145100232650ustar00rootroot00000000000000<===> input.scss @import "plain"; <===> plain.css a { single-equals: alpha(opacity=65); } <===> output.css a { single-equals: alpha(opacity=65); } sass-spec-libsass-3.6.3/spec/css/plain/slash.hrx000066400000000000000000000001751355712145100215530ustar00rootroot00000000000000<===> input.scss @import "plain"; <===> plain.css a { slash: 1/2/foo/bar; } <===> output.css a { slash: 1/2/foo/bar; } sass-spec-libsass-3.6.3/spec/css/selector.hrx000066400000000000000000000112321355712145100211520ustar00rootroot00000000000000<===> attribute/dash_dash/input.scss // Attribute selector values are allowed to be unquoted as long as they're plain // CSS identifiers. However, IE 11 doesn't recognize custom-property-style // identifiers like `--foo` as identifiers, so they should always be quoted. [class="--foo"], [class*="--foo"] { x: y; } <===> attribute/dash_dash/output.css [class="--foo"], [class*="--foo"] { x: y; } <===> ================================================================================ <===> attribute/modifier/unknown/options.yml --- :todo: - sass/libsass#2886 <===> attribute/modifier/unknown/input.scss // At time of writing, only the modifiers "i" and "s" are allowed by the CSS // spec. However, for forwards-compatibility with future CSS additions, any // single character should be allowed. [a=b c] {d: e} <===> attribute/modifier/unknown/output.css [a=b c] { d: e; } <===> ================================================================================ <===> attribute/modifier/caps/input.scss [a=b I] {c: d} <===> attribute/modifier/caps/output.css [a=b I] { c: d; } <===> ================================================================================ <===> attribute/modifier/after_string/input.scss [a="b"i] {c: d} <===> attribute/modifier/after_string/output.css [a=b i] { c: d; } <===> attribute/modifier/after_string/output-libsass.css [a="b" i] { c: d; } <===> ================================================================================ <===> reference_combinator/options.yml --- :todo: - libsass <===> reference_combinator/input.scss // Reference combinators used to be supported by Sass when they were part of the // CSS spec, but they're no longer supported and should now produce errors. .foo /bar/ .baz { a: b; } <===> reference_combinator/error Error: expected selector. , 3 | .foo /bar/ .baz{ | ^ ' input.scss 3:6 root stylesheet <===> ================================================================================ <===> slotted/input.scss ::slotted(.a) {x: y} ::slotted(.c.d) {x: y} .e {@extend .c} ::slotted(.f) {x: y} ::slotted(.g) {@extend .f} <===> slotted/output.css ::slotted(.a) { x: y; } ::slotted(.c.d, .d.e) { x: y; } ::slotted(.f, ::slotted(.g)) { x: y; } <===> ================================================================================ <===> error/attribute/modifier/no_operator/input.scss [a b] {c: d} <===> error/attribute/modifier/no_operator/error Error: Expected "]". , 1 | [a b]{c: d} | ^ ' input.scss 1:4 root stylesheet <===> error/attribute/modifier/no_operator/error-libsass Error: invalid operator in attribute selector for a on line 1:2 of input.scss >> [a b] {c: d} -^ <===> ================================================================================ <===> error/attribute/modifier/too_long/input.scss // Attribute modifiers must be single characters. [a=b cd] {e: f} <===> error/attribute/modifier/too_long/error Error: expected "]". , 2 | [a=b cd]{e: f} | ^ ' input.scss 2:7 root stylesheet <===> error/attribute/modifier/too_long/error-libsass Error: unterminated attribute selector for a on line 2:4 of input.scss >> [a=b cd] {e: f} ---^ <===> ================================================================================ <===> error/attribute/modifier/underscore/input.scss // Attribute modifiers must be ASCII alphabetical characters. [a=b _] {c: d} <===> error/attribute/modifier/underscore/error Error: expected "]". , 2 | [a=b _]{c: d} | ^ ' input.scss 2:6 root stylesheet <===> error/attribute/modifier/underscore/error-libsass Error: unterminated attribute selector for a on line 2:4 of input.scss >> [a=b _] {c: d} ---^ <===> ================================================================================ <===> error/attribute/modifier/digit/input.scss // Attribute modifiers must be ASCII alphabetical characters. [a=b 1] {c: d} <===> error/attribute/modifier/digit/error Error: expected "]". , 2 | [a=b 1]{c: d} | ^ ' input.scss 2:6 root stylesheet <===> error/attribute/modifier/digit/error-libsass Error: unterminated attribute selector for a on line 2:4 of input.scss >> [a=b 1] {c: d} ---^ <===> ================================================================================ <===> error/attribute/modifier/unicode/input.scss // Attribute modifiers must be ASCII alphabetical characters. [a=b ï] {c: d} <===> error/attribute/modifier/unicode/error Error: expected "]". , 2 | [a=b ï]{c: d} | ^ ' input.scss 2:6 root stylesheet <===> error/attribute/modifier/unicode/error-libsass Error: unterminated attribute selector for a on line 2:4 of input.scss >> [a=b ï] {c: d} ---^ sass-spec-libsass-3.6.3/spec/css/unicode_range/000077500000000000000000000000001355712145100214125ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/css/unicode_range/error.hrx000066400000000000000000000070101355712145100232640ustar00rootroot00000000000000<===> options.yml --- :todo: - libsass <===> ================================================================================ <===> ident_minus_space_ident/input.scss .ident-minus-space-ident { a: U+abc- def; } <===> ident_minus_space_ident/error Error: Expected hex digit. , 2 | a: U+abc- def; | ^ ' input.scss 2:12 root stylesheet <===> ================================================================================ <===> minus_ident_minus/input.scss .minus-ident-minus { a: u+123-abc-def; } <===> minus_ident_minus/error Error: Expected end of identifier. , 2 | a: u+123-abc-def; | ^ ' input.scss 2:15 root stylesheet <===> ================================================================================ <===> minus_number_minus_ident/input.scss .minus-number-minus-ident { a: U+123-456-ABC; } <===> minus_number_minus_ident/error Error: Expected end of identifier. , 2 | a: U+123-456-ABC; | ^ ' input.scss 2:15 root stylesheet <===> ================================================================================ <===> no_digits/input.scss .no-digits { a: U+; } <===> no_digits/error Error: Expected hex digit or "?". , 2 | a: U+; | ^ ' input.scss 2:8 root stylesheet <===> ================================================================================ <===> nothing_after_minus/input.scss .nothing-after-minus { a: U+abc-; } <===> nothing_after_minus/error Error: Expected hex digit. , 2 | a: U+abc-; | ^ ' input.scss 2:12 root stylesheet <===> ================================================================================ <===> question_mark_after_minus/input.scss .question-mark-after-minus { a: u+abc-de?; } <===> question_mark_after_minus/error Error: expected ";". , 2 | a: u+abc-de?; | ^ ' input.scss 2:14 root stylesheet <===> ================================================================================ <===> too_many_decimal_digits_after_minus/input.scss .too-many-decimal-digits-after-minus { a: U+abc-1234567; } <===> too_many_decimal_digits_after_minus/error Error: Expected end of identifier. , 2 | a: U+abc-1234567; | ^ ' input.scss 2:18 root stylesheet <===> ================================================================================ <===> too_many_decimal_digits/input.scss .too-many-decimal-digits { a: U+1234567; } <===> too_many_decimal_digits/error Error: Expected end of identifier. , 2 | a: U+1234567; | ^ ' input.scss 2:14 root stylesheet <===> ================================================================================ <===> too_many_digits_after_minus/input.scss .too-many-hex-digits-after-minus { a: U+abc-abcdefa; } <===> too_many_digits_after_minus/error Error: Expected end of identifier. , 2 | a: U+abc-abcdefa; | ^ ' input.scss 2:18 root stylesheet <===> ================================================================================ <===> too_many_hex_digits/input.scss .too-many-hex-digits { a: U+ABCDEFA; } <===> too_many_hex_digits/error Error: Expected end of identifier. , 2 | a: U+ABCDEFA; | ^ ' input.scss 2:14 root stylesheet <===> ================================================================================ <===> too_many_question_marks/input.scss .too-many-question-marks { a: U+???????; } <===> too_many_question_marks/error Error: expected ";". , 2 | a: U+???????; | ^ ' input.scss 2:14 root stylesheet sass-spec-libsass-3.6.3/spec/css/unicode_range/question_mark.hrx000066400000000000000000000014341355712145100250200ustar00rootroot00000000000000<===> options.yml --- :todo: - libsass <===> input.scss .question-mark { one-digit-question-only: U+?; four-digit-question-only: U+????; six-digit-question-only: U+??????; two-digit-half-question: U+A?; six-digit-half-question: U+123???; // These are valid CSS, and should parse as a Unicode range followed by an // identifier. followed-by-ident: U+A?BCDE; followed-by-minus: U+A?-BCDE; // This should parse as (U+A?) - (1234). followed-by-number: U+A?-1234; } <===> output.css .question-mark { one-digit-question-only: U+?; four-digit-question-only: U+????; six-digit-question-only: U+??????; two-digit-half-question: U+A?; six-digit-half-question: U+123???; followed-by-ident: U+A? BCDE; followed-by-minus: U+A? -BCDE; followed-by-number: U+A?-1234; } sass-spec-libsass-3.6.3/spec/css/unicode_range/range.hrx000066400000000000000000000011631355712145100232320ustar00rootroot00000000000000<===> input.scss .range { one-digit-each: U+1-B; four-digit-each: U+1A2B-F9E8; six-digit-each: U+1A2B3C-10FFFF; one-then-six: U+1-000007; six-then-one: U+000001-7; // Ruby and Dart Sass will allow ranges with values above the maximum allowed // code point, and ranges whose start values are greater than their end // values. These produce invalid CSS, though, and as such are not necessary // for all implementations to support. } <===> output.css .range { one-digit-each: U+1-B; four-digit-each: U+1A2B-F9E8; six-digit-each: U+1A2B3C-10FFFF; one-then-six: U+1-000007; six-then-one: U+000001-7; } sass-spec-libsass-3.6.3/spec/css/unicode_range/simple.hrx000066400000000000000000000004151355712145100234260ustar00rootroot00000000000000<===> input.scss .simple { one-digit: U+1; four-digit: U+1234; six-digit: U+123456; hex-digit: U+1A2B; lowercase: u+1a2b; } <===> output.css .simple { one-digit: U+1; four-digit: U+1234; six-digit: U+123456; hex-digit: U+1A2B; lowercase: u+1a2b; } sass-spec-libsass-3.6.3/spec/css/unknown_directive/000077500000000000000000000000001355712145100223455ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/css/unknown_directive/error.hrx000066400000000000000000000061611355712145100242250ustar00rootroot00000000000000<===> space_after_at/input.scss // No whitespace is allowed between the @ and the rule name. @ unknown; <===> space_after_at/error Error: Expected identifier. , 2 | @ unknown; | ^ ' input.scss 2:2 root stylesheet <===> space_after_at/error-libsass Error: Invalid CSS after "... the rule name.": expected 1 selector or at-rule, was "@ unknown;" on line 1 of /sass/spec/css/unknown_directive/error/space_after_at/input.scss >> // No whitespace is allowed between the @ and the rule name. ^ <===> ================================================================================ <===> in_declaration/input.scss // Unknown at-rules aren't allowed in property declarations. .x { y: { @asdf; } } <===> in_declaration/error Error: This at-rule is not allowed here. , 4 | @asdf; | ^^^^^ ' input.scss 4:5 root stylesheet <===> in_declaration/error-libsass Error: Illegal nesting: Only properties may be nested beneath properties. on line 4 of /sass/spec/css/unknown_directive/error/in_declaration/input.scss >> @asdf; ----^ <===> ================================================================================ <===> in_function/input.scss // Unknown at-rules aren't allowed in functions. @function foo() { @asdf; @return null; } <===> in_function/error Error: This at-rule is not allowed here. , 3 | @asdf; | ^^^^^ ' input.scss 3:3 root stylesheet <===> in_function/error-libsass Error: Functions can only contain variable declarations and control directives. on line 3 of /sass/spec/css/unknown_directive/error/in_function/input.scss >> @asdf; --^ <===> ================================================================================ <===> interpolation/space_after_at/input.scss // No whitespace is allowed between the @ and the rule name. @ #{"unknown"}; <===> interpolation/space_after_at/error Error: Expected identifier. , 2 | @ #{"unknown"}; | ^ ' input.scss 2:2 root stylesheet <===> interpolation/space_after_at/error-libsass Error: Invalid CSS after "... the rule name.": expected 1 selector or at-rule, was '@ #{"unknown"};' on line 1 of /sass/spec/css/unknown_directive/error/interpolated/space_after_at/input.scss >> // No whitespace is allowed between the @ and the rule name. ^ <===> ================================================================================ <===> interpolation/in_declaration/options.yml --- :todo: - libsass <===> interpolation/in_declaration/input.scss // Unknown at-rules aren't allowed in property declarations. .x { y: { @#{"asdf"}; } } <===> interpolation/in_declaration/error Error: Expected identifier. , 4 | @#{"asdf"}; | ^ ' input.scss 4:6 root stylesheet <===> ================================================================================ <===> interpolation/in_function/options.yml --- :todo: - libsass <===> interpolation/in_function/input.scss // Unknown at-rules aren't allowed in functions. @function foo() { @#{"asdf"}; @return null; } <===> interpolation/in_function/error Error: Expected identifier. , 3 | @#{"asdf"}; | ^ ' input.scss 3:4 root stylesheet sass-spec-libsass-3.6.3/spec/css/unknown_directive/name_interpolation.hrx000066400000000000000000000026161355712145100267640ustar00rootroot00000000000000<===> options.yml --- :todo: - libsass <===> input.scss // At-rule names may be interpolated. Any interpolated at-rule is treated as // unknown, except for @keyframes which has behavior that's only triggered at // eval-time. // Interpolation can appear anywhere in a rule. @#{"interpolated"}-beginning; @interopl#{"ated-mid"}dle; @interoplated-#{"end"}; @#{"entirely-interpolated"}; // An interpolated rule can have all the same kinds of values and blocks as any // other unknown rule. @#{"plain"} value; @#{"interpolated"} #{"value"}; @#{"block"} {x: y} @#{"block-with"} plain-value {x: y} @#{"block-with"} #{"interpolated"}-value {x: y} // An interpolated at-rule doesn't count as a Sass at-rule. @#{"error"} not really an error; // An interpolated at-rule doesn't have any special parse-time behavior, even if // it ends up with the same name as an at-rule that does. @#{"media"} ($var: value) { .x {y: z} } // The @keyframes rule is an exception, because its special parse behavior is // handled at runtime. @#{"keyframes"} name { 10% {x: y} } <===> output.css @interpolated-beginning; @interoplated-middle; @interoplated-end; @entirely-interpolated; @plain value; @interpolated value; @block { x: y; } @block-with plain-value { x: y; } @block-with interpolated-value { x: y; } @error not really an error; @media ($var: value) { .x { y: z; } } @keyframes name { 10% { x: y; } } sass-spec-libsass-3.6.3/spec/css/unknown_directive/plain.hrx000066400000000000000000000010051355712145100241670ustar00rootroot00000000000000<===> options.yml --- :todo: - libsass <===> input.scss // Unknown directives should support almost any sequence of valid tokens. // By default, characters are passed through unaltered. @asdf .~@#$%^&*()_-+=[]|:<>,.?/; // Strings are tokenized as strings. @asdf "f'o" 'b"r' url(baz) url("qux"); // Comments are preserved. @asdf foo // bar; @asdf foo /* bar */ baz; <===> output.css @asdf .~@#$%^&*()_-+=[]|:<>,.?/; @asdf "f'o" 'b"r' url(baz) url("qux"); @asdf foo // bar; @asdf foo /* bar */ baz; sass-spec-libsass-3.6.3/spec/css/unknown_directive/value_interpolation.hrx000066400000000000000000000011441355712145100271530ustar00rootroot00000000000000<===> options.yml --- :todo: - libsass <===> input.scss // Unknown directives should support interpolation in plain text, strings, // identifiers, and URLs. @asdf #{1 + 2}; @asdf foo#{"bar"}baz; @asdf "foo #{"bar"} baz"; @asdf 'foo #{'bar'} baz'; @asdf url(http://#{")"}.com/); @asdf url("http://#{")"}.com/"); <===> output.css @asdf 3; @asdf foobarbaz; @asdf "foo bar baz"; @asdf 'foo bar baz'; @asdf url(http://).com/); @asdf url("http://).com/"); <===> output-dart-sass.css @asdf 3; @asdf foobarbaz; @asdf "foo bar baz"; @asdf "foo bar baz"; @asdf url(http://).com/); @asdf url("http://).com/"); sass-spec-libsass-3.6.3/spec/css/url.hrx000066400000000000000000000006761355712145100201460ustar00rootroot00000000000000<===> exclam/options.yml --- :todo: - sass/libsass#2880 <===> ================================================================================ <===> exclam/only/input.scss a {b: url(!)} <===> exclam/only/output.css a { b: url(!); } <===> ================================================================================ <===> exclam/middle/input.scss a {b: url(http://c.d/e!f)} <===> exclam/middle/output.css a { b: url(http://c.d/e!f); } sass-spec-libsass-3.6.3/spec/directives/000077500000000000000000000000001355712145100201615ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/directives/forward/000077500000000000000000000000001355712145100216255ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/directives/forward/css.hrx000066400000000000000000000033571355712145100231500ustar00rootroot00000000000000<===> README.md `@forward` should handle CSS in the same way as `@use`. We assume that they use shared infrastructure, though, and as such only test basic cases. <===> ================================================================================ <===> forward_only/input.scss @forward "other"; <===> forward_only/_other.scss a {b: c} <===> forward_only/output.css a { b: c; } <===> ================================================================================ <===> once/multiple_forwards/input.scss @forward "other"; @forward "other"; @forward "other"; <===> once/multiple_forwards/_other.scss a {b: c} <===> once/multiple_forwards/output.css a { b: c; } <===> ================================================================================ <===> once/forward_and_use/input.scss @forward "other"; @use "other"; <===> once/forward_and_use/_other.scss a {b: c} <===> once/forward_and_use/output.css a { b: c; } <===> ================================================================================ <===> order/input.scss @forward "other1"; @use "other2"; @forward "other3"; a {file: input} <===> order/_other1.scss a {file: other1} <===> order/_other2.scss a {file: other2} <===> order/_other3.scss a {file: other3} <===> order/output.css a { file: other1; } a { file: other2; } a { file: other3; } a { file: input; } <===> ================================================================================ <===> forward_into_import/input.scss @forward "forwarded"; in-input {a: b} <===> forward_into_import/_forwarded.scss @import "imported"; in-forwarded {a: b} <===> forward_into_import/_imported.scss in-imported {a: b} <===> forward_into_import/output.css in-imported { a: b; } in-forwarded { a: b; } in-input { a: b; } sass-spec-libsass-3.6.3/spec/directives/forward/error/000077500000000000000000000000001355712145100227565ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/directives/forward/error/extend.hrx000066400000000000000000000011421355712145100247660ustar00rootroot00000000000000<===> README.md `@forward` should handle extensions in the same way as `@use`, and as such should produce the same errors when extensions fail. We assume that they use shared infrastructure, though, and as such only test a basic case. <===> input.scss @use "midstream"; in-input {a: b} <===> _midstream.scss @forward "upstream"; <===> _upstream.scss in-upstream {@extend in-input} <===> error Error: The target selector was not found. Use "@extend in-input !optional" to avoid this error. , 1 | in-upstream {@extend in-input} | ^^^^^^^^^^^^^^^^ ' _upstream.scss 1:14 root stylesheet sass-spec-libsass-3.6.3/spec/directives/forward/error/load.hrx000066400000000000000000000037731355712145100244320ustar00rootroot00000000000000<===> README.md `@forward` should load modules in the same way as `@use`, and as such should produce the same errors when loading fails. We assume that they use shared infrastructure, though, and as such only duplicate a few basic load tests for `@forward`. <===> ================================================================================ <===> missing/input.scss @forward "other"; <===> missing/error Error: Can't find stylesheet to import. , 1 | @forward "other"; | ^^^^^^^^^^^^^^^^ ' input.scss 1:1 root stylesheet <===> ================================================================================ <===> loop/forward_self/input.scss @forward "input"; <===> loop/forward_self/error Error: Module loop: this module is already being loaded. , 1 | @forward "input"; | ^^^^^^^^^^^^^^^^ ' input.scss 1:1 root stylesheet <===> ================================================================================ <===> loop/forward_to_forward/input.scss @forward "other"; <===> loop/forward_to_forward/other.scss @forward "input"; <===> loop/forward_to_forward/error Error: Module loop: this module is already being loaded. , 1 | @forward "input"; | ^^^^^^^^^^^^^^^^ ' other.scss 1:1 @forward input.scss 1:1 root stylesheet <===> ================================================================================ <===> loop/forward_to_use/input.scss @forward "other"; <===> loop/forward_to_use/other.scss @use "input"; <===> loop/forward_to_use/error Error: Module loop: this module is already being loaded. , 1 | @use "input"; | ^^^^^^^^^^^^ ' other.scss 1:1 @forward input.scss 1:1 root stylesheet <===> ================================================================================ <===> loop/forward_to_import/input.scss @forward "other"; <===> loop/forward_to_import/other.scss @import "input"; <===> loop/forward_to_import/error Error: This file is already being loaded. , 1 | @import "input"; | ^^^^^^^ ' other.scss 1:9 @forward input.scss 1:1 root stylesheet sass-spec-libsass-3.6.3/spec/directives/forward/error/member.hrx000066400000000000000000000235051355712145100247550ustar00rootroot00000000000000<===> conflict/README.md When two modules that contain conflicting members are `@forward`ed, that produces an error immediately even if the member is never used. This is unlike `@use`, which only produces an error on use. <===> ================================================================================ <===> conflict/variable/input.scss @forward "other1"; @forward "other2"; <===> conflict/variable/_other1.scss $a: from other1; <===> conflict/variable/_other2.scss $a: from other2; <===> conflict/variable/error Error: Module _other1.scss and the new module both forward a variable named $a. , 2 | @forward "other2"; | ^^^^^^^^^^^^^^^^^ ' input.scss 2:1 root stylesheet <===> ================================================================================ <===> conflict/function/input.scss @forward "other1"; @forward "other2"; <===> conflict/function/_other1.scss @function a() {@return from other1} <===> conflict/function/_other2.scss @function a() {@return from other2} <===> conflict/function/error Error: Module _other1.scss and the new module both forward a function named a. , 2 | @forward "other2"; | ^^^^^^^^^^^^^^^^^ ' input.scss 2:1 root stylesheet <===> ================================================================================ <===> conflict/mixin/input.scss @forward "other1"; @forward "other2"; <===> conflict/mixin/_other1.scss @mixin a {b: from other1} <===> conflict/mixin/_other2.scss @mixin a {b: from other2} <===> conflict/mixin/error Error: Module _other1.scss and the new module both forward a mixin named a. , 2 | @forward "other2"; | ^^^^^^^^^^^^^^^^^ ' input.scss 2:1 root stylesheet <===> ================================================================================ <===> conflict/same_file/input.scss @forward "other"; @forward "other"; <===> conflict/same_file/_other.scss $a: b; <===> conflict/same_file/error Error: Module _other.scss and the new module both forward a variable named $a. , 2 | @forward "other"; | ^^^^^^^^^^^^^^^^ ' input.scss 2:1 root stylesheet <===> ================================================================================ <===> conflict/because_of_as/first/input.scss @forward "other1" as a-*; @forward "other2"; <===> conflict/because_of_as/first/_other1.scss $b: from other1; <===> conflict/because_of_as/first/_other2.scss $a-b: from other2; <===> conflict/because_of_as/first/error Error: Module _other1.scss and the new module both forward a variable named $a-b. , 2 | @forward "other2"; | ^^^^^^^^^^^^^^^^^ ' input.scss 2:1 root stylesheet <===> ================================================================================ <===> conflict/because_of_as/last/input.scss @forward "other1"; @forward "other2" as a-*; <===> conflict/because_of_as/last/_other1.scss $a-b: from other1; <===> conflict/because_of_as/last/_other2.scss $b: from other2; <===> conflict/because_of_as/last/error Error: Module _other1.scss and the new module both forward a variable named $a-b. , 2 | @forward "other2" as a-*; | ^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 2:1 root stylesheet <===> ================================================================================ <===> inaccessible/local/variable/input.scss @forward "other"; a {b: $c}; <===> inaccessible/local/variable/_other.scss $c: d; <===> inaccessible/local/variable/error Error: Undefined variable. , 3 | a {b: $c}; | ^^ ' input.scss 3:7 root stylesheet <===> ================================================================================ <===> inaccessible/local/function/input.scss @forward "other"; // This is technically not a compile error, since `-member()` is treated as // plain CSS, but it's included here for consistency with the other specs. a {b: c()}; <===> inaccessible/local/function/_other.scss @function c() {@return d} <===> inaccessible/local/function/output.css a { b: c(); } <===> ================================================================================ <===> inaccessible/local/mixin/input.scss @forward "other"; @include a; <===> inaccessible/local/mixin/_other.scss @mixin a {b {c: d}} <===> inaccessible/local/mixin/error Error: Undefined mixin. , 3 | @include a; | ^^^^^^^^^^ ' input.scss 3:1 root stylesheet <===> ================================================================================ <===> inaccessible/private/variable/input.scss @use "midstream" as *; a {b: $-c}; <===> inaccessible/private/variable/_midstream.scss @forward "upstream"; <===> inaccessible/private/variable/_upstream.scss $-c: d; <===> inaccessible/private/variable/error Error: Undefined variable. , 3 | a {b: $-c}; | ^^^ ' input.scss 3:7 root stylesheet <===> ================================================================================ <===> inaccessible/private/function/input.scss @use "midstream" as *; // This is technically not a compile error, since `-member()` is treated as // plain CSS, but it's included here for consistency with the other specs. a {b: -c()}; <===> inaccessible/private/function/_midstream.scss @forward "upstream"; <===> inaccessible/private/function/_upstream.scss @function -c() {@return d} <===> inaccessible/private/function/output.css a { b: -c(); } <===> ================================================================================ <===> inaccessible/private/mixin/input.scss @use "midstream" as *; @include -a; <===> inaccessible/private/mixin/_midstream.scss @forward "upstream"; <===> inaccessible/private/mixin/_upstream.scss @mixin -a {b {c: d}} <===> inaccessible/private/mixin/error Error: Undefined mixin. , 3 | @include -a; | ^^^^^^^^^^^ ' input.scss 3:1 root stylesheet <===> ================================================================================ <===> inaccessible/hidden/variable/input.scss @use "midstream" as *; a {b: $c} <===> inaccessible/hidden/variable/_midstream.scss @forward "upstream" hide $c; <===> inaccessible/hidden/variable/_upstream.scss $c: d; <===> inaccessible/hidden/variable/error Error: Undefined variable. , 3 | a {b: $c} | ^^ ' input.scss 3:7 root stylesheet <===> ================================================================================ <===> inaccessible/hidden/mixin/input.scss @use "midstream" as *; @include a; <===> inaccessible/hidden/mixin/_midstream.scss @forward "upstream" hide a; <===> inaccessible/hidden/mixin/_upstream.scss @mixin a {b {c: d}} <===> inaccessible/hidden/mixin/error Error: Undefined mixin. , 3 | @include a; | ^^^^^^^^^^ ' input.scss 3:1 root stylesheet <===> ================================================================================ <===> inaccessible/hidden/as/different_separator/input.scss @use "midstream" as *; @include a; <===> inaccessible/hidden/as/different_separator/_midstream.scss @forward "upstream" as b-* hide b_a; <===> inaccessible/hidden/as/different_separator/_upstream.scss @as a {b {c: d}} <===> inaccessible/hidden/as/different_separator/error Error: Undefined mixin. , 3 | @include a; | ^^^^^^^^^^ ' input.scss 3:1 root stylesheet <===> ================================================================================ <===> inaccessible/hidden/as/same_separator/input.scss @use "midstream" as *; @include a; <===> inaccessible/hidden/as/same_separator/_midstream.scss @forward "upstream" as b-* hide b-a; <===> inaccessible/hidden/as/same_separator/_upstream.scss @as a {b {c: d}} <===> inaccessible/hidden/as/same_separator/error Error: Undefined mixin. , 3 | @include a; | ^^^^^^^^^^ ' input.scss 3:1 root stylesheet <===> ================================================================================ <===> inaccessible/not_shown/variable/input.scss @use "midstream" as *; a {b: $c} <===> inaccessible/not_shown/variable/_midstream.scss @forward "upstream" show $d; <===> inaccessible/not_shown/variable/_upstream.scss $c: e; <===> inaccessible/not_shown/variable/error Error: Undefined variable. , 3 | a {b: $c} | ^^ ' input.scss 3:7 root stylesheet <===> ================================================================================ <===> inaccessible/not_shown/mixin/input.scss @use "midstream" as *; @include a; <===> inaccessible/not_shown/mixin/_midstream.scss @forward "upstream" show b; <===> inaccessible/not_shown/mixin/_upstream.scss @mixin a {c {d: e}} <===> inaccessible/not_shown/mixin/error Error: Undefined mixin. , 3 | @include a; | ^^^^^^^^^^ ' input.scss 3:1 root stylesheet <===> ================================================================================ <===> inaccessible/not_shown/wrong_type/variable/input.scss @use "midstream" as *; a {b: $c} <===> inaccessible/not_shown/wrong_type/variable/_midstream.scss @forward "upstream" show c; <===> inaccessible/not_shown/wrong_type/variable/_upstream.scss $c: e; <===> inaccessible/not_shown/wrong_type/variable/error Error: Undefined variable. , 3 | a {b: $c} | ^^ ' input.scss 3:7 root stylesheet <===> ================================================================================ <===> inaccessible/not_shown/wrong_type/mixin/input.scss @use "midstream" as *; @include a; <===> inaccessible/not_shown/wrong_type/mixin/_midstream.scss @forward "upstream" show $a; <===> inaccessible/not_shown/wrong_type/mixin/_upstream.scss @mixin a {c {d: e}} <===> inaccessible/not_shown/wrong_type/mixin/error Error: Undefined mixin. , 3 | @include a; | ^^^^^^^^^^ ' input.scss 3:1 root stylesheet <===> ================================================================================ <===> inaccessible/not_shown/as/mixin/input.scss @use "midstream" as *; @include b-a; <===> inaccessible/not_shown/as/mixin/_midstream.scss @forward "upstream" as b-* show a; <===> inaccessible/not_shown/as/mixin/_upstream.scss @mixin a {c {d: e}} <===> inaccessible/not_shown/as/mixin/error Error: Undefined mixin. , 3 | @include b-a; | ^^^^^^^^^^^^ ' input.scss 3:1 root stylesheet sass-spec-libsass-3.6.3/spec/directives/forward/error/syntax.hrx000066400000000000000000000171051355712145100250330ustar00rootroot00000000000000<===> empty/input.scss @forward; <===> empty/error Error: Expected string. , 1 | @forward; | ^ ' input.scss 1:9 root stylesheet <===> ================================================================================ <===> as/nothing/input.scss @forward "a" as; <===> as/nothing/error Error: Expected identifier. , 1 | @forward "a" as; | ^ ' input.scss 1:16 root stylesheet <===> ================================================================================ <===> as/asterisk/input.scss @forward "a" as *; <===> as/asterisk/error Error: Expected identifier. , 1 | @forward "a" as *; | ^ ' input.scss 1:17 root stylesheet <===> ================================================================================ <===> as/invalid/input.scss @forward "a" as 1-*; <===> as/invalid/error Error: Expected identifier. , 1 | @forward "a" as 1-*; | ^ ' input.scss 1:17 root stylesheet <===> ================================================================================ <===> as/no_star/input.scss @forward "a" as foo; <===> as/no_star/error Error: expected "*". , 1 | @forward "a" as foo; | ^ ' input.scss 1:20 root stylesheet <===> ================================================================================ <===> show/nothing/input.scss @forward "a" show; <===> show/nothing/error Error: Expected variable, mixin, or function name , 1 | @forward "a" show; | ^ ' input.scss 1:18 root stylesheet <===> ================================================================================ <===> show/invalid/input.scss @forward "a" show 1; <===> show/invalid/error Error: Expected variable, mixin, or function name , 1 | @forward "a" show 1; | ^ ' input.scss 1:19 root stylesheet <===> ================================================================================ <===> show/empty_variable/input.scss @forward "a" show $; <===> show/empty_variable/error Error: Expected variable, mixin, or function name , 1 | @forward "a" show $; | ^ ' input.scss 1:20 root stylesheet <===> ================================================================================ <===> show/trailing_comma/input.scss @forward "a" show b,; <===> show/trailing_comma/error Error: Expected variable, mixin, or function name , 1 | @forward "a" show b,; | ^ ' input.scss 1:21 root stylesheet <===> ================================================================================ <===> show/and_hide/input.scss @forward "a" show b hide c; <===> show/and_hide/error Error: expected ";". , 1 | @forward "a" show b hide c; | ^ ' input.scss 1:21 root stylesheet <===> ================================================================================ <===> hide/nothing/input.scss @forward "a" hide; <===> hide/nothing/error Error: Expected variable, mixin, or function name , 1 | @forward "a" hide; | ^ ' input.scss 1:18 root stylesheet <===> ================================================================================ <===> hide/invalid/input.scss @forward "a" hide 1; <===> hide/invalid/error Error: Expected variable, mixin, or function name , 1 | @forward "a" hide 1; | ^ ' input.scss 1:19 root stylesheet <===> ================================================================================ <===> hide/empty_variable/input.scss @forward "a" hide $; <===> hide/empty_variable/error Error: Expected variable, mixin, or function name , 1 | @forward "a" hide $; | ^ ' input.scss 1:20 root stylesheet <===> ================================================================================ <===> hide/trailing_comma/input.scss @forward "a" hide b,; <===> hide/trailing_comma/error Error: Expected variable, mixin, or function name , 1 | @forward "a" hide b,; | ^ ' input.scss 1:21 root stylesheet <===> ================================================================================ <===> hide/and_show/input.scss @forward "a" hide b show c; <===> hide/and_show/error Error: expected ";". , 1 | @forward "a" hide b show c; | ^ ' input.scss 1:21 root stylesheet <===> ================================================================================ <===> url/unquoted/input.scss @forward foo; <===> url/unquoted/error Error: Expected string. , 1 | @forward foo; | ^ ' input.scss 1:10 root stylesheet <===> ================================================================================ <===> within/mixin/input.scss @mixin a { @forward "b"; } <===> within/mixin/error Error: This at-rule is not allowed here. , 2 | @forward "b"; | ^^^^^^^^^^^^ ' input.scss 2:3 root stylesheet <===> ================================================================================ <===> within/function/input.scss @function a() { @forward "b"; } <===> within/function/error Error: This at-rule is not allowed here. , 2 | @forward "b"; | ^^^^^^^^^^^^ ' input.scss 2:3 root stylesheet <===> ================================================================================ <===> within/style_rule/input.scss a { @forward "b"; } <===> within/style_rule/error Error: This at-rule is not allowed here. , 2 | @forward "b"; | ^^^^^^^^^^^^ ' input.scss 2:3 root stylesheet <===> ================================================================================ <===> after/at_rule/unknown/input.scss @a; @forward "b"; <===> after/at_rule/unknown/error Error: @forward rules must be written before any other rules. , 2 | @forward "b"; | ^^^^^^^^^^^^ ' input.scss 2:1 root stylesheet <===> ================================================================================ <===> after/at_rule/sass/input.scss @if true {}; @forward "a"; <===> after/at_rule/sass/error Error: @forward rules must be written before any other rules. , 2 | @forward "a"; | ^^^^^^^^^^^^ ' input.scss 2:1 root stylesheet <===> ================================================================================ <===> after/at_rule/import/input.scss @import "a"; @forward "b"; <===> after/at_rule/import/error Error: @forward rules must be written before any other rules. , 2 | @forward "b"; | ^^^^^^^^^^^^ ' input.scss 2:1 root stylesheet <===> ================================================================================ <===> after/at_rule/css/input.scss @keyframes a {}; @forward "b"; <===> after/at_rule/css/error Error: @forward rules must be written before any other rules. , 2 | @forward "b"; | ^^^^^^^^^^^^ ' input.scss 2:1 root stylesheet <===> ================================================================================ <===> after/style_rule/input.scss a {}; @forward "b"; <===> after/style_rule/error Error: @forward rules must be written before any other rules. , 2 | @forward "b"; | ^^^^^^^^^^^^ ' input.scss 2:1 root stylesheet <===> ================================================================================ <===> after/indented/mixin/input.sass =a b: c @forward "d" <===> after/indented/mixin/error Error: @forward rules must be written before any other rules. , 3 | @forward "d" | ^^^^^^^^^^^^ ' input.sass 3:1 root stylesheet <===> ================================================================================ <===> after/indented/include/input.sass +a @forward "b" <===> after/indented/include/error Error: @forward rules must be written before any other rules. , 2 | @forward "b" | ^^^^^^^^^^^^ ' input.sass 2:1 root stylesheet sass-spec-libsass-3.6.3/spec/directives/forward/extend.hrx000066400000000000000000000024631355712145100236440ustar00rootroot00000000000000<===> README.md `@forward` should handle extensions in the same way as `@use`. We assume that they use shared infrastructure, though, and as such only test basic cases. <===> ================================================================================ <===> upstream/input.scss @use "midstream"; in-input {@extend in-upstream} <===> upstream/_midstream.scss @forward "upstream"; <===> upstream/_upstream.scss in-upstream {a: b} <===> upstream/output.css in-upstream, in-input { a: b; } <===> ================================================================================ <===> forward_into_use/input.scss @use "midstream"; in-input {@extend in-used} <===> forward_into_use/_midstream.scss @forward "forwarded"; <===> forward_into_use/_forwarded.scss @use "used"; <===> forward_into_use/_used.scss in-used {a: b} <===> forward_into_use/output.css in-used, in-input { a: b; } <===> ================================================================================ <===> forward_into_import/input.scss @use "midstream"; in-input {@extend in-imported} <===> forward_into_import/_midstream.scss @forward "forwarded"; <===> forward_into_import/_forwarded.scss @import "imported"; <===> forward_into_import/_imported.scss in-imported {a: b} <===> forward_into_import/output.css in-imported, in-input { a: b; } sass-spec-libsass-3.6.3/spec/directives/forward/member/000077500000000000000000000000001355712145100230745ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/directives/forward/member/as.hrx000066400000000000000000000062711355712145100242300ustar00rootroot00000000000000<===> variable_use/input.scss @use "midstream"; a {b: midstream.$d-c} <===> variable_use/_midstream.scss @forward "upstream" as d-*; <===> variable_use/_upstream.scss $c: e; <===> variable_use/output.css a { b: e; } <===> ================================================================================ <===> variable_assignment/top_level/input.scss @use "midstream"; midstream.$d-a: new value; b {c: midstream.d-get-a()}; <===> variable_assignment/top_level/_midstream.scss @forward "upstream" as d-*; <===> variable_assignment/top_level/_upstream.scss $a: old value; @function get-a() {@return $a} <===> variable_assignment/top_level/output.css b { c: new value; } <===> ================================================================================ <===> variable_assignment/nested/input.scss @use "midstream"; a { // Namespaced assignments always assign to the other module's variable, even // if they're nested in a block scope. midstream.$d-b: new value; c: midstream.d-get-b(); } <===> variable_assignment/nested/_midstream.scss @forward "upstream" as d-*; <===> variable_assignment/nested/_upstream.scss $b: old value; @function get-b() {@return $b} <===> variable_assignment/nested/output.css a { c: new value; } <===> ================================================================================ <===> function/input.scss @use "midstream"; a {b: midstream.d-c()} <===> function/_midstream.scss @forward "upstream" as d-*; <===> function/_upstream.scss @function c() {@return e} <===> function/output.css a { b: e; } <===> ================================================================================ <===> mixin/input.scss @use "midstream"; @include midstream.b-a; <===> mixin/_midstream.scss @forward "upstream" as b-*; <===> mixin/_upstream.scss @mixin a() {c {d: e}} <===> mixin/output.css c { d: e; } <===> ================================================================================ <===> different_separator/input.scss @use "midstream"; a {b: midstream.$d-c} <===> different_separator/_midstream.scss @forward "upstream" as d_*; <===> different_separator/_upstream.scss $c: e; <===> different_separator/output.css a { b: e; } <===> ================================================================================ <===> show/same_separator/input.scss @use "midstream"; @include midstream.b-a; <===> show/same_separator/_midstream.scss @forward "upstream" as b-* show b-a; <===> show/same_separator/_upstream.scss @mixin a() {c {d: e}} <===> show/same_separator/output.css c { d: e; } <===> ================================================================================ <===> show/different_separator/input.scss @use "midstream"; @include midstream.b-a; <===> show/different_separator/_midstream.scss @forward "upstream" as b-* show b_a; <===> show/different_separator/_upstream.scss @mixin a() {c {d: e}} <===> show/different_separator/output.css c { d: e; } <===> ================================================================================ <===> hide/input.scss @use "midstream"; @include midstream.b-a; <===> hide/_midstream.scss @forward "upstream" as b-* hide a; <===> hide/_upstream.scss @mixin a() {c {d: e}} <===> hide/output.css c { d: e; } sass-spec-libsass-3.6.3/spec/directives/forward/member/bare.hrx000066400000000000000000000034341355712145100245340ustar00rootroot00000000000000<===> variable_use/input.scss @use "midstream"; a {b: midstream.$c} <===> variable_use/_midstream.scss @forward "upstream"; <===> variable_use/_upstream.scss $c: d; <===> variable_use/output.css a { b: d; } <===> ================================================================================ <===> variable_assignment/top_level/input.scss @use "midstream"; midstream.$a: new value; b {c: midstream.get-a()}; <===> variable_assignment/top_level/_midstream.scss @forward "upstream"; <===> variable_assignment/top_level/_upstream.scss $a: old value; @function get-a() {@return $a} <===> variable_assignment/top_level/output.css b { c: new value; } <===> ================================================================================ <===> variable_assignment/nested/input.scss @use "midstream"; a { // Namespaced assignments always assign to the other module's variable, even // if they're nested in a block scope. midstream.$b: new value; c: midstream.get-b(); } <===> variable_assignment/nested/_midstream.scss @forward "upstream"; <===> variable_assignment/nested/_upstream.scss $b: old value; @function get-b() {@return $b} <===> variable_assignment/nested/output.css a { c: new value; } <===> ================================================================================ <===> function/input.scss @use "midstream"; a {b: midstream.c()} <===> function/_midstream.scss @forward "upstream"; <===> function/_upstream.scss @function c() {@return d} <===> function/output.css a { b: d; } <===> ================================================================================ <===> mixin/input.scss @use "midstream"; @include midstream.a; <===> mixin/_midstream.scss @forward "upstream"; <===> mixin/_upstream.scss @mixin a() {b {c: d}} <===> mixin/output.css b { c: d; } sass-spec-libsass-3.6.3/spec/directives/forward/member/import.hrx000066400000000000000000000066241355712145100251410ustar00rootroot00000000000000<===> precedence/README.md Forwarded definitions take precedence over local definitions through imports, to match the behavior of definitions written directly in the imported file. <===> ================================================================================ <===> precedence/top_level/input.scss $a: in-input; @import "midstream"; b {c: $a} <===> precedence/top_level/_midstream.scss @forward "upstream"; <===> precedence/top_level/_upstream.scss $a: in-upstream; <===> precedence/top_level/output.css b { c: in-upstream; } <===> ================================================================================ <===> precedence/nested/input.scss b { $a: in-input; @import "midstream"; c: $a; } <===> precedence/nested/_midstream.scss @forward "upstream"; <===> precedence/nested/_upstream.scss $a: in-upstream; <===> precedence/nested/output.css b { c: in-upstream; } <===> ================================================================================ <===> forward_to_import/mixin/input.scss @use "used"; @include used.a; <===> forward_to_import/mixin/_used.scss @forward "forwarded"; <===> forward_to_import/mixin/_forwarded.scss @import "imported"; <===> forward_to_import/mixin/_imported.scss @mixin a() {b {c: d}} <===> forward_to_import/mixin/output.css b { c: d; } <===> ================================================================================ <===> forward_to_import/variable_assignment/input.scss @use "used"; used.$a: new value; b {c: used.get-a()}; <===> forward_to_import/variable_assignment/_used.scss @forward "forwarded"; <===> forward_to_import/variable_assignment/_forwarded.scss @import "imported"; <===> forward_to_import/variable_assignment/_imported.scss $a: old value; @function get-a() {@return $a} <===> forward_to_import/variable_assignment/output.css b { c: new value; } <===> ================================================================================ <===> forward_to_import/variable_use/input.scss @use "used"; a {b: used.$c} <===> forward_to_import/variable_use/_used.scss @forward "forwarded"; <===> forward_to_import/variable_use/_forwarded.scss @import "imported"; <===> forward_to_import/variable_use/_imported.scss $c: d; <===> forward_to_import/variable_use/output.css a { b: d; } <===> ================================================================================ <===> import_to_forward/mixin/input.scss @import "midstream"; @include a; <===> import_to_forward/mixin/_midstream.scss @forward "upstream"; <===> import_to_forward/mixin/_upstream.scss @mixin a() {b {c: d}} <===> import_to_forward/mixin/output.css b { c: d; } <===> ================================================================================ <===> import_to_forward/variable_assignment/input.scss @import "midstream"; $a: new value; b {c: get-a()}; <===> import_to_forward/variable_assignment/_midstream.scss @forward "upstream"; <===> import_to_forward/variable_assignment/_upstream.scss $a: old value; @function get-a() {@return $a} <===> import_to_forward/variable_assignment/output.css b { c: new value; } <===> ================================================================================ <===> import_to_forward/variable_use/input.scss @import "midstream"; a {b: $c} <===> import_to_forward/variable_use/_midstream.scss @forward "upstream"; <===> import_to_forward/variable_use/_upstream.scss $c: d; <===> import_to_forward/variable_use/output.css a { b: d; } sass-spec-libsass-3.6.3/spec/directives/forward/member/shadowed.hrx000066400000000000000000000030321355712145100254130ustar00rootroot00000000000000<===> variable_use/input.scss @use "midstream"; a {b: midstream.$c} <===> variable_use/_midstream.scss @forward "upstream"; $c: midstream; <===> variable_use/_upstream.scss $c: upstream; <===> variable_use/output.css a { b: midstream; } <===> ================================================================================ <===> variable_assignment/top_level/input.scss @use "midstream"; midstream.$a: new value; b { midstream: midstream.get-midstream-a(); upstream: midstream.get-upstream-a(); }; <===> variable_assignment/top_level/_midstream.scss @forward "upstream"; $a: midstream value; @function get-midstream-a() {@return $a} <===> variable_assignment/top_level/_upstream.scss $a: upstream value; @function get-upstream-a() {@return $a} <===> variable_assignment/top_level/output.css b { midstream: midstream value; upstream: new value; } <===> ================================================================================ <===> function/input.scss @use "midstream"; a {b: midstream.c()} <===> function/_midstream.scss @forward "upstream"; @function c() {@return midstream} <===> function/_upstream.scss @function c() {@return upstream} <===> function/output.css a { b: midstream; } <===> ================================================================================ <===> mixin/input.scss @use "midstream"; @include midstream.a; <===> mixin/_midstream.scss @forward "upstream"; @mixin a() {b {c: midstream}} <===> mixin/_upstream.scss @mixin a() {b {c: upstream}} <===> mixin/output.css b { c: midstream; } sass-spec-libsass-3.6.3/spec/directives/forward/member/visibility.hrx000066400000000000000000000054011355712145100260060ustar00rootroot00000000000000<===> hide/mixin/_midstream.scss @forward "upstream" hide b; <===> hide/mixin/_upstream.scss @mixin a() {c {d: e}} <===> ================================================================================ <===> hide/mixin/input.scss @use "midstream"; @include midstream.a; <===> hide/mixin/output.css c { d: e; } <===> hide/variable_assignment/_midstream.scss @forward "upstream" hide d; <===> hide/variable_assignment/_upstream.scss $a: old value; @function get-a() {@return $a} <===> ================================================================================ <===> hide/variable_assignment/input.scss @use "midstream"; midstream.$a: new value; b {c: midstream.get-a()}; <===> hide/variable_assignment/output.css b { c: new value; } <===> hide/variable_use/_midstream.scss @forward "upstream" hide d; <===> hide/variable_use/_upstream.scss $c: e; <===> hide/variable_use/input.scss @use "midstream"; a {b: midstream.$c} <===> hide/variable_use/output.css a { b: e; } <===> hide/wrong_type/mixin/_midstream.scss @forward "upstream" hide $a; <===> hide/wrong_type/mixin/_upstream.scss @mixin a() {c {d: e}} <===> ================================================================================ <===> hide/wrong_type/mixin/input.scss @use "midstream"; @include midstream.a; <===> hide/wrong_type/mixin/output.css c { d: e; } <===> hide/wrong_type/variable_use/_midstream.scss @forward "upstream" hide c; <===> hide/wrong_type/variable_use/_upstream.scss $c: e; <===> ================================================================================ <===> hide/wrong_type/variable_use/input.scss @use "midstream"; a {b: midstream.$c} <===> hide/wrong_type/variable_use/output.css a { b: e; } <===> ================================================================================ <===> show/mixin/_midstream.scss @forward "upstream" show a; <===> show/mixin/_upstream.scss @mixin a() {b {c: d}} <===> ================================================================================ <===> show/mixin/input.scss @use "midstream"; @include midstream.a; <===> show/mixin/output.css b { c: d; } <===> show/variable_assignment/_midstream.scss @forward "upstream" show $a, get-a; <===> show/variable_assignment/_upstream.scss $a: old value; @function get-a() {@return $a} <===> ================================================================================ <===> show/variable_assignment/input.scss @use "midstream"; midstream.$a: new value; b {c: midstream.get-a()}; <===> show/variable_assignment/output.css b { c: new value; } <===> show/variable_use/_midstream.scss @forward "upstream" show $c; <===> show/variable_use/_upstream.scss $c: d; <===> show/variable_use/input.scss @use "midstream"; a {b: midstream.$c} <===> show/variable_use/output.css a { b: d; } sass-spec-libsass-3.6.3/spec/directives/forward/options.yml000066400000000000000000000000511355712145100240370ustar00rootroot00000000000000--- :todo: - libsass # sass/libsass#2807 sass-spec-libsass-3.6.3/spec/directives/function/000077500000000000000000000000001355712145100220065ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/directives/function/escaped.hrx000066400000000000000000000003621355712145100241360ustar00rootroot00000000000000<===> options.yml --- :todo: - sass/libsass#2700 <===> input.scss // Function names can be defined and referred to using escapes, which are // normalized. @function f\6Fo-bar() {@return 1} a {b: foo-b\61r()} <===> output.css a { b: 1; } sass-spec-libsass-3.6.3/spec/directives/if/000077500000000000000000000000001355712145100205575ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/directives/if/escaped.hrx000066400000000000000000000002701355712145100227050ustar00rootroot00000000000000<===> options.yml --- :todo: - sass/libsass#2700 <===> input.scss // Escapes should be normalized before directives are parsed. @\69 f true {a {b: c}} <===> output.css a { b: c; } sass-spec-libsass-3.6.3/spec/directives/import/000077500000000000000000000000001355712145100214735ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/directives/import/css.hrx000066400000000000000000000002271355712145100230070ustar00rootroot00000000000000<===> unquoted/input.sass @import other.css <===> unquoted/output.css @import "other.css"; <===> unquoted/output-libsass.css @import url(other.css); sass-spec-libsass-3.6.3/spec/directives/import/error/000077500000000000000000000000001355712145100226245ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/directives/import/error/conflict.hrx000066400000000000000000000111131355712145100251450ustar00rootroot00000000000000<===> partial/input.scss // This import can't be resolved because it could refer to either the partial or // the non-partial file. @import "other"; <===> partial/_other.scss a {partial: true} <===> partial/other.scss a {partial: false} <===> partial/error Error: It's not clear which file to import for '@import "other"'. Candidates: _other.scss other.scss Please delete or rename all but one of these files. on line 1 of /sass/spec/scss/import/partial_conflict/input.scss Use --trace for backtrace. <===> partial/error-dart-sass Error: It's not clear which file to import. Found: _other.scss other.scss , 3 | @import "other"; | ^^^^^^^ ' input.scss 3:9 root stylesheet <===> ================================================================================ <===> extension/input.scss // This import can't be resolved because it could refer to either the ".sass" or // ".scss" file. @import "other"; <===> extension/other.sass a syntax: sass <===> extension/other.scss a {syntax: scss} <===> extension/error Error: It's not clear which file to import for '@import "other"'. Candidates: other.sass other.scss Please delete or rename all but one of these files. on line 1 of /sass/spec/scss/import/extension_conflict/input.scss Use --trace for backtrace. <===> extension/error-dart-sass Error: It's not clear which file to import. Found: other.sass other.scss , 3 | @import "other"; | ^^^^^^^ ' input.scss 3:9 root stylesheet <===> ================================================================================ <===> all/input.scss // This import can't be resolved because it has conflicting partials *and* // conflicting extensions. @import "other"; <===> all/other.sass a syntax: sass partial: false <===> all/other.scss a {syntax: scss; partial: false} <===> all/_other.sass a syntax: sass partial: true <===> all/_other.scss a {syntax: scss; partial: true} <===> all/error Error: It's not clear which file to import for '@import "other"'. Candidates: _other.sass other.sass _other.scss other.scss Please delete or rename all but one of these files. on line 1 of /sass/spec/scss/import/all_conflict/input.scss Use --trace for backtrace. <===> all/error-dart-sass Error: It's not clear which file to import. Found: _other.sass other.sass _other.scss other.scss , 3 | @import "other"; | ^^^^^^^ ' input.scss 3:9 root stylesheet <===> index/input.scss // This import can't be resolved because it could refer to either the partial or // the non-partial index file. @import "other"; <===> index/other/_index.scss a {partial: true} <===> index/other/index.scss a {partial: false} <===> index/error Error: It's not clear which file to import for '@import "other"'. Candidates: _index.scss index.scss Please delete or rename all but one of these files. on line 1 of spec/directives/import/conflict/index/input.scss Use --trace for backtrace. <===> index/error-dart-sass Error: It's not clear which file to import. Found: other/_index.scss other/index.scss , 3 | @import "other"; | ^^^^^^^ ' input.scss 3:9 root stylesheet <===> ================================================================================ <===> import_only/options.yml --- :todo: - libsass <===> ================================================================================ <===> import_only/no_extension/input.scss // This import can't be resolved because it could refer to either the Sass or // the SCSS import-only file. @import "other"; <===> import_only/no_extension/other.import.scss a {syntax: scss} <===> import_only/no_extension/other.import.sass a syntax: sass <===> import_only/no_extension/error Error: It's not clear which file to import. Found: other.import.sass other.import.scss , 3 | @import "other"; | ^^^^^^^ ' input.scss 3:9 root stylesheet <===> ================================================================================ <===> import_only/with_extension/input.scss // This import can't be resolved because it could refer to either the partial or // the non-partial. @import "other.scss"; <===> import_only/with_extension/other.import.scss a {partial: false} <===> import_only/with_extension/_other.import.scss a {partial: true} <===> import_only/with_extension/error Error: It's not clear which file to import. Found: _other.import.scss other.import.scss , 3 | @import "other.scss"; | ^^^^^^^^^^^^ ' input.scss 3:9 root stylesheet sass-spec-libsass-3.6.3/spec/directives/import/error/not_found.hrx000066400000000000000000000021551355712145100253450ustar00rootroot00000000000000<===> no_extension/options.yml --- :todo: - libsass <===> no_extension/input.scss @import "other"; <===> no_extension/other a {b: c} <===> no_extension/error Error: File to import not found or unreadable: other. on line 1 of /sass/spec/directives/import/no_extension/input.scss Use --trace for backtrace. <===> no_extension/error-dart-sass Error: Can't find stylesheet to import. , 1 | @import "other"; | ^^^^^^^ ' input.scss 1:9 root stylesheet <===> ================================================================================ <===> directory_dot_import/input.scss // Import-only file extensions only apply to individual files, not to // directories. @import "other"; <===> directory_dot_import/other.import/index.scss a {b: c} <===> directory_dot_import/error Error: File to import not found or unreadable: other. on line 1 of /sass/spec/directives/import/directory_dot_import/input.scss Use --trace for backtrace. <===> directory_dot_import/error-dart-sass Error: Can't find stylesheet to import. , 3 | @import "other"; | ^^^^^^^ ' input.scss 3:9 root stylesheet sass-spec-libsass-3.6.3/spec/directives/import/load.hrx000066400000000000000000000157511355712145100231460ustar00rootroot00000000000000<===> explicit_extension/sass/input.scss @import "other.sass" <===> explicit_extension/sass/other.sass a syntax: sass <===> explicit_extension/sass/other.scss a {syntax: scss} <===> explicit_extension/sass/other.css a {syntax: css} <===> explicit_extension/sass/output.css a { syntax: sass; } <===> ================================================================================ <===> explicit_extension/scss/input.scss @import "other.scss" <===> explicit_extension/scss/other.sass a syntax: sass <===> explicit_extension/scss/other.scss a {syntax: scss} <===> explicit_extension/scss/other.css a {syntax: css} <===> explicit_extension/scss/output.css a { syntax: scss; } <===> ================================================================================ <===> precedence/scss_before_css/options.yml --- :todo: - sass/libsass#2699 <===> precedence/scss_before_css/input.scss @import "other"; <===> precedence/scss_before_css/other.scss a {syntax: scss} <===> precedence/scss_before_css/other.css a {syntax: css} <===> precedence/scss_before_css/output.css a { syntax: scss; } <===> ================================================================================ <===> precedence/sass_before_css/options.yml --- :todo: - sass/libsass#2699 <===> precedence/sass_before_css/input.scss @import "other"; <===> precedence/sass_before_css/other.sass a syntax: sass <===> precedence/sass_before_css/other.css a {syntax: css} <===> precedence/sass_before_css/output.css a { syntax: sass; } <===> precedence/normal_before_index/input.scss @import "dir"; <===> precedence/normal_before_index/dir/index.scss a {index: true} <===> precedence/normal_before_index/dir.scss a {index: false} <===> precedence/normal_before_index/output.css a { index: false; } <===> ================================================================================ <===> precedence/import_only/implicit_extension/options.yml --- :todo: - sass/libsass#2807 <===> precedence/import_only/implicit_extension/input.scss // The extension of the import-only file doesn't need to match the extension of // the use-only file. @import "other"; <===> precedence/import_only/implicit_extension/other.import.sass a import-only: true <===> precedence/import_only/implicit_extension/other.scss a {import-only: false} <===> precedence/import_only/implicit_extension/output.css a { import-only: true; } <===> ================================================================================ <===> precedence/import_only/explicit_extension/options.yml --- :todo: - sass/libsass#2807 <===> precedence/import_only/explicit_extension/input.scss @import "other"; <===> precedence/import_only/explicit_extension/other.import.scss a {import-only: true} <===> precedence/import_only/explicit_extension/other.scss a {import-only: false} <===> precedence/import_only/explicit_extension/output.css a { import-only: true; } <===> ================================================================================ <===> precedence/import_only/partial_before_normal/options.yml --- :todo: - sass/libsass#2807 <===> precedence/import_only/partial_before_normal/input.scss // An import-only partial takes precedence over a normal non-import-only file. @import "other"; <===> precedence/import_only/partial_before_normal/_other.import.scss a {import-only: true} <===> precedence/import_only/partial_before_normal/other.scss a {import-only: false} <===> precedence/import_only/partial_before_normal/output.css a { import-only: true; } <===> ================================================================================ <===> precedence/import_only/normal_before_partial/options.yml --- :todo: - sass/libsass#2807 <===> precedence/import_only/normal_before_partial/input.scss // A normal import-only file takes precedence over a non-import-only partial. @import "other"; <===> precedence/import_only/normal_before_partial/other.import.scss a {import-only: true} <===> precedence/import_only/normal_before_partial/_other.scss a {import-only: false} <===> precedence/import_only/normal_before_partial/output.css a { import-only: true; } <===> ================================================================================ <===> precedence/import_only/before_index/options.yml --- :todo: - sass/libsass#2807 <===> precedence/import_only/before_index/input.scss // A non-index import-only file takes precedence over an index file. @import "other"; <===> precedence/import_only/before_index/other.import.scss a {import-only: true} <===> precedence/import_only/before_index/other/index.scss a {import-only: false} <===> precedence/import_only/before_index/output.css a { import-only: true; } <===> ================================================================================ <===> precedence/import_only/index/options.yml --- :todo: - sass/libsass#2807 <===> precedence/import_only/index/input.scss // A import-only index file takes precedence over a normal index file. @import "other"; <===> precedence/import_only/index/other/index.import.scss a {import-only: true} <===> precedence/import_only/index/other/index.scss a {import-only: false} <===> precedence/import_only/index/output.css a { import-only: true; } <===> ================================================================================ <===> precedence/import_only/index_after_normal/input.scss // Index files, even import-only ones, always come after non-index files. @import "other"; <===> precedence/import_only/index_after_normal/other/index.import.scss a {import-only: true} <===> precedence/import_only/index_after_normal/other.scss a {import-only: false} <===> precedence/import_only/index_after_normal/output.css a { import-only: false; } <===> ================================================================================ <===> index/scss/dir/index.scss .foo { a: b; } <===> index/scss/input.scss @import "dir"; <===> index/scss/output.css .foo { a: b; } <===> ================================================================================ <===> index/sass/dir/index.sass .foo a: b <===> index/sass/input.scss @import "dir"; <===> index/sass/output.css .foo { a: b; } <===> ================================================================================ <===> index/partial/dir/_index.scss .foo { a: b; } <===> index/partial/input.scss @import "dir"; <===> index/partial/output.css .foo { a: b; } <===> ================================================================================ <===> index/dir_dot_foo/dir.foo/index.scss .foo { a: b; } <===> index/dir_dot_foo/input.scss @import "dir.foo"; <===> index/dir_dot_foo/output.css .foo { a: b; } <===> ================================================================================ <===> index/dir_dot_scss/dir.scss/index.scss .foo { a: b; } <===> index/dir_dot_scss/input.scss @import "dir.scss"; <===> index/dir_dot_scss/error Error: File to import not found or unreadable: dir.scss. <===> index/dir_dot_scss/error-dart-sass Error: Can't find stylesheet to import. , 1 | @import "dir.scss"; | ^^^^^^^^^^ ' input.scss 1:9 root stylesheet sass-spec-libsass-3.6.3/spec/directives/import/nested.hrx000066400000000000000000000045661355712145100235130ustar00rootroot00000000000000<===> scope/function/input.scss .parent { // This should be visible to the imported stylesheet. There's not really a // good reason for this, but it's the historical behavior so whatever. @function local() { @return value; } @import 'other'; } <===> scope/function/other.scss x { function: local(); } <===> scope/function/output.css .parent x { function: value; } <===> ================================================================================ <===> scope/mixin/input.scss .parent { // This should be visible to the imported stylesheet. There's not really a // good reason for this, but it's the historical behavior so whatever. @mixin local { x {y: z} } @import 'other'; } <===> scope/mixin/other.scss @include local; <===> scope/mixin/output.css .parent x { y: z; } <===> ================================================================================ <===> scope/variable/input.scss .parent { // This should be visible to the imported stylesheet. There's not really a // good reason for this, but it's the historical behavior so whatever. $var: value; @import 'other'; } <===> scope/variable/other.scss x { var: $var; } <===> scope/variable/output.css .parent x { var: value; } <===> ================================================================================ <===> at_rule/keyframes/input.scss a {@import "other"} <===> at_rule/keyframes/_other.scss // This should ignore the parent selector, since Sass knows @keyframes is only // valid at the root of a document. @keyframes b { 0% {c: d} } <===> at_rule/keyframes/output.css @keyframes b { 0% { c: d; } } <===> ================================================================================ <===> at_rule/childless/input.scss a {@import "other"} <===> at_rule/childless/_other.scss @b c; <===> at_rule/childless/output.css a { @b c; } <===> ================================================================================ <===> at_rule/declaration_child/input.scss a {@import "other"} <===> at_rule/declaration_child/_other.scss @b {c: d} <===> at_rule/declaration_child/output.css @b { a { c: d; } } <===> ================================================================================ <===> at_rule/rule_child/input.scss a {@import "other"} <===> at_rule/rule_child/_other.scss @b { c {d: e} } <===> at_rule/rule_child/output.css @b { a c { d: e; } } sass-spec-libsass-3.6.3/spec/directives/supports.hrx000066400000000000000000000010131355712145100225760ustar00rootroot00000000000000<===> error/syntax/trailing_or/input.scss @supports (a: b) or {} <===> error/syntax/trailing_or/error Error: expected "(". , 1 | @supports (a: b) or {} | ^ ' input.scss 1:21 root stylesheet <===> error/syntax/trailing_or/error-libsass Error: Invalid CSS after "...orts (a: b) or ": expected @supports condition (e.g. (display: flexbox)), was "{}" on line 1:20 of /sass/spec/directives/supports/error/syntax/trailing_or/input.scss >> @supports (a: b) or { -----------------------^ sass-spec-libsass-3.6.3/spec/directives/use/000077500000000000000000000000001355712145100207555ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/directives/use/css/000077500000000000000000000000001355712145100215455ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/directives/use/css/import.hrx000066400000000000000000000105751355712145100236120ustar00rootroot00000000000000<===> use_into_import/input.scss @use "used"; in-input {a: b} <===> use_into_import/_used.scss @import "imported"; in-used {a: b} <===> use_into_import/_imported.scss in-imported {a: b} <===> use_into_import/output.css in-imported { a: b; } in-used { a: b; } in-input { a: b; } <===> ================================================================================ <===> use_into_import_into_use/input.scss @use "used-downstream"; in-input {a: b} <===> use_into_import_into_use/_used-downstream.scss @import "imported"; in-used-downstream {a: b} <===> use_into_import_into_use/_imported.scss @use "used-upstream"; in-imported {a: b} <===> use_into_import_into_use/_used-upstream.scss in-used-upstream {a: b} <===> use_into_import_into_use/output.css in-used-upstream { a: b; } in-imported { a: b; } in-used-downstream { a: b; } in-input { a: b; } <===> ================================================================================ <===> use_and_import_same/input.scss @use "other"; // @import always duplicates CSS, even when that CSS has been @used. In other // words, @import's duplication takes precedence over @use's load-once policy. @import "other"; <===> use_and_import_same/_other.scss // Every import always evaluates the file being imported, so this should be // printed twice. @debug "evaluating other"; a {b: c} <===> use_and_import_same/output.css a { b: c; } a { b: c; } <===> use_and_import_same/warning _other.scss:3 DEBUG: evaluating other _other.scss:3 DEBUG: evaluating other <===> ================================================================================ <===> use_module_used_by_import/input.scss @use "shared"; @import "imported"; <===> use_module_used_by_import/_shared.scss // This file is only used, so this should only be printed once, even though one // of those uses came from an import. @debug "evaluating shared"; // However, imported CSS is always duplicated, so this should appear twice in // the output. a {b: c} <===> use_module_used_by_import/_imported.scss @use "shared"; <===> use_module_used_by_import/output.css a { b: c; } a { b: c; } <===> use_module_used_by_import/warning _shared.scss:3 DEBUG: evaluating shared <===> ================================================================================ <===> import_into_use/input.scss @import "imported"; in-input {a: b} <===> import_into_use/_imported.scss @use "used"; in-imported {a: b} <===> import_into_use/_used.scss in-used {a: b} <===> import_into_use/output.css in-used { a: b; } in-imported { a: b; } in-input { a: b; } <===> ================================================================================ <===> nested_import_into_use/input.scss outer {@import "imported"} <===> nested_import_into_use/_imported.scss @use "used"; in-imported {parent: inspect(&)} <===> nested_import_into_use/_used.scss // This parent selector will be `null`, because used modules are always // evaluated in a clean context, even if their CSS is then copied into an // imported file. in-used {parent: inspect(&)} <===> nested_import_into_use/output.css outer in-used { parent: (in-used,); } outer in-imported { parent: (outer in-imported,); } <===> ================================================================================ <===> import_into_use_into_import/input.scss @import "imported-downstream"; in-input {a: b} <===> import_into_use_into_import/_imported-downstream.scss @use "used"; in-imported-downstream {a: b} <===> import_into_use_into_import/_used.scss @import "imported-upstream"; in-used {a: b} <===> import_into_use_into_import/_imported-upstream.scss in-imported-upstream {a: b} <===> import_into_use_into_import/output.css in-imported-upstream { a: b; } in-used { a: b; } in-imported-downstream { a: b; } in-input { a: b; } <===> ================================================================================ <===> import_module_imported_by_use/input.scss @use "used"; @import "shared"; <===> import_module_imported_by_use/_shared.scss // This file is imported twice, so this should be printed twice, even though one // of those imports came from a use. @debug "evaluating shared"; a {b: c} <===> import_module_imported_by_use/_used.scss @import "shared"; <===> import_module_imported_by_use/output.css a { b: c; } a { b: c; } <===> import_module_imported_by_use/warning _shared.scss:3 DEBUG: evaluating shared _shared.scss:3 DEBUG: evaluating shared sass-spec-libsass-3.6.3/spec/directives/use/css/order.hrx000066400000000000000000000205371355712145100234120ustar00rootroot00000000000000<===> once/input.scss @use "other" as o1; @use "other" as o2; @use "other" as o3; <===> once/_other.scss a {b: c} <===> once/output.css a { b: c; } <===> ================================================================================ <===> use_into_use/input.scss @use "midstream"; a {file: input} <===> use_into_use/midstream.scss @use "upstream"; a {file: midstream} <===> use_into_use/upstream.scss a {file: upstream} <===> use_into_use/output.css a { file: upstream; } a { file: midstream; } a { file: input; } <===> ================================================================================ <===> use_order/input.scss @use "other1"; @use "other2"; @use "other3"; a {file: input} <===> use_order/other1.scss a {file: other1} <===> use_order/other2.scss a {file: other2} <===> use_order/other3.scss a {file: other3} <===> use_order/output.css a { file: other1; } a { file: other2; } a { file: other3; } a { file: input; } <===> ================================================================================ <===> diamond/input.scss @use "left"; @use "right"; a {file: input} <===> diamond/left.scss @use "shared"; a {file: left} <===> diamond/right.scss @use "shared"; a {file: right} <===> diamond/shared.scss a {file: shared} <===> diamond/output.css a { file: shared; } a { file: left; } a { file: right; } a { file: input; } <===> ================================================================================ <===> triangle/input.scss @use "midstream"; @use "upstream"; a {file: input} <===> triangle/midstream.scss @use "upstream"; a {file: midstream} <===> triangle/upstream.scss a {file: upstream} <===> triangle/output.css a { file: upstream; } a { file: midstream; } a { file: input; } <===> ================================================================================ <===> unrelated_branches/input.scss @use "left_midstream"; @use "right_midstream"; a {file: input} <===> unrelated_branches/left_midstream.scss @use "left_upstream"; a {file: left midstream} <===> unrelated_branches/left_upstream.scss a {file: left upstream} <===> unrelated_branches/right_midstream.scss @use "right_upstream"; a {file: right midstream} <===> unrelated_branches/right_upstream.scss a {file: right upstream} <===> unrelated_branches/output.css a { file: left upstream; } a { file: left midstream; } a { file: right upstream; } a { file: right midstream; } a { file: input; } <===> ================================================================================ <===> import_order/use_into_use/import_above_rule/input.scss @use "midstream"; @import "input.css"; <===> import_order/use_into_use/import_above_rule/_midstream.scss @use "upstream"; @import "midstream.css"; a {file: midstream} <===> import_order/use_into_use/import_above_rule/_upstream.scss @import "upstream.css"; a {file: upstream} <===> import_order/use_into_use/import_above_rule/output.css @import "upstream.css"; @import "midstream.css"; @import "input.css"; a { file: upstream; } a { file: midstream; } <===> ================================================================================ <===> import_order/use_into_use/import_below_rule/input.scss @use "midstream"; @import "input.css"; <===> import_order/use_into_use/import_below_rule/_midstream.scss @use "upstream"; a {file: midstream} @import "midstream.css"; <===> import_order/use_into_use/import_below_rule/_upstream.scss a {file: upstream} @import "upstream.css"; <===> import_order/use_into_use/import_below_rule/output.css @import "upstream.css"; @import "midstream.css"; @import "input.css"; a { file: upstream; } a { file: midstream; } <===> ================================================================================ <===> import_order/use_into_import/css_import_above_rule/input.scss @use "used"; @import "input.css"; <===> import_order/use_into_import/css_import_above_rule/_used.scss @import "imported"; @import "used.css"; a {file: used} <===> import_order/use_into_import/css_import_above_rule/_imported.scss @import "imported.css"; a {file: imported} <===> import_order/use_into_import/css_import_above_rule/output.css @import "imported.css"; @import "used.css"; @import "input.css"; a { file: imported; } a { file: used; } <===> ================================================================================ <===> import_order/use_into_import/css_import_below_rule/input.scss @use "used"; @import "input.css"; <===> import_order/use_into_import/css_import_below_rule/_used.scss @import "imported"; a {file: used} @import "used.css"; <===> import_order/use_into_import/css_import_below_rule/_imported.scss a {file: imported} @import "imported.css"; <===> import_order/use_into_import/css_import_below_rule/output.css @import "imported.css"; @import "used.css"; @import "input.css"; a { file: imported; } a { file: used; } <===> ================================================================================ <===> import_order/use_into_import/sass_import_below_css_import/input.scss @use "used"; @import "input.css"; <===> import_order/use_into_import/sass_import_below_css_import/_used.scss @import "used.css"; @import "imported"; <===> import_order/use_into_import/sass_import_below_css_import/_imported.scss @import "imported.css"; <===> import_order/use_into_import/sass_import_below_css_import/output.css @import "used.css"; @import "imported.css"; @import "input.css"; <===> ================================================================================ <===> import_order/import_into_use/css_import_above_rule/input.scss @import "imported"; @import "input.css"; <===> import_order/import_into_use/css_import_above_rule/_imported.scss @use "used"; @import "imported.css"; a {file: imported} <===> import_order/import_into_use/css_import_above_rule/_used.scss @import "used.css"; a {file: used} <===> import_order/import_into_use/css_import_above_rule/output.css @import "used.css"; @import "imported.css"; @import "input.css"; a { file: used; } a { file: imported; } <===> ================================================================================ <===> import_order/import_into_use/css_import_below_rule/input.scss @import "imported"; @import "input.css"; <===> import_order/import_into_use/css_import_below_rule/_imported.scss @use "used"; a {file: imported} @import "imported.css"; <===> import_order/import_into_use/css_import_below_rule/_used.scss a {file: used} @import "used.css"; <===> import_order/import_into_use/css_import_below_rule/output.css @import "used.css"; @import "imported.css"; @import "input.css"; a { file: used; } a { file: imported; } <===> ================================================================================ <===> import_order/import_into_use/sass_import_below_css_import/input.scss @import "input.css"; @import "imported"; <===> import_order/import_into_use/sass_import_below_css_import/_imported.scss @use "used"; @import "imported.css"; <===> import_order/import_into_use/sass_import_below_css_import/_used.scss @import "used.css"; <===> import_order/import_into_use/sass_import_below_css_import/output.css @import "input.css"; @import "used.css"; @import "imported.css"; <===> ================================================================================ <===> import_order/comments_and_imports/input.scss /* input comment before use */ @use "midstream"; /* input comment before import */ @import "input.css"; /* input comment after import */ <===> import_order/comments_and_imports/midstream.scss /* midstream comment before use */ @use "upstream"; /* midstream comment before first import */ @import "midstream1.css"; /* midstream comment before second import */ @import "midstream2.css"; /* midstream comment after imports */ a {file: midstream} <===> import_order/comments_and_imports/upstream.scss /* upstream comment before import */ @import "upstream.css"; /* upstream comment after import */ <===> import_order/comments_and_imports/output.css /* upstream comment before import */ @import "upstream.css"; /* midstream comment before use */ /* midstream comment before first import */ @import "midstream1.css"; /* midstream comment before second import */ @import "midstream2.css"; /* input comment before use */ /* input comment before import */ @import "input.css"; /* upstream comment after import */ /* midstream comment after imports */ a { file: midstream; } /* input comment after import */ sass-spec-libsass-3.6.3/spec/directives/use/error/000077500000000000000000000000001355712145100221065ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/directives/use/error/extend.hrx000066400000000000000000000100621355712145100241170ustar00rootroot00000000000000<===> optional_and_mandatory/README.md If an optional and a mandatory version of the same extension both exist, the mandatory version should still fail. <===> ================================================================================ <===> optional_and_mandatory/same_file/input.scss @use "other"; in-input { @extend %-in-other !optional; @extend %-in-other; } <===> optional_and_mandatory/same_file/_other.scss %-in-other {x: y} <===> optional_and_mandatory/same_file/error Error: The target selector was not found. Use "@extend %-in-other !optional" to avoid this error. , 5 | @extend %-in-other; | ^^^^^^^^^^^^^^^^^^ ' input.scss 5:3 root stylesheet <===> ================================================================================ <===> optional_and_mandatory/different_files/input.scss @use "optional"; @use "mandatory"; <===> optional_and_mandatory/different_files/_optional.scss @use "shared"; downstream {@extend %-in-other !optional}; <===> optional_and_mandatory/different_files/_mandatory.scss @use "shared"; downstream {@extend %-in-other}; <===> optional_and_mandatory/different_files/_shared.scss %-in-other {x: y} <===> optional_and_mandatory/different_files/error Error: The target selector was not found. Use "@extend %-in-other !optional" to avoid this error. , 3 | downstream {@extend %-in-other}; | ^^^^^^^^^^^^^^^^^^ ' _mandatory.scss 3:13 root stylesheet <===> ================================================================================ <===> scope/README.md All tests in this directory use mandatory extends to test extensions that don't have matches. Each test should have a counterpart in the non-error extend tests that tests the same thing but with `!optional` to verify that it doesn't produce an error message. <===> ================================================================================ <===> scope/sibling/input.scss @use "left"; @use "right"; <===> scope/sibling/_left.scss left-extendee {in: left} left-extender {@extend right-extendee} <===> scope/sibling/_right.scss right-extendee {in: right} <===> scope/sibling/error Error: The target selector was not found. Use "@extend right-extendee !optional" to avoid this error. , 2 | left-extender {@extend right-extendee} | ^^^^^^^^^^^^^^^^^^^^^^ ' _left.scss 2:16 root stylesheet <===> ================================================================================ <===> scope/downstream/input.scss @use "other"; in-input {x: y} <===> scope/downstream/_other.scss in-other {@extend in-input} <===> scope/downstream/error Error: The target selector was not found. Use "@extend in-input !optional" to avoid this error. , 1 | in-other {@extend in-input} | ^^^^^^^^^^^^^^^^ ' _other.scss 1:11 root stylesheet <===> ================================================================================ <===> scope/private/input.scss @use "other"; in-input {@extend %-in-other} <===> scope/private/_other.scss %-in-other {x: y} in-other {@extend %-in-other} <===> scope/private/error Error: The target selector was not found. Use "@extend %-in-other !optional" to avoid this error. , 3 | in-input {@extend %-in-other} | ^^^^^^^^^^^^^^^^^^ ' input.scss 3:11 root stylesheet <===> ================================================================================ <===> scope/diamond/input.scss // Even though left-extendee and right-extendee both end up in the style rule // defined in _shared.scss, they aren't extended by the other file because those // files don't use one another. @use "left"; @use "right"; <===> scope/diamond/_left.scss @use "shared"; left-extendee {@extend in-shared} left-extender {@extend right-extendee} <===> scope/diamond/_right.scss @use "shared"; right-extendee {@extend in-shared} <===> scope/diamond/_shared.scss in-shared {x: y} <===> scope/diamond/error Error: The target selector was not found. Use "@extend right-extendee !optional" to avoid this error. , 4 | left-extender {@extend right-extendee} | ^^^^^^^^^^^^^^^^^^^^^^ ' _left.scss 4:16 root stylesheet sass-spec-libsass-3.6.3/spec/directives/use/error/load.hrx000066400000000000000000000144551355712145100235610ustar00rootroot00000000000000<===> unknown_scheme/input.scss @use "scheme:bar"; <===> unknown_scheme/error Error: Can't find stylesheet to import. , 1 | @use "scheme:bar"; | ^^^^^^^^^^^^^^^^^ ' input.scss 1:1 root stylesheet <===> ================================================================================ <===> no_extension/input.scss @use "other"; <===> no_extension/other a {b: c} <===> no_extension/error Error: Can't find stylesheet to import. , 1 | @use "other"; | ^^^^^^^^^^^^ ' input.scss 1:1 root stylesheet <===> ================================================================================ <===> missing/input.scss @use "other"; <===> missing/error Error: Can't find stylesheet to import. , 1 | @use "other"; | ^^^^^^^^^^^^ ' input.scss 1:1 root stylesheet <===> ================================================================================ <===> dir_dot_scss/input.scss @use "dir.scss"; <===> dir_dot_scss/dir.scss/index.scss .foo { a: b; } <===> dir_dot_scss/error Error: Can't find stylesheet to import. , 1 | @use "dir.scss"; | ^^^^^^^^^^^^^^^ ' input.scss 1:1 root stylesheet <===> ================================================================================ <===> conflict/partial/input.scss // This import can't be resolved because it could refer to either the partial or // the non-partial file. @use "other"; <===> conflict/partial/_other.scss a {partial: true} <===> conflict/partial/other.scss a {partial: false} <===> conflict/partial/error Error: It's not clear which file to import. Found: _other.scss other.scss , 3 | @use "other"; | ^^^^^^^^^^^^ ' input.scss 3:1 root stylesheet <===> ================================================================================ <===> conflict/extension/sass_and_scss/input.scss // This import can't be resolved because it could refer to either the ".sass" or // ".scss" file. @use "other"; <===> conflict/extension/sass_and_scss/other.sass a syntax: sass <===> conflict/extension/sass_and_scss/other.scss a {syntax: scss} <===> conflict/extension/sass_and_scss/error Error: It's not clear which file to import. Found: other.sass other.scss , 3 | @use "other"; | ^^^^^^^^^^^^ ' input.scss 3:1 root stylesheet <===> ================================================================================ <===> conflict/all/input.scss // This import can't be resolved because it has conflicting partials *and* // conflicting extensions. @use "other"; <===> conflict/all/other.sass a syntax: sass partial: false <===> conflict/all/other.scss a {syntax: scss; partial: false} <===> conflict/all/other.css a {syntax: css; partial: false} <===> conflict/all/_other.sass a syntax: sass partial: true <===> conflict/all/_other.scss a {syntax: scss; partial: true} <===> conflict/all/_other.css a {syntax: css; partial: true} <===> conflict/all/error Error: It's not clear which file to import. Found: _other.sass other.sass _other.scss other.scss , 3 | @use "other"; | ^^^^^^^^^^^^ ' input.scss 3:1 root stylesheet <===> ================================================================================ <===> conflict/index/input.scss // This import can't be resolved because it could refer to either the partial or // the non-partial index file. @use "other"; <===> conflict/index/other/_index.scss a {partial: true} <===> conflict/index/other/index.scss a {partial: false} <===> conflict/index/error Error: It's not clear which file to import. Found: other/_index.scss other/index.scss , 3 | @use "other"; | ^^^^^^^^^^^^ ' input.scss 3:1 root stylesheet <===> ================================================================================ <===> loop/use_self/input.scss @use "input"; <===> loop/use_self/error Error: Module loop: this module is already being loaded. , 1 | @use "input"; | ^^^^^^^^^^^^ ' input.scss 1:1 root stylesheet <===> ================================================================================ <===> loop/use_to_use/input.scss @use "other"; <===> loop/use_to_use/other.scss @use "input"; <===> loop/use_to_use/error Error: Module loop: this module is already being loaded. , 1 | @use "input"; | ^^^^^^^^^^^^ ' other.scss 1:1 @use input.scss 1:1 root stylesheet <===> ================================================================================ <===> loop/use_to_import/input.scss @use "other"; <===> loop/use_to_import/other.scss @import "input"; <===> loop/use_to_import/error Error: This file is already being loaded. , 1 | @import "input"; | ^^^^^^^ ' other.scss 1:9 @use input.scss 1:1 root stylesheet <===> ================================================================================ <===> loop/import_to_use/input.scss @import "other"; <===> loop/import_to_use/other.scss @use "input"; <===> loop/import_to_use/error Error: Module loop: this module is already being loaded. , 1 | @use "input"; | ^^^^^^^^^^^^ ' other.scss 1:1 @import input.scss 1:9 root stylesheet <===> ================================================================================ <===> conflicting_namespace/explicit/input.scss @use "other1" as other; @use "other2" as other; <===> conflicting_namespace/explicit/other1.scss <===> conflicting_namespace/explicit/other2.scss <===> conflicting_namespace/explicit/error Error: There's already a module with namespace "other". , 2 | @use "other2" as other; | ^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 2:1 root stylesheet <===> ================================================================================ <===> conflicting_namespace/implicit/input.scss @use "dir1/other"; @use "dir2/other"; <===> conflicting_namespace/implicit/dir1/other.scss <===> conflicting_namespace/implicit/dir2/other.scss <===> conflicting_namespace/implicit/error Error: There's already a module with namespace "other". , 2 | @use "dir2/other"; | ^^^^^^^^^^^^^^^^^ ' input.scss 2:1 root stylesheet <===> ================================================================================ <===> conflicting_namespace/mixed/input.scss @use "other"; @use "other2" as other; <===> conflicting_namespace/mixed/other.scss <===> conflicting_namespace/mixed/other2.scss <===> conflicting_namespace/mixed/error Error: There's already a module with namespace "other". , 2 | @use "other2" as other; | ^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 2:1 root stylesheet sass-spec-libsass-3.6.3/spec/directives/use/error/member.hrx000066400000000000000000000244121355712145100241030ustar00rootroot00000000000000<===> missing_member/namespaced/variable_use/input.scss @use "other"; a {b: other.$member} <===> missing_member/namespaced/variable_use/other.scss <===> missing_member/namespaced/variable_use/error Error: Undefined variable. , 3 | a {b: other.$member} | ^^^^^^^^^^^^^ ' input.scss 3:7 root stylesheet <===> ================================================================================ <===> missing_member/namespaced/variable_declaration/input.scss @use "other"; other.$member: value; <===> missing_member/namespaced/variable_declaration/other.scss <===> missing_member/namespaced/variable_declaration/error Error: Undefined variable. , 3 | other.$member: value; | ^^^^^^^^^^^^^^^^^^^^ ' input.scss 3:1 root stylesheet <===> ================================================================================ <===> missing_member/namespaced/function/input.scss @use "other"; a {b: other.member()} <===> missing_member/namespaced/function/other.scss <===> missing_member/namespaced/function/error Error: Undefined function. , 3 | a {b: other.member()} | ^^^^^^^^^^^^^^ ' input.scss 3:7 root stylesheet <===> ================================================================================ <===> missing_member/namespaced/mixin/input.scss @use "other"; @include other.member; <===> missing_member/namespaced/mixin/other.scss <===> missing_member/namespaced/mixin/error Error: Undefined mixin. , 3 | @include other.member; | ^^^^^^^^^^^^^^^^^^^^^ ' input.scss 3:1 root stylesheet <===> ================================================================================ <===> missing_member/global/variable/input.scss @use "other"; a {b: $member} <===> missing_member/global/variable/other.scss <===> missing_member/global/variable/error Error: Undefined variable. , 3 | a {b: $member} | ^^^^^^^ ' input.scss 3:7 root stylesheet <===> ================================================================================ <===> missing_member/global/mixin/input.scss @use "other"; @include member; <===> missing_member/global/mixin/other.scss <===> missing_member/global/mixin/error Error: Undefined mixin. , 3 | @include member; | ^^^^^^^^^^^^^^^ ' input.scss 3:1 root stylesheet <===> ================================================================================ <===> member_before_use/variable_use/input.scss $variable: other.$member; @use "other"; <===> member_before_use/variable_use/other.scss $member: value; <===> member_before_use/variable_use/error Error: There is no module with the namespace "other". , 1 | $variable: other.$member; | ^^^^^^^^^^^^^ ' input.scss 1:12 root stylesheet <===> ================================================================================ <===> member_before_use/variable_declaration/input.scss other.$member: value; @use "other"; <===> member_before_use/variable_declaration/other.scss $member: value; <===> member_before_use/variable_declaration/error Error: There is no module with the namespace "other". , 1 | other.$member: value; | ^^^^^^^^^^^^^^^^^^^^ ' input.scss 1:1 root stylesheet <===> ================================================================================ <===> member_before_use/variable_declaration_without_namespace/input.scss $member: from input; @use "other" as *; a {b: $member} <===> member_before_use/variable_declaration_without_namespace/other.scss $member: from other; <===> member_before_use/variable_declaration_without_namespace/error Error: This module and the new module both define a variable named "$member". , 3 | @use "other" as *; | ^^^^^^^^^^^^^^^^^ ' input.scss 3:1 root stylesheet <===> ================================================================================ <===> member_before_use/function/input.scss $variable: other.member(); @use "other"; <===> member_before_use/function/other.scss @function member() {@return null} <===> member_before_use/function/error Error: There is no module with the namespace "other". , 1 | $variable: other.member(); | ^^^^^^^^^^^^^^ ' input.scss 1:12 root stylesheet <===> ================================================================================ <===> member_conflict/variable/input.scss @use "other1" as *; @use "other2" as *; a {b: $member} <===> member_conflict/variable/other1.scss $member: from other1; <===> member_conflict/variable/other2.scss $member: from other2; <===> member_conflict/variable/error Error: This variable is available from multiple global modules: * other1.scss * other2.scss , 4 | a {b: $member} | ^^^^^^^ ' input.scss 4:7 root stylesheet <===> ================================================================================ <===> member_conflict/function/input.scss @use "other1" as *; @use "other2" as *; a {b: member()} <===> member_conflict/function/other1.scss @function member() {@return from other1} <===> member_conflict/function/other2.scss @function member() {@return from other2} <===> member_conflict/function/error Error: This function is available from multiple global modules: * other1.scss * other2.scss , 4 | a {b: member()} | ^^^^^^^^ ' input.scss 4:7 root stylesheet <===> ================================================================================ <===> member_conflict/mixin/input.scss @use "other1" as *; @use "other2" as *; a {@include member} <===> member_conflict/mixin/other1.scss @mixin member {a: from other1} <===> member_conflict/mixin/other2.scss @mixin member {a: from other2} <===> member_conflict/mixin/error Error: This mixin is available from multiple global modules: * other1.scss * other2.scss , 4 | a {@include member} | ^^^^^^^^^^^^^^^ ' input.scss 4:4 root stylesheet <===> ================================================================================ <===> inaccessible_member/transitive/variable/input.scss @use "midstream" as *; a {b: $upstream}; <===> inaccessible_member/transitive/variable/midstream.scss @use "upstream" as *; <===> inaccessible_member/transitive/variable/upstream.scss $upstream: value; <===> inaccessible_member/transitive/variable/error Error: Undefined variable. , 3 | a {b: $upstream}; | ^^^^^^^^^ ' input.scss 3:7 root stylesheet <===> ================================================================================ <===> inaccessible_member/transitive/function/input.scss @use "midstream" as *; // This is technically not a compile error, since `-member()` is treated as // plain CSS, but it's included here for consistency with the other specs. a {b: upstream()}; <===> inaccessible_member/transitive/function/midstream.scss @use "upstream" as *; <===> inaccessible_member/transitive/function/upstream.scss @function upstream() {@return value} <===> inaccessible_member/transitive/function/output.css a { b: upstream(); } <===> ================================================================================ <===> inaccessible_member/transitive/mixin/input.scss @use "midstream" as *; @include upstream; <===> inaccessible_member/transitive/mixin/midstream.scss @use "upstream" as *; <===> inaccessible_member/transitive/mixin/upstream.scss @mixin upstream {a {b: c}} <===> inaccessible_member/transitive/mixin/error Error: Undefined mixin. , 3 | @include upstream; | ^^^^^^^^^^^^^^^^^ ' input.scss 3:1 root stylesheet <===> ================================================================================ <===> inaccessible_member/transitive_from_import/variable/input.scss @import "midstream"; a {b: $upstream}; <===> inaccessible_member/transitive_from_import/variable/midstream.scss @use "upstream" as *; <===> inaccessible_member/transitive_from_import/variable/upstream.scss $upstream: value; <===> inaccessible_member/transitive_from_import/variable/error Error: Undefined variable. , 3 | a {b: $upstream}; | ^^^^^^^^^ ' input.scss 3:7 root stylesheet <===> ================================================================================ <===> inaccessible_member/transitive_from_import/function/input.scss @import "midstream"; // This is technically not a compile error, since `upstream()` is treated as // plain CSS, but it's included here for consistency with the other specs. a {b: upstream()}; <===> inaccessible_member/transitive_from_import/function/midstream.scss @use "upstream" as *; <===> inaccessible_member/transitive_from_import/function/upstream.scss @function upstream() {@return value} <===> inaccessible_member/transitive_from_import/function/output.css a { b: upstream(); } <===> ================================================================================ <===> inaccessible_member/transitive_from_import/mixin/input.scss @import "midstream"; @include upstream; <===> inaccessible_member/transitive_from_import/mixin/midstream.scss @use "upstream" as *; <===> inaccessible_member/transitive_from_import/mixin/upstream.scss @mixin upstream {a {b: c}} <===> inaccessible_member/transitive_from_import/mixin/error Error: Undefined mixin. , 3 | @include upstream; | ^^^^^^^^^^^^^^^^^ ' input.scss 3:1 root stylesheet <===> ================================================================================ <===> inaccessible_member/private/variable/input.scss @use "other" as *; a {b: $-member}; <===> inaccessible_member/private/variable/other.scss $-member: value; <===> inaccessible_member/private/variable/error Error: Undefined variable. , 3 | a {b: $-member}; | ^^^^^^^^ ' input.scss 3:7 root stylesheet <===> ================================================================================ <===> inaccessible_member/private/function/input.scss @use "other" as *; // This is technically not a compile error, since `-member()` is treated as // plain CSS, but it's included here for consistency with the other specs. a {b: -member()}; <===> inaccessible_member/private/function/other.scss @function -member() {@return value} <===> inaccessible_member/private/function/output.css a { b: -member(); } <===> ================================================================================ <===> inaccessible_member/private/mixin/input.scss @use "other" as *; @include -member; <===> inaccessible_member/private/mixin/other.scss @mixin -member {a {b: c}} <===> inaccessible_member/private/mixin/error Error: Undefined mixin. , 3 | @include -member; | ^^^^^^^^^^^^^^^^ ' input.scss 3:1 root stylesheet sass-spec-libsass-3.6.3/spec/directives/use/error/syntax.hrx000066400000000000000000000275271355712145100241740ustar00rootroot00000000000000<===> empty/input.scss @use; <===> empty/error Error: Expected string. , 1 | @use; | ^ ' input.scss 1:5 root stylesheet <===> ================================================================================ <===> as_nothing/input.scss @use "foo" as; <===> as_nothing/error Error: Expected identifier. , 1 | @use "foo" as; | ^ ' input.scss 1:14 root stylesheet <===> ================================================================================ <===> as_invalid/input.scss @use "foo" as 1; <===> as_invalid/error Error: Expected identifier. , 1 | @use "foo" as 1; | ^ ' input.scss 1:15 root stylesheet <===> ================================================================================ <===> url/unquoted/input.scss @use foo; <===> url/unquoted/error Error: Expected string. , 1 | @use foo; | ^ ' input.scss 1:6 root stylesheet <===> ================================================================================ <===> url/empty/input.scss @use ""; <===> url/empty/error Error: Invalid Sass identifier "" , 1 | @use ""; | ^^^^^^^ ' input.scss 1:1 root stylesheet <===> ================================================================================ <===> url/non_identifier/input.scss @use "123"; <===> url/non_identifier/error Error: Invalid Sass identifier "123" , 1 | @use "123"; | ^^^^^^^^^^ ' input.scss 1:1 root stylesheet <===> ================================================================================ <===> member/single_dot/input.scss a {a: .} <===> member/single_dot/error Error: Expected digit. , 1 | a {a: .} | ^ ' input.scss 1:8 root stylesheet <===> ================================================================================ <===> within/mixin/input.scss @mixin foo { @use "other"; } <===> within/mixin/error Error: This at-rule is not allowed here. , 2 | @use "other"; | ^^^^^^^^^^^^ ' input.scss 2:3 root stylesheet <===> ================================================================================ <===> within/function/input.scss @function foo { @use "other"; } <===> within/function/error Error: expected "(". , 1 | @function foo { | ^ ' input.scss 1:15 root stylesheet <===> ================================================================================ <===> within/style_rule/input.scss a { @use "other"; } <===> within/style_rule/error Error: This at-rule is not allowed here. , 2 | @use "other"; | ^^^^^^^^^^^^ ' input.scss 2:3 root stylesheet <===> ================================================================================ <===> after/at_rule/unknown/input.scss @fblthp; @use "other"; <===> after/at_rule/unknown/error Error: @use rules must be written before any other rules. , 2 | @use "other"; | ^^^^^^^^^^^^ ' input.scss 2:1 root stylesheet <===> ================================================================================ <===> after/at_rule/sass/input.scss @if true {}; @use "other"; <===> after/at_rule/sass/error Error: @use rules must be written before any other rules. , 2 | @use "other"; | ^^^^^^^^^^^^ ' input.scss 2:1 root stylesheet <===> ================================================================================ <===> after/at_rule/import/input.scss @import "other1"; @use "other2"; <===> after/at_rule/import/error Error: @use rules must be written before any other rules. , 2 | @use "other2"; | ^^^^^^^^^^^^^ ' input.scss 2:1 root stylesheet <===> ================================================================================ <===> after/at_rule/css/input.scss @keyframes foo {}; @use "other"; <===> after/at_rule/css/error Error: @use rules must be written before any other rules. , 2 | @use "other"; | ^^^^^^^^^^^^ ' input.scss 2:1 root stylesheet <===> ================================================================================ <===> after/style_rule/input.scss a {}; @use "other"; <===> after/style_rule/error Error: @use rules must be written before any other rules. , 2 | @use "other"; | ^^^^^^^^^^^^ ' input.scss 2:1 root stylesheet <===> ================================================================================ <===> after/indented/mixin/input.sass =mixin a: b @use "other" <===> after/indented/mixin/error Error: @use rules must be written before any other rules. , 3 | @use "other" | ^^^^^^^^^^^^ ' input.sass 3:1 root stylesheet <===> ================================================================================ <===> after/indented/include/input.sass +mixin @use "other" <===> after/indented/include/error Error: @use rules must be written before any other rules. , 2 | @use "other" | ^^^^^^^^^^^^ ' input.sass 2:1 root stylesheet <===> ================================================================================ <===> member/identifier_only/input.scss // A namespaced identifier with neither parentheses for a function nor a leading // dollar sign for a variable is invalid syntax. a {a: namespace.member} <===> member/identifier_only/error Error: expected "(". , 3 | a {a: namespace.member} | ^ ' input.scss 3:23 root stylesheet <===> ================================================================================ <===> member/function/no_namespace/input.scss a {a: .member()} <===> member/function/no_namespace/error Error: Expected digit. , 1 | a {a: .member()} | ^ ' input.scss 1:8 root stylesheet <===> ================================================================================ <===> member/function/no_member/input.scss a {a: namespace.()} <===> member/function/no_member/error Error: Expected identifier. , 1 | a {a: namespace.()} | ^ ' input.scss 1:17 root stylesheet <===> ================================================================================ <===> member/function/private/input.scss a {a: namespace._member()} <===> member/function/private/error Error: Private members can't be accessed from outside their modules. , 1 | a {a: namespace._member()} | ^^^^^^^ ' input.scss 1:17 root stylesheet <===> ================================================================================ <===> member/function/definition/input.scss @function namespace.member() {@return null} <===> member/function/definition/error Error: expected "(". , 1 | @function namespace.member() {@return null} | ^ ' input.scss 1:20 root stylesheet <===> ================================================================================ <===> member/variable/no_namespace/input.scss a {a: $.member} <===> member/variable/no_namespace/error Error: Expected identifier. , 1 | a {a: $.member} | ^ ' input.scss 1:8 root stylesheet <===> ================================================================================ <===> member/variable/no_member/input.scss a {a: namespace.$} <===> member/variable/no_member/error Error: Expected identifier. , 1 | a {a: namespace.$} | ^ ' input.scss 1:18 root stylesheet <===> ================================================================================ <===> member/variable/private/input.scss a {a: namespace.$_member} <===> member/variable/private/error Error: Private members can't be accessed from outside their modules. , 1 | a {a: namespace.$_member} | ^^^^^^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet <===> ================================================================================ <===> member/variable/global/input.scss namespace.$member: value !global; <===> member/variable/global/error Error: !global isn't allowed for variables in other modules. , 1 | namespace.$member: value !global; | ^^^^^^^ ' input.scss 1:26 root stylesheet <===> ================================================================================ <===> member/mixin/no_namespace/input.scss a {@include .member} <===> member/mixin/no_namespace/error Error: Expected identifier. , 1 | a {@include .member} | ^ ' input.scss 1:13 root stylesheet <===> ================================================================================ <===> member/mixin/no_member/input.scss a {@include namespace.} <===> member/mixin/no_member/error Error: Expected identifier. , 1 | a {@include namespace.} | ^ ' input.scss 1:23 root stylesheet <===> ================================================================================ <===> member/mixin/private/input.scss a {@include namespace._member} <===> member/mixin/private/error Error: Private members can't be accessed from outside their modules. , 1 | a {@include namespace._member} | ^^^^^^^ ' input.scss 1:23 root stylesheet <===> ================================================================================ <===> member/mixin/definition/input.scss @mixin namespace.member() {} <===> member/mixin/definition/error Error: expected "{". , 1 | @mixin namespace.member() {} | ^ ' input.scss 1:17 root stylesheet <===> ================================================================================ <===> member/unused_private/input.scss // Private member usage is a syntax error, so it should fail at parse time // without needing to be executed. @function foo() { @debug namespace.$_member; } <===> member/unused_private/error Error: Private members can't be accessed from outside their modules. , 4 | @debug namespace.$_member; | ^^^^^^^^^^^^^^^^^^ ' input.scss 4:10 root stylesheet <===> ================================================================================ <===> with/empty/input.scss @use "other" with (); <===> with/empty/error Error: expected "$". , 1 | @use "other" with (); | ^ ' input.scss 1:20 root stylesheet <===> ================================================================================ <===> with/missing_keyword/input.scss @use "other" with (a); <===> with/missing_keyword/error Error: expected "$". , 1 | @use "other" with (a); | ^ ' input.scss 1:20 root stylesheet <===> ================================================================================ <===> with/missing_value/input.scss @use "other" with ($a); <===> with/missing_value/error Error: expected ":". , 1 | @use "other" with ($a); | ^ ' input.scss 1:22 root stylesheet <===> ================================================================================ <===> with/space_after_dollar/input.scss @use "other" with ($ a: b); <===> with/space_after_dollar/error Error: Expected identifier. , 1 | @use "other" with ($ a: b); | ^ ' input.scss 1:21 root stylesheet <===> ================================================================================ <===> with/namespace_variable/input.scss @use "other" with (a.$b: c); <===> with/namespace_variable/error Error: expected "$". , 1 | @use "other" with (a.$b: c); | ^ ' input.scss 1:20 root stylesheet <===> ================================================================================ <===> with/extra_comma/input.scss @use "other" with ($a,,); <===> with/extra_comma/error Error: expected ":". , 1 | @use "other" with ($a,,); | ^ ' input.scss 1:22 root stylesheet <===> ================================================================================ <===> with/no_arguments/input.scss @use "other" with; <===> with/no_arguments/error Error: expected "(". , 1 | @use "other" with; | ^ ' input.scss 1:18 root stylesheet <===> ================================================================================ <===> with/before_as/input.scss @use "other" with ($a: b) as c; <===> with/before_as/error Error: expected ";". , 1 | @use "other" with ($a: b) as c; | ^ ' input.scss 1:27 root stylesheet sass-spec-libsass-3.6.3/spec/directives/use/error/with.hrx000066400000000000000000000203301355712145100236020ustar00rootroot00000000000000<===> undefined/input.scss @use "other" with ($a: b); <===> undefined/_other.scss // This file defines no variables. <===> undefined/error Error: This variable was not declared with !default in the @used module. , 1 | @use "other" with ($a: b); | ^^^^^ ' input.scss 1:20 @use input.scss 1:1 root stylesheet <===> ================================================================================ <===> not_default/input.scss @use "other" with ($a: b); <===> not_default/_other.scss $a: c; <===> not_default/error Error: This variable was not declared with !default in the @used module. , 1 | @use "other" with ($a: b); | ^^^^^ ' input.scss 1:20 @use input.scss 1:1 root stylesheet <===> ================================================================================ <===> namespace/input.scss @use "midstream" with ($a: b); <===> namespace/_midstream.scss @use "upstream"; upstream.$a: c !default; <===> namespace/_upstream.scss $a: d; <===> namespace/error Error: This variable was not declared with !default in the @used module. , 1 | @use "midstream" with ($a: b); | ^^^^^ ' input.scss 1:24 @use input.scss 1:1 root stylesheet <===> ================================================================================ <===> nested/input.scss @use "other" with ($a: b); <===> nested/_other.scss c {$a: d !default} <===> nested/error Error: This variable was not declared with !default in the @used module. , 1 | @use "other" with ($a: b); | ^^^^^ ' input.scss 1:20 @use input.scss 1:1 root stylesheet <===> ================================================================================ <===> conflict/input.scss @use "midstream" with ($a: b); <===> conflict/_midstream.scss @use "left" as *; @use "right" as *; $a: c !default; <===> conflict/_left.scss $a: left; <===> conflict/_right.scss $a: right; <===> conflict/error Error: This variable is available from multiple global modules: * _left.scss * _right.scss , 4 | $a: c !default; | ^^^^^^^^^^^^^^ ' _midstream.scss 4:1 @use input.scss 1:1 root stylesheet <===> ================================================================================ <===> invalid_expression/error/input.scss @use "other" with ($a: 1px + 1em); <===> invalid_expression/error/_other.scss $a: c !default; <===> invalid_expression/error/error Error: Incompatible units em and px. , 1 | @use "other" with ($a: 1px + 1em); | ^^^^^^^^^ ' input.scss 1:24 root stylesheet <===> ================================================================================ <===> invalid_expression/variable_defined_later/input.scss @use "other" with ($a: $b); $b: c; <===> invalid_expression/variable_defined_later/_other.scss $a: d !default; <===> invalid_expression/variable_defined_later/error Error: Undefined variable. , 1 | @use "other" with ($a: $b); | ^^ ' input.scss 1:24 root stylesheet <===> ================================================================================ <===> invalid_expression/module_loaded_later/input.scss @use "configured" with ($a: other.$b); @use "other"; <===> invalid_expression/module_loaded_later/_configured.scss $a: c !default; <===> invalid_expression/module_loaded_later/_other.scss $b: d; <===> invalid_expression/module_loaded_later/error Error: There is no module with the namespace "other". , 1 | @use "configured" with ($a: other.$b); | ^^^^^^^^ ' input.scss 1:29 root stylesheet <===> ================================================================================ <===> repeated_variable/input.scss @use "other" with ($a: b, $a: c); <===> repeated_variable/error Error: The same variable may only be configured once. , 1 | @use "other" with ($a: b, $a: c); | ^^^^^ ' input.scss 1:27 root stylesheet <===> ================================================================================ <===> core_module/input.scss @use "sass:color" with ($a: b); <===> core_module/error Error: Built-in modules can't be configured. , 1 | @use "sass:color" with ($a: b); | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 1:1 root stylesheet <===> ================================================================================ <===> multi_configuration/README.md The same file can't be configured multiple times, even if the configuration is identical. <===> ================================================================================ <===> multi_configuration/one_file/input.scss @use "other" as o1 with ($a: b); @use "other" as o2 with ($a: b); <===> multi_configuration/one_file/_other.scss $a: c !default; <===> multi_configuration/one_file/error Error: This module was already loaded, so it can't be configured using "with". , 2 | @use "other" as o2 with ($a: b); | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 2:1 root stylesheet <===> ================================================================================ <===> multi_configuration/multi_file/input.scss @use "left"; @use "right"; <===> multi_configuration/multi_file/_left.scss @use "other" with ($a: b); <===> multi_configuration/multi_file/_right.scss @use "other" with ($a: b); <===> multi_configuration/multi_file/_other.scss $a: c !default; <===> multi_configuration/multi_file/error Error: This module was already loaded, so it can't be configured using "with". , 1 | @use "other" with ($a: b); | ^^^^^^^^^^^^^^^^^^^^^^^^^ ' _right.scss 1:1 @use input.scss 2:1 root stylesheet <===> ================================================================================ <===> multi_configuration/unconfigured_first/input.scss @use "other" as o1; @use "other" as o2 with ($a: b); <===> multi_configuration/unconfigured_first/_other.scss $a: c !default; <===> multi_configuration/unconfigured_first/error Error: This module was already loaded, so it can't be configured using "with". , 2 | @use "other" as o2 with ($a: b); | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 2:1 root stylesheet <===> ================================================================================ <===> multi_configuration/through_forward/input.scss @use "forwarded"; @use "midstream" with ($a: b); <===> multi_configuration/through_forward/_midstream.scss @forward "forwarded"; $a: c !default; <===> multi_configuration/through_forward/_forwarded.scss // This file defines no variables, but it still may not be loaded both with and // without configuration. <===> multi_configuration/through_forward/error Error: This module was already loaded, so it can't be configured using "with". , 1 | @forward "forwarded"; | ^^^^^^^^^^^^^^^^^^^^ ' _midstream.scss 1:1 @use input.scss 2:1 root stylesheet <===> ================================================================================ <===> through_forward/show/input.scss @use "used" with ($a: b); <===> through_forward/show/_used.scss @forward "forwarded" show $b; <===> through_forward/show/_forwarded.scss $a: d !default; <===> through_forward/show/error Error: This variable was not declared with !default in the @used module. , 1 | @use "used" with ($a: b); | ^^^^^ ' input.scss 1:19 @use input.scss 1:1 root stylesheet <===> ================================================================================ <===> through_forward/hide/input.scss @use "used" with ($a: b); <===> through_forward/hide/_used.scss @forward "forwarded" hide $a; <===> through_forward/hide/_forwarded.scss $a: d !default; <===> through_forward/hide/error Error: This variable was not declared with !default in the @used module. , 1 | @use "used" with ($a: b); | ^^^^^ ' input.scss 1:19 @use input.scss 1:1 root stylesheet <===> ================================================================================ <===> through_forward/as/input.scss @use "used" with ($a: b); <===> through_forward/as/_used.scss @forward "forwarded" as c-*; <===> through_forward/as/_forwarded.scss $a: d !default; <===> through_forward/as/error Error: This variable was not declared with !default in the @used module. , 1 | @use "used" with ($a: b); | ^^^^^ ' input.scss 1:19 @use input.scss 1:1 root stylesheet sass-spec-libsass-3.6.3/spec/directives/use/extend.hrx000066400000000000000000000260141355712145100227720ustar00rootroot00000000000000<===> upstream/input.scss @use "other"; in-input {@extend in-other} <===> upstream/_other.scss in-other {x: y} <===> upstream/output.css in-other, in-input { x: y; } <===> ================================================================================ <===> far_upstream/input.scss @use "midstream"; in-input {@extend in-upstream} <===> far_upstream/_midstream.scss @use "upstream"; <===> far_upstream/_upstream.scss in-upstream {x: y} <===> far_upstream/output.css in-upstream, in-input { x: y; } <===> ================================================================================ <===> placeholder/input.scss @use "other"; in-input {@extend %in-other} <===> placeholder/_other.scss %in-other {x: y} <===> placeholder/output.css in-input { x: y; } <===> ================================================================================ <===> diamond_merge/input.scss // Sibling modules can't extend one another's selectors, but they can be merged // together into the same selector list if they extend the same thing. If they // are, they should be optimized with respect to one another. // // In this case, _left.scss causes the selector ".a.a" to be generated, which is // simplified to ".a". Then _right.scss causes ".a.b" to be generated. ".a" is a // superselector of ".a.b" and ".a" has the same specificity as the extender, // ".b", so ".a.b" can (and should) be optimized away. @use "left"; @use "right"; <===> diamond_merge/_left.scss @use "other"; .a {@extend %in-other} <===> diamond_merge/_right.scss @use "other"; .b {@extend %in-other} <===> diamond_merge/_other.scss %in-other.a {x: y} <===> diamond_merge/output.css .a { x: y; } <===> ================================================================================ <===> extended/from_same_file/input.scss @use "other"; in-input {@extend in-other-extender} <===> extended/from_same_file/_other.scss in-other-extender {@extend in-other-extendee} in-other-extendee {x: y} <===> extended/from_same_file/output.css in-other-extendee, in-other-extender, in-input { x: y; } <===> ================================================================================ <===> extended/from_other_file/input.scss @use "midstream"; in-input {@extend in-midstream} <===> extended/from_other_file/_midstream.scss @use "upstream"; in-midstream {@extend in-upstream} <===> extended/from_other_file/_upstream.scss in-upstream {x: y} <===> extended/from_other_file/output.css in-upstream, in-midstream, in-input { x: y; } <===> ================================================================================ <===> optional_and_mandatory/README.md If an optional and a mandatory version of the same extension both exist, the mandatory version should be marked as having successfully matched. <===> ================================================================================ <===> optional_and_mandatory/same_file/input.scss @use "other"; in-input { @extend in-other !optional; @extend in-other; } <===> optional_and_mandatory/same_file/_other.scss in-other {x: y} <===> optional_and_mandatory/same_file/output.css in-other, in-input { x: y; } <===> ================================================================================ <===> optional_and_mandatory/different_files/input.scss @use "optional"; @use "mandatory"; <===> optional_and_mandatory/different_files/_optional.scss @use "shared"; downstream {@extend in-other !optional}; <===> optional_and_mandatory/different_files/_mandatory.scss @use "shared"; downstream {@extend in-other}; <===> optional_and_mandatory/different_files/_shared.scss in-other {x: y} <===> optional_and_mandatory/different_files/output.css in-other, downstream { x: y; } <===> ================================================================================ <===> scope/README.md All tests in this directory use `!optional` extends to test extensions that don't have matches. Each test should have a counterpart in error/extend/ that tests the same thing but without `!optional` to verify that it properly produces an error message. <===> ================================================================================ <===> scope/sibling/input.scss @use "left"; @use "right"; <===> scope/sibling/_left.scss left-extendee {in: left} left-extender {@extend right-extendee !optional} <===> scope/sibling/_right.scss right-extendee {in: right} right-extender {@extend left-extendee !optional} <===> scope/sibling/output.css left-extendee { in: left; } right-extendee { in: right; } <===> ================================================================================ <===> scope/downstream/input.scss @use "other"; in-input {x: y} <===> scope/downstream/_other.scss in-other {@extend in-input !optional} <===> scope/downstream/output.css in-input { x: y; } <===> ================================================================================ <===> scope/private/input.scss @use "other"; in-input {@extend %-in-other !optional} <===> scope/private/_other.scss %-in-other {x: y} in-other {@extend %-in-other} <===> scope/private/output.css in-other { x: y; } <===> ================================================================================ <===> scope/diamond/input.scss // Even though left-extendee and right-extendee both end up in the style rule // defined in _shared.scss, they aren't extended by the other file because those // files don't use one another. @use "left"; @use "right"; <===> scope/diamond/_left.scss @use "shared"; left-extendee {@extend in-shared} left-extender {@extend right-extendee !optional} <===> scope/diamond/_right.scss @use "shared"; right-extendee {@extend in-shared} right-extender {@extend left-extendee !optional} <===> scope/diamond/_shared.scss in-shared {x: y} <===> scope/diamond/output.css in-shared, right-extendee, left-extendee { x: y; } <===> ================================================================================ <===> scope/use_into_use_and_import_into_use/input.scss @use "used"; @import "imported"; <===> scope/use_into_use_and_import_into_use/_used.scss @use "shared"; in-used {@extend shared} <===> scope/use_into_use_and_import_into_use/_imported.scss @use "shared"; in-imported {@extend shared} <===> scope/use_into_use_and_import_into_use/_shared.scss // When this module is used by _imported.scss, its CSS is copied. The used // @extend only applies to the original, while the imported @extend applies to // both (since the imported extend is downstream of the used module). shared {x: y} <===> scope/use_into_use_and_import_into_use/output.css shared, in-used, in-imported { x: y; } shared, in-imported { x: y; } <===> ================================================================================ <===> scope/use_into_use_and_import_into_import/input.scss @use "used"; @import "imported"; <===> scope/use_into_use_and_import_into_import/_used.scss @use "shared"; in-used {@extend shared} <===> scope/use_into_use_and_import_into_import/_imported.scss @import "shared"; in-imported {@extend shared} <===> scope/use_into_use_and_import_into_import/_shared.scss // When this module is used by _imported.scss, its CSS is copied. The used // @extend only applies to the original, while the imported @extend applies to // both (since the imported extend is downstream of the used module). shared {x: y} <===> scope/use_into_use_and_import_into_import/output.css shared, in-used, in-imported { x: y; } shared, in-imported { x: y; } <===> ================================================================================ <===> scope/use_into_use_and_use_into_import/input.scss @use "user"; @use "importer"; <===> scope/use_into_use_and_use_into_import/_user.scss @use "shared"; in-user {@extend shared} <===> scope/use_into_use_and_use_into_import/_importer.scss @import "shared"; in-importer {@extend shared} <===> scope/use_into_use_and_use_into_import/_shared.scss // When this module is imported by _importer.scss, its CSS is copied. The // imported @extend only applies to the copy, and the used @extend only applies // to the original. shared {x: y} <===> scope/use_into_use_and_use_into_import/output.css shared, in-user { x: y; } shared, in-importer { x: y; } <===> ================================================================================ <===> scope/use_into_use_and_use_into_import_into_use/input.scss @use "importer"; @use "used"; <===> scope/use_into_use_and_use_into_import_into_use/_importer.scss @import "imported"; <===> scope/use_into_use_and_use_into_import_into_use/_imported.scss @use "shared"; in-imported {@extend shared} <===> scope/use_into_use_and_use_into_import_into_use/_used.scss @use "shared"; in-used {@extend shared} <===> scope/use_into_use_and_use_into_import_into_use/_shared.scss // When this module is used by _imported.scss, its CSS is copied. The imported // @extend only applies to the copy, and the used @extend only applies to the // original. shared {x: y} <===> scope/use_into_use_and_use_into_import_into_use/output.css shared, in-imported { x: y; } shared, in-used { x: y; } <===> ================================================================================ <===> scope/use_and_import_into_diamond_extend/input.scss @use "downstream"; @import "downstream"; @import "imported"; <===> scope/use_and_import_into_diamond_extend/_downstream.scss // Even though left-extendee and right-extendee both end up in the style rule // defined in _shared.scss, they aren't extended by the other file because those // files don't use one another. This is true even though they're imported, which // eagerly resolves extensions. @use "left"; @use "right"; <===> scope/use_and_import_into_diamond_extend/_left.scss @use "shared"; left-extendee {@extend in-shared} left-extender {@extend right-extendee !optional} <===> scope/use_and_import_into_diamond_extend/_right.scss @use "shared"; right-extendee {@extend in-shared} right-extender {@extend left-extendee !optional} <===> scope/use_and_import_into_diamond_extend/_shared.scss in-shared {x: y} <===> scope/use_and_import_into_diamond_extend/_imported.scss @use "downstream"; <===> scope/use_and_import_into_diamond_extend/output.css in-shared, right-extendee, left-extendee { x: y; } in-shared, right-extendee, left-extendee { x: y; } in-shared, right-extendee, left-extendee { x: y; } <===> ================================================================================ <===> scope/isolated_through_import/input.scss @use "used-by-input"; @import "imported"; <===> scope/isolated_through_import/_used-by-input.scss @use "shared"; .in-used-by-input {@extend .in-shared} <===> scope/isolated_through_import/_imported.scss @use "used-by-imported"; <===> scope/isolated_through_import/_used-by-imported.scss @use "shared"; .in-used-by-imported {@extend .in-shared} <===> scope/isolated_through_import/_shared.scss // This should appear twice in the output: once when it's used directly, and // once when it's used through @import (since @import copies its CSS). Each copy // should be extended exactly once. .in-shared {a: b} <===> scope/isolated_through_import/output.css .in-shared, .in-used-by-input { a: b; } .in-shared, .in-used-by-imported { a: b; } sass-spec-libsass-3.6.3/spec/directives/use/load.hrx000066400000000000000000000057061355712145100224270ustar00rootroot00000000000000<===> explicit_extension/sass/input.scss @use "other.sass" <===> explicit_extension/sass/other.sass a syntax: sass <===> explicit_extension/sass/other.scss a {syntax: scss} <===> explicit_extension/sass/other.css a {syntax: css} <===> explicit_extension/sass/output.css a { syntax: sass; } <===> ================================================================================ <===> explicit_extension/scss/input.scss @use "other.scss" <===> explicit_extension/scss/other.sass a syntax: sass <===> explicit_extension/scss/other.scss a {syntax: scss} <===> explicit_extension/scss/other.css a {syntax: css} <===> explicit_extension/scss/output.css a { syntax: scss; } <===> ================================================================================ <===> precedence/scss_before_css/input.scss @use "other"; <===> precedence/scss_before_css/other.scss a {syntax: scss} <===> precedence/scss_before_css/other.css a {syntax: css} <===> precedence/scss_before_css/output.css a { syntax: scss; } <===> ================================================================================ <===> precedence/sass_before_css/input.scss @use "other"; <===> precedence/sass_before_css/other.sass a syntax: sass <===> precedence/sass_before_css/other.css a {syntax: css} <===> precedence/sass_before_css/output.css a { syntax: sass; } <===> ================================================================================ <===> precedence/normal_before_index/input.scss @use "dir"; <===> precedence/normal_before_index/dir/index.scss a {index: true} <===> precedence/normal_before_index/dir.scss a {index: false} <===> precedence/normal_before_index/output.css a { index: false; } <===> ================================================================================ <===> precedence/ignores_import_only/input.scss @use "other"; <===> precedence/ignores_import_only/other.import.scss a {import-only: true} <===> precedence/ignores_import_only/other.scss a {import-only: false} <===> precedence/ignores_import_only/output.css a { import-only: false; } <===> ================================================================================ <===> index/scss/dir/index.scss .foo { a: b; } <===> index/scss/input.scss @use "dir"; <===> index/scss/output.css .foo { a: b; } <===> ================================================================================ <===> index/sass/dir/index.sass .foo a: b <===> index/sass/input.scss @use "dir"; <===> index/sass/output.css .foo { a: b; } <===> ================================================================================ <===> index/partial/dir/_index.scss .foo { a: b; } <===> index/partial/input.scss @use "dir"; <===> index/partial/output.css .foo { a: b; } <===> ================================================================================ <===> index/dir_dot_foo/dir.foo/index.scss .foo { a: b; } <===> index/dir_dot_foo/input.scss @use "dir.foo"; <===> index/dir_dot_foo/output.css .foo { a: b; } sass-spec-libsass-3.6.3/spec/directives/use/member.hrx000066400000000000000000000252211355712145100227510ustar00rootroot00000000000000<===> namespaced/default/variable_use/input.scss @use "other"; a {b: other.$member} <===> namespaced/default/variable_use/other.scss $member: value; <===> namespaced/default/variable_use/output.css a { b: value; } <===> ================================================================================ <===> namespaced/default/variable_assignment/top_level/input.scss @use "other"; other.$member: new value; a {b: other.get-member()}; <===> namespaced/default/variable_assignment/top_level/other.scss $member: value; @function get-member() {@return $member} <===> namespaced/default/variable_assignment/top_level/output.css a { b: new value; } <===> ================================================================================ <===> namespaced/default/variable_assignment/nested/input.scss @use "other"; a { // Namespaced assignments always assign to the other module's variable, even // if they're nested in a block scope. other.$member: new value; b: other.get-member(); } <===> namespaced/default/variable_assignment/nested/other.scss $member: value; @function get-member() {@return $member} <===> namespaced/default/variable_assignment/nested/output.css a { b: new value; } <===> ================================================================================ <===> namespaced/default/variable_assignment/in_function/input.scss @use "other"; @function a() { // Test assignments within a function specially, because functions disallow // property declarations and variable assignments need to be disambiguated // with those. other.$member: new value; @return other.get-member(); } b {c: a()} <===> namespaced/default/variable_assignment/in_function/other.scss $member: value; @function get-member() {@return $member} <===> namespaced/default/variable_assignment/in_function/output.css b { c: new value; } <===> ================================================================================ <===> namespaced/default/variable_assignment/in_declaration/input.scss @use "other"; a { b: { // Test assignments within a declaration specially, because declarations // disallow style rules and variable assignments need to be disambiguated // with those. other.$member: new value; c: other.get-member(); } } <===> namespaced/default/variable_assignment/in_declaration/other.scss $member: value; @function get-member() {@return $member} <===> namespaced/default/variable_assignment/in_declaration/output.css a { b-c: new value; } <===> ================================================================================ <===> namespaced/default/function/input.scss @use "other"; a {b: other.member()} <===> namespaced/default/function/other.scss @function member() {@return value} <===> namespaced/default/function/output.css a { b: value; } <===> ================================================================================ <===> namespaced/default/mixin/input.scss @use "other"; @include other.member; <===> namespaced/default/mixin/other.scss @mixin member() {a {b: c}} <===> namespaced/default/mixin/output.css a { b: c; } <===> ================================================================================ <===> namespaced/explicit/variable_use/input.scss @use "other" as o; a {b: o.$member} <===> namespaced/explicit/variable_use/other.scss $member: value; <===> namespaced/explicit/variable_use/output.css a { b: value; } <===> ================================================================================ <===> namespaced/explicit/variable_assignment/input.scss @use "other" as o; o.$member: new value; a {b: o.get-member()} <===> namespaced/explicit/variable_assignment/other.scss $member: value; @function get-member() {@return $member} <===> namespaced/explicit/variable_assignment/output.css a { b: new value; } <===> ================================================================================ <===> namespaced/explicit/function/input.scss @use "other" as o; a {b: o.member()} <===> namespaced/explicit/function/other.scss @function member() {@return value} <===> namespaced/explicit/function/output.css a { b: value; } <===> ================================================================================ <===> namespaced/explicit/mixin/input.scss @use "other" as o; @include o.member; <===> namespaced/explicit/mixin/other.scss @mixin member() {a {b: c}} <===> namespaced/explicit/mixin/output.css a { b: c; } <===> ================================================================================ <===> global/variable_use/input.scss @use "other" as *; a {b: $member} <===> global/variable_use/other.scss $member: value; <===> global/variable_use/output.css a { b: value; } <===> ================================================================================ <===> global/variable_assignment/top_level/input.scss @use "other" as *; $member: new value; a {b: get-member()} <===> global/variable_assignment/top_level/other.scss $member: value; @function get-member() {@return $member} <===> global/variable_assignment/top_level/output.css a { b: new value; } <===> ================================================================================ <===> global/variable_assignment/nested/local/input.scss @use "other" as *; a { // A nested variable assignment that doesn't have a namespace and isn't // !global creates a new local variable rather than assigning to a variable // imported from a module. $member: new value; b: get-member(); } <===> global/variable_assignment/nested/local/other.scss $member: value; @function get-member() {@return $member} <===> global/variable_assignment/nested/local/output.css a { b: value; } <===> ================================================================================ <===> global/variable_assignment/nested/global/input.scss @use "other" as *; a { // A nested variable assignment that doesn't have a namespace but is !global // assigns to a global module's variable if one exists. $member: new value !global; b: get-member(); } <===> global/variable_assignment/nested/global/other.scss $member: value; @function get-member() {@return $member} <===> global/variable_assignment/nested/global/output.css a { b: new value; } <===> ================================================================================ <===> global/function/input.scss @use "other" as *; a {b: member()} <===> global/function/other.scss @function member() {@return value} <===> global/function/output.css a { b: value; } <===> ================================================================================ <===> global/mixin/input.scss @use "other" as *; @include member; <===> global/mixin/other.scss @mixin member() {a {b: c}} <===> global/mixin/output.css a { b: c; } <===> ================================================================================ <===> global/multiple/input.scss @use "left" as *; @use "right" as *; a { left: $left; right: $right; } <===> global/multiple/left.scss $left: left; <===> global/multiple/right.scss $right: right; <===> global/multiple/output.css a { left: left; right: right; } <===> ================================================================================ <===> use_to_import/variable_use/input.scss @use "midstream"; a {b: midstream.$member} <===> use_to_import/variable_use/midstream.scss @import "upstream"; <===> use_to_import/variable_use/upstream.scss $member: value; <===> use_to_import/variable_use/output.css a { b: value; } <===> ================================================================================ <===> use_to_import/variable_assignment/input.scss @use "midstream"; midstream.$member: new value; a {b: midstream.get-member()} <===> use_to_import/variable_assignment/midstream.scss @import "upstream"; <===> use_to_import/variable_assignment/upstream.scss $member: value; @function get-member() {@return $member} <===> use_to_import/variable_assignment/output.css a { b: new value; } <===> ================================================================================ <===> use_to_import/function/input.scss @use "midstream"; a {b: midstream.member()} <===> use_to_import/function/midstream.scss @import "upstream"; <===> use_to_import/function/upstream.scss @function member() {@return value} <===> use_to_import/function/output.css a { b: value; } <===> ================================================================================ <===> use_to_import/mixin/input.scss @use "midstream"; @include midstream.member; <===> use_to_import/mixin/midstream.scss @import "upstream"; <===> use_to_import/mixin/upstream.scss @mixin member() {a {b: c}} <===> use_to_import/mixin/output.css a { b: c; } <===> ================================================================================ <===> default_namespace/basename/input.scss // Only the basename of the URL is used for the namespace. Previous components // are discarded. @use "foo/bar/../baz/qux/other"; a {b: other.$variable} <===> default_namespace/basename/foo/baz/qux/other.scss $variable: value; <===> default_namespace/basename/output.css a { b: value; } <===> ================================================================================ <===> default_namespace/without_extensions/input.scss // All extensions on the URL are discarded before determining the namespace. @use "other.foo.bar.baz.scss"; a {b: other.$variable} <===> default_namespace/without_extensions/other.foo.bar.baz.scss $variable: value; <===> default_namespace/without_extensions/output.css a { b: value; } <===> ================================================================================ <===> nested_global_variable/direct/input.scss @use "other"; a {b: inspect(other.$member)} <===> nested_global_variable/direct/other.scss x { @if false { // Even though this assignment is deeply nested and never evaluated, it // creates a variable slot in the module that defaults to null. This ensures // that a module will always expose the same members regardless of how it's // evaluated. $member: value !global; } } <===> nested_global_variable/direct/output.css a { b: null; } <===> ================================================================================ <===> nested_global_variable/through_import/input.scss @use "used"; a {b: inspect(used.$member)} <===> nested_global_variable/through_import/used.scss @import "imported"; <===> nested_global_variable/through_import/imported.scss x { @if false { // Even though this assignment is deeply nested and never evaluated, it // creates a variable slot in the module that defaults to null. This ensures // that a module will always expose the same members regardless of how it's // evaluated. $member: value !global; } } <===> nested_global_variable/through_import/output.css a { b: null; } sass-spec-libsass-3.6.3/spec/directives/use/options.yml000066400000000000000000000000511355712145100231670ustar00rootroot00000000000000--- :todo: - libsass # sass/libsass#2807 sass-spec-libsass-3.6.3/spec/directives/use/with.hrx000066400000000000000000000220731355712145100224570ustar00rootroot00000000000000<===> README.md Most changes here should also be reflected in core_functions/meta/load_css/with.hrx. <===> ================================================================================ <===> single/input.scss @use "other" with ($a: configured); <===> single/_other.scss $a: original !default; b {c: $a} <===> single/output.css b { c: configured; } <===> ================================================================================ <===> trailing_comma/input.scss @use "other" with ($a: configured,); <===> trailing_comma/_other.scss $a: original !default; b {c: $a} <===> trailing_comma/output.css b { c: configured; } <===> ================================================================================ <===> dash_insensitive/input.scss @use "other" with ($a_b: configured); <===> dash_insensitive/_other.scss $a-b: original !default; b {c: $a-b} <===> dash_insensitive/output.css b { c: configured; } <===> ================================================================================ <===> multiple/input.scss @use "other" with ( $a: configured a, $b: configured b, $c: configured c ); <===> multiple/_other.scss $a: original a !default; $b: original b !default; $c: original c !default; d { a: $a; b: $b; c: $c; } <===> multiple/output.css d { a: configured a; b: configured b; c: configured c; } <===> ================================================================================ <===> some_unconfigured/input.scss @use "other" with ($a: configured a); <===> some_unconfigured/_other.scss $a: original a !default; $b: original b !default; c { a: $a; b: $b; } <===> some_unconfigured/output.css c { a: configured a; b: original b; } <===> ================================================================================ <===> from_variable/input.scss $a: configured; @use "other" with ($a: $a); <===> from_variable/_other.scss $a: original a !default; b {c: $a} <===> from_variable/output.css b { c: configured; } <===> ================================================================================ <===> doesnt_run_default/input.scss @use "other" with ($a: configured); <===> doesnt_run_default/_other.scss // This will throw an error if it's evaluated, but it shouldn't be because `$a` // already has a value. $a: 1px + 1em !default; b {c: $a} <===> doesnt_run_default/output.css b { c: configured; } <===> ================================================================================ <===> used_in_input/input.scss @use "other" with ($a: configured); b {c: other.$a} <===> used_in_input/_other.scss $a: original !default; <===> used_in_input/output.css b { c: configured; } <===> ================================================================================ <===> variable_exists/input.scss @use "other" with ($a: configured); <===> variable_exists/_other.scss $before-declaration: variable-exists(a); $a: original !default; b { before-declaration: $before-declaration; after-declaration: variable-exists(a); } <===> variable_exists/output.css b { before-declaration: false; after-declaration: true; } <===> ================================================================================ <===> through_import/direct/input.scss @use "used" with ($a: configured); <===> through_import/direct/_used.scss @import "imported"; <===> through_import/direct/_imported.scss $a: original !default; b {c: $a} <===> through_import/direct/output.css b { c: configured; } <===> ================================================================================ <===> through_import/transitive/input.scss @use "used" with ($a: configured); <===> through_import/transitive/_used.scss @import "midstream"; <===> through_import/transitive/_midstream.scss @import "upstream"; <===> through_import/transitive/_upstream.scss $a: original !default; b {c: $a} <===> through_import/transitive/output.css b { c: configured; } <===> ================================================================================ <===> through_forward/bare/input.scss @use "used" with ($a: configured); <===> through_forward/bare/_used.scss @forward "forwarded"; <===> through_forward/bare/_forwarded.scss $a: original !default; b {c: $a} <===> through_forward/bare/output.css b { c: configured; } <===> ================================================================================ <===> through_forward/transitive/input.scss @use "used" with ($a: configured); <===> through_forward/transitive/_used.scss @forward "midstream"; <===> through_forward/transitive/_midstream.scss @forward "upstream"; <===> through_forward/transitive/_upstream.scss $a: original !default; b {c: $a} <===> through_forward/transitive/output.css b { c: configured; } <===> ================================================================================ <===> through_forward/show/input.scss @use "used" with ($a: configured); <===> through_forward/show/_used.scss @forward "forwarded" show $a; <===> through_forward/show/_forwarded.scss $a: original !default; b {c: $a} <===> through_forward/show/output.css b { c: configured; } <===> ================================================================================ <===> through_forward/hide/input.scss @use "used" with ($a: configured); <===> through_forward/hide/_used.scss @forward "forwarded" hide $b; <===> through_forward/hide/_forwarded.scss $a: original !default; b {c: $a} <===> through_forward/hide/output.css b { c: configured; } <===> ================================================================================ <===> through_forward/as/input.scss @use "used" with ($b-a: configured); <===> through_forward/as/_used.scss @forward "forwarded" as b-*; <===> through_forward/as/_forwarded.scss $a: original !default; c {d: $a} <===> through_forward/as/output.css c { d: configured; } <===> ================================================================================ <===> through_forward/with_unrelated_config/input.scss @use "used" with ($from-used: configured); <===> through_forward/with_unrelated_config/_used.scss @forward "forwarded"; $from-used: original !default; a {from-used: $from-used} <===> through_forward/with_unrelated_config/_forwarded.scss $from-forwarded: original !default; b {from-forwarded: $from-forwarded} <===> through_forward/with_unrelated_config/output.css b { from-forwarded: original; } a { from-used: configured; } <===> ================================================================================ <===> through_forward/and_use/input.scss // Regression test for sass/sass#2744. @use "forwarder" with ($c: e); a {b: forwarder.$c} <===> through_forward/and_use/_forwarder.scss @forward "definition"; @forward "user"; <===> through_forward/and_use/_definition.scss $c: d !default; <===> through_forward/and_use/_user.scss @use "definition"; <===> through_forward/and_use/output.css a { b: e; } <===> ================================================================================ <===> core_module/indirect/use/input.scss // Regression test for sass/dart-sass#838. @use "other" with ($c: e); a {b: other.$c} <===> core_module/indirect/use/_other.scss @use "sass:color"; $c: d !default; <===> core_module/indirect/use/output.css a { b: e; } <===> ================================================================================ <===> core_module/indirect/forward/input.scss // Regression test for sass/dart-sass#838. @use "other" with ($c: e); a {b: other.$c} <===> core_module/indirect/forward/_other.scss @forward "sass:color"; $c: d !default; <===> core_module/indirect/forward/output.css a { b: e; } <===> ================================================================================ <===> multi_load/README.md If a module is first loaded with a configuration, future loads with no configuration will use the configured module. <===> ================================================================================ <===> multi_load/use/input.scss @use "upstream" with ($a: configured); @use "midstream"; <===> multi_load/use/_midstream.scss @use "upstream"; b {c: upstream.$a} <===> multi_load/use/_upstream.scss $a: original !default; <===> multi_load/use/output.css b { c: configured; } <===> ================================================================================ <===> multi_load/forward/input.scss @use "upstream" with ($a: configured); @use "midstream"; b {c: midstream.$a} <===> multi_load/forward/_midstream.scss @forward "upstream"; <===> multi_load/forward/_upstream.scss $a: original !default; <===> multi_load/forward/output.css b { c: configured; } <===> ================================================================================ <===> multi_load/transitive/input.scss // Regression test for sass/dart-sass#854. @use "midstream1" with ($a: overridden 1); @use "midstream2" with ($a: overridden 2); b { midstream1: midstream1.$a; midstream2: midstream2.$a; } <===> multi_load/transitive/_midstream1.scss @use "upstream"; $a: default 1 !default; <===> multi_load/transitive/_midstream2.scss @use "upstream"; $a: default 2 !default; <===> multi_load/transitive/_upstream.scss c {d: e} <===> multi_load/transitive/output.css c { d: e; } b { midstream1: overridden 1; midstream2: overridden 2; } sass-spec-libsass-3.6.3/spec/directives/warn/000077500000000000000000000000001355712145100211305ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/directives/warn/functions_in_stack.hrx000066400000000000000000000012331355712145100255350ustar00rootroot00000000000000<===> input.scss @function issues-warning($a) { @warn "From function: #{inspect($a)}"; @return $a; } @mixin calls-function-that-warns($a) { warned: issues-warning($a); } .test { @include calls-function-that-warns(testing); } <===> output.css .test { warned: testing; } <===> warning WARNING: From function: testing on line 2 of input.scss, in `issues-warning' from line 7 of input.scss, in `calls-function-that-warns' from line 11 of input.scss <===> warning-dart-sass WARNING: From function: testing input.scss 2:3 issues-warning() input.scss 7:11 calls-function-that-warns() input.scss 11:3 root stylesheet sass-spec-libsass-3.6.3/spec/errors/000077500000000000000000000000001355712145100173345ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/errors/extend/000077500000000000000000000000001355712145100206235ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/errors/extend/placeholder/000077500000000000000000000000001355712145100231055ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/errors/extend/placeholder/missing.hrx000066400000000000000000000012421355712145100253000ustar00rootroot00000000000000<===> input.scss .baz { @extend %foo; color: green; } <===> error Error: ".baz" failed to @extend "%foo". The selector "%foo" was not found. Use "@extend %foo !optional" if the extend should be able to fail. on line 2 of input.scss Use --trace for backtrace. <===> error-libsass Error: The target selector was not found. Use "@extend %foo !optional" to avoid this error. on line 2 of input.scss >> @extend %foo; ------------^ <===> error-dart-sass Error: The target selector was not found. Use "@extend %foo !optional" to avoid this error. , 2 | @extend %foo; | ^^^^^^^^^^^^ ' input.scss 2:3 root stylesheet sass-spec-libsass-3.6.3/spec/errors/extend/placeholder/optional.hrx000066400000000000000000000001631355712145100254550ustar00rootroot00000000000000<===> input.scss .baz { @extend %foo !optional; color: green; } <===> output.css .baz { color: green; } sass-spec-libsass-3.6.3/spec/errors/extend/placeholder/simple.hrx000066400000000000000000000002511355712145100251170ustar00rootroot00000000000000<===> input.scss %foo {color: blue} %bar {color: red} .baz { @extend %foo; color: green; } <===> output.css .baz { color: blue; } .baz { color: green; } sass-spec-libsass-3.6.3/spec/errors/extend/selector/000077500000000000000000000000001355712145100224435ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/errors/extend/selector/missing.hrx000066400000000000000000000012421355712145100246360ustar00rootroot00000000000000<===> input.scss .baz { @extend .foo; color: green; } <===> error Error: ".baz" failed to @extend ".foo". The selector ".foo" was not found. Use "@extend .foo !optional" if the extend should be able to fail. on line 2 of input.scss Use --trace for backtrace. <===> error-libsass Error: The target selector was not found. Use "@extend .foo !optional" to avoid this error. on line 2 of input.scss >> @extend .foo; ------------^ <===> error-dart-sass Error: The target selector was not found. Use "@extend .foo !optional" to avoid this error. , 2 | @extend .foo; | ^^^^^^^^^^^^ ' input.scss 2:3 root stylesheet sass-spec-libsass-3.6.3/spec/errors/extend/selector/optional.hrx000066400000000000000000000001631355712145100250130ustar00rootroot00000000000000<===> input.scss .baz { @extend .foo !optional; color: green; } <===> output.css .baz { color: green; } sass-spec-libsass-3.6.3/spec/errors/extend/selector/simple.hrx000066400000000000000000000003071355712145100244570ustar00rootroot00000000000000<===> input.scss .foo {color: blue} .bar {color: red} .baz { @extend .foo; color: green; } <===> output.css .foo, .baz { color: blue; } .bar { color: red; } .baz { color: green; } sass-spec-libsass-3.6.3/spec/errors/fn-change-color-1.hrx000066400000000000000000000007331355712145100231620ustar00rootroot00000000000000<===> input.scss foo { test: change-color(red, $red: 0.5, $hue: 0.2); } <===> error Error: Cannot specify HSL and RGB values for a color at the same time for `change-color' on line 2 of input.scss Use --trace for backtrace. <===> error-dart-sass Error: RGB parameters may not be passed along with HSL parameters. , 2 | test: change-color(red, $red: 0.5, $hue: 0.2); | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 2:9 root stylesheet sass-spec-libsass-3.6.3/spec/errors/fn-debug/000077500000000000000000000000001355712145100210235ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/errors/fn-debug/property.hrx000066400000000000000000000005471355712145100234400ustar00rootroot00000000000000<===> input.scss a { b: { @debug "debug"; foo: bar; } } <===> error Error: Illegal nesting: Only properties may be nested beneath properties. on line 3 of input.scss Use --trace for backtrace. <===> output-dart-sass.css a { b-foo: bar; } <===> warning-dart-sass spec/errors/fn-debug/property-dart-sass/input.scss:3 DEBUG: debug sass-spec-libsass-3.6.3/spec/errors/fn-debug/ruleset.hrx000066400000000000000000000002041355712145100232250ustar00rootroot00000000000000<===> input.scss a { @debug "debug"; foo: bar; } <===> output.css a { foo: bar; } <===> warning input.scss:2 DEBUG: debug sass-spec-libsass-3.6.3/spec/errors/fn-debug/simple.hrx000066400000000000000000000001321355712145100230330ustar00rootroot00000000000000<===> input.scss @debug "debug"; <===> output.css <===> warning input.scss:1 DEBUG: debug sass-spec-libsass-3.6.3/spec/errors/fn-error/000077500000000000000000000000001355712145100210665ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/errors/fn-error/property.hrx000066400000000000000000000005331355712145100234760ustar00rootroot00000000000000<===> input.scss a { b: { @error "error"; foo: bar; } } <===> error Error: Illegal nesting: Only properties may be nested beneath properties. on line 3 of input.scss Use --trace for backtrace. <===> error-dart-sass Error: "error" , 3 | @error "error"; | ^^^^^^^^^^^^^^ ' input.scss 3:5 root stylesheet sass-spec-libsass-3.6.3/spec/errors/fn-error/ruleset.hrx000066400000000000000000000004111355712145100232700ustar00rootroot00000000000000<===> input.scss a { @error "error"; foo: bar; } <===> error Error: error on line 2 of input.scss Use --trace for backtrace. <===> error-dart-sass Error: "error" , 2 | @error "error"; | ^^^^^^^^^^^^^^ ' input.scss 2:3 root stylesheet sass-spec-libsass-3.6.3/spec/errors/fn-error/simple.hrx000066400000000000000000000003561355712145100231060ustar00rootroot00000000000000<===> input.scss @error "error"; <===> error Error: error on line 1 of input.scss Use --trace for backtrace. <===> error-dart-sass Error: "error" , 1 | @error "error"; | ^^^^^^^^^^^^^^ ' input.scss 1:1 root stylesheet sass-spec-libsass-3.6.3/spec/errors/fn-saturate-out-of-range.hrx000066400000000000000000000011501355712145100246060ustar00rootroot00000000000000<===> input.scss foo { bar: saturate(red, 125); } <===> error Error: Amount 125 must be between 0% and 100% for `saturate' on line 2 of input.scss Use --trace for backtrace. <===> error-dart-sass Error: $amount: Expected 125 to be within 0 and 100. , 2 | bar: saturate(red, 125); | ^^^^^^^^^^^^^^^^^^ ' input.scss 2:8 root stylesheet <===> error-libsass Error: argument `$amount` of `saturate($color, $amount: false)` must be between -0 and 100 on line 2:8 of input.scss, in function `saturate` from line 2:8 of input.scss >> bar: saturate(red, 125); -------^ sass-spec-libsass-3.6.3/spec/errors/fn-varargs/000077500000000000000000000000001355712145100214025ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/errors/fn-varargs/at-start.hrx000066400000000000000000000010421355712145100236610ustar00rootroot00000000000000<===> input.scss @function test($rest...,$param) {} <===> error Error: Invalid CSS after "...n test($rest...": expected ")", was ",$param) {}" on line 1 of input.scss Use --trace for backtrace. <===> error-dart-sass Error: expected ")". , 1 | @function test($rest...,$param) {} | ^ ' input.scss 1:24 root stylesheet <===> error-libsass Error: required parameters must precede variable-length parameters on line 1 of input.scss >> @function test($rest...,$param) {} ------------------------^ sass-spec-libsass-3.6.3/spec/errors/fn-varargs/multiple.hrx000066400000000000000000000010741355712145100237620ustar00rootroot00000000000000<===> input.scss @function test($param...,$rest...) {} <===> error Error: Invalid CSS after "... test($param...": expected ")", was ",$rest...) {}" on line 1 of input.scss Use --trace for backtrace. <===> error-dart-sass Error: expected ")". , 1 | @function test($param...,$rest...) {} | ^ ' input.scss 1:25 root stylesheet <===> error-libsass Error: functions and mixins cannot have more than one variable-length parameter on line 1 of input.scss >> @function test($param...,$rest...) {} -------------------------^ sass-spec-libsass-3.6.3/spec/errors/fn-varargs/with-default.hrx000066400000000000000000000011011355712145100245130ustar00rootroot00000000000000<===> input.scss @function test($param...:"default") {} <===> error Error: Invalid CSS after "... test($param...": expected ")", was ":"default") {}" on line 1 of input.scss Use --trace for backtrace. <===> error-dart-sass Error: expected ")". , 1 | @function test($param...:"default") {} | ^ ' input.scss 1:25 root stylesheet <===> error-libsass Error: Invalid CSS after "... test($param...": expected ")", was ':"default") {}' on line 1:22 of input.scss >> @function test($param...:"default") {} ---------------------^ sass-spec-libsass-3.6.3/spec/errors/fn-varargs/with-optional.hrx000066400000000000000000000001171355712145100247220ustar00rootroot00000000000000<===> input.scss @function test($param:"default",$rest...) {} <===> output.css sass-spec-libsass-3.6.3/spec/errors/fn-warn/000077500000000000000000000000001355712145100207045ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/errors/fn-warn/property.hrx000066400000000000000000000005251355712145100233150ustar00rootroot00000000000000<===> input.scss a { b: { @warn "warn"; foo: bar; } } <===> error Error: Illegal nesting: Only properties may be nested beneath properties. on line 3 of input.scss Use --trace for backtrace. <===> output-dart-sass.css a { b-foo: bar; } <===> warning-dart-sass WARNING: warn input.scss 3:5 root stylesheet sass-spec-libsass-3.6.3/spec/errors/fn-warn/ruleset.hrx000066400000000000000000000003421355712145100231110ustar00rootroot00000000000000<===> input.scss a { @warn "warn"; foo: bar; } <===> output.css a { foo: bar; } <===> warning WARNING: warn on line 2 of input.scss <===> warning-dart-sass WARNING: warn input.scss 2:3 root stylesheet sass-spec-libsass-3.6.3/spec/errors/fn-warn/simple.hrx000066400000000000000000000002701355712145100227170ustar00rootroot00000000000000<===> input.scss @warn "warn"; <===> output.css <===> warning WARNING: warn on line 1 of input.scss <===> warning-dart-sass WARNING: warn input.scss 1:1 root stylesheet sass-spec-libsass-3.6.3/spec/errors/for-incompatible-units-fn.hrx000066400000000000000000000006261355712145100250560ustar00rootroot00000000000000<===> input.scss @function test() { @for $i from 100% through 42px {} } foo { bar: test(); } <===> error Error: Incompatible units: 'px' and '%'. on line 2 of input.scss Use --trace for backtrace. <===> error-dart-sass Error: Incompatible units % and px. , 2 | @for $i from 100% through 42px {} | ^^^^ ' input.scss 2:16 test() input.scss 5:12 root stylesheet sass-spec-libsass-3.6.3/spec/errors/for-incompatible-units.hrx000066400000000000000000000007371355712145100244600ustar00rootroot00000000000000<===> input.scss @for $i from 100% through 42px {} <===> error Error: Incompatible units: 'px' and '%'. on line 1 of input.scss Use --trace for backtrace. <===> error-dart-sass Error: Incompatible units % and px. , 1 | @for $i from 100% through 42px {} | ^^^^ ' input.scss 1:14 root stylesheet <===> error-libsass Error: Incompatible units: '%' and 'px'. on line 1:14 of input.scss >> @for $i from 100% through 42px {} -------------^ sass-spec-libsass-3.6.3/spec/errors/import/000077500000000000000000000000001355712145100206465ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/errors/import/file/000077500000000000000000000000001355712145100215655ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/errors/import/file/control-else.hrx000066400000000000000000000006161355712145100247210ustar00rootroot00000000000000<===> _include.scss <===> input.scss @if (false) { } @else { @import '_include'; } <===> error Error: Import directives may not be used within control directives or mixins. on line 3 of input.scss Use --trace for backtrace. <===> error-dart-sass Error: This at-rule is not allowed here. , 3 | @import '_include'; | ^^^^^^^^^^^^^^^^^^ ' input.scss 3:3 root stylesheet sass-spec-libsass-3.6.3/spec/errors/import/file/control-if.hrx000066400000000000000000000006021355712145100243620ustar00rootroot00000000000000<===> _include.scss <===> input.scss @if (true) { @import '_include'; } <===> error Error: Import directives may not be used within control directives or mixins. on line 2 of input.scss Use --trace for backtrace. <===> error-dart-sass Error: This at-rule is not allowed here. , 2 | @import '_include'; | ^^^^^^^^^^^^^^^^^^ ' input.scss 2:3 root stylesheet sass-spec-libsass-3.6.3/spec/errors/import/file/loop/000077500000000000000000000000001355712145100225365ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/errors/import/file/loop/each.hrx000066400000000000000000000006071355712145100241640ustar00rootroot00000000000000<===> _include.scss <===> input.scss @each $i in (1) { @import '_include'; } <===> error Error: Import directives may not be used within control directives or mixins. on line 2 of input.scss Use --trace for backtrace. <===> error-dart-sass Error: This at-rule is not allowed here. , 2 | @import '_include'; | ^^^^^^^^^^^^^^^^^^ ' input.scss 2:3 root stylesheet sass-spec-libsass-3.6.3/spec/errors/import/file/loop/for.hrx000066400000000000000000000006201355712145100240450ustar00rootroot00000000000000<===> _include.scss <===> input.scss @for $i from 1 through 2 { @import '_include'; } <===> error Error: Import directives may not be used within control directives or mixins. on line 2 of input.scss Use --trace for backtrace. <===> error-dart-sass Error: This at-rule is not allowed here. , 2 | @import '_include'; | ^^^^^^^^^^^^^^^^^^ ' input.scss 2:3 root stylesheet sass-spec-libsass-3.6.3/spec/errors/import/file/loop/while.hrx000066400000000000000000000006561355712145100244000ustar00rootroot00000000000000<===> _include.scss <===> input.scss $count: 0; @while ($count < 1) { @import '_include'; $count: $count + 1; } <===> error Error: Import directives may not be used within control directives or mixins. on line 3 of input.scss Use --trace for backtrace. <===> error-dart-sass Error: This at-rule is not allowed here. , 3 | @import '_include'; | ^^^^^^^^^^^^^^^^^^ ' input.scss 3:3 root stylesheet sass-spec-libsass-3.6.3/spec/errors/import/file/mixin/000077500000000000000000000000001355712145100227115ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/errors/import/file/mixin/control-else/000077500000000000000000000000001355712145100253175ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/errors/import/file/mixin/control-else/inside.hrx000066400000000000000000000007261355712145100273220ustar00rootroot00000000000000<===> _include.scss <===> input.scss @mixin do_import() { @if (false) { } @else { @import '_include'; } } foo { @include do_import(); } <===> error Error: Import directives may not be used within control directives or mixins. on line 4 of input.scss Use --trace for backtrace. <===> error-dart-sass Error: This at-rule is not allowed here. , 4 | @import '_include'; | ^^^^^^^^^^^^^^^^^^ ' input.scss 4:5 root stylesheet sass-spec-libsass-3.6.3/spec/errors/import/file/mixin/control-else/outside.hrx000066400000000000000000000007021355712145100275150ustar00rootroot00000000000000<===> _include.scss <===> input.scss @mixin do_import() { @import '_include'; } @if (false) { } @else { @include do_import(); } <===> error Error: Import directives may not be used within control directives or mixins. on line 2 of input.scss Use --trace for backtrace. <===> error-dart-sass Error: This at-rule is not allowed here. , 2 | @import '_include'; | ^^^^^^^^^^^^^^^^^^ ' input.scss 2:3 root stylesheet sass-spec-libsass-3.6.3/spec/errors/import/file/mixin/control-if/000077500000000000000000000000001355712145100247655ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/errors/import/file/mixin/control-if/inside.hrx000066400000000000000000000007101355712145100267610ustar00rootroot00000000000000<===> _include.scss <===> input.scss @mixin do_import() { @if (true) { @import '_include'; } } foo { @include do_import(); } <===> error Error: Import directives may not be used within control directives or mixins. on line 3 of input.scss Use --trace for backtrace. <===> error-dart-sass Error: This at-rule is not allowed here. , 3 | @import '_include'; | ^^^^^^^^^^^^^^^^^^ ' input.scss 3:5 root stylesheet sass-spec-libsass-3.6.3/spec/errors/import/file/mixin/control-if/outside.hrx000066400000000000000000000006641355712145100271720ustar00rootroot00000000000000<===> _include.scss <===> input.scss @mixin do_import() { @import '_include'; } @if (true) { @include do_import(); } <===> error Error: Import directives may not be used within control directives or mixins. on line 2 of input.scss Use --trace for backtrace. <===> error-dart-sass Error: This at-rule is not allowed here. , 2 | @import '_include'; | ^^^^^^^^^^^^^^^^^^ ' input.scss 2:3 root stylesheet sass-spec-libsass-3.6.3/spec/errors/import/file/mixin/simple/000077500000000000000000000000001355712145100242025ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/errors/import/file/mixin/simple/inside.hrx000066400000000000000000000012311355712145100261750ustar00rootroot00000000000000<===> _include.scss <===> input.scss @mixin import-google-fonts() { @import url("http://fonts.googleapis.com/css?family=#{$family}"); } foo { $family: unquote("Droid+Sans"); @include import-google-fonts(); } <===> error Error: Undefined variable: "$family". on line 2 of input.scss, in `import-google-fonts' from line 6 of input.scss Use --trace for backtrace. <===> error-dart-sass Error: Undefined variable. , 2 | @import url("http://fonts.googleapis.com/css?family=#{$family}"); | ^^^^^^^ ' input.scss 2:57 import-google-fonts() input.scss 6:3 root stylesheet sass-spec-libsass-3.6.3/spec/errors/import/file/mixin/simple/outside.hrx000066400000000000000000000004411355712145100264000ustar00rootroot00000000000000<===> _include.scss <===> input.scss @mixin import-google-fonts() { @import url("http://fonts.googleapis.com/css?family=#{$family}"); } $family: unquote("Droid+Sans"); @include import-google-fonts(); <===> output.css @import url("http://fonts.googleapis.com/css?family=Droid+Sans"); sass-spec-libsass-3.6.3/spec/errors/import/file/simple.hrx000066400000000000000000000007731355712145100236100ustar00rootroot00000000000000<===> input.scss @import "hey1.css", "cookie.css", url("hey2.css"), "fudge.css"; $foo:"goodbye"; div[name="hello"] { color: blue; } @import "bludge.css"; <===> output.css @import url(hey1.css); @import url(cookie.css); @import url("hey2.css"); @import url(fudge.css); @import url(bludge.css); div[name="hello"] { color: blue; } <===> output-dart-sass.css @import "hey1.css"; @import "cookie.css"; @import url("hey2.css"); @import "fudge.css"; @import "bludge.css"; div[name=hello] { color: blue; } sass-spec-libsass-3.6.3/spec/errors/import/miss/000077500000000000000000000000001355712145100216215ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/errors/import/miss/control-else.hrx000066400000000000000000000005721355712145100247560ustar00rootroot00000000000000<===> input.scss @if (false) { } @else { @import '_include'; } <===> error Error: Import directives may not be used within control directives or mixins. on line 3 of input.scss Use --trace for backtrace. <===> error-dart-sass Error: This at-rule is not allowed here. , 3 | @import '_include'; | ^^^^^^^^^^^^^^^^^^ ' input.scss 3:3 root stylesheet sass-spec-libsass-3.6.3/spec/errors/import/miss/control-if.hrx000066400000000000000000000005561355712145100244260ustar00rootroot00000000000000<===> input.scss @if (true) { @import '_include'; } <===> error Error: Import directives may not be used within control directives or mixins. on line 2 of input.scss Use --trace for backtrace. <===> error-dart-sass Error: This at-rule is not allowed here. , 2 | @import '_include'; | ^^^^^^^^^^^^^^^^^^ ' input.scss 2:3 root stylesheet sass-spec-libsass-3.6.3/spec/errors/import/miss/loop/000077500000000000000000000000001355712145100225725ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/errors/import/miss/loop/each.hrx000066400000000000000000000005631355712145100242210ustar00rootroot00000000000000<===> input.scss @each $i in (1) { @import '_include'; } <===> error Error: Import directives may not be used within control directives or mixins. on line 2 of input.scss Use --trace for backtrace. <===> error-dart-sass Error: This at-rule is not allowed here. , 2 | @import '_include'; | ^^^^^^^^^^^^^^^^^^ ' input.scss 2:3 root stylesheet sass-spec-libsass-3.6.3/spec/errors/import/miss/loop/for.hrx000066400000000000000000000005741355712145100241110ustar00rootroot00000000000000<===> input.scss @for $i from 1 through 2 { @import '_include'; } <===> error Error: Import directives may not be used within control directives or mixins. on line 2 of input.scss Use --trace for backtrace. <===> error-dart-sass Error: This at-rule is not allowed here. , 2 | @import '_include'; | ^^^^^^^^^^^^^^^^^^ ' input.scss 2:3 root stylesheet sass-spec-libsass-3.6.3/spec/errors/import/miss/loop/while.hrx000066400000000000000000000006321355712145100244260ustar00rootroot00000000000000<===> input.scss $count: 0; @while ($count < 1) { @import '_include'; $count: $count + 1; } <===> error Error: Import directives may not be used within control directives or mixins. on line 3 of input.scss Use --trace for backtrace. <===> error-dart-sass Error: This at-rule is not allowed here. , 3 | @import '_include'; | ^^^^^^^^^^^^^^^^^^ ' input.scss 3:3 root stylesheet sass-spec-libsass-3.6.3/spec/errors/import/miss/mixin/000077500000000000000000000000001355712145100227455ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/errors/import/miss/mixin/control-else/000077500000000000000000000000001355712145100253535ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/errors/import/miss/mixin/control-else/inside.hrx000066400000000000000000000007021355712145100273500ustar00rootroot00000000000000<===> input.scss @mixin do_import() { @if (false) { } @else { @import '_include'; } } foo { @include do_import(); } <===> error Error: Import directives may not be used within control directives or mixins. on line 4 of input.scss Use --trace for backtrace. <===> error-dart-sass Error: This at-rule is not allowed here. , 4 | @import '_include'; | ^^^^^^^^^^^^^^^^^^ ' input.scss 4:5 root stylesheet sass-spec-libsass-3.6.3/spec/errors/import/miss/mixin/control-else/outside.hrx000066400000000000000000000006561355712145100275610ustar00rootroot00000000000000<===> input.scss @mixin do_import() { @import '_include'; } @if (false) { } @else { @include do_import(); } <===> error Error: Import directives may not be used within control directives or mixins. on line 2 of input.scss Use --trace for backtrace. <===> error-dart-sass Error: This at-rule is not allowed here. , 2 | @import '_include'; | ^^^^^^^^^^^^^^^^^^ ' input.scss 2:3 root stylesheet sass-spec-libsass-3.6.3/spec/errors/import/miss/mixin/control-if/000077500000000000000000000000001355712145100250215ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/errors/import/miss/mixin/control-if/inside.hrx000066400000000000000000000006641355712145100270250ustar00rootroot00000000000000<===> input.scss @mixin do_import() { @if (true) { @import '_include'; } } foo { @include do_import(); } <===> error Error: Import directives may not be used within control directives or mixins. on line 3 of input.scss Use --trace for backtrace. <===> error-dart-sass Error: This at-rule is not allowed here. , 3 | @import '_include'; | ^^^^^^^^^^^^^^^^^^ ' input.scss 3:5 root stylesheet sass-spec-libsass-3.6.3/spec/errors/import/miss/mixin/control-if/outside.hrx000066400000000000000000000006401355712145100272200ustar00rootroot00000000000000<===> input.scss @mixin do_import() { @import '_include'; } @if (true) { @include do_import(); } <===> error Error: Import directives may not be used within control directives or mixins. on line 2 of input.scss Use --trace for backtrace. <===> error-dart-sass Error: This at-rule is not allowed here. , 2 | @import '_include'; | ^^^^^^^^^^^^^^^^^^ ' input.scss 2:3 root stylesheet sass-spec-libsass-3.6.3/spec/errors/import/miss/mixin/simple/000077500000000000000000000000001355712145100242365ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/errors/import/miss/mixin/simple/inside.hrx000066400000000000000000000012051355712145100262320ustar00rootroot00000000000000<===> input.scss @mixin import-google-fonts() { @import url("http://fonts.googleapis.com/css?family=#{$family}"); } foo { $family: unquote("Droid+Sans"); @include import-google-fonts(); } <===> error Error: Undefined variable: "$family". on line 2 of input.scss, in `import-google-fonts' from line 6 of input.scss Use --trace for backtrace. <===> error-dart-sass Error: Undefined variable. , 2 | @import url("http://fonts.googleapis.com/css?family=#{$family}"); | ^^^^^^^ ' input.scss 2:57 import-google-fonts() input.scss 6:3 root stylesheet sass-spec-libsass-3.6.3/spec/errors/import/miss/mixin/simple/outside.hrx000066400000000000000000000004151355712145100264350ustar00rootroot00000000000000<===> input.scss @mixin import-google-fonts() { @import url("http://fonts.googleapis.com/css?family=#{$family}"); } $family: unquote("Droid+Sans"); @include import-google-fonts(); <===> output.css @import url("http://fonts.googleapis.com/css?family=Droid+Sans"); sass-spec-libsass-3.6.3/spec/errors/import/miss/simple.hrx000066400000000000000000000007731355712145100236440ustar00rootroot00000000000000<===> input.scss @import "hey1.css", "cookie.css", url("hey2.css"), "fudge.css"; $foo:"goodbye"; div[name="hello"] { color: blue; } @import "bludge.css"; <===> output.css @import url(hey1.css); @import url(cookie.css); @import url("hey2.css"); @import url(fudge.css); @import url(bludge.css); div[name="hello"] { color: blue; } <===> output-dart-sass.css @import "hey1.css"; @import "cookie.css"; @import url("hey2.css"); @import "fudge.css"; @import "bludge.css"; div[name=hello] { color: blue; } sass-spec-libsass-3.6.3/spec/errors/import/url/000077500000000000000000000000001355712145100214505ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/errors/import/url/control-else.hrx000066400000000000000000000002211355712145100245740ustar00rootroot00000000000000<===> input.scss @if (false) { } @else { @import url("http://www.libsass.org"); } <===> output.css @import url("http://www.libsass.org"); sass-spec-libsass-3.6.3/spec/errors/import/url/control-if.hrx000066400000000000000000000002051355712145100242440ustar00rootroot00000000000000<===> input.scss @if (true) { @import url("http://www.libsass.org"); } <===> output.css @import url("http://www.libsass.org"); sass-spec-libsass-3.6.3/spec/errors/import/url/loop/000077500000000000000000000000001355712145100224215ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/errors/import/url/loop/each.hrx000066400000000000000000000002121355712145100240370ustar00rootroot00000000000000<===> input.scss @each $i in (1) { @import url("http://www.libsass.org"); } <===> output.css @import url("http://www.libsass.org"); sass-spec-libsass-3.6.3/spec/errors/import/url/loop/for.hrx000066400000000000000000000002721355712145100237330ustar00rootroot00000000000000<===> input.scss @for $i from 1 through 2 { @import url("http://www.libsass.org"); } <===> output.css @import url("http://www.libsass.org"); @import url("http://www.libsass.org"); sass-spec-libsass-3.6.3/spec/errors/import/url/loop/while.hrx000066400000000000000000000002611355712145100242530ustar00rootroot00000000000000<===> input.scss $count: 0; @while ($count < 1) { @import url("http://www.libsass.org"); $count: $count + 1; } <===> output.css @import url("http://www.libsass.org"); sass-spec-libsass-3.6.3/spec/errors/import/url/mixin/000077500000000000000000000000001355712145100225745ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/errors/import/url/mixin/control-else/000077500000000000000000000000001355712145100252025ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/errors/import/url/mixin/control-else/outside.hrx000066400000000000000000000003051355712145100273770ustar00rootroot00000000000000<===> input.scss @mixin do_import() { @import url("http://www.libsass.org"); } @if (false) { } @else { @include do_import(); } <===> output.css @import url("http://www.libsass.org"); sass-spec-libsass-3.6.3/spec/errors/import/url/mixin/control-if/000077500000000000000000000000001355712145100246505ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/errors/import/url/mixin/control-if/outside.hrx000066400000000000000000000002671355712145100270540ustar00rootroot00000000000000<===> input.scss @mixin do_import() { @import url("http://www.libsass.org"); } @if (true) { @include do_import(); } <===> output.css @import url("http://www.libsass.org"); sass-spec-libsass-3.6.3/spec/errors/import/url/mixin/simple/000077500000000000000000000000001355712145100240655ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/errors/import/url/mixin/simple/inside.hrx000066400000000000000000000012051355712145100260610ustar00rootroot00000000000000<===> input.scss @mixin import-google-fonts() { @import url("http://fonts.googleapis.com/css?family=#{$family}"); } foo { $family: unquote("Droid+Sans"); @include import-google-fonts(); } <===> error Error: Undefined variable: "$family". on line 2 of input.scss, in `import-google-fonts' from line 6 of input.scss Use --trace for backtrace. <===> error-dart-sass Error: Undefined variable. , 2 | @import url("http://fonts.googleapis.com/css?family=#{$family}"); | ^^^^^^^ ' input.scss 2:57 import-google-fonts() input.scss 6:3 root stylesheet sass-spec-libsass-3.6.3/spec/errors/import/url/mixin/simple/outside.hrx000066400000000000000000000004151355712145100262640ustar00rootroot00000000000000<===> input.scss @mixin import-google-fonts() { @import url("http://fonts.googleapis.com/css?family=#{$family}"); } $family: unquote("Droid+Sans"); @include import-google-fonts(); <===> output.css @import url("http://fonts.googleapis.com/css?family=Droid+Sans"); sass-spec-libsass-3.6.3/spec/errors/import/url/simple.hrx000066400000000000000000000007731355712145100234730ustar00rootroot00000000000000<===> input.scss @import "hey1.css", "cookie.css", url("hey2.css"), "fudge.css"; $foo:"goodbye"; div[name="hello"] { color: blue; } @import "bludge.css"; <===> output.css @import url(hey1.css); @import url(cookie.css); @import url("hey2.css"); @import url(fudge.css); @import url(bludge.css); div[name="hello"] { color: blue; } <===> output-dart-sass.css @import "hey1.css"; @import "cookie.css"; @import url("hey2.css"); @import "fudge.css"; @import "bludge.css"; div[name=hello] { color: blue; } sass-spec-libsass-3.6.3/spec/errors/interpolation/000077500000000000000000000000001355712145100222235ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/errors/interpolation/error-1.hrx000066400000000000000000000004421355712145100242350ustar00rootroot00000000000000<===> input.scss '#{)'{ <===> error Error: Invalid CSS after "'#{": expected expression (e.g. 1px, bold), was ")'{" on line 1 of input.scss Use --trace for backtrace. <===> error-dart-sass Error: Expected expression. , 1 | '#{)'{ | ^^ ' input.scss 1:2 root stylesheet sass-spec-libsass-3.6.3/spec/errors/invalid-operation/000077500000000000000000000000001355712145100227605ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/errors/invalid-operation/gt.hrx000066400000000000000000000004651355712145100241220ustar00rootroot00000000000000<===> input.scss test { err: 2px > red; } <===> error Error: Undefined operation: "2px gt red". on line 2 of input.scss Use --trace for backtrace. <===> error-dart-sass Error: Undefined operation "2px > red". , 2 | err: 2px > red; | ^^^^^^^^^ ' input.scss 2:8 root stylesheet sass-spec-libsass-3.6.3/spec/errors/invalid-operation/gte.hrx000066400000000000000000000004721355712145100242650ustar00rootroot00000000000000<===> input.scss test { err: 2px >= red; } <===> error Error: Undefined operation: "2px gte red". on line 2 of input.scss Use --trace for backtrace. <===> error-dart-sass Error: Undefined operation "2px >= red". , 2 | err: 2px >= red; | ^^^^^^^^^^ ' input.scss 2:8 root stylesheet sass-spec-libsass-3.6.3/spec/errors/invalid-operation/lt.hrx000066400000000000000000000004651355712145100241270ustar00rootroot00000000000000<===> input.scss test { err: 2px < red; } <===> error Error: Undefined operation: "2px lt red". on line 2 of input.scss Use --trace for backtrace. <===> error-dart-sass Error: Undefined operation "2px < red". , 2 | err: 2px < red; | ^^^^^^^^^ ' input.scss 2:8 root stylesheet sass-spec-libsass-3.6.3/spec/errors/invalid-operation/lte.hrx000066400000000000000000000004721355712145100242720ustar00rootroot00000000000000<===> input.scss test { err: 2px <= red; } <===> error Error: Undefined operation: "2px lte red". on line 2 of input.scss Use --trace for backtrace. <===> error-dart-sass Error: Undefined operation "2px <= red". , 2 | err: 2px <= red; | ^^^^^^^^^^ ' input.scss 2:8 root stylesheet sass-spec-libsass-3.6.3/spec/errors/invalid-operation/mod.hrx000066400000000000000000000004741355712145100242670ustar00rootroot00000000000000<===> input.scss test { err: 2px % red; } <===> error Error: Undefined operation: "2px mod red". on line 2:8 of input.scss >> err: 2px % red; -------^ <===> error-dart-sass Error: Undefined operation "2px % red". , 2 | err: 2px % red; | ^^^^^^^^^ ' input.scss 2:8 root stylesheet sass-spec-libsass-3.6.3/spec/errors/invalid-operation/plus.hrx000066400000000000000000000005371355712145100244730ustar00rootroot00000000000000<===> options.yml --- :todo: - libsass <===> input.scss test { err: 2px + red; } <===> error Error: Undefined operation: "2px plus red". on line 2 of input.scss Use --trace for backtrace. <===> error-dart-sass Error: Undefined operation "2px + red". , 2 | err: 2px + red; | ^^^^^^^^^ ' input.scss 2:8 root stylesheet sass-spec-libsass-3.6.3/spec/errors/invalid-operation/sub.hrx000066400000000000000000000007111355712145100242730ustar00rootroot00000000000000<===> input.scss test { err: 2px - 2px*2px; } <===> error Error: Incompatible units: 'px' and ''. on line 2 of input.scss Use --trace for backtrace. <===> error-dart-sass Error: Incompatible units px*px and px. , 2 | err: 2px - 2px*2px; | ^^^^^^^^^^^^^ ' input.scss 2:8 root stylesheet <===> error-libsass Error: Incompatible units: 'px*px' and 'px'. on line 2:8 of input.scss >> err: 2px - 2px*2px; -------^ sass-spec-libsass-3.6.3/spec/errors/invalid-operation/times.hrx000066400000000000000000000005401355712145100246230ustar00rootroot00000000000000<===> options.yml --- :todo: - libsass <===> input.scss test { err: 2px * red; } <===> error Error: Undefined operation: "2px times red". on line 2 of input.scss Use --trace for backtrace. <===> error-dart-sass Error: Undefined operation "2px * red". , 2 | err: 2px * red; | ^^^^^^^^^ ' input.scss 2:8 root stylesheet sass-spec-libsass-3.6.3/spec/errors/invalid-parent/000077500000000000000000000000001355712145100222515ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/errors/invalid-parent/function-in-each.hrx000066400000000000000000000006061355712145100261250ustar00rootroot00000000000000<===> input.scss @each $item in (a, b) { @function foo() {} } <===> error Error: Functions may not be defined within control directives or other mixins. on line 2 of input.scss Use --trace for backtrace. <===> error-dart-sass Error: Functions may not be declared in control directives. , 2 | @function foo() {} | ^^^^^^^^^^^^^^^ ' input.scss 2:3 root stylesheet sass-spec-libsass-3.6.3/spec/errors/invalid-parent/function-in-for.hrx000066400000000000000000000006111355712145100260070ustar00rootroot00000000000000<===> input.scss @for $i from 1 through 1 { @function foo() {} } <===> error Error: Functions may not be defined within control directives or other mixins. on line 2 of input.scss Use --trace for backtrace. <===> error-dart-sass Error: Functions may not be declared in control directives. , 2 | @function foo() {} | ^^^^^^^^^^^^^^^ ' input.scss 2:3 root stylesheet sass-spec-libsass-3.6.3/spec/errors/invalid-parent/function-in-function.hrx000066400000000000000000000005601355712145100270510ustar00rootroot00000000000000<===> input.scss @function foo () { @function bar() {} } <===> error Error: Functions can only contain variable declarations and control directives. on line 2 of input.scss Use --trace for backtrace. <===> error-dart-sass Error: This at-rule is not allowed here. , 2 | @function bar() {} | ^^^^^^^^^^^^^^^^ ' input.scss 2:3 root stylesheet sass-spec-libsass-3.6.3/spec/errors/invalid-parent/function-in-if.hrx000066400000000000000000000005731355712145100256260ustar00rootroot00000000000000<===> input.scss @if (true) { @function foo() {} } <===> error Error: Functions may not be defined within control directives or other mixins. on line 2 of input.scss Use --trace for backtrace. <===> error-dart-sass Error: Functions may not be declared in control directives. , 2 | @function foo() {} | ^^^^^^^^^^^^^^^ ' input.scss 2:3 root stylesheet sass-spec-libsass-3.6.3/spec/errors/invalid-parent/function-in-mixin.hrx000066400000000000000000000006271355712145100263540ustar00rootroot00000000000000<===> input.scss @mixin mix() { @function foo() {} } foo { bar: include mix(); } <===> error Error: Functions may not be defined within control directives or other mixins. on line 2 of input.scss Use --trace for backtrace. <===> error-dart-sass Error: Mixins may not contain function declarations. , 2 | @function foo() {} | ^^^^^^^^^^^^^^^ ' input.scss 2:3 root stylesheet sass-spec-libsass-3.6.3/spec/errors/invalid-parent/function-in-while.hrx000066400000000000000000000005771355712145100263440ustar00rootroot00000000000000<===> input.scss @while (false) { @function foo() {} } <===> error Error: Functions may not be defined within control directives or other mixins. on line 2 of input.scss Use --trace for backtrace. <===> error-dart-sass Error: Functions may not be declared in control directives. , 2 | @function foo() {} | ^^^^^^^^^^^^^^^ ' input.scss 2:3 root stylesheet sass-spec-libsass-3.6.3/spec/errors/invalid-parent/mixin-in-each.hrx000066400000000000000000000005671355712145100254320ustar00rootroot00000000000000<===> input.scss @each $item in (a, b) { @mixin foo() {} } <===> error Error: Mixins may not be defined within control directives or other mixins. on line 2 of input.scss Use --trace for backtrace. <===> error-dart-sass Error: Mixins may not be declared in control directives. , 2 | @mixin foo() {} | ^^^^^^^^^^^^ ' input.scss 2:3 root stylesheet sass-spec-libsass-3.6.3/spec/errors/invalid-parent/mixin-in-for.hrx000066400000000000000000000005721355712145100253140ustar00rootroot00000000000000<===> input.scss @for $i from 1 through 1 { @mixin foo() {} } <===> error Error: Mixins may not be defined within control directives or other mixins. on line 2 of input.scss Use --trace for backtrace. <===> error-dart-sass Error: Mixins may not be declared in control directives. , 2 | @mixin foo() {} | ^^^^^^^^^^^^ ' input.scss 2:3 root stylesheet sass-spec-libsass-3.6.3/spec/errors/invalid-parent/mixin-in-function.hrx000066400000000000000000000005471355712145100263550ustar00rootroot00000000000000<===> input.scss @function foo () { @mixin bar() {} } <===> error Error: Functions can only contain variable declarations and control directives. on line 2 of input.scss Use --trace for backtrace. <===> error-dart-sass Error: This at-rule is not allowed here. , 2 | @mixin bar() {} | ^^^^^^^^^^^^^ ' input.scss 2:3 root stylesheet sass-spec-libsass-3.6.3/spec/errors/invalid-parent/mixin-in-if.hrx000066400000000000000000000005541355712145100251240ustar00rootroot00000000000000<===> input.scss @if (true) { @mixin foo() {} } <===> error Error: Mixins may not be defined within control directives or other mixins. on line 2 of input.scss Use --trace for backtrace. <===> error-dart-sass Error: Mixins may not be declared in control directives. , 2 | @mixin foo() {} | ^^^^^^^^^^^^ ' input.scss 2:3 root stylesheet sass-spec-libsass-3.6.3/spec/errors/invalid-parent/mixin-in-mixin.hrx000066400000000000000000000006101355712145100256430ustar00rootroot00000000000000<===> input.scss @mixin mix() { @mixin foo() {} } foo { bar: include mix(); } <===> error Error: Mixins may not be defined within control directives or other mixins. on line 2 of input.scss Use --trace for backtrace. <===> error-dart-sass Error: Mixins may not contain mixin declarations. , 2 | @mixin foo() {} | ^^^^^^^^^^^^ ' input.scss 2:3 root stylesheet sass-spec-libsass-3.6.3/spec/errors/invalid-parent/mixin-in-while.hrx000066400000000000000000000005601355712145100256330ustar00rootroot00000000000000<===> input.scss @while (false) { @mixin foo() {} } <===> error Error: Mixins may not be defined within control directives or other mixins. on line 2 of input.scss Use --trace for backtrace. <===> error-dart-sass Error: Mixins may not be declared in control directives. , 2 | @mixin foo() {} | ^^^^^^^^^^^^ ' input.scss 2:3 root stylesheet sass-spec-libsass-3.6.3/spec/errors/invalid-parent/return-in-mixin.hrx000066400000000000000000000005321355712145100260410ustar00rootroot00000000000000<===> input.scss @mixin mix() { @return 42; } foo { @include mix(); } <===> error Error: @return may only be used within a function. on line 2 of input.scss Use --trace for backtrace. <===> error-dart-sass Error: This at-rule is not allowed here. , 2 | @return 42; | ^^^^^^^^^^ ' input.scss 2:3 root stylesheet sass-spec-libsass-3.6.3/spec/errors/invalid-parent/return-in-root.hrx000066400000000000000000000004421355712145100257000ustar00rootroot00000000000000<===> input.scss @return 42; <===> error Error: @return may only be used within a function. on line 1 of input.scss Use --trace for backtrace. <===> error-dart-sass Error: This at-rule is not allowed here. , 1 | @return 42; | ^^^^^^^^^^ ' input.scss 1:1 root stylesheet sass-spec-libsass-3.6.3/spec/errors/invalid-parent/return-in-ruleset.hrx000066400000000000000000000004661355712145100264060ustar00rootroot00000000000000<===> input.scss ruleset { @return 42; } <===> error Error: @return may only be used within a function. on line 2 of input.scss Use --trace for backtrace. <===> error-dart-sass Error: This at-rule is not allowed here. , 2 | @return 42; | ^^^^^^^^^^ ' input.scss 2:3 root stylesheet sass-spec-libsass-3.6.3/spec/errors/loop-for/000077500000000000000000000000001355712145100210715ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/errors/loop-for/numeric/000077500000000000000000000000001355712145100225335ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/errors/loop-for/numeric/lower_eval.hrx000066400000000000000000000006251355712145100254200ustar00rootroot00000000000000<===> input.scss @function foo() { @for $i from "foo" through 4 { @return $i; } } bar { baz: foo(); } <===> error Error: "foo" is not an integer. on line 2 of input.scss Use --trace for backtrace. <===> error-dart-sass Error: "foo" is not a number. , 2 | @for $i from "foo" through 4 { | ^^^^^ ' input.scss 2:15 foo() input.scss 7:12 root stylesheet sass-spec-libsass-3.6.3/spec/errors/loop-for/numeric/lower_expand.hrx000066400000000000000000000005111355712145100257420ustar00rootroot00000000000000<===> input.scss @for $i from "foo" through 4 { bar { baz: $i; } } <===> error Error: "foo" is not an integer. on line 1 of input.scss Use --trace for backtrace. <===> error-dart-sass Error: "foo" is not a number. , 1 | @for $i from "foo" through 4 { | ^^^^^ ' input.scss 1:14 root stylesheet sass-spec-libsass-3.6.3/spec/errors/loop-for/numeric/upper_eval.hrx000066400000000000000000000006371355712145100254260ustar00rootroot00000000000000<===> input.scss @function foo() { @for $i from 1 through "foo" { @return $i; } } bar { baz: foo(); } <===> error Error: "foo" is not an integer. on line 2 of input.scss Use --trace for backtrace. <===> error-dart-sass Error: "foo" is not a number. , 2 | @for $i from 1 through "foo" { | ^^^^^ ' input.scss 2:25 foo() input.scss 7:12 root stylesheet sass-spec-libsass-3.6.3/spec/errors/loop-for/numeric/upper_expand.hrx000066400000000000000000000005231355712145100257500ustar00rootroot00000000000000<===> input.scss @for $i from 1 through "foo" { bar { baz: $i; } } <===> error Error: "foo" is not an integer. on line 1 of input.scss Use --trace for backtrace. <===> error-dart-sass Error: "foo" is not a number. , 1 | @for $i from 1 through "foo" { | ^^^^^ ' input.scss 1:24 root stylesheet sass-spec-libsass-3.6.3/spec/errors/unicode/000077500000000000000000000000001355712145100207625ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/errors/unicode/report/000077500000000000000000000000001355712145100222755ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/errors/unicode/report/after/000077500000000000000000000000001355712145100233765ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/errors/unicode/report/after/error000066400000000000000000000002041355712145100244460ustar00rootroot00000000000000Error: Invalid CSS after "foo{;öüäöüäöü": expected "{", was "" on line 1 of input.scss Use --trace for backtrace. sass-spec-libsass-3.6.3/spec/errors/unicode/report/after/error-dart-sass000066400000000000000000000001551355712145100263520ustar00rootroot00000000000000Error: expected "{". , 1 | foo{;öüäöüäöü | ^ ' input.scss 1:14 root stylesheet sass-spec-libsass-3.6.3/spec/errors/unicode/report/after/input.scss000066400000000000000000000000251355712145100254270ustar00rootroot00000000000000foo{;öüäöüäöüsass-spec-libsass-3.6.3/spec/errors/unicode/report/before/000077500000000000000000000000001355712145100235375ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/errors/unicode/report/before/error000066400000000000000000000002031355712145100246060ustar00rootroot00000000000000Error: Invalid CSS after "öüäöüäöü{a:c": expected "{", was "" on line 1 of input.scss Use --trace for backtrace. sass-spec-libsass-3.6.3/spec/errors/unicode/report/before/error-dart-sass000066400000000000000000000001531355712145100265110ustar00rootroot00000000000000Error: expected "}". , 1 | öüäöüäöü{a:c | ^ ' input.scss 1:13 root stylesheet sass-spec-libsass-3.6.3/spec/errors/unicode/report/before/input.scss000066400000000000000000000000241355712145100255670ustar00rootroot00000000000000öüäöüäöü{a:csass-spec-libsass-3.6.3/spec/extend-tests/000077500000000000000000000000001355712145100204475ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/extend-tests/001_test_basic.hrx000066400000000000000000000001321355712145100236660ustar00rootroot00000000000000<===> input.scss .foo {a: b} .bar {@extend .foo} <===> output.css .foo, .bar { a: b; } sass-spec-libsass-3.6.3/spec/extend-tests/002_test_basic.hrx000066400000000000000000000001321355712145100236670ustar00rootroot00000000000000<===> input.scss .bar {@extend .foo} .foo {a: b} <===> output.css .foo, .bar { a: b; } sass-spec-libsass-3.6.3/spec/extend-tests/003_test_basic.hrx000066400000000000000000000001621355712145100236730ustar00rootroot00000000000000<===> input.scss .foo {a: b} .bar {c: d; @extend .foo} <===> output.css .foo, .bar { a: b; } .bar { c: d; } sass-spec-libsass-3.6.3/spec/extend-tests/004_test_basic.hrx000066400000000000000000000001621355712145100236740ustar00rootroot00000000000000<===> input.scss .foo {a: b} .bar {@extend .foo; c: d} <===> output.css .foo, .bar { a: b; } .bar { c: d; } sass-spec-libsass-3.6.3/spec/extend-tests/005_test_multiple_targets.hrx000066400000000000000000000002201355712145100261730ustar00rootroot00000000000000<===> input.scss .foo {a: b} .bar {@extend .foo} .blip .foo {c: d} <===> output.css .foo, .bar { a: b; } .blip .foo, .blip .bar { c: d; } sass-spec-libsass-3.6.3/spec/extend-tests/006_test_multiple_extendees.hrx000066400000000000000000000002141355712145100265120ustar00rootroot00000000000000<===> input.scss .foo {a: b} .bar {c: d} .baz {@extend .foo; @extend .bar} <===> output.css .foo, .baz { a: b; } .bar, .baz { c: d; } 007_test_multiple_extends_with_single_extender_and_single_target.hrx000066400000000000000000000002151355712145100361460ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/extend-tests<===> input.scss .foo .bar {a: b} .baz {@extend .foo; @extend .bar} <===> output.css .foo .bar, .foo .baz, .baz .bar, .baz .baz { a: b; } 008_test_multiple_extends_with_single_extender_and_single_target.hrx000066400000000000000000000001601355712145100361460ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/extend-tests<===> input.scss .foo.bar {a: b} .baz {@extend .foo; @extend .bar} <===> output.css .foo.bar, .baz { a: b; } 009_test_multiple_extends_with_multiple_extenders_and_single_target.hrx000066400000000000000000000002261355712145100367070ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/extend-tests<===> input.scss .foo .bar {a: b} .baz {@extend .foo} .bang {@extend .bar} <===> output.css .foo .bar, .foo .bang, .baz .bar, .baz .bang { a: b; } 010_test_multiple_extends_with_multiple_extenders_and_single_target.hrx000066400000000000000000000002211355712145100366720ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/extend-tests<===> input.scss .foo.bar {a: b} .baz {@extend .foo} .bang {@extend .bar} <===> output.css .foo.bar, .foo.bang, .bar.baz, .baz.bang { a: b; } sass-spec-libsass-3.6.3/spec/extend-tests/011_test_chained_extends.hrx000066400000000000000000000002161355712145100257360ustar00rootroot00000000000000<===> input.scss .foo {a: b} .bar {@extend .foo} .baz {@extend .bar} .bip {@extend .bar} <===> output.css .foo, .bar, .bip, .baz { a: b; } sass-spec-libsass-3.6.3/spec/extend-tests/012_test_dynamic_extendee.hrx000066400000000000000000000001371355712145100261210ustar00rootroot00000000000000<===> input.scss .foo {a: b} .bar {@extend #{".foo"}} <===> output.css .foo, .bar { a: b; } sass-spec-libsass-3.6.3/spec/extend-tests/013_test_dynamic_extendee.hrx000066400000000000000000000003021355712145100261140ustar00rootroot00000000000000<===> input.scss [baz^="blip12px"] {a: b} .bar {@extend [baz^="blip#{12px}"]} <===> output.css [baz^="blip12px"], .bar { a: b; } <===> output-dart-sass.css [baz^=blip12px], .bar { a: b; } sass-spec-libsass-3.6.3/spec/extend-tests/014_test_nested_target.hrx000066400000000000000000000001511355712145100254420ustar00rootroot00000000000000<===> input.scss .foo .bar {a: b} .baz {@extend .bar} <===> output.css .foo .bar, .foo .baz { a: b; } sass-spec-libsass-3.6.3/spec/extend-tests/015_test_target_with_child.hrx000066400000000000000000000001511355712145100262770ustar00rootroot00000000000000<===> input.scss .foo .bar {a: b} .baz {@extend .foo} <===> output.css .foo .bar, .baz .bar { a: b; } sass-spec-libsass-3.6.3/spec/extend-tests/016_test_class_unification.hrx000066400000000000000000000002011355712145100263050ustar00rootroot00000000000000<===> input.scss %-a .foo.bar {a: b} .baz {@extend .foo} -a {@extend %-a} <===> output.css -a .foo.bar, -a .bar.baz { a: b; } sass-spec-libsass-3.6.3/spec/extend-tests/017_test_class_unification.hrx000066400000000000000000000001601355712145100263120ustar00rootroot00000000000000<===> input.scss %-a .foo.baz {a: b} .baz {@extend .foo} -a {@extend %-a} <===> output.css -a .baz { a: b; } sass-spec-libsass-3.6.3/spec/extend-tests/018_test_id_unification.hrx000066400000000000000000000002011355712145100255760ustar00rootroot00000000000000<===> input.scss %-a .foo.bar {a: b} #baz {@extend .foo} -a {@extend %-a} <===> output.css -a .foo.bar, -a .bar#baz { a: b; } sass-spec-libsass-3.6.3/spec/extend-tests/019_test_id_unification.hrx000066400000000000000000000001601355712145100256030ustar00rootroot00000000000000<===> input.scss %-a .foo#baz {a: b} #baz {@extend .foo} -a {@extend %-a} <===> output.css -a #baz { a: b; } sass-spec-libsass-3.6.3/spec/extend-tests/020_test_universal_unification_with_simple_target.hrx000066400000000000000000000001571355712145100331670ustar00rootroot00000000000000<===> input.scss %-a .foo {a: b} * {@extend .foo} -a {@extend %-a} <===> output.css -a .foo, -a * { a: b; } sass-spec-libsass-3.6.3/spec/extend-tests/021_test_universal_unification_with_simple_target.hrx000066400000000000000000000001631355712145100331650ustar00rootroot00000000000000<===> input.scss %-a .foo {a: b} *|* {@extend .foo} -a {@extend %-a} <===> output.css -a .foo, -a *|* { a: b; } sass-spec-libsass-3.6.3/spec/extend-tests/022_test_universal_unification_with_simple_target.hrx000066400000000000000000000001551355712145100331670ustar00rootroot00000000000000<===> input.scss %-a .foo.bar {a: b} * {@extend .foo} -a {@extend %-a} <===> output.css -a .bar { a: b; } sass-spec-libsass-3.6.3/spec/extend-tests/023_test_universal_unification_with_simple_target.hrx000066400000000000000000000001571355712145100331720ustar00rootroot00000000000000<===> input.scss %-a .foo.bar {a: b} *|* {@extend .foo} -a {@extend %-a} <===> output.css -a .bar { a: b; } sass-spec-libsass-3.6.3/spec/extend-tests/024_test_universal_unification_with_simple_target.hrx000066400000000000000000000002011355712145100331610ustar00rootroot00000000000000<===> input.scss %-a .foo.bar {a: b} ns|* {@extend .foo} -a {@extend %-a} <===> output.css -a .foo.bar, -a ns|*.bar { a: b; } 025_test_universal_unification_with_namespaceless_universal_target.hrx000066400000000000000000000001471355712145100365360ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/extend-tests<===> input.scss %-a *.foo {a: b} * {@extend .foo} -a {@extend %-a} <===> output.css -a * { a: b; } 026_test_universal_unification_with_namespaceless_universal_target.hrx000066400000000000000000000001511355712145100365320ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/extend-tests<===> input.scss %-a *.foo {a: b} *|* {@extend .foo} -a {@extend %-a} <===> output.css -a * { a: b; } 027_test_universal_unification_with_namespaceless_universal_target.hrx000066400000000000000000000001651355712145100365400ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/extend-tests<===> input.scss %-a *|*.foo {a: b} * {@extend .foo} -a {@extend %-a} <===> output.css -a *|*.foo, -a * { a: b; } 028_test_universal_unification_with_namespaceless_universal_target.hrx000066400000000000000000000001551355712145100365400ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/extend-tests<===> input.scss %-a *|*.foo {a: b} *|* {@extend .foo} -a {@extend %-a} <===> output.css -a *|* { a: b; } 029_test_universal_unification_with_namespaceless_universal_target.hrx000066400000000000000000000001561355712145100365420ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/extend-tests<===> input.scss %-a *.foo {a: b} ns|* {@extend .foo} -a {@extend %-a} <===> output.css -a *.foo { a: b; } 030_test_universal_unification_with_namespaceless_universal_target.hrx000066400000000000000000000001731355712145100365310ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/extend-tests<===> input.scss %-a *|*.foo {a: b} ns|* {@extend .foo} -a {@extend %-a} <===> output.css -a *|*.foo, -a ns|* { a: b; } 031_test_universal_unification_with_namespaced_universal_target.hrx000066400000000000000000000001611355712145100360040ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/extend-tests<===> input.scss %-a ns|*.foo {a: b} * {@extend .foo} -a {@extend %-a} <===> output.css -a ns|*.foo { a: b; } 032_test_universal_unification_with_namespaced_universal_target.hrx000066400000000000000000000001571355712145100360120ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/extend-tests<===> input.scss %-a ns|*.foo {a: b} *|* {@extend .foo} -a {@extend %-a} <===> output.css -a ns|* { a: b; } 033_test_universal_unification_with_namespaced_universal_target.hrx000066400000000000000000000001601355712145100360050ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/extend-tests<===> input.scss %-a ns|*.foo {a: b} ns|* {@extend .foo} -a {@extend %-a} <===> output.css -a ns|* { a: b; } 034_test_universal_unification_with_namespaceless_element_target.hrx000066400000000000000000000001471355712145100361570ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/extend-tests<===> input.scss %-a a.foo {a: b} * {@extend .foo} -a {@extend %-a} <===> output.css -a a { a: b; } 035_test_universal_unification_with_namespaceless_element_target.hrx000066400000000000000000000001511355712145100361530ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/extend-tests<===> input.scss %-a a.foo {a: b} *|* {@extend .foo} -a {@extend %-a} <===> output.css -a a { a: b; } 036_test_universal_unification_with_namespaceless_element_target.hrx000066400000000000000000000001651355712145100361610ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/extend-tests<===> input.scss %-a *|a.foo {a: b} * {@extend .foo} -a {@extend %-a} <===> output.css -a *|a.foo, -a a { a: b; } 037_test_universal_unification_with_namespaceless_element_target.hrx000066400000000000000000000001551355712145100361610ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/extend-tests<===> input.scss %-a *|a.foo {a: b} *|* {@extend .foo} -a {@extend %-a} <===> output.css -a *|a { a: b; } 038_test_universal_unification_with_namespaceless_element_target.hrx000066400000000000000000000001561355712145100361630ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/extend-tests<===> input.scss %-a a.foo {a: b} ns|* {@extend .foo} -a {@extend %-a} <===> output.css -a a.foo { a: b; } 039_test_universal_unification_with_namespaceless_element_target.hrx000066400000000000000000000001731355712145100361630ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/extend-tests<===> input.scss %-a *|a.foo {a: b} ns|* {@extend .foo} -a {@extend %-a} <===> output.css -a *|a.foo, -a ns|a { a: b; } 040_test_universal_unification_with_namespaced_element_target.hrx000066400000000000000000000001611355712145100354250ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/extend-tests<===> input.scss %-a ns|a.foo {a: b} * {@extend .foo} -a {@extend %-a} <===> output.css -a ns|a.foo { a: b; } 041_test_universal_unification_with_namespaced_element_target.hrx000066400000000000000000000001571355712145100354330ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/extend-tests<===> input.scss %-a ns|a.foo {a: b} *|* {@extend .foo} -a {@extend %-a} <===> output.css -a ns|a { a: b; } 042_test_universal_unification_with_namespaced_element_target.hrx000066400000000000000000000001601355712145100354260ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/extend-tests<===> input.scss %-a ns|a.foo {a: b} ns|* {@extend .foo} -a {@extend %-a} <===> output.css -a ns|a { a: b; } sass-spec-libsass-3.6.3/spec/extend-tests/043_test_element_unification_with_simple_target.hrx000066400000000000000000000001571355712145100326150ustar00rootroot00000000000000<===> input.scss %-a .foo {a: b} a {@extend .foo} -a {@extend %-a} <===> output.css -a .foo, -a a { a: b; } sass-spec-libsass-3.6.3/spec/extend-tests/044_test_element_unification_with_simple_target.hrx000066400000000000000000000001731355712145100326140ustar00rootroot00000000000000<===> input.scss %-a .foo.bar {a: b} a {@extend .foo} -a {@extend %-a} <===> output.css -a .foo.bar, -a a.bar { a: b; } sass-spec-libsass-3.6.3/spec/extend-tests/045_test_element_unification_with_simple_target.hrx000066400000000000000000000001771355712145100326210ustar00rootroot00000000000000<===> input.scss %-a .foo.bar {a: b} *|a {@extend .foo} -a {@extend %-a} <===> output.css -a .foo.bar, -a *|a.bar { a: b; } sass-spec-libsass-3.6.3/spec/extend-tests/046_test_element_unification_with_simple_target.hrx000066400000000000000000000002011355712145100326060ustar00rootroot00000000000000<===> input.scss %-a .foo.bar {a: b} ns|a {@extend .foo} -a {@extend %-a} <===> output.css -a .foo.bar, -a ns|a.bar { a: b; } 047_test_element_unification_with_namespaceless_universal_target.hrx000066400000000000000000000001611355712145100361570ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/extend-tests<===> input.scss %-a *.foo {a: b} a {@extend .foo} -a {@extend %-a} <===> output.css -a *.foo, -a a { a: b; } 048_test_element_unification_with_namespaceless_universal_target.hrx000066400000000000000000000001631355712145100361620ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/extend-tests<===> input.scss %-a *.foo {a: b} *|a {@extend .foo} -a {@extend %-a} <===> output.css -a *.foo, -a a { a: b; } 049_test_element_unification_with_namespaceless_universal_target.hrx000066400000000000000000000001651355712145100361650ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/extend-tests<===> input.scss %-a *|*.foo {a: b} a {@extend .foo} -a {@extend %-a} <===> output.css -a *|*.foo, -a a { a: b; } 050_test_element_unification_with_namespaceless_universal_target.hrx000066400000000000000000000001711355712145100361520ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/extend-tests<===> input.scss %-a *|*.foo {a: b} *|a {@extend .foo} -a {@extend %-a} <===> output.css -a *|*.foo, -a *|a { a: b; } 051_test_element_unification_with_namespaceless_universal_target.hrx000066400000000000000000000001561355712145100361560ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/extend-tests<===> input.scss %-a *.foo {a: b} ns|a {@extend .foo} -a {@extend %-a} <===> output.css -a *.foo { a: b; } 052_test_element_unification_with_namespaceless_universal_target.hrx000066400000000000000000000001731355712145100361560ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/extend-tests<===> input.scss %-a *|*.foo {a: b} ns|a {@extend .foo} -a {@extend %-a} <===> output.css -a *|*.foo, -a ns|a { a: b; } 053_test_element_unification_with_namespaced_universal_target.hrx000066400000000000000000000001611355712145100354310ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/extend-tests<===> input.scss %-a ns|*.foo {a: b} a {@extend .foo} -a {@extend %-a} <===> output.css -a ns|*.foo { a: b; } 054_test_element_unification_with_namespaced_universal_target.hrx000066400000000000000000000001741355712145100354360ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/extend-tests<===> input.scss %-a ns|*.foo {a: b} *|a {@extend .foo} -a {@extend %-a} <===> output.css -a ns|*.foo, -a ns|a { a: b; } 055_test_element_unification_with_namespaced_universal_target.hrx000066400000000000000000000001751355712145100354400ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/extend-tests<===> input.scss %-a ns|*.foo {a: b} ns|a {@extend .foo} -a {@extend %-a} <===> output.css -a ns|*.foo, -a ns|a { a: b; } 056_test_element_unification_with_namespaceless_element_target.hrx000066400000000000000000000001471355712145100356040ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/extend-tests<===> input.scss %-a a.foo {a: b} a {@extend .foo} -a {@extend %-a} <===> output.css -a a { a: b; } 057_test_element_unification_with_namespaceless_element_target.hrx000066400000000000000000000001511355712145100356000ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/extend-tests<===> input.scss %-a a.foo {a: b} *|a {@extend .foo} -a {@extend %-a} <===> output.css -a a { a: b; } 058_test_element_unification_with_namespaceless_element_target.hrx000066400000000000000000000001651355712145100356060ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/extend-tests<===> input.scss %-a *|a.foo {a: b} a {@extend .foo} -a {@extend %-a} <===> output.css -a *|a.foo, -a a { a: b; } 059_test_element_unification_with_namespaceless_element_target.hrx000066400000000000000000000001551355712145100356060ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/extend-tests<===> input.scss %-a *|a.foo {a: b} *|a {@extend .foo} -a {@extend %-a} <===> output.css -a *|a { a: b; } 060_test_element_unification_with_namespaceless_element_target.hrx000066400000000000000000000001561355712145100355770ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/extend-tests<===> input.scss %-a a.foo {a: b} ns|a {@extend .foo} -a {@extend %-a} <===> output.css -a a.foo { a: b; } 061_test_element_unification_with_namespaceless_element_target.hrx000066400000000000000000000001731355712145100355770ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/extend-tests<===> input.scss %-a *|a.foo {a: b} ns|a {@extend .foo} -a {@extend %-a} <===> output.css -a *|a.foo, -a ns|a { a: b; } 062_test_element_unification_with_namespaced_element_target.hrx000066400000000000000000000001611355712145100350520ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/extend-tests<===> input.scss %-a ns|a.foo {a: b} a {@extend .foo} -a {@extend %-a} <===> output.css -a ns|a.foo { a: b; } 063_test_element_unification_with_namespaced_element_target.hrx000066400000000000000000000001571355712145100350600ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/extend-tests<===> input.scss %-a ns|a.foo {a: b} *|a {@extend .foo} -a {@extend %-a} <===> output.css -a ns|a { a: b; } 064_test_element_unification_with_namespaced_element_target.hrx000066400000000000000000000001601355712145100350530ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/extend-tests<===> input.scss %-a ns|a.foo {a: b} ns|a {@extend .foo} -a {@extend %-a} <===> output.css -a ns|a { a: b; } sass-spec-libsass-3.6.3/spec/extend-tests/065_test_attribute_unification.hrx000066400000000000000000000002321355712145100272130ustar00rootroot00000000000000<===> input.scss %-a [foo=bar].baz {a: b} [foo=baz] {@extend .baz} -a {@extend %-a} <===> output.css -a [foo=bar].baz, -a [foo=bar][foo=baz] { a: b; } sass-spec-libsass-3.6.3/spec/extend-tests/066_test_attribute_unification.hrx000066400000000000000000000002341355712145100272160ustar00rootroot00000000000000<===> input.scss %-a [foo=bar].baz {a: b} [foo^=bar] {@extend .baz} -a {@extend %-a} <===> output.css -a [foo=bar].baz, -a [foo=bar][foo^=bar] { a: b; } sass-spec-libsass-3.6.3/spec/extend-tests/067_test_attribute_unification.hrx000066400000000000000000000002341355712145100272170ustar00rootroot00000000000000<===> input.scss %-a [foo=bar].baz {a: b} [foot=bar] {@extend .baz} -a {@extend %-a} <===> output.css -a [foo=bar].baz, -a [foo=bar][foot=bar] { a: b; } sass-spec-libsass-3.6.3/spec/extend-tests/068_test_attribute_unification.hrx000066400000000000000000000002401355712145100272150ustar00rootroot00000000000000<===> input.scss %-a [foo=bar].baz {a: b} [ns|foo=bar] {@extend .baz} -a {@extend %-a} <===> output.css -a [foo=bar].baz, -a [foo=bar][ns|foo=bar] { a: b; } sass-spec-libsass-3.6.3/spec/extend-tests/069_test_attribute_unification.hrx000066400000000000000000000002061355712145100272200ustar00rootroot00000000000000<===> input.scss %-a %-a [foo=bar].bar {a: b} [foo=bar] {@extend .bar} -a {@extend %-a} <===> output.css -a -a [foo=bar] { a: b; } sass-spec-libsass-3.6.3/spec/extend-tests/070_test_pseudo_unification.hrx000066400000000000000000000002151355712145100265040ustar00rootroot00000000000000<===> input.scss %-a :foo.baz {a: b} :foo(2n+1) {@extend .baz} -a {@extend %-a} <===> output.css -a :foo.baz, -a :foo:foo(2n+1) { a: b; } sass-spec-libsass-3.6.3/spec/extend-tests/071_test_pseudo_unification.hrx000066400000000000000000000002031355712145100265020ustar00rootroot00000000000000<===> input.scss %-a :foo.baz {a: b} ::foo {@extend .baz} -a {@extend %-a} <===> output.css -a :foo.baz, -a :foo::foo { a: b; } sass-spec-libsass-3.6.3/spec/extend-tests/072_test_pseudo_unification.hrx000066400000000000000000000001631355712145100265100ustar00rootroot00000000000000<===> input.scss %-a ::foo.baz {a: b} ::foo {@extend .baz} -a {@extend %-a} <===> output.css -a ::foo { a: b; } sass-spec-libsass-3.6.3/spec/extend-tests/073_test_pseudo_unification.hrx000066400000000000000000000002051355712145100265060ustar00rootroot00000000000000<===> input.scss %-a ::foo(2n+1).baz {a: b} ::foo(2n+1) {@extend .baz} -a {@extend %-a} <===> output.css -a ::foo(2n+1) { a: b; } sass-spec-libsass-3.6.3/spec/extend-tests/074_test_pseudo_unification.hrx000066400000000000000000000002011355712145100265030ustar00rootroot00000000000000<===> input.scss %-a :foo.baz {a: b} :bar {@extend .baz} -a {@extend %-a} <===> output.css -a :foo.baz, -a :foo:bar { a: b; } sass-spec-libsass-3.6.3/spec/extend-tests/075_test_pseudo_unification.hrx000066400000000000000000000002051355712145100265100ustar00rootroot00000000000000<===> input.scss %-a .baz:foo {a: b} :after {@extend .baz} -a {@extend %-a} <===> output.css -a .baz:foo, -a :foo:after { a: b; } sass-spec-libsass-3.6.3/spec/extend-tests/076_test_pseudo_unification.hrx000066400000000000000000000002071355712145100265130ustar00rootroot00000000000000<===> input.scss %-a .baz:after {a: b} :foo {@extend .baz} -a {@extend %-a} <===> output.css -a .baz:after, -a :foo:after { a: b; } sass-spec-libsass-3.6.3/spec/extend-tests/077_test_pseudo_unification.hrx000066400000000000000000000001601355712145100265120ustar00rootroot00000000000000<===> input.scss %-a :foo.baz {a: b} :foo {@extend .baz} -a {@extend %-a} <===> output.css -a :foo { a: b; } sass-spec-libsass-3.6.3/spec/extend-tests/078_test_pseudoelement_remains_at_end_of_selector.hrx000066400000000000000000000001511355712145100331110ustar00rootroot00000000000000<===> input.scss .foo::bar {a: b} .baz {@extend .foo} <===> output.css .foo::bar, .baz::bar { a: b; } sass-spec-libsass-3.6.3/spec/extend-tests/079_test_pseudoelement_remains_at_end_of_selector.hrx000066400000000000000000000001541355712145100331150ustar00rootroot00000000000000<===> input.scss a.foo::bar {a: b} .baz {@extend .foo} <===> output.css a.foo::bar, a.baz::bar { a: b; } sass-spec-libsass-3.6.3/spec/extend-tests/080_test_pseudoclass_remains_at_end_of_selector.hrx000066400000000000000000000001461355712145100325620ustar00rootroot00000000000000<===> input.scss .foo:bar {a: b} .baz {@extend .foo} <===> output.css .foo:bar, .baz:bar { a: b; } sass-spec-libsass-3.6.3/spec/extend-tests/081_test_pseudoclass_remains_at_end_of_selector.hrx000066400000000000000000000001511355712145100325570ustar00rootroot00000000000000<===> input.scss a.foo:bar {a: b} .baz {@extend .foo} <===> output.css a.foo:bar, a.baz:bar { a: b; } sass-spec-libsass-3.6.3/spec/extend-tests/082_test_not_remains_at_end_of_selector.hrx000066400000000000000000000001701355712145100310340ustar00rootroot00000000000000<===> input.scss .foo:not(.bar) {a: b} .baz {@extend .foo} <===> output.css .foo:not(.bar), .baz:not(.bar) { a: b; } sass-spec-libsass-3.6.3/spec/extend-tests/083_test_pseudoelement_goes_lefter_than_pseudoclass.hrx000066400000000000000000000001631355712145100334710ustar00rootroot00000000000000<===> input.scss .foo::bar {a: b} .baz:bang {@extend .foo} <===> output.css .foo::bar, .baz:bang::bar { a: b; } sass-spec-libsass-3.6.3/spec/extend-tests/084_test_pseudoelement_goes_lefter_than_pseudoclass.hrx000066400000000000000000000001621355712145100334710ustar00rootroot00000000000000<===> input.scss .foo:bar {a: b} .baz::bang {@extend .foo} <===> output.css .foo:bar, .baz:bar::bang { a: b; } sass-spec-libsass-3.6.3/spec/extend-tests/085_test_pseudoelement_goes_lefter_than_not.hrx000066400000000000000000000001771355712145100317530ustar00rootroot00000000000000<===> input.scss .foo::bar {a: b} .baz:not(.bang) {@extend .foo} <===> output.css .foo::bar, .baz:not(.bang)::bar { a: b; } sass-spec-libsass-3.6.3/spec/extend-tests/086.1_test_pseudoelement_goes_lefter_than_not.hrx000066400000000000000000000002751355712145100321120ustar00rootroot00000000000000<===> input.scss %a { x:y; } b:after:not(:first-child) { @extend %a; } c:s { @extend %a; } d::e { @extend c; } <===> output.css c:s, d:s::e, b:after:not(:first-child) { x: y; } sass-spec-libsass-3.6.3/spec/extend-tests/086_test_pseudoelement_goes_lefter_than_not.hrx000066400000000000000000000002051355712145100317440ustar00rootroot00000000000000<===> input.scss .foo:not(.bang) {a: b} .baz::bar {@extend .foo} <===> output.css .foo:not(.bang), .baz:not(.bang)::bar { a: b; } sass-spec-libsass-3.6.3/spec/extend-tests/087_test_negation_unification.hrx000066400000000000000000000002371355712145100270250ustar00rootroot00000000000000<===> input.scss %-a :not(.foo).baz {a: b} :not(.bar) {@extend .baz} -a {@extend %-a} <===> output.css -a :not(.foo).baz, -a :not(.foo):not(.bar) { a: b; } sass-spec-libsass-3.6.3/spec/extend-tests/088_test_negation_unification.hrx000066400000000000000000000002021355712145100270160ustar00rootroot00000000000000<===> input.scss %-a :not(.foo).baz {a: b} :not(.foo) {@extend .baz} -a {@extend %-a} <===> output.css -a :not(.foo) { a: b; } sass-spec-libsass-3.6.3/spec/extend-tests/089_test_negation_unification.hrx000066400000000000000000000002071355712145100270240ustar00rootroot00000000000000<===> input.scss %-a :not([a=b]).baz {a: b} :not([a = b]) {@extend .baz} -a {@extend %-a} <===> output.css -a :not([a=b]) { a: b; } sass-spec-libsass-3.6.3/spec/extend-tests/090_test_comma_extendee.hrx000066400000000000000000000002641355712145100256000ustar00rootroot00000000000000<===> options.yml --- :ignore_for: - dart-sass <===> input.scss .foo {a: b} .bar {c: d} .baz {@extend .foo, .bar} <===> output.css .foo, .baz { a: b; } .bar, .baz { c: d; } sass-spec-libsass-3.6.3/spec/extend-tests/091_test_redundant_selector_elimination.hrx000066400000000000000000000002001355712145100310660ustar00rootroot00000000000000<===> input.scss .foo.bar {a: b} .x {@extend .foo, .bar} .y {@extend .foo, .bar} <===> output.css .foo.bar, .y, .x { a: b; } sass-spec-libsass-3.6.3/spec/extend-tests/094_test_long_extendee_runs_unification.hrx000066400000000000000000000005541355712145100311100ustar00rootroot00000000000000<===> options.yml --- :todo: - libsass <===> input.scss ns|*.foo.bar {a: b} a.baz {@extend .foo.bar} <===> error-dart-sass Error: compound selectors may no longer be extended. Consider `@extend .foo, .bar` instead. See http://bit.ly/ExtendCompound for details. , 2 | a.baz {@extend .foo.bar} | ^^^^^^^^ ' input.scss 2:16 root stylesheet sass-spec-libsass-3.6.3/spec/extend-tests/095_test_long_extender.hrx000066400000000000000000000001601355712145100254600ustar00rootroot00000000000000<===> input.scss .foo.bar {a: b} .baz.bang {@extend .foo} <===> output.css .foo.bar, .bar.baz.bang { a: b; } sass-spec-libsass-3.6.3/spec/extend-tests/096_test_long_extender_runs_unification.hrx000066400000000000000000000001451355712145100311230ustar00rootroot00000000000000<===> input.scss ns|*.foo.bar {a: b} a.baz {@extend .foo} <===> output.css ns|*.foo.bar { a: b; } sass-spec-libsass-3.6.3/spec/extend-tests/097_test_nested_extender.hrx000066400000000000000000000001401355712145100260030ustar00rootroot00000000000000<===> input.scss .foo {a: b} foo bar {@extend .foo} <===> output.css .foo, foo bar { a: b; } sass-spec-libsass-3.6.3/spec/extend-tests/098_test_nested_extender_runs_unification.hrx000066400000000000000000000001541355712145100314500ustar00rootroot00000000000000<===> input.scss .foo.bar {a: b} foo bar {@extend .foo} <===> output.css .foo.bar, foo bar.bar { a: b; } sass-spec-libsass-3.6.3/spec/extend-tests/099_test_nested_extender_alternates_parents.hrx000066400000000000000000000002461355712145100317720ustar00rootroot00000000000000<===> input.scss .baz .bip .foo {a: b} foo .grank bar {@extend .foo} <===> output.css .baz .bip .foo, .baz .bip foo .grank bar, foo .grank .baz .bip bar { a: b; } sass-spec-libsass-3.6.3/spec/extend-tests/100_test_nested_extender_unifies_identical_parents.hrx000066400000000000000000000002001355712145100332530ustar00rootroot00000000000000<===> input.scss .baz .bip .foo {a: b} .baz .bip bar {@extend .foo} <===> output.css .baz .bip .foo, .baz .bip bar { a: b; } sass-spec-libsass-3.6.3/spec/extend-tests/101_test_nested_extender_unifies_common_substring.hrx000066400000000000000000000003151355712145100331630ustar00rootroot00000000000000<===> input.scss .baz .bip .bap .bink .foo {a: b} .brat .bip .bap bar {@extend .foo} <===> output.css .baz .bip .bap .bink .foo, .baz .brat .bip .bap .bink bar, .brat .baz .bip .bap .bink bar { a: b; } sass-spec-libsass-3.6.3/spec/extend-tests/102_test_nested_extender_unifies_common_subseq.hrx000066400000000000000000000003231355712145100324450ustar00rootroot00000000000000<===> input.scss .a .x .b .y .foo {a: b} .a .n .b .m bar {@extend .foo} <===> output.css .a .x .b .y .foo, .a .x .n .b .y .m bar, .a .n .x .b .y .m bar, .a .x .n .b .m .y bar, .a .n .x .b .m .y bar { a: b; } sass-spec-libsass-3.6.3/spec/extend-tests/103_test_nested_extender_chooses_first_subseq.hrx000066400000000000000000000002201355712145100323020ustar00rootroot00000000000000<===> input.scss .a .b .c .d .foo {a: b} .c .d .a .b .bar {@extend .foo} <===> output.css .a .b .c .d .foo, .a .b .c .d .a .b .bar { a: b; } sass-spec-libsass-3.6.3/spec/extend-tests/104_test_nested_extender_counts_extended_subselectors/000077500000000000000000000000001355712145100333225ustar00rootroot00000000000000104_test_nested_extender_counts_extended_subselectors.hrx000066400000000000000000000002361355712145100466420ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/extend-tests/104_test_nested_extender_counts_extended_subselectors<===> input.scss .a .bip.bop .foo {a: b} .b .bip .bar {@extend .foo} <===> output.css .a .bip.bop .foo, .a .b .bip.bop .bar, .b .a .bip.bop .bar { a: b; } 105_test_nested_extender_counts_extended_superselectors.hrx000066400000000000000000000002321355712145100343310ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/extend-tests<===> input.scss .a .bip .foo {a: b} .b .bip.bop .bar {@extend .foo} <===> output.css .a .bip .foo, .a .b .bip.bop .bar, .b .a .bip.bop .bar { a: b; } sass-spec-libsass-3.6.3/spec/extend-tests/106_test_nested_extender_with_child_selector.hrx000066400000000000000000000001631355712145100320750ustar00rootroot00000000000000<===> input.scss .baz .foo {a: b} foo > bar {@extend .foo} <===> output.css .baz .foo, .baz foo > bar { a: b; } 107_test_nested_extender_finds_common_selectors_around_child_selector.hrx000066400000000000000000000001611355712145100371500ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/extend-tests<===> input.scss a > b c .c1 {a: b} a c .c2 {@extend .c1} <===> output.css a > b c .c1, a > b c .c2 { a: b; } 108_test_nested_extender_finds_common_selectors_around_child_selector.hrx000066400000000000000000000001611355712145100371510ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/extend-tests<===> input.scss a > b c .c1 {a: b} b c .c2 {@extend .c1} <===> output.css a > b c .c1, a > b c .c2 { a: b; } 109_test_nested_extender_finds_common_selectors_around_adjacent_sibling.hrx000066400000000000000000000002021355712145100374430ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/extend-tests<===> input.scss a + b c .c1 {a: b} a c .c2 {@extend .c1} <===> output.css a + b c .c1, a + b a c .c2, a a + b c .c2 { a: b; } 110_test_nested_extender_finds_common_selectors_around_adjacent_sibling.hrx000066400000000000000000000001631355712145100374410ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/extend-tests<===> input.scss a + b c .c1 {a: b} a b .c2 {@extend .c1} <===> output.css a + b c .c1, a a + b c .c2 { a: b; } 111_test_nested_extender_finds_common_selectors_around_adjacent_sibling.hrx000066400000000000000000000001611355712145100374400ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/extend-tests<===> input.scss a + b c .c1 {a: b} b c .c2 {@extend .c1} <===> output.css a + b c .c1, a + b c .c2 { a: b; } 112_test_nested_extender_finds_common_selectors_around_sibling_selector.hrx000066400000000000000000000002021355712145100375040ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/extend-tests<===> input.scss a ~ b c .c1 {a: b} a c .c2 {@extend .c1} <===> output.css a ~ b c .c1, a ~ b a c .c2, a a ~ b c .c2 { a: b; } 113_test_nested_extender_finds_common_selectors_around_sibling_selector.hrx000066400000000000000000000001631355712145100375130ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/extend-tests<===> input.scss a ~ b c .c1 {a: b} a b .c2 {@extend .c1} <===> output.css a ~ b c .c1, a a ~ b c .c2 { a: b; } 114_test_nested_extender_finds_common_selectors_around_sibling_selector.hrx000066400000000000000000000001611355712145100375120ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/extend-tests<===> input.scss a ~ b c .c1 {a: b} b c .c2 {@extend .c1} <===> output.css a ~ b c .c1, a ~ b c .c2 { a: b; } 118_test_nested_extender_with_early_child_selectors_doesnt_subseq_them.hrx000066400000000000000000000002671355712145100373600ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/extend-tests<===> input.scss .bip > .bap .foo {a: b} .grip > .bap .bar {@extend .foo} <===> output.css .bip > .bap .foo, .bip > .bap .grip > .bap .bar, .grip > .bap .bip > .bap .bar { a: b; } 119_test_nested_extender_with_early_child_selectors_doesnt_subseq_them.hrx000066400000000000000000000002671355712145100373610ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/extend-tests<===> input.scss .bap > .bip .foo {a: b} .bap > .grip .bar {@extend .foo} <===> output.css .bap > .bip .foo, .bap > .bip .bap > .grip .bar, .bap > .grip .bap > .bip .bar { a: b; } sass-spec-libsass-3.6.3/spec/extend-tests/120_test_nested_extender_with_child_selector_unifies.hrx000066400000000000000000000001601355712145100336100ustar00rootroot00000000000000<===> input.scss .baz.foo {a: b} foo > bar {@extend .foo} <===> output.css .baz.foo, foo > bar.baz { a: b; } sass-spec-libsass-3.6.3/spec/extend-tests/121_test_nested_extender_with_child_selector_unifies.hrx000066400000000000000000000001631355712145100336140ustar00rootroot00000000000000<===> input.scss .baz > { .foo {a: b} .bar {@extend .foo} } <===> output.css .baz > .foo, .baz > .bar { a: b; } sass-spec-libsass-3.6.3/spec/extend-tests/122_test_nested_extender_with_child_selector_unifies.hrx000066400000000000000000000001611355712145100336130ustar00rootroot00000000000000<===> input.scss .foo { .bar {a: b} > .baz {@extend .bar} } <===> output.css .foo .bar, .foo > .baz { a: b; } sass-spec-libsass-3.6.3/spec/extend-tests/123_test_nested_extender_with_early_child_selector.hrx000066400000000000000000000001731355712145100332710ustar00rootroot00000000000000<===> input.scss .foo { .bar {a: b} .bip > .baz {@extend .bar} } <===> output.css .foo .bar, .foo .bip > .baz { a: b; } sass-spec-libsass-3.6.3/spec/extend-tests/124_test_nested_extender_with_early_child_selector.hrx000066400000000000000000000002051355712145100332660ustar00rootroot00000000000000<===> input.scss .foo { .bip .bar {a: b} > .baz {@extend .bar} } <===> output.css .foo .bip .bar, .foo .bip .foo > .baz { a: b; } sass-spec-libsass-3.6.3/spec/extend-tests/125_test_nested_extender_with_early_child_selector.hrx000066400000000000000000000001751355712145100332750ustar00rootroot00000000000000<===> input.scss .foo > .bar {a: b} .bip + .baz {@extend .bar} <===> output.css .foo > .bar, .foo > .bip + .baz { a: b; } sass-spec-libsass-3.6.3/spec/extend-tests/126_test_nested_extender_with_early_child_selector.hrx000066400000000000000000000001751355712145100332760ustar00rootroot00000000000000<===> input.scss .foo + .bar {a: b} .bip > .baz {@extend .bar} <===> output.css .foo + .bar, .bip > .foo + .baz { a: b; } sass-spec-libsass-3.6.3/spec/extend-tests/127_test_nested_extender_with_early_child_selector.hrx000066400000000000000000000001721355712145100332740ustar00rootroot00000000000000<===> input.scss .foo > .bar {a: b} .bip > .baz {@extend .bar} <===> output.css .foo > .bar, .bip.foo > .baz { a: b; } sass-spec-libsass-3.6.3/spec/extend-tests/128_test_nested_extender_with_sibling_selector.hrx000066400000000000000000000001631355712145100324450ustar00rootroot00000000000000<===> input.scss .baz .foo {a: b} foo + bar {@extend .foo} <===> output.css .baz .foo, .baz foo + bar { a: b; } sass-spec-libsass-3.6.3/spec/extend-tests/129_test_nested_extender_with_hacky_selector.hrx000066400000000000000000000002251355712145100321150ustar00rootroot00000000000000<===> input.scss .baz .foo {a: b} foo + > > + bar {@extend .foo} <===> output.css .baz .foo, .baz foo + > > + bar, foo .baz + > > + bar { a: b; } sass-spec-libsass-3.6.3/spec/extend-tests/130_test_nested_extender_with_hacky_selector.hrx000066400000000000000000000001571355712145100321110ustar00rootroot00000000000000<===> input.scss .baz .foo {a: b} > > bar {@extend .foo} <===> output.css .baz .foo, > > .baz bar { a: b; } sass-spec-libsass-3.6.3/spec/extend-tests/131_test_nested_extender_merges_with_same_selector.hrx000066400000000000000000000001551355712145100333000ustar00rootroot00000000000000<===> input.scss .foo { .bar {a: b} .baz {@extend .bar} } <===> output.css .foo .bar, .foo .baz { a: b; } 132_test_nested_extender_with_child_selector_merges_with_same_selector.hrx000066400000000000000000000002141355712145100373140ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/extend-tests<===> input.scss .foo > .bar .baz {a: b} .foo > .bar .bang {@extend .baz} <===> output.css .foo > .bar .baz, .foo > .bar .bang { a: b; } sass-spec-libsass-3.6.3/spec/extend-tests/133_test_combinator_unification_for_hacky_combinators.hrx000066400000000000000000000001631355712145100337710ustar00rootroot00000000000000<===> input.scss .a > + x {a: b} .b y {@extend x} <===> output.css .a > + x, .a .b > + y, .b .a > + y { a: b; } sass-spec-libsass-3.6.3/spec/extend-tests/134_test_combinator_unification_for_hacky_combinators.hrx000066400000000000000000000001571355712145100337750ustar00rootroot00000000000000<===> input.scss .a x {a: b} .b > + y {@extend x} <===> output.css .a x, .a .b > + y, .b .a > + y { a: b; } sass-spec-libsass-3.6.3/spec/extend-tests/135_test_combinator_unification_for_hacky_combinators.hrx000066400000000000000000000001671355712145100337770ustar00rootroot00000000000000<===> input.scss .a > + x {a: b} .b > + y {@extend x} <===> output.css .a > + x, .a .b > + y, .b .a > + y { a: b; } sass-spec-libsass-3.6.3/spec/extend-tests/136_test_combinator_unification_for_hacky_combinators.hrx000066400000000000000000000001771355712145100340010ustar00rootroot00000000000000<===> input.scss .a ~ > + x {a: b} .b > + y {@extend x} <===> output.css .a ~ > + x, .a .b ~ > + y, .b .a ~ > + y { a: b; } sass-spec-libsass-3.6.3/spec/extend-tests/137_test_combinator_unification_for_hacky_combinators.hrx000066400000000000000000000001351355712145100337740ustar00rootroot00000000000000<===> input.scss .a + > x {a: b} .b > + y {@extend x} <===> output.css .a + > x { a: b; } sass-spec-libsass-3.6.3/spec/extend-tests/138_test_combinator_unification_for_hacky_combinators.hrx000066400000000000000000000001351355712145100337750ustar00rootroot00000000000000<===> input.scss .a + > x {a: b} .b > + y {@extend x} <===> output.css .a + > x { a: b; } sass-spec-libsass-3.6.3/spec/extend-tests/139_test_combinator_unification_for_hacky_combinators.hrx000066400000000000000000000002341355712145100337760ustar00rootroot00000000000000<===> input.scss .a ~ > + .b > x {a: b} .c > + .d > y {@extend x} <===> output.css .a ~ > + .b > x, .a .c ~ > + .d.b > y, .c .a ~ > + .d.b > y { a: b; } sass-spec-libsass-3.6.3/spec/extend-tests/140_test_combinator_unification_double_tilde.hrx000066400000000000000000000001451355712145100320550ustar00rootroot00000000000000<===> input.scss .a.b ~ x {a: b} .a ~ y {@extend x} <===> output.css .a.b ~ x, .a.b ~ y { a: b; } sass-spec-libsass-3.6.3/spec/extend-tests/141_test_combinator_unification_double_tilde.hrx000066400000000000000000000001431355712145100320540ustar00rootroot00000000000000<===> input.scss .a ~ x {a: b} .a.b ~ y {@extend x} <===> output.css .a ~ x, .a.b ~ y { a: b; } sass-spec-libsass-3.6.3/spec/extend-tests/142_test_combinator_unification_double_tilde.hrx000066400000000000000000000001731355712145100320600ustar00rootroot00000000000000<===> input.scss .a ~ x {a: b} .b ~ y {@extend x} <===> output.css .a ~ x, .a ~ .b ~ y, .b ~ .a ~ y, .b.a ~ y { a: b; } sass-spec-libsass-3.6.3/spec/extend-tests/143_test_combinator_unification_double_tilde.hrx000066400000000000000000000001701355712145100320560ustar00rootroot00000000000000<===> input.scss a.a ~ x {a: b} b.b ~ y {@extend x} <===> output.css a.a ~ x, a.a ~ b.b ~ y, b.b ~ a.a ~ y { a: b; } sass-spec-libsass-3.6.3/spec/extend-tests/144_test_combinator_unification_tilde_plus.hrx000066400000000000000000000001451355712145100315720ustar00rootroot00000000000000<===> input.scss .a.b + x {a: b} .a ~ y {@extend x} <===> output.css .a.b + x, .a.b + y { a: b; } sass-spec-libsass-3.6.3/spec/extend-tests/145_test_combinator_unification_tilde_plus.hrx000066400000000000000000000001621355712145100315720ustar00rootroot00000000000000<===> input.scss .a + x {a: b} .a.b ~ y {@extend x} <===> output.css .a + x, .a.b ~ .a + y, .a.b + y { a: b; } sass-spec-libsass-3.6.3/spec/extend-tests/146_test_combinator_unification_tilde_plus.hrx000066400000000000000000000001561355712145100315760ustar00rootroot00000000000000<===> input.scss .a + x {a: b} .b ~ y {@extend x} <===> output.css .a + x, .b ~ .a + y, .b.a + y { a: b; } sass-spec-libsass-3.6.3/spec/extend-tests/147_test_combinator_unification_tilde_plus.hrx000066400000000000000000000001511355712145100315720ustar00rootroot00000000000000<===> input.scss a.a + x {a: b} b.b ~ y {@extend x} <===> output.css a.a + x, b.b ~ a.a + y { a: b; } sass-spec-libsass-3.6.3/spec/extend-tests/148_test_combinator_unification_tilde_plus.hrx000066400000000000000000000001641355712145100315770ustar00rootroot00000000000000<===> input.scss .a.b ~ x {a: b} .a + y {@extend x} <===> output.css .a.b ~ x, .a.b ~ .a + y, .a.b + y { a: b; } sass-spec-libsass-3.6.3/spec/extend-tests/149_test_combinator_unification_tilde_plus.hrx000066400000000000000000000001431355712145100315750ustar00rootroot00000000000000<===> input.scss .a ~ x {a: b} .a.b + y {@extend x} <===> output.css .a ~ x, .a.b + y { a: b; } sass-spec-libsass-3.6.3/spec/extend-tests/150_test_combinator_unification_tilde_plus.hrx000066400000000000000000000001561355712145100315710ustar00rootroot00000000000000<===> input.scss .a ~ x {a: b} .b + y {@extend x} <===> output.css .a ~ x, .a ~ .b + y, .b.a + y { a: b; } sass-spec-libsass-3.6.3/spec/extend-tests/151_test_combinator_unification_tilde_plus.hrx000066400000000000000000000001511355712145100315650ustar00rootroot00000000000000<===> input.scss a.a ~ x {a: b} b.b + y {@extend x} <===> output.css a.a ~ x, a.a ~ b.b + y { a: b; } sass-spec-libsass-3.6.3/spec/extend-tests/152_test_combinator_unification_angle_sibling.hrx000066400000000000000000000001441355712145100322210ustar00rootroot00000000000000<===> input.scss .a > x {a: b} .b ~ y {@extend x} <===> output.css .a > x, .a > .b ~ y { a: b; } sass-spec-libsass-3.6.3/spec/extend-tests/153_test_combinator_unification_angle_sibling.hrx000066400000000000000000000001441355712145100322220ustar00rootroot00000000000000<===> input.scss .a > x {a: b} .b + y {@extend x} <===> output.css .a > x, .a > .b + y { a: b; } sass-spec-libsass-3.6.3/spec/extend-tests/154_test_combinator_unification_angle_sibling.hrx000066400000000000000000000001441355712145100322230ustar00rootroot00000000000000<===> input.scss .a ~ x {a: b} .b > y {@extend x} <===> output.css .a ~ x, .b > .a ~ y { a: b; } sass-spec-libsass-3.6.3/spec/extend-tests/155_test_combinator_unification_angle_sibling.hrx000066400000000000000000000001441355712145100322240ustar00rootroot00000000000000<===> input.scss .a + x {a: b} .b > y {@extend x} <===> output.css .a + x, .b > .a + y { a: b; } sass-spec-libsass-3.6.3/spec/extend-tests/156_test_combinator_unification_double_angle.hrx000066400000000000000000000001451355712145100320510ustar00rootroot00000000000000<===> input.scss .a.b > x {a: b} .b > y {@extend x} <===> output.css .a.b > x, .b.a > y { a: b; } sass-spec-libsass-3.6.3/spec/extend-tests/157_test_combinator_unification_double_angle.hrx000066400000000000000000000001431355712145100320500ustar00rootroot00000000000000<===> input.scss .a > x {a: b} .a.b > y {@extend x} <===> output.css .a > x, .a.b > y { a: b; } sass-spec-libsass-3.6.3/spec/extend-tests/158_test_combinator_unification_double_angle.hrx000066400000000000000000000001411355712145100320470ustar00rootroot00000000000000<===> input.scss .a > x {a: b} .b > y {@extend x} <===> output.css .a > x, .b.a > y { a: b; } sass-spec-libsass-3.6.3/spec/extend-tests/159_test_combinator_unification_double_angle.hrx000066400000000000000000000001321355712145100320500ustar00rootroot00000000000000<===> input.scss a.a > x {a: b} b.b > y {@extend x} <===> output.css a.a > x { a: b; } sass-spec-libsass-3.6.3/spec/extend-tests/160_test_combinator_unification_double_plus.hrx000066400000000000000000000001451355712145100317410ustar00rootroot00000000000000<===> input.scss .a.b + x {a: b} .b + y {@extend x} <===> output.css .a.b + x, .b.a + y { a: b; } sass-spec-libsass-3.6.3/spec/extend-tests/161_test_combinator_unification_double_plus.hrx000066400000000000000000000001431355712145100317400ustar00rootroot00000000000000<===> input.scss .a + x {a: b} .a.b + y {@extend x} <===> output.css .a + x, .a.b + y { a: b; } sass-spec-libsass-3.6.3/spec/extend-tests/162_test_combinator_unification_double_plus.hrx000066400000000000000000000001411355712145100317370ustar00rootroot00000000000000<===> input.scss .a + x {a: b} .b + y {@extend x} <===> output.css .a + x, .b.a + y { a: b; } sass-spec-libsass-3.6.3/spec/extend-tests/163_test_combinator_unification_double_plus.hrx000066400000000000000000000001321355712145100317400ustar00rootroot00000000000000<===> input.scss a.a + x {a: b} b.b + y {@extend x} <===> output.css a.a + x { a: b; } sass-spec-libsass-3.6.3/spec/extend-tests/164_test_combinator_unification_angle_space.hrx000066400000000000000000000001431355712145100316670ustar00rootroot00000000000000<===> input.scss .a.b > x {a: b} .a y {@extend x} <===> output.css .a.b > x, .a.b > y { a: b; } sass-spec-libsass-3.6.3/spec/extend-tests/165_test_combinator_unification_angle_space.hrx000066400000000000000000000001441355712145100316710ustar00rootroot00000000000000<===> input.scss .a > x {a: b} .a.b y {@extend x} <===> output.css .a > x, .a.b .a > y { a: b; } sass-spec-libsass-3.6.3/spec/extend-tests/166_test_combinator_unification_angle_space.hrx000066400000000000000000000001401355712145100316660ustar00rootroot00000000000000<===> input.scss .a > x {a: b} .b y {@extend x} <===> output.css .a > x, .b .a > y { a: b; } sass-spec-libsass-3.6.3/spec/extend-tests/167_test_combinator_unification_angle_space.hrx000066400000000000000000000001441355712145100316730ustar00rootroot00000000000000<===> input.scss .a.b x {a: b} .a > y {@extend x} <===> output.css .a.b x, .a.b .a > y { a: b; } sass-spec-libsass-3.6.3/spec/extend-tests/168_test_combinator_unification_angle_space.hrx000066400000000000000000000001371355712145100316760ustar00rootroot00000000000000<===> input.scss .a x {a: b} .a.b > y {@extend x} <===> output.css .a x, .a.b > y { a: b; } sass-spec-libsass-3.6.3/spec/extend-tests/169_test_combinator_unification_angle_space.hrx000066400000000000000000000001361355712145100316760ustar00rootroot00000000000000<===> input.scss .a x {a: b} .b > y {@extend x} <===> output.css .a x, .a .b > y { a: b; } sass-spec-libsass-3.6.3/spec/extend-tests/170_test_combinator_unification_plus_space.hrx000066400000000000000000000001461355712145100315640ustar00rootroot00000000000000<===> input.scss .a.b + x {a: b} .a y {@extend x} <===> output.css .a.b + x, .a .a.b + y { a: b; } sass-spec-libsass-3.6.3/spec/extend-tests/171_test_combinator_unification_plus_space.hrx000066400000000000000000000001441355712145100315630ustar00rootroot00000000000000<===> input.scss .a + x {a: b} .a.b y {@extend x} <===> output.css .a + x, .a.b .a + y { a: b; } sass-spec-libsass-3.6.3/spec/extend-tests/172_test_combinator_unification_plus_space.hrx000066400000000000000000000001401355712145100315600ustar00rootroot00000000000000<===> input.scss .a + x {a: b} .b y {@extend x} <===> output.css .a + x, .b .a + y { a: b; } sass-spec-libsass-3.6.3/spec/extend-tests/173_test_combinator_unification_plus_space.hrx000066400000000000000000000001441355712145100315650ustar00rootroot00000000000000<===> input.scss .a.b x {a: b} .a + y {@extend x} <===> output.css .a.b x, .a.b .a + y { a: b; } sass-spec-libsass-3.6.3/spec/extend-tests/174_test_combinator_unification_plus_space.hrx000066400000000000000000000001421355712145100315640ustar00rootroot00000000000000<===> input.scss .a x {a: b} .a.b + y {@extend x} <===> output.css .a x, .a .a.b + y { a: b; } sass-spec-libsass-3.6.3/spec/extend-tests/175_test_combinator_unification_plus_space.hrx000066400000000000000000000001361355712145100315700ustar00rootroot00000000000000<===> input.scss .a x {a: b} .b + y {@extend x} <===> output.css .a x, .a .b + y { a: b; } sass-spec-libsass-3.6.3/spec/extend-tests/176_test_combinator_unification_nested.hrx000066400000000000000000000001671355712145100307210ustar00rootroot00000000000000<===> input.scss .a > .b + x {a: b} .c > .d + y {@extend x} <===> output.css .a > .b + x, .c.a > .d.b + y { a: b; } sass-spec-libsass-3.6.3/spec/extend-tests/177_test_combinator_unification_nested.hrx000066400000000000000000000001601355712145100307130ustar00rootroot00000000000000<===> input.scss .a > .b + x {a: b} .c > y {@extend x} <===> output.css .a > .b + x, .c.a > .b + y { a: b; } sass-spec-libsass-3.6.3/spec/extend-tests/178_test_combinator_unification_with_newlines.hrx000066400000000000000000000003771355712145100323230ustar00rootroot00000000000000<===> input.scss .a > .b + x {a: b} .c > .d + y {@extend x} <===> output.css .a > .b + x, .c.a > .d.b + y { a: b; } <===> output-dart-sass.css .a > .b + x, .c.a > .d.b + y { a: b; } <===> output-libsass.css .a > .b + x, .c.a > .d.b + y { a: b; } sass-spec-libsass-3.6.3/spec/extend-tests/179_test_extend_self_loop.hrx000066400000000000000000000001161355712145100261600ustar00rootroot00000000000000<===> input.scss .foo {a: b; @extend .foo} <===> output.css .foo { a: b; } sass-spec-libsass-3.6.3/spec/extend-tests/180_test_basic_extend_loop.hrx000066400000000000000000000003211355712145100262760ustar00rootroot00000000000000<===> input.scss .foo {a: b; @extend .bar} .bar {c: d; @extend .foo} <===> output.css .foo, .bar { a: b; } .bar, .foo { c: d; } <===> output-dart-sass.css .foo, .bar { a: b; } .bar, .foo { c: d; } sass-spec-libsass-3.6.3/spec/extend-tests/181_test_three_level_extend_loop.hrx000066400000000000000000000003121355712145100275140ustar00rootroot00000000000000<===> input.scss .foo {a: b; @extend .bar} .bar {c: d; @extend .baz} .baz {e: f; @extend .foo} <===> output.css .foo, .baz, .bar { a: b; } .bar, .foo, .baz { c: d; } .baz, .bar, .foo { e: f; } sass-spec-libsass-3.6.3/spec/extend-tests/182_test_nested_extend_loop.hrx000066400000000000000000000001761355712145100265110ustar00rootroot00000000000000<===> input.scss .bar { a: b; .foo {c: d; @extend .bar} } <===> output.css .bar, .bar .foo { a: b; } .bar .foo { c: d; } 183_test_multiple_extender_merges_with_superset_selector.hrx000066400000000000000000000001631355712145100345250ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/extend-tests<===> input.scss .foo {@extend .bar; @extend .baz} a.bar.baz {a: b} <===> output.css a.bar.baz, a.foo { a: b; } sass-spec-libsass-3.6.3/spec/extend-tests/184_test_control_flow_if.hrx000066400000000000000000000004671355712145100260210ustar00rootroot00000000000000<===> input.scss .true { color: green; } .false { color: red; } .also-true { @if true { @extend .true; } @else { @extend .false; } } .also-false { @if false { @extend .true; } @else { @extend .false; } } <===> output.css .true, .also-true { color: green; } .false, .also-false { color: red; } sass-spec-libsass-3.6.3/spec/extend-tests/185_test_control_flow_for.hrx000066400000000000000000000004641355712145100262070ustar00rootroot00000000000000<===> input.scss .base-0 { color: green; } .base-1 { display: block; } .base-2 { border: 1px solid blue; } .added { @for $i from 0 to 3 { @extend .base-#{$i}; } } <===> output.css .base-0, .added { color: green; } .base-1, .added { display: block; } .base-2, .added { border: 1px solid blue; } sass-spec-libsass-3.6.3/spec/extend-tests/186_test_control_flow_while.hrx000066400000000000000000000005051355712145100265260ustar00rootroot00000000000000<===> input.scss .base-0 { color: green; } .base-1 { display: block; } .base-2 { border: 1px solid blue; } .added { $i : 0; @while $i < 3 { @extend .base-#{$i}; $i : $i + 1; } } <===> output.css .base-0, .added { color: green; } .base-1, .added { display: block; } .base-2, .added { border: 1px solid blue; } sass-spec-libsass-3.6.3/spec/extend-tests/187_test_basic_placeholder_selector.hrx000066400000000000000000000001241355712145100301500ustar00rootroot00000000000000<===> input.scss %foo {a: b} .bar {@extend %foo} <===> output.css .bar { a: b; } sass-spec-libsass-3.6.3/spec/extend-tests/188_test_unused_placeholder_selector.hrx000066400000000000000000000001641355712145100303770ustar00rootroot00000000000000<===> input.scss %foo {color: blue} %bar {color: red} .baz {@extend %foo} <===> output.css .baz { color: blue; } sass-spec-libsass-3.6.3/spec/extend-tests/189_test_placeholder_descendant_selector.hrx000066400000000000000000000001521355712145100312020ustar00rootroot00000000000000<===> input.scss #context %foo a {a: b} .bar {@extend %foo} <===> output.css #context .bar a { a: b; } sass-spec-libsass-3.6.3/spec/extend-tests/190_test_semi_placeholder_selector.hrx000066400000000000000000000002201355712145100300130ustar00rootroot00000000000000<===> input.scss #context %foo, .bar .baz {color: blue} .bat { @extend %foo; } <===> output.css #context .bat, .bar .baz { color: blue; } sass-spec-libsass-3.6.3/spec/extend-tests/191_test_placeholder_selector_with_multiple_extenders.hrx000066400000000000000000000001741355712145100340360ustar00rootroot00000000000000<===> input.scss %foo {color: blue} .bar {@extend %foo} .baz {@extend %foo} <===> output.css .baz, .bar { color: blue; } sass-spec-libsass-3.6.3/spec/extend-tests/192_test_placeholder_interpolation.hrx000066400000000000000000000001621355712145100300540ustar00rootroot00000000000000<===> input.scss $foo: foo; %#{$foo} {color: blue} .bar {@extend %foo} <===> output.css .bar { color: blue; } sass-spec-libsass-3.6.3/spec/extend-tests/193_test_media_in_placeholder_selector.hrx000066400000000000000000000001461355712145100306350ustar00rootroot00000000000000<===> input.scss %foo {bar {@media screen {a {b: c}}}} .baz {c: d} <===> output.css .baz { c: d; } sass-spec-libsass-3.6.3/spec/extend-tests/194_test_extend_within_media.hrx000066400000000000000000000002041355712145100266320ustar00rootroot00000000000000<===> input.scss @media screen { .foo {a: b} .bar {@extend .foo} } <===> output.css @media screen { .foo, .bar { a: b; } } sass-spec-libsass-3.6.3/spec/extend-tests/195_test_extend_within_unknown_directive.hrx000066400000000000000000000002021355712145100313070ustar00rootroot00000000000000<===> input.scss @flooblehoof { .foo {a: b} .bar {@extend .foo} } <===> output.css @flooblehoof { .foo, .bar { a: b; } } sass-spec-libsass-3.6.3/spec/extend-tests/196_test_extend_within_nested_directives.hrx000066400000000000000000000002641355712145100312660ustar00rootroot00000000000000<===> input.scss @media screen { @flooblehoof { .foo {a: b} .bar {@extend .foo} } } <===> output.css @media screen { @flooblehoof { .foo, .bar { a: b; } } } sass-spec-libsass-3.6.3/spec/extend-tests/197_test_extend_within_disparate_media.hrx000066400000000000000000000002221355712145100306710ustar00rootroot00000000000000<===> input.scss @media screen {.foo {a: b}} @media screen {.bar {@extend .foo}} <===> output.css @media screen { .foo, .bar { a: b; } } sass-spec-libsass-3.6.3/spec/extend-tests/198_test_extend_within_disparate_unknown_directive.hrx000066400000000000000000000002371355712145100333560ustar00rootroot00000000000000<===> input.scss @flooblehoof {.foo {a: b}} @flooblehoof {.bar {@extend .foo}} <===> output.css @flooblehoof { .foo, .bar { a: b; } } @flooblehoof {} sass-spec-libsass-3.6.3/spec/extend-tests/199_test_extend_within_disparate_nested_directives.hrx000066400000000000000000000003571355712145100333300ustar00rootroot00000000000000<===> input.scss @media screen {@flooblehoof {.foo {a: b}}} @media screen {@flooblehoof {.bar {@extend .foo}}} <===> output.css @media screen { @flooblehoof { .foo, .bar { a: b; } } } @media screen { @flooblehoof {} } 206_test_extend_succeeds_when_one_extension_fails_but_others_dont.hrx000066400000000000000000000001741355712145100363260ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/extend-tests<===> input.scss a.bar {a: b} .bar {c: d} b.foo {@extend .bar} <===> output.css a.bar { a: b; } .bar, b.foo { c: d; } 207_test_optional_extend_succeeds_when_extendee_doesnt_exist.hrx000066400000000000000000000001011355712145100352760ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/extend-tests<===> input.scss .foo {@extend .bar !optional} <===> output.css sass-spec-libsass-3.6.3/spec/extend-tests/208_test_optional_extend_succeeds_when_extension_fails.hrx000066400000000000000000000001411355712145100341630ustar00rootroot00000000000000<===> input.scss a.bar {a: b} b.foo {@extend .bar !optional} <===> output.css a.bar { a: b; } sass-spec-libsass-3.6.3/spec/extend-tests/209_test_pseudo_element_superselector.hrx000066400000000000000000000002641355712145100306140ustar00rootroot00000000000000<===> input.scss %x#bar {a: b} // Add an id to make the results have high specificity %y, %y::fblthp {@extend %x} a {@extend %y} <===> output.css a#bar, a#bar::fblthp { a: b; } sass-spec-libsass-3.6.3/spec/extend-tests/210_test_pseudo_element_superselector.hrx000066400000000000000000000001551355712145100306030ustar00rootroot00000000000000<===> input.scss %x#bar {a: b} %y, %y:fblthp {@extend %x} a {@extend %y} <===> output.css a#bar { a: b; } sass-spec-libsass-3.6.3/spec/extend-tests/211_test_pseudo_element_superselector.hrx000066400000000000000000000002031355712145100305760ustar00rootroot00000000000000<===> input.scss %x#bar {a: b} %y, %y:first-line {@extend %x} a {@extend %y} <===> output.css a#bar, a#bar:first-line { a: b; } sass-spec-libsass-3.6.3/spec/extend-tests/212_test_pseudo_element_superselector.hrx000066400000000000000000000002071355712145100306030ustar00rootroot00000000000000<===> input.scss %x#bar {a: b} %y, %y:first-letter {@extend %x} a {@extend %y} <===> output.css a#bar, a#bar:first-letter { a: b; } sass-spec-libsass-3.6.3/spec/extend-tests/213_test_pseudo_element_superselector.hrx000066400000000000000000000001731355712145100306060ustar00rootroot00000000000000<===> input.scss %x#bar {a: b} %y, %y:before {@extend %x} a {@extend %y} <===> output.css a#bar, a#bar:before { a: b; } sass-spec-libsass-3.6.3/spec/extend-tests/214_test_pseudo_element_superselector.hrx000066400000000000000000000001711355712145100306050ustar00rootroot00000000000000<===> input.scss %x#bar {a: b} %y, %y:after {@extend %x} a {@extend %y} <===> output.css a#bar, a#bar:after { a: b; } sass-spec-libsass-3.6.3/spec/extend-tests/215_test_multiple_source_redundancy_elimination.hrx000066400000000000000000000004771355712145100326470ustar00rootroot00000000000000<===> input.scss %default-color {color: red} %alt-color {color: green} %default-style { @extend %default-color; &:hover {@extend %alt-color} &:active {@extend %default-color} } .test-case {@extend %default-style} <===> output.css .test-case:active, .test-case { color: red; } .test-case:hover { color: green; } sass-spec-libsass-3.6.3/spec/extend-tests/216_test_nested_sibling_extend.hrx000066400000000000000000000002461355712145100271630ustar00rootroot00000000000000<===> input.scss .foo {@extend .bar} .parent { .bar { width: 2000px; } .foo { @extend .bar } } <===> output.css .parent .bar, .parent .foo { width: 2000px; } sass-spec-libsass-3.6.3/spec/extend-tests/217_test_parent_and_sibling_extend.hrx000066400000000000000000000003551355712145100300160ustar00rootroot00000000000000<===> input.scss %foo %bar%baz {c: d} .parent1 { @extend %foo; .child1 {@extend %bar} } .parent2 { @extend %foo; .child2 {@extend %baz} } <===> output.css .parent1 .parent2 .child1.child2, .parent2 .parent1 .child1.child2 { c: d; } sass-spec-libsass-3.6.3/spec/extend-tests/218_test_nested_extend_specificity.hrx000066400000000000000000000001651355712145100300510ustar00rootroot00000000000000<===> input.scss %foo {a: b} a { :b {@extend %foo} :b:c {@extend %foo} } <===> output.css a :b:c, a :b { a: b; } sass-spec-libsass-3.6.3/spec/extend-tests/219_test_nested_double_extend_optimization.hrx000066400000000000000000000002471355712145100316200ustar00rootroot00000000000000<===> input.scss %foo %bar { a: b; } .parent1 { @extend %foo; .child { @extend %bar; } } .parent2 { @extend %foo; } <===> output.css .parent1 .child { a: b; } sass-spec-libsass-3.6.3/spec/extend-tests/220_test_extend_in_double_nested_media_query.hrx000066400000000000000000000004511355712145100320510ustar00rootroot00000000000000<===> input.scss @media all { @media (orientation: landscape) { %foo {color: blue} .bar {@extend %foo} } } <===> output.css @media all and (orientation: landscape) { .bar { color: blue; } } <===> output-dart-sass.css @media (orientation: landscape) { .bar { color: blue; } } sass-spec-libsass-3.6.3/spec/extend-tests/221_test_partially_failed_extend.hrx000066400000000000000000000003001355712145100274620ustar00rootroot00000000000000<===> input.scss test { @extend .rc; } .rc {color: white;} .prices span.pill span.rc {color: red;} <===> output.css .rc, test { color: white; } .prices span.pill span.rc { color: red; } sass-spec-libsass-3.6.3/spec/extend-tests/222_test_newline_near_combinator.hrx000066400000000000000000000003631355712145100275030ustar00rootroot00000000000000<===> options.yml --- :ignore_for: - dart-sass <===> input.scss .a + .b x {a: b} .c y {@extend x} <===> output.css .a + .b x, .a + .b .c y, .c .a + .b y { a: b; } <===> output-libsass.css .a + .b x, .a + .b .c y, .c .a + .b y { a: b; } sass-spec-libsass-3.6.3/spec/extend-tests/223_test_duplicated_selector_with_newlines.hrx000066400000000000000000000003301355712145100315700ustar00rootroot00000000000000<===> input.scss .example-1-1, .example-1-2, .example-1-3 { a: b; } .my-page-1 .my-module-1-1 {@extend .example-1-2} <===> output.css .example-1-1, .example-1-2, .my-page-1 .my-module-1-1, .example-1-3 { a: b; } 224_test_nested_selector_with_child_selector_hack_extendee.hrx000066400000000000000000000001461355712145100346710ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/extend-tests<===> input.scss > .foo {a: b} foo bar {@extend .foo} <===> output.css > .foo, > foo bar { a: b; } 225_test_nested_selector_with_child_selector_hack_extender.hrx000066400000000000000000000002031355712145100347010ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/extend-tests<===> input.scss .foo .bar {a: b} > foo bar {@extend .bar} <===> output.css .foo .bar, > .foo foo bar, > foo .foo bar { a: b; } 226_test_nested_selector_with_child_selector_hack_extender_and_extendee.hrx000066400000000000000000000001501355712145100374060ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/extend-tests<===> input.scss > .foo {a: b} > foo bar {@extend .foo} <===> output.css > .foo, > foo bar { a: b; } 227_test_nested_with_child_hack_extender_and_sibling_extendee.hrx000066400000000000000000000001351355712145100353210ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/extend-tests<===> input.scss ~ .foo {a: b} > foo bar {@extend .foo} <===> output.css ~ .foo { a: b; } 228_test_nested_with_child_selector_hack_extender_extendee_newline.hrx000066400000000000000000000001661355712145100364160ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/extend-tests<===> input.scss > .foo {a: b} flip, > foo bar {@extend .foo} <===> output.css > .foo, > flip, > foo bar { a: b; } 229_test_extended_parent_and_child_redundancy_elimination.hrx000066400000000000000000000001551355712145100345110ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/extend-tests<===> input.scss a { b {a: b} c {@extend b} } d {@extend a} <===> output.css a b, d b, a c, d c { a: b; } 230_test_extend_redundancy_elimination_when_it_would_reduce_specificity.hrx000066400000000000000000000001231355712145100374760ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/extend-tests<===> input.scss a {a: b} a.foo {@extend a} <===> output.css a, a.foo { a: b; } 231_test_extend_redundancy_elimination_when_it_would_preserve_specificity.hrx000066400000000000000000000001261355712145100400660ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/extend-tests<===> input.scss .bar a {a: b} a.foo {@extend a} <===> output.css .bar a { a: b; } 232_test_extend_redundancy_elimination_never_eliminates_base_selector.hrx000066400000000000000000000001311355712145100371310ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/extend-tests<===> input.scss a.foo {a: b} .foo {@extend a} <===> output.css a.foo, .foo { a: b; } sass-spec-libsass-3.6.3/spec/extend-tests/233_test_extend_cross_branch_redundancy_elimination.hrx000066400000000000000000000001741355712145100334430ustar00rootroot00000000000000<===> input.scss %x .c %y {a: b} .a, .b {@extend %x} .a .d {@extend %y} <===> output.css .a .c .d, .b .c .a .d { a: b; } sass-spec-libsass-3.6.3/spec/extend-tests/234_test_extend_cross_branch_redundancy_elimination.hrx000066400000000000000000000003021355712145100334350ustar00rootroot00000000000000<===> input.scss .e %z {a: b} %x .c %y {@extend %z} .a, .b {@extend %x} .a .d {@extend %y} <===> output.css .e .a .c .d, .e .b .c .a .d, .a .e .b .c .d, .a .c .e .d, .b .c .e .a .d { a: b; } sass-spec-libsass-3.6.3/spec/extend-tests/235_extend_with_universal_selector.hrx000066400000000000000000000003131355712145100300720ustar00rootroot00000000000000<===> input.scss %-a *.foo1 {a: b} a {@extend .foo1} -a {@extend %-a} %-b *|*.foo2 {b: b} b {@extend .foo2} -b {@extend %-b} <===> output.css -a *.foo1, -a a { a: b; } -b *|*.foo2, -b b { b: b; } sass-spec-libsass-3.6.3/spec/extend-tests/236_extend_with_universal_selector_empty_namespace.hrx000066400000000000000000000001551355712145100333310ustar00rootroot00000000000000<===> input.scss %-a |*.foo {a: b} a {@extend .foo} -a {@extend %-a} <===> output.css -a |*.foo { a: b; } sass-spec-libsass-3.6.3/spec/extend-tests/237_extend_with_universal_selector_different_namespace.hrx000066400000000000000000000001611355712145100341370ustar00rootroot00000000000000<===> input.scss %-a ns|*.foo {a: b} a {@extend .foo} -a {@extend %-a} <===> output.css -a ns|*.foo { a: b; } sass-spec-libsass-3.6.3/spec/extend-tests/238_unify_root_pseudoelement.hrx000066400000000000000000000016231355712145100267160ustar00rootroot00000000000000<===> options.yml --- :todo: - libsass <===> input.scss // We assume that by default classes don't apply to the :root unless marked explicitly. :root .foo-1 { test: 1; } .bar-1 .baz-1 { @extend .foo-1; } // We know the two classes must be the same :root element so we can combine them. .foo-2:root .bar-2 { test: 2; } .baz-2:root .bang-2 { @extend .bar-2; } // This extend should not apply because the :root elements are different. html:root .bar-3 { test: 3; } xml:root .bang-3 { @extend .bar-3} // We assume that direct descendant of the :root is not the same element as a descendant. .foo-4:root > .bar-4 .x-4 { test: 4; } .baz-4:root .bang-4 .y-4 {@extend .x-4} <===> output.css :root .foo-1, :root .bar-1 .baz-1 { test: 1; } .foo-2:root .bar-2, .baz-2.foo-2:root .bang-2 { test: 2; } html:root .bar-3 { test: 3; } .foo-4:root > .bar-4 .x-4, .baz-4.foo-4:root > .bar-4 .bang-4 .y-4 { test: 4; } sass-spec-libsass-3.6.3/spec/extend-tests/compound-unification-in-not.hrx000066400000000000000000000005551355712145100265330ustar00rootroot00000000000000<===> input.scss // Make sure compound selectors are unified when two :not()s are extended. // :not() is special here because it's the only selector that's extended by // adding to the compound selector, rather than creating a new selector list. .a {@extend .c} .b {@extend .d} :not(.c):not(.d) {x: y} <===> output.css :not(.c):not(.a):not(.d):not(.b) { x: y; } sass-spec-libsass-3.6.3/spec/extend-tests/does_not_move_page_block_in_media.hrx000066400000000000000000000001761355712145100300310ustar00rootroot00000000000000<===> input.scss @media screen { a { x:y; } @page {} } <===> output.css @media screen { a { x: y; } @page {} } sass-spec-libsass-3.6.3/spec/extend-tests/escaped_selector.hrx000066400000000000000000000005531355712145100245010ustar00rootroot00000000000000<===> options.yml --- :todo: - sass/libsass#2700 <===> input.scss // Escapes in selectors' identifiers should be normalized before `@extend` is // applied. .foo {escape: none} \.foo {escape: slash dot} \2E foo {escape: hex} .bar {@extend \02e foo} <===> output.css .foo { escape: none; } \.foo, .bar { escape: slash dot; } \.foo, .bar { escape: hex; } sass-spec-libsass-3.6.3/spec/extend-tests/extend-extender.hrx000066400000000000000000000003731355712145100243000ustar00rootroot00000000000000<===> input.scss // For implementations like Dart Sass that process extensions as they occur, // extending rules that contain their own extends needs special handling. .b {@extend .a} .c {@extend .b} .a {x: y} <===> output.css .a, .b, .c { x: y; } sass-spec-libsass-3.6.3/spec/extend-tests/extend-loop.hrx000066400000000000000000000064621355712145100234400ustar00rootroot00000000000000<===> options.yml --- :todo: - libsass <===> input.scss // Make sure extend loops are handled correctly. Test in all different orderings // so we can be sure this works for implementations like Dart Sass where extend // order matters. @media order1 { .x1.y1.a1 {x: y; @extend .b1} .z1.b1 {x: y; @extend .c1} .c1 {x: y; @extend .a1} } @media order2 { .x2.y2.a2 {x: y; @extend .b2} .c2 {x: y; @extend .a2} .z2.b2 {x: y; @extend .c2} } @media order3 { .z3.b3 {x: y; @extend .c3} .x3.y3.a3 {x: y; @extend .b3} .c3 {x: y; @extend .a3} } @media order4 { .z4.b4 {x: y; @extend .c4} .c4 {x: y; @extend .a4} .x4.y4.a4 {x: y; @extend .b4} } @media order5 { .c5 {x: y; @extend .a5} .z5.b5 {x: y; @extend .c5} .x5.y5.a5 {x: y; @extend .b5} } @media order6 { .c6 {x: y; @extend .a6} .x6.y6.a6 {x: y; @extend .b6} .z6.b6 {x: y; @extend .c6} } <===> output.css @media order1 { .x1.y1.a1, .x1.y1.c1, .x1.y1.z1.b1 { x: y; } .z1.b1, .z1.x1.y1.a1, .z1.x1.y1.c1, .z1.x1.y1.b1 { x: y; } .c1, .z1.b1, .z1.x1.y1.a1, .z1.x1.y1.c1 { x: y; } } @media order2 { .x2.y2.a2, .x2.y2.c2, .x2.y2.z2.b2 { x: y; } .c2, .z2.b2, .z2.x2.y2.a2, .z2.x2.y2.c2 { x: y; } .z2.b2, .z2.x2.y2.a2, .z2.x2.y2.c2, .z2.x2.y2.b2 { x: y; } } @media order3 { .z3.b3, .z3.x3.y3.a3, .z3.x3.y3.c3, .z3.x3.y3.b3 { x: y; } .x3.y3.a3, .x3.y3.c3, .x3.y3.z3.b3 { x: y; } .c3, .z3.b3, .z3.x3.y3.a3, .z3.x3.y3.c3 { x: y; } } @media order4 { .z4.b4, .z4.x4.y4.a4, .z4.x4.y4.c4, .z4.x4.y4.b4 { x: y; } .c4, .z4.b4, .z4.x4.y4.a4, .z4.x4.y4.c4 { x: y; } .x4.y4.a4, .x4.y4.c4, .x4.y4.z4.b4 { x: y; } } @media order5 { .c5, .z5.b5, .z5.x5.y5.a5, .z5.x5.y5.c5 { x: y; } .z5.b5, .z5.x5.y5.a5, .z5.x5.y5.c5, .z5.x5.y5.b5 { x: y; } .x5.y5.a5, .x5.y5.c5, .x5.y5.z5.b5 { x: y; } } @media order6 { .c6, .z6.b6, .z6.x6.y6.a6, .z6.x6.y6.c6 { x: y; } .x6.y6.a6, .x6.y6.c6, .x6.y6.z6.b6 { x: y; } .z6.b6, .z6.x6.y6.a6, .z6.x6.y6.c6, .z6.x6.y6.b6 { x: y; } } <===> output-dart-sass.css @media order1 { .x1.y1.a1, .x1.y1.c1, .x1.y1.z1.b1 { x: y; } .z1.b1, .z1.x1.y1.a1, .z1.x1.y1.c1, .z1.x1.y1.b1 { x: y; } .c1, .z1.b1, .z1.x1.y1.a1, .z1.x1.y1.c1, .z1.x1.y1.b1 { x: y; } } @media order2 { .x2.y2.a2, .x2.y2.c2, .x2.y2.z2.b2 { x: y; } .c2, .z2.b2, .z2.x2.y2.a2, .z2.x2.y2.c2, .z2.x2.y2.b2 { x: y; } .z2.b2, .z2.x2.y2.a2, .z2.x2.y2.c2, .z2.x2.y2.b2 { x: y; } } @media order3 { .z3.b3, .z3.x3.y3.a3, .z3.x3.y3.c3, .z3.x3.y3.b3 { x: y; } .x3.y3.a3, .x3.y3.c3, .x3.y3.z3.b3 { x: y; } .c3, .z3.b3, .z3.x3.y3.a3, .z3.x3.y3.c3, .z3.x3.y3.b3 { x: y; } } @media order4 { .z4.b4, .z4.x4.y4.a4, .z4.x4.y4.c4, .z4.x4.y4.b4 { x: y; } .c4, .z4.b4, .z4.x4.y4.a4, .z4.x4.y4.c4, .z4.x4.y4.b4 { x: y; } .x4.y4.a4, .x4.y4.c4, .x4.y4.z4.b4 { x: y; } } @media order5 { .c5, .z5.b5, .z5.x5.y5.a5, .z5.x5.y5.c5, .z5.x5.y5.b5 { x: y; } .z5.b5, .z5.x5.y5.a5, .z5.x5.y5.c5, .z5.x5.y5.b5 { x: y; } .x5.y5.a5, .x5.y5.c5, .x5.y5.z5.b5 { x: y; } } @media order6 { .c6, .z6.b6, .z6.x6.y6.a6, .z6.x6.y6.c6, .z6.x6.y6.b6 { x: y; } .x6.y6.a6, .x6.y6.c6, .x6.y6.z6.b6 { x: y; } .z6.b6, .z6.x6.y6.a6, .z6.x6.y6.c6, .z6.x6.y6.b6 { x: y; } } sass-spec-libsass-3.6.3/spec/extend-tests/extend-result-of-extend.hrx000066400000000000000000000003071355712145100256640ustar00rootroot00000000000000<===> input.scss // The result of :not(.c) being extended should itself be extenable. .a {@extend :not(.b)} .b {@extend .c} :not(.c) {x: y} <===> output.css :not(.c):not(.b), .a:not(.c) { x: y; } sass-spec-libsass-3.6.3/spec/extend-tests/extend-self.hrx000066400000000000000000000002271355712145100234110ustar00rootroot00000000000000<===> input.scss // This shouldn't change the selector. .c, .a .b .c, .a .c .b {x: y; @extend .c} <===> output.css .c, .a .b .c, .a .c .b { x: y; } sass-spec-libsass-3.6.3/spec/extend-tests/fake-pseudo-element-order/000077500000000000000000000000001355712145100254125ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/extend-tests/fake-pseudo-element-order/README.md000066400000000000000000000004251355712145100266720ustar00rootroot00000000000000Although `:before`, `:after`, `:first-line`, and `:first-letter` are syntactically pseudo-classes, CSS treats them as pseudo-elements. This means that they're required to appear *after* real pseudo-classes in selectors. These specs verify that that's preserved with `@extend`. sass-spec-libsass-3.6.3/spec/extend-tests/fake-pseudo-element-order/after.hrx000066400000000000000000000001321355712145100272320ustar00rootroot00000000000000<===> input.scss %a:after {x: y} b:c {@extend %a} <===> output.css b:c:after { x: y; } sass-spec-libsass-3.6.3/spec/extend-tests/fake-pseudo-element-order/before.hrx000066400000000000000000000001341355712145100273750ustar00rootroot00000000000000<===> input.scss %a:before {x: y} b:c {@extend %a} <===> output.css b:c:before { x: y; } sass-spec-libsass-3.6.3/spec/extend-tests/fake-pseudo-element-order/first-letter.hrx000066400000000000000000000001501355712145100305550ustar00rootroot00000000000000<===> input.scss %a:first-letter {x: y} b:c {@extend %a} <===> output.css b:c:first-letter { x: y; } sass-spec-libsass-3.6.3/spec/extend-tests/fake-pseudo-element-order/first-line.hrx000066400000000000000000000001441355712145100302100ustar00rootroot00000000000000<===> input.scss %a:first-line {x: y} b:c {@extend %a} <===> output.css b:c:first-line { x: y; } sass-spec-libsass-3.6.3/spec/extend-tests/issue_146.hrx000066400000000000000000000003441355712145100227150ustar00rootroot00000000000000<===> input.scss %btn-style-default { background: green; &:hover{ background: black; } } button { @extend %btn-style-default; } <===> output.css button { background: green; } button:hover { background: black; } sass-spec-libsass-3.6.3/spec/extend-tests/nested-compound-unification.hrx000066400000000000000000000003511355712145100266030ustar00rootroot00000000000000<===> input.scss // Make sure compound unification properly handles weaving together parent // selectors. .a .b {@extend .e} .c .d {@extend .f} .e.f {x: y} <===> output.css .e.f, .a .f.b, .c .e.d, .a .c .b.d, .c .a .b.d { x: y; } sass-spec-libsass-3.6.3/spec/extend-tests/not-into-not-not.hrx000066400000000000000000000002201355712145100243270ustar00rootroot00000000000000<===> input.scss // Regression test for dart-sass#191. :not(:not(.x)) {a: b} :not(.y) {@extend .x} <===> output.css :not(:not(.x)) { a: b; } sass-spec-libsass-3.6.3/spec/extend-tests/selector_list.hrx000066400000000000000000000005001355712145100240400ustar00rootroot00000000000000<===> input.scss .foo {a: b} .bar {x: y} // Extending a selector list is equivalent to writing two @extends. .baz {@extend .foo, .bar} // The selector list should be parsed after interpolation is resolved. .bang {@extend .foo #{","} .bar} <===> output.css .foo, .bang, .baz { a: b; } .bar, .bang, .baz { x: y; } sass-spec-libsass-3.6.3/spec/extend-tests/subject-operator/000077500000000000000000000000001355712145100237375ustar00rootroot00000000000000200_test_extend_with_subject_transfers_subject_to_extender.hrx000066400000000000000000000007041355712145100402730ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/extend-tests/subject-operator<===> options.yml --- :ignore_for: - dart-sass - libsass <===> input.scss foo bar! baz {a: b} .bip .bap {@extend bar} <===> output.css foo bar! baz, foo .bip .bap! baz, .bip foo .bap! baz { a: b; } <===> warning DEPRECATION WARNING on line 1, column 1 of input.scss: The subject selector operator "!" is deprecated and will be removed in a future release. This operator has been replaced by ":has()" in the CSS spec. For example: foo bar:has(baz) 201_test_extend_with_subject_transfers_subject_to_extender.hrx000066400000000000000000000007431355712145100402770ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/extend-tests/subject-operator<===> options.yml --- :ignore_for: - dart-sass - libsass <===> input.scss foo.x bar.y! baz.z {a: b} .bip .bap {@extend .y} <===> output.css foo.x bar.y! baz.z, foo.x .bip bar.bap! baz.z, .bip foo.x bar.bap! baz.z { a: b; } <===> warning DEPRECATION WARNING on line 1, column 1 of input.scss: The subject selector operator "!" is deprecated and will be removed in a future release. This operator has been replaced by ":has()" in the CSS spec. For example: foo.x bar.y:has(baz.z) 202_test_extend_with_subject_retains_subject_on_target.hrx000066400000000000000000000006711355712145100374000ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/extend-tests/subject-operator<===> options.yml --- :ignore_for: - dart-sass - libsass <===> input.scss .foo! .bar {a: b} .bip .bap {@extend .bar} <===> output.css .foo! .bar, .foo! .bip .bap, .bip .foo! .bap { a: b; } <===> warning DEPRECATION WARNING on line 1, column 1 of input.scss: The subject selector operator "!" is deprecated and will be removed in a future release. This operator has been replaced by ":has()" in the CSS spec. For example: .foo:has(.bar) 203_test_extend_with_subject_transfers_subject_to_target.hrx000066400000000000000000000010351355712145100377440ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/extend-tests/subject-operator<===> options.yml --- :ignore_for: - libsass <===> input.scss a.foo .bar {a: b} .bip .bap! {@extend .foo} <===> error-dart-sass Error: expected "{". , 2 | .bip .bap! {@extend .foo} | ^ ' input.scss 2:10 root stylesheet <===> output.css a.foo .bar, .bip a.bap! .bar { a: b; } <===> warning DEPRECATION WARNING on line 2, column 1 of input.scss: The subject selector operator "!" is deprecated and will be removed in a future release. This operator has been replaced by ":has()" in the CSS spec. For example: .bip .bap 204_test_extend_with_subject_retains_subject_on_extender.hrx000066400000000000000000000006701355712145100377310ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/extend-tests/subject-operator<===> options.yml --- :ignore_for: - dart-sass - libsass <===> input.scss .foo .bar {a: b} .bip! .bap {@extend .bar} <===> output.css .foo .bar, .foo .bip! .bap, .bip! .foo .bap { a: b; } <===> warning DEPRECATION WARNING on line 2, column 1 of input.scss: The subject selector operator "!" is deprecated and will be removed in a future release. This operator has been replaced by ":has()" in the CSS spec. For example: .bip:has(.bap) 205_test_extend_with_subject_fails_with_conflicting_subject.hrx000066400000000000000000000011631355712145100404010ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/extend-tests/subject-operator<===> options.yml --- :ignore_for: - dart-sass - libsass <===> input.scss x! .bar {a: b} y! .bap {@extend .bar} <===> output.css x! .bar { a: b; } <===> warning DEPRECATION WARNING on line 1, column 1 of input.scss: The subject selector operator "!" is deprecated and will be removed in a future release. This operator has been replaced by ":has()" in the CSS spec. For example: x:has(.bar) DEPRECATION WARNING on line 2, column 1 of input.scss: The subject selector operator "!" is deprecated and will be removed in a future release. This operator has been replaced by ":has()" in the CSS spec. For example: y:has(.bap) sass-spec-libsass-3.6.3/spec/extend-tests/subject-operator/notes.txt000066400000000000000000000003721355712145100256320ustar00rootroot00000000000000These specs currently produces a deprecation warning in Sass 3.4.16. The subject selector operator "!" is deprecated and will be removed in a future release. This operator has been replaced by ":has()" in the CSS spec. For example: foo bar:has(baz) sass-spec-libsass-3.6.3/spec/libsass-closed-issues/000077500000000000000000000000001355712145100222405ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/libsass-closed-issues/47_str_slice/000077500000000000000000000000001355712145100245415ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/libsass-closed-issues/47_str_slice/output.css000066400000000000000000000006371355712145100266210ustar00rootroot00000000000000@charset "UTF-8"; div { bar: "b→cde→"; bar: "bcd"; bar: "ef"; bar: "bc"; bar: ""; bar: ""; bar: "abcd"; bar: "abcd"; bar: "a"; bar: "áé"; bar: "áéíóúüñ¿"; bar: "áéíóúüñ¿éàŤDžǂɊɱʭʬѪ҈ݓ"; bar: "Ѫ҈"; bar: "áéíóúüñ¿éàŤDžǂɊɱʭʬѪ҈"; bar: ""; bar: ""; bar: "øáéíóúüñ¿éàŤDžǂɊɱʭʬѪ҈ݓ"; bar: "øáéíó"; bar: ""; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue-2640.hrx000066400000000000000000000004531355712145100245060ustar00rootroot00000000000000<===> input.scss .theme1, .theme2 { .something { /* nothing */ } } $sel: selector-nest('.theme1, .theme2', '.something'); #{$sel} { /* nothing */ } <===> output.css .theme1 .something, .theme2 .something { /* nothing */ } .theme1 .something, .theme2 .something { /* nothing */ } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue-2681.hrx000066400000000000000000000005041355712145100245100ustar00rootroot00000000000000<===> input.scss %button-styles { color: red; &:focus { color: blue; } } [type="button"] { @extend %button-styles; } <===> output.css [type="button"] { color: red; } [type="button"]:focus { color: blue; } <===> output-dart-sass.css [type=button] { color: red; } [type=button]:focus { color: blue; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_100.hrx000066400000000000000000000003111355712145100244660ustar00rootroot00000000000000<===> options.yml --- :todo: - sass/libsass#2700 <===> input.scss $endColor: red; test { background-color: darken($endColor, 10%) \9; } <===> output.css test { background-color: #cc0000 \9 ; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1007.hrx000066400000000000000000000003431355712145100245620ustar00rootroot00000000000000<===> input.scss /* start */ foo /* foo */ baz /* bar */ { /* before */ margin /* X */: /* Y */ 0 /* */; /* after */ } /* end */ <===> output.css /* start */ foo baz { /* before */ margin: 0; /* after */ } /* end */ sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1016.hrx000066400000000000000000000001611355712145100245600ustar00rootroot00000000000000<===> input.scss .foo { [baz="#{&}"] { foo: bar; } } <===> output.css .foo [baz=".foo"] { foo: bar; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1021.hrx000066400000000000000000000001521355712145100245540ustar00rootroot00000000000000<===> input.scss div { top: 10px - 2 * 5px /* arrow size */; } <===> output.css div { top: 0px; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1025.hrx000066400000000000000000000003421355712145100245610ustar00rootroot00000000000000<===> input.scss @mixin m() { .a & { @content; } } :not(:last-of-type) { top: 10px; @include m { top: 10px; } } <===> output.css :not(:last-of-type) { top: 10px; } .a :not(:last-of-type) { top: 10px; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1029.hrx000066400000000000000000000006521355712145100245710ustar00rootroot00000000000000<===> input.scss @for $i from 1 through 2 { %shift-#{$i - 1} { margin-left: $i * 1px; } .week-start-#{$i} { @for $j from 1 through 2 { .month-start-#{$j} { @extend %shift-#{($j - $i - 1) % 2}; } } } } <===> output.css .week-start-2 .month-start-1, .week-start-1 .month-start-2 { margin-left: 1px; } .week-start-2 .month-start-2, .week-start-1 .month-start-1 { margin-left: 2px; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_103.hrx000066400000000000000000000002411355712145100244730ustar00rootroot00000000000000<===> input.scss // Checks if a number is even @function is-even($int) { @if $int % 2 == 0 { @return true; } @return false; } <===> output.css sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1030.hrx000066400000000000000000000004501355712145100245550ustar00rootroot00000000000000<===> input.scss @mixin will-change() { @supports (will-change: transform) { will-change: transform; } } div { a { top: 10px; @include will-change(); } } <===> output.css div a { top: 10px; } @supports (will-change: transform) { div a { will-change: transform; } } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1036.hrx000066400000000000000000000012761355712145100245720ustar00rootroot00000000000000<===> input.scss @mixin all-vip() { test: vip; } @mixin gold() { test: gold; } @mixin platinum() { test: platinum; } @mixin icons-sprite($icon-name){ @if $icon-name == 'all-vip' { @include all-vip(); } @else if $icon-name == 'gold' { @include gold(); } @else if $icon-name == 'platinum' { @include platinum(); } } div { @include icons-sprite("platinum"); @include icons-sprite("all-vip"); @include icons-sprite("gold"); } div { @include icons-sprite(platinum); @include icons-sprite(all-vip); @include icons-sprite(gold); } <===> output.css div { test: platinum; test: vip; test: gold; } div { test: platinum; test: vip; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1043.hrx000066400000000000000000000005211355712145100245600ustar00rootroot00000000000000<===> input.scss .component{ color: red; @at-root{ #{&}--foo#{&}--bar { color: blue; } } } .test{ .selector#{&} { color: blue; } } <===> output.css .component { color: red; } .component--foo.component--bar { color: blue; } .test .selector.test { color: blue; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1060.hrx000066400000000000000000000007561355712145100245710ustar00rootroot00000000000000<===> input.scss foo { @if true { foo: true; } @elseif true { foo: false; } @else { foo: false; } @if true { bar: true; } @else if true { bar: false; } @else { bar: false; } } <===> output.css foo { foo: true; bar: true; } <===> warning-dart-sass DEPRECATION WARNING on line 4, column 5 of input.scss: @elseif is deprecated and will not be supported in future Sass versions. Use "@else if" instead. , 4 | } @elseif true { | ^^^^^^^ ' sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1061.hrx000066400000000000000000000001711355712145100245610ustar00rootroot00000000000000<===> input.scss a { &.div, &.span { display: block; } } <===> output.css a.div, a.span { display: block; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1063.hrx000066400000000000000000000002621355712145100245640ustar00rootroot00000000000000<===> input.scss %foo { & > x { display: block; } } a { > b { @extend %foo; } > b > c { @extend %foo; } } <===> output.css a > b > c > x, a > b > x { display: block; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1074.hrx000066400000000000000000000003031355712145100245620ustar00rootroot00000000000000<===> input.scss $i: 1; .foo#{-$i} { a:b } .foo-#{$i} { a:b } .foo#{-1} { a:b } .foo-#{1} { a:b } <===> output.css .foo-1 { a: b; } .foo-1 { a: b; } .foo-1 { a: b; } .foo-1 { a: b; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1075.hrx000066400000000000000000000011241355712145100245650ustar00rootroot00000000000000<===> input.scss $name: "lighten"; $args: ("color": #ff0000, "amount": 10%); foo { bar: call($name, $args...); } <===> output.css foo { bar: #ff3333; } <===> warning DEPRECATION WARNING: Passing a string to call() is deprecated and will be illegal in Sass 4.0. Use call(function-reference(lighten)) instead. <===> warning-dart-sass DEPRECATION WARNING: Passing a string to call() is deprecated and will be illegal in Dart Sass 2.0.0. Use call(get-function("lighten")) instead. , 4 | bar: call($name, $args...); | ^^^^^^^^^^^^^^^^^^^^^ ' input.scss 4:8 root stylesheet sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1079.hrx000066400000000000000000000003741355712145100245770ustar00rootroot00000000000000<===> input.scss #{hdr(2,5)} { color: #08c; } <===> error Error: Invalid CSS after "hdr": expected selector, was "(2, 5)" <===> error-dart-sass Error: expected selector. , 1 | hdr(2, 5){ color: #08c; } | ^ ' input.scss 1:4 root stylesheet sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_108.hrx000066400000000000000000000002701355712145100245020ustar00rootroot00000000000000<===> input.scss $a: red; @mixin f($a: $a) { color: $a; } h1 { @include f; } h2 { @include f(blue); } <===> output.css h1 { color: red; } h2 { color: blue; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1080.hrx000066400000000000000000000004231355712145100245620ustar00rootroot00000000000000<===> input.scss /** comment 1 */ @import url("import-1"); /** comment 2 */ @import url("import-2"); /** comment 3 */ foo { bar: baz; } <===> output.css /** comment 1 */ @import url("import-1"); /** comment 2 */ @import url("import-2"); /** comment 3 */ foo { bar: baz; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1081.hrx000066400000000000000000000014061355712145100245650ustar00rootroot00000000000000<===> options.yml --- :warning_todo: - sass/libsass#2834 <===> input.scss $foo: foo !global !default; default { foo: $foo; } $foo: bar; after { @import "import"; foo: $foo; } <===> _import.scss import-before { foo: $foo; } $foo: baz !global !default; import-after { foo: $foo; } <===> output.css default { foo: foo; } after { foo: bar; } after import-before { foo: bar; } after import-after { foo: bar; } <===> warning DEPRECATION WARNING: As of Dart Sass 2.0.0, !global assignments won't be able to declare new variables. Since this assignment is at the root of the stylesheet, the !global flag is unnecessary and can safely be removed. , 1 | $foo: foo !global !default; | ^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 1:1 root stylesheet sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1082.hrx000066400000000000000000000022271355712145100245700ustar00rootroot00000000000000<===> input.scss @font-face { font-family: 'My Font'; font-style: normal; font-weight: 300; src: local('My Font'), local('My-Font'), /* from http://.... original source of .eot */ url('my-font.eot?#iefix') format('embedded-opentype'), /* from http://.... original source of .woff */ url('my-font.woff') format('woff'), /* from http://.... original source of .ttf */ url('my-font.ttf') format('truetype'), /* from http://.... original source of .svg */ url('my-font.svg#MyFont') format('svg'); } <===> output.css @font-face { font-family: 'My Font'; font-style: normal; font-weight: 300; src: local("My Font"), local("My-Font"), url("my-font.eot?#iefix") format("embedded-opentype"), url("my-font.woff") format("woff"), url("my-font.ttf") format("truetype"), url("my-font.svg#MyFont") format("svg"); } <===> output-dart-sass.css @font-face { font-family: "My Font"; font-style: normal; font-weight: 300; src: local("My Font"), local("My-Font"), url("my-font.eot?#iefix") format("embedded-opentype"), url("my-font.woff") format("woff"), url("my-font.ttf") format("truetype"), url("my-font.svg#MyFont") format("svg"); } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1086.hrx000066400000000000000000000000641355712145100245710ustar00rootroot00000000000000<===> input.scss $map: (-1px: 12); <===> output.css sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1087.hrx000066400000000000000000000002031355712145100245650ustar00rootroot00000000000000<===> input.scss $foo: bar; a { foo: url($foo); foo: url(#{$foo}); } <===> output.css a { foo: url(bar); foo: url(bar); } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1091.hrx000066400000000000000000000002431355712145100245640ustar00rootroot00000000000000<===> input.scss .a { top: 0; } .b .c { @extend .a; } .d > .e { @extend .a; @extend .c; } <===> output.css .a, .d > .e, .b .c, .b .d > .e { top: 0; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1092.hrx000066400000000000000000000004711355712145100245700ustar00rootroot00000000000000<===> input.scss $bar: ""; $baz: " "; a { a: foo #{""}; } b { b: foo #{" "}; } c { c: foo #{$bar}; } d { d: foo #{$baz}; } <===> output.css a { a: foo ; } b { b: foo ; } c { c: foo ; } d { d: foo ; } <===> output-dart-sass.css a { a: foo; } b { b: foo ; } c { c: foo; } d { d: foo ; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1093/000077500000000000000000000000001355712145100240445ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1093/argument/000077500000000000000000000000001355712145100256665ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1093/argument/function.hrx000066400000000000000000000005661355712145100302450ustar00rootroot00000000000000<===> options.yml --- :todo: - libsass <===> input.scss @function foo($bar:#{}) { @return $bar; } $foo: foo(); <===> error Error: Invalid CSS after "...ion foo($bar:#{": expected expression (e.g. 1px, bold), was "}) {" <===> error-dart-sass Error: Expected expression. , 1 | @function foo($bar:#{}) { | ^^ ' input.scss 1:20 root stylesheet sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1093/argument/mixin.hrx000066400000000000000000000005701355712145100275370ustar00rootroot00000000000000<===> options.yml --- :todo: - libsass <===> input.scss @mixin foo($bar:#{}) { @return $bar; } foo { @include foo; } <===> error Error: Invalid CSS after "@mixin foo($bar:#{": expected expression (e.g. 1px, bold), was "}) {" <===> error-dart-sass Error: Expected expression. , 1 | @mixin foo($bar:#{}) { | ^^ ' input.scss 1:17 root stylesheet sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1093/assignment.hrx000066400000000000000000000004631355712145100267420ustar00rootroot00000000000000<===> input.scss $foo: #{}; <===> error Error: Invalid CSS after "$foo: #{": expected expression (e.g. 1px, bold), was "};" on line 1 of input.scss Use --trace for backtrace. <===> error-dart-sass Error: Expected expression. , 1 | $foo: #{}; | ^^ ' input.scss 1:7 root stylesheet sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1093/parameter/000077500000000000000000000000001355712145100260245ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1093/parameter/function.hrx000066400000000000000000000005601355712145100303750ustar00rootroot00000000000000<===> input.scss @function foo($bar) { @return $bar; } $foo: foo(#{}); <===> error Error: Invalid CSS after "$foo: foo(#{": expected expression (e.g. 1px, bold), was "});" on line 5 of input.scss Use --trace for backtrace. <===> error-dart-sass Error: Expected expression. , 5 | $foo: foo(#{}); | ^^ ' input.scss 5:11 root stylesheet sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1093/parameter/mixin.hrx000066400000000000000000000006041355712145100276730ustar00rootroot00000000000000<===> input.scss @mixin foo($bar) { a: $bar; } foo { @include foo(#{}); } <===> error Error: Invalid CSS after " @include foo(#{": expected expression (e.g. 1px, bold), was "});" on line 6 of input.scss Use --trace for backtrace. <===> error-dart-sass Error: Expected expression. , 6 | @include foo(#{}); | ^^ ' input.scss 6:16 root stylesheet sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1093/property.hrx000066400000000000000000000004771355712145100264630ustar00rootroot00000000000000<===> input.scss foo { bar: #{}; } <===> error Error: Invalid CSS after " bar: #{": expected expression (e.g. 1px, bold), was "};" on line 2 of input.scss Use --trace for backtrace. <===> error-dart-sass Error: Expected expression. , 2 | bar: #{}; | ^^ ' input.scss 2:8 root stylesheet sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1098.hrx000066400000000000000000000003741355712145100246000ustar00rootroot00000000000000<===> options.yml --- :todo: - libsass <===> input.scss div { opacity: 1\9; width: 500px\9; color: #f00000\9\0; color: #f00000\9\0\; } <===> output.css div { opacity: 1\9 ; width: 500px\9 ; color: #f00000\9 \0 ; color: #f00000\9 \0 \;; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1101.hrx000066400000000000000000000002341355712145100245540ustar00rootroot00000000000000<===> input.scss $foo: white; foo { bar: adjust-color($foo, $hue: -6deg, $lightness: -16, $saturation: -7); } <===> output.css foo { bar: #d6d6d6; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1102.hrx000066400000000000000000000005221355712145100245550ustar00rootroot00000000000000<===> input.scss foo { display:expression("inline", (this.innerHTML += (this.innerHTML.indexOf(",") == -1 ? ", " : "")), this.runtimeStyle.display = "inline"); } <===> output.css foo { display: expression("inline", (this.innerHTML += (this.innerHTML.indexOf(",") == -1 ? ", " : "")), this.runtimeStyle.display = "inline"); } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1103.hrx000066400000000000000000000013541355712145100245620ustar00rootroot00000000000000<===> _import.scss foo { bar: baz } baz { bar: foo } @media screen and (max-width: 2) { foo { bar: baz } baz { bar: foo } } <===> input.scss @import "import"; @media screen and (min-width: 1) { foo { bar: baz } baz { bar: foo } } @media screen and (min-width: 1) { @import "import"; } <===> output.css foo { bar: baz; } baz { bar: foo; } @media screen and (max-width: 2) { foo { bar: baz; } baz { bar: foo; } } @media screen and (min-width: 1) { foo { bar: baz; } baz { bar: foo; } } @media screen and (min-width: 1) { foo { bar: baz; } baz { bar: foo; } } @media screen and (min-width: 1) and (max-width: 2) { foo { bar: baz; } baz { bar: foo; } } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1106.hrx000066400000000000000000000013411355712145100245610ustar00rootroot00000000000000<===> input.scss @function foo() { @return null; } $foo: null; a { foo: bar; variable: $foo; function: foo(); unquote: unquote($foo); } b { variable: $foo; function: foo(); unquote: unquote($foo); } <===> error-dart-sass Error: $string: null is not a string. , 7 | unquote: unquote($foo); | ^^^^^^^^^^^^^ ' input.scss 7:14 root stylesheet <===> output.css a { foo: bar; } <===> warning DEPRECATION WARNING: Passing null, a non-string value, to unquote() will be an error in future versions of Sass. on line 7 of input.scss DEPRECATION WARNING: Passing null, a non-string value, to unquote() will be an error in future versions of Sass. on line 13 of input.scss sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1107.hrx000066400000000000000000000006171355712145100245670ustar00rootroot00000000000000<===> input.scss .foo { filter: progid:DXImageTransform.Microsoft.AlphaImageLoader( src="#{foo}", sizingMethod='scale'); } <===> output.css .foo { filter: progid:DXImageTransform.Microsoft.AlphaImageLoader( src="foo", sizingMethod='scale'); } <===> output-dart-sass.css .foo { filter: progid:DXImageTransform.Microsoft.AlphaImageLoader( src="foo", sizingMethod="scale"); } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1115.hrx000066400000000000000000000004151355712145100245620ustar00rootroot00000000000000<===> input.scss foo { bar: "x\79"; baz: "#{x}\79"; bar: "x\a"; baz: "#{x}\a"; } <===> output.css foo { bar: "x\79"; baz: "xy"; bar: "x\a"; baz: "x\a"; } <===> output-dart-sass.css foo { bar: "xy"; baz: "xy"; bar: "x\a"; baz: "x\a"; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_112.hrx000066400000000000000000000004331355712145100244760ustar00rootroot00000000000000<===> input.scss @mixin media($var1, $var2) { @media screen and ($var1: $var2) { @content; } } @include media(max-device-width, 500px) { foo { bar: "works"; } } <===> output.css @media screen and (max-device-width: 500px) { foo { bar: "works"; } } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1121.hrx000066400000000000000000000002761355712145100245640ustar00rootroot00000000000000<===> input.scss $foo: "foo"; $bar: "bar"; $baz: "baz"; /* *
*/ <===> output.css /* *
*/ sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1127.hrx000066400000000000000000000036351355712145100245740ustar00rootroot00000000000000<===> input.scss $a: to-upper-case('abcd'); $b: to-upper-case("abcd"); $c: to-upper-case(abcd); foo { content: #{$a}; content: #{$b}; content: #{$c}; content: '#{$a}'; content: '#{$b}'; content: '#{$c}'; content: "#{$a}"; content: "#{$b}"; content: "#{$c}"; content: #{unquote($a)}; content: #{unquote($b)}; content: #{unquote($c)}; content: '#{unquote($a)}'; content: '#{unquote($b)}'; content: '#{unquote($c)}'; content: "#{unquote($a)}"; content: "#{unquote($b)}"; content: "#{unquote($c)}"; content: #{$a + unquote("efg")}; content: #{$b + unquote("efg")}; content: #{$c + unquote("efg")}; content: '#{$a + unquote("efg")}'; content: '#{$b + unquote("efg")}'; content: '#{$c + unquote("efg")}'; content: "#{$a + unquote("efg")}"; content: "#{$b + unquote("efg")}"; content: "#{$c + unquote("efg")}"; content: #{$a + unquote("")}; content: #{$b + unquote("")}; content: #{$c + unquote("")}; content: '#{$a + unquote("")}'; content: '#{$b + unquote("")}'; content: '#{$c + unquote("")}'; content: "#{$a + unquote("")}"; content: "#{$b + unquote("")}"; content: "#{$c + unquote("")}"; } <===> output.css foo { content: ABCD; content: ABCD; content: ABCD; content: "ABCD"; content: "ABCD"; content: "ABCD"; content: "ABCD"; content: "ABCD"; content: "ABCD"; content: ABCD; content: ABCD; content: ABCD; content: "ABCD"; content: "ABCD"; content: "ABCD"; content: "ABCD"; content: "ABCD"; content: "ABCD"; content: ABCDefg; content: ABCDefg; content: ABCDefg; content: "ABCDefg"; content: "ABCDefg"; content: "ABCDefg"; content: "ABCDefg"; content: "ABCDefg"; content: "ABCDefg"; content: ABCD; content: ABCD; content: ABCD; content: "ABCD"; content: "ABCD"; content: "ABCD"; content: "ABCD"; content: "ABCD"; content: "ABCD"; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_113.hrx000066400000000000000000000001651355712145100245010ustar00rootroot00000000000000<===> input.scss // Input section { $w: null, 10px; width: $w; } <===> output.css section { width: 10px; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1130.hrx000066400000000000000000000002601355712145100245550ustar00rootroot00000000000000<===> input.scss @function foo($args...) { @return bar($args...); } @function bar() { @return "hi"; } .foo { result: foo(); } <===> output.css .foo { result: "hi"; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1132.hrx000066400000000000000000000130541355712145100245640ustar00rootroot00000000000000<===> input.scss foo { @for $i from 0 through 360 { i#{$i}: hue(hsl($i, 10%, 20%)); } } <===> output.css foo { i0: 0deg; i1: 1deg; i2: 2deg; i3: 3deg; i4: 4deg; i5: 5deg; i6: 6deg; i7: 7deg; i8: 8deg; i9: 9deg; i10: 10deg; i11: 11deg; i12: 12deg; i13: 13deg; i14: 14deg; i15: 15deg; i16: 16deg; i17: 17deg; i18: 18deg; i19: 19deg; i20: 20deg; i21: 21deg; i22: 22deg; i23: 23deg; i24: 24deg; i25: 25deg; i26: 26deg; i27: 27deg; i28: 28deg; i29: 29deg; i30: 30deg; i31: 31deg; i32: 32deg; i33: 33deg; i34: 34deg; i35: 35deg; i36: 36deg; i37: 37deg; i38: 38deg; i39: 39deg; i40: 40deg; i41: 41deg; i42: 42deg; i43: 43deg; i44: 44deg; i45: 45deg; i46: 46deg; i47: 47deg; i48: 48deg; i49: 49deg; i50: 50deg; i51: 51deg; i52: 52deg; i53: 53deg; i54: 54deg; i55: 55deg; i56: 56deg; i57: 57deg; i58: 58deg; i59: 59deg; i60: 60deg; i61: 61deg; i62: 62deg; i63: 63deg; i64: 64deg; i65: 65deg; i66: 66deg; i67: 67deg; i68: 68deg; i69: 69deg; i70: 70deg; i71: 71deg; i72: 72deg; i73: 73deg; i74: 74deg; i75: 75deg; i76: 76deg; i77: 77deg; i78: 78deg; i79: 79deg; i80: 80deg; i81: 81deg; i82: 82deg; i83: 83deg; i84: 84deg; i85: 85deg; i86: 86deg; i87: 87deg; i88: 88deg; i89: 89deg; i90: 90deg; i91: 91deg; i92: 92deg; i93: 93deg; i94: 94deg; i95: 95deg; i96: 96deg; i97: 97deg; i98: 98deg; i99: 99deg; i100: 100deg; i101: 101deg; i102: 102deg; i103: 103deg; i104: 104deg; i105: 105deg; i106: 106deg; i107: 107deg; i108: 108deg; i109: 109deg; i110: 110deg; i111: 111deg; i112: 112deg; i113: 113deg; i114: 114deg; i115: 115deg; i116: 116deg; i117: 117deg; i118: 118deg; i119: 119deg; i120: 120deg; i121: 121deg; i122: 122deg; i123: 123deg; i124: 124deg; i125: 125deg; i126: 126deg; i127: 127deg; i128: 128deg; i129: 129deg; i130: 130deg; i131: 131deg; i132: 132deg; i133: 133deg; i134: 134deg; i135: 135deg; i136: 136deg; i137: 137deg; i138: 138deg; i139: 139deg; i140: 140deg; i141: 141deg; i142: 142deg; i143: 143deg; i144: 144deg; i145: 145deg; i146: 146deg; i147: 147deg; i148: 148deg; i149: 149deg; i150: 150deg; i151: 151deg; i152: 152deg; i153: 153deg; i154: 154deg; i155: 155deg; i156: 156deg; i157: 157deg; i158: 158deg; i159: 159deg; i160: 160deg; i161: 161deg; i162: 162deg; i163: 163deg; i164: 164deg; i165: 165deg; i166: 166deg; i167: 167deg; i168: 168deg; i169: 169deg; i170: 170deg; i171: 171deg; i172: 172deg; i173: 173deg; i174: 174deg; i175: 175deg; i176: 176deg; i177: 177deg; i178: 178deg; i179: 179deg; i180: 180deg; i181: 181deg; i182: 182deg; i183: 183deg; i184: 184deg; i185: 185deg; i186: 186deg; i187: 187deg; i188: 188deg; i189: 189deg; i190: 190deg; i191: 191deg; i192: 192deg; i193: 193deg; i194: 194deg; i195: 195deg; i196: 196deg; i197: 197deg; i198: 198deg; i199: 199deg; i200: 200deg; i201: 201deg; i202: 202deg; i203: 203deg; i204: 204deg; i205: 205deg; i206: 206deg; i207: 207deg; i208: 208deg; i209: 209deg; i210: 210deg; i211: 211deg; i212: 212deg; i213: 213deg; i214: 214deg; i215: 215deg; i216: 216deg; i217: 217deg; i218: 218deg; i219: 219deg; i220: 220deg; i221: 221deg; i222: 222deg; i223: 223deg; i224: 224deg; i225: 225deg; i226: 226deg; i227: 227deg; i228: 228deg; i229: 229deg; i230: 230deg; i231: 231deg; i232: 232deg; i233: 233deg; i234: 234deg; i235: 235deg; i236: 236deg; i237: 237deg; i238: 238deg; i239: 239deg; i240: 240deg; i241: 241deg; i242: 242deg; i243: 243deg; i244: 244deg; i245: 245deg; i246: 246deg; i247: 247deg; i248: 248deg; i249: 249deg; i250: 250deg; i251: 251deg; i252: 252deg; i253: 253deg; i254: 254deg; i255: 255deg; i256: 256deg; i257: 257deg; i258: 258deg; i259: 259deg; i260: 260deg; i261: 261deg; i262: 262deg; i263: 263deg; i264: 264deg; i265: 265deg; i266: 266deg; i267: 267deg; i268: 268deg; i269: 269deg; i270: 270deg; i271: 271deg; i272: 272deg; i273: 273deg; i274: 274deg; i275: 275deg; i276: 276deg; i277: 277deg; i278: 278deg; i279: 279deg; i280: 280deg; i281: 281deg; i282: 282deg; i283: 283deg; i284: 284deg; i285: 285deg; i286: 286deg; i287: 287deg; i288: 288deg; i289: 289deg; i290: 290deg; i291: 291deg; i292: 292deg; i293: 293deg; i294: 294deg; i295: 295deg; i296: 296deg; i297: 297deg; i298: 298deg; i299: 299deg; i300: 300deg; i301: 301deg; i302: 302deg; i303: 303deg; i304: 304deg; i305: 305deg; i306: 306deg; i307: 307deg; i308: 308deg; i309: 309deg; i310: 310deg; i311: 311deg; i312: 312deg; i313: 313deg; i314: 314deg; i315: 315deg; i316: 316deg; i317: 317deg; i318: 318deg; i319: 319deg; i320: 320deg; i321: 321deg; i322: 322deg; i323: 323deg; i324: 324deg; i325: 325deg; i326: 326deg; i327: 327deg; i328: 328deg; i329: 329deg; i330: 330deg; i331: 331deg; i332: 332deg; i333: 333deg; i334: 334deg; i335: 335deg; i336: 336deg; i337: 337deg; i338: 338deg; i339: 339deg; i340: 340deg; i341: 341deg; i342: 342deg; i343: 343deg; i344: 344deg; i345: 345deg; i346: 346deg; i347: 347deg; i348: 348deg; i349: 349deg; i350: 350deg; i351: 351deg; i352: 352deg; i353: 353deg; i354: 354deg; i355: 355deg; i356: 356deg; i357: 357deg; i358: 358deg; i359: 359deg; i360: 0deg; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1133/000077500000000000000000000000001355712145100240375ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1133/normal.hrx000066400000000000000000000014371355712145100260570ustar00rootroot00000000000000<===> input.scss @function foo($map) { @return $map; } a { $map: foo((this: is, my: map)); @each $k, $v in $map { #{$k}: $v; } } b { $map: call("foo", (this: is, my: map)); @each $k, $v in $map { #{$k}: $v; } } <===> output.css a { this: is; my: map; } b { this: is; my: map; } <===> warning DEPRECATION WARNING: Passing a string to call() is deprecated and will be illegal in Sass 4.0. Use call(function-reference(foo)) instead. <===> warning-dart-sass DEPRECATION WARNING: Passing a string to call() is deprecated and will be illegal in Dart Sass 2.0.0. Use call(get-function("foo")) instead. , 13 | $map: call("foo", (this: is, my: map)); | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 13:11 root stylesheet sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1133/vararg.hrx000066400000000000000000000014501355712145100260440ustar00rootroot00000000000000<===> input.scss @function foo($this, $my) { @return (this: $this, my: $my); } a { $map: foo((this: is, my: map)...); @each $k, $v in $map { #{$k}: $v; } } b { $map: call("foo", (this: is, my: map)...); @each $k, $v in $map { #{$k}: $v; } } <===> output.css a { this: is; my: map; } b { this: is; my: map; } <===> warning DEPRECATION WARNING: Passing a string to call() is deprecated and will be illegal in Sass 4.0. Use call(function-reference(foo)) instead. <===> warning-dart-sass DEPRECATION WARNING: Passing a string to call() is deprecated and will be illegal in Dart Sass 2.0.0. Use call(get-function("foo")) instead. , 13 | $map: call("foo", (this: is, my: map)...); | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 13:9 root stylesheet sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1153.hrx000066400000000000000000000002001355712145100245540ustar00rootroot00000000000000<===> input.scss /* precision: 0 */ $foo: 123px; foo { bar: $foo; } <===> output.css /* precision: 0 */ foo { bar: 123px; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1162.hrx000066400000000000000000000001311355712145100245570ustar00rootroot00000000000000<===> input.scss div { content: #{0/0} a; } <===> output.css div { content: 0/0 a; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1163.hrx000066400000000000000000000001771355712145100245720ustar00rootroot00000000000000<===> input.scss div { content: (((92px * 12) / 13px) * 1em) + 22em; } <===> output.css div { content: 106.9230769231em; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1167.hrx000066400000000000000000000001141355712145100245650ustar00rootroot00000000000000<===> input.scss a { b: 3s + 101ms; } <===> output.css a { b: 3.101s; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1168.hrx000066400000000000000000000002601355712145100245700ustar00rootroot00000000000000<===> input.scss $namespace: 'test-'; $column: 1; .#{$namespace}#{$column}\/#{$column} { width: 100% !important; } <===> output.css .test-1\/1 { width: 100% !important; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1169/000077500000000000000000000000001355712145100240505ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1169/error/000077500000000000000000000000001355712145100252015ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1169/error/color.hrx000066400000000000000000000007651355712145100270520ustar00rootroot00000000000000<===> input.scss $map: ( red: 'foo', red: 'bar', ); .foo { content: inspect($map); } <===> error Error: Duplicate key #ff0000 in map (red: "foo", red: "bar"). on line 1 of input.scss Use --trace for backtrace. <===> error-dart-sass Error: Duplicate key. , 3 | red: 'bar', | ^^^ ' input.scss 3:3 root stylesheet <===> error-libsass Error: Duplicate key #ff0000 in map (#ff0000: "foo", #ff0000: "bar"). on line 1 of input.scss Use --trace for backtrace. sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1169/error/functioncall.hrx000066400000000000000000000007011355712145100304030ustar00rootroot00000000000000<===> input.scss @function fncall($void) { @return "key"; } $map: ( fncall(1+2): 'foo', fncall(1+2): 'bar', ); .foo { content: inspect($map); } <===> error Error: Duplicate key "key" in map (fncall(1 + 2): "foo", fncall(1 + 2): "bar"). on line 5 of input.scss Use --trace for backtrace. <===> error-dart-sass Error: Duplicate key. , 7 | fncall(1+2): 'bar', | ^^^^^^^^^^^ ' input.scss 7:3 root stylesheet sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1169/error/interpolate.hrx000066400000000000000000000005771355712145100302630ustar00rootroot00000000000000<===> input.scss $map: ( 'red': 'bar', #{re}#{'d'}: 'baz', ); .foo { content: inspect($map); } <===> error Error: Duplicate key "red" in map ("red": "bar", #{re}#{"d"}: "baz"). on line 1 of input.scss Use --trace for backtrace. <===> error-dart-sass Error: Duplicate key. , 3 | #{re}#{'d'}: 'baz', | ^^^^^^^^^^^ ' input.scss 3:3 root stylesheet sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1169/error/simple.hrx000066400000000000000000000002451355712145100272160ustar00rootroot00000000000000<===> input.scss $map: ( red: 'bar', #{red}: 'baz', ); .foo { content: inspect($map); } <===> output.css .foo { content: (red: "bar", red: "baz"); } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1169/functioncall.hrx000066400000000000000000000003701355712145100272540ustar00rootroot00000000000000<===> input.scss $count: 0; @function counter() { $count: $count + 1 !global; @return $count; } $map: ( counter(): 'bar', counter(): 'foo', ); .foo { content: inspect($map); } <===> output.css .foo { content: (1: "bar", 2: "foo"); } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1169/interpolated.hrx000066400000000000000000000016301355712145100272650ustar00rootroot00000000000000<===> input.scss $map1: ( red: 'literal', transparent: 'literal' ); $map2: ( 'red': 'quoted', transparent: 'quoted' ); $map3: ( #{re}#{d}: 'interpolated', #{trans}#{parent}: 'quoted' ); foo { content: inspect($map1); content: inspect($map2); content: inspect($map3); } $merge1: map-merge($map1, $map2); $merge2: map-merge($map1, $map3); $merge3: map-merge($map2, $map3); bar { content: inspect($merge1); content: inspect($merge2); content: inspect($merge3); } <===> output.css foo { content: (red: "literal", transparent: "literal"); content: ("red": "quoted", transparent: "quoted"); content: (red: "interpolated", transparent: "quoted"); } bar { content: (red: "literal", transparent: "quoted", "red": "quoted"); content: (red: "literal", transparent: "literal", red: "interpolated", transparent: "quoted"); content: ("red": "interpolated", transparent: "quoted", transparent: "quoted"); } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1169/simple.hrx000066400000000000000000000004341355712145100260650ustar00rootroot00000000000000<===> input.scss $map1: ( red: 'bar', 'red': 'foo', ); $map2: ( red: 'bar', 'red': #{red}, ); .foo { content: inspect($map1); content: inspect($map2); } <===> output.css .foo { content: (red: "bar", "red": "foo"); content: (red: "bar", "red": red); } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1170/000077500000000000000000000000001355712145100240405ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1170/eval.hrx000066400000000000000000000002011355712145100255030ustar00rootroot00000000000000<===> input.scss el { @if ((& + '') == 'el') { content: "It works!"; } } <===> output.css el { content: "It works!"; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1170/parse.hrx000066400000000000000000000001771355712145100257020ustar00rootroot00000000000000<===> input.scss el { @if (& + '' == 'el') { content: "It works!"; } } <===> output.css el { content: "It works!"; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1171.hrx000066400000000000000000000005461355712145100245710ustar00rootroot00000000000000<===> input.scss @function foo($initial, $args...) { $args: append($args, 3); @return bar($initial, $args...); } @function bar($args...) { @return length($args); } @function baz($initial, $args...) { $args: append($args, 3); @return nth($args, 1); } .test { foo: foo(1, 2); baz: baz(1, 2); } <===> output.css .test { foo: 3; baz: 2; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1178.hrx000066400000000000000000000004031355712145100245700ustar00rootroot00000000000000<===> input.scss $foo: ((4, 5), 6, (7 8) 9); bar { a: $foo; f: 1 2 3 + $foo; b: 1, 2, 3 + (2 ($foo)); x: inspect($foo); } <===> output.css bar { a: 4, 5, 6, 7 8 9; f: 1 2 34, 5, 6, 7 8 9; b: 1, 2, 32 4, 5, 6, 7 8 9; x: (4, 5), 6, (7 8) 9; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1187.hrx000066400000000000000000000005431355712145100245750ustar00rootroot00000000000000<===> input.scss $a: 'foo'; $b: 'foo'; $map: ( $a: 1, $b: 2 ); .foo { content: $a == $b; content: inspect($map); } <===> error Error: Duplicate key "foo" in map ($a: 1, $b: 2). on line 3 of input.scss Use --trace for backtrace. <===> error-dart-sass Error: Duplicate key. , 5 | $b: 2 | ^^ ' input.scss 5:3 root stylesheet sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1188.hrx000066400000000000000000000012211355712145100245700ustar00rootroot00000000000000<===> input.scss $columns: 4; $context: 120px; $name-multiplicator: 2; foo { *width: expression((this.parentNode.clientWidth/#{$context}*#{($columns / $name-multiplicator)} - parseInt(this.currentStyle['paddingLeft']) - parseInt(this.currentStyle['paddingRight'])) + 'px'); } <===> output.css foo { *width: expression((this.parentNode.clientWidth/120px*2 - parseInt(this.currentStyle['paddingLeft']) - parseInt(this.currentStyle['paddingRight'])) + 'px'); } <===> output-dart-sass.css foo { *width: expression((this.parentNode.clientWidth/120px*2 - parseInt(this.currentStyle["paddingLeft"]) - parseInt(this.currentStyle["paddingRight"])) + "px"); } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1192/000077500000000000000000000000001355712145100240445ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1192/input.scss000066400000000000000000000011451355712145100261010ustar00rootroot00000000000000$keyword: foobar; @mixin test($arglist...){ $map: keywords($arglist); /*#{inspect($map)}*/ /*#{inspect($arglist)}*/ } // Works @include test(foo, bar, baz); // Ruby Sass: /*foo, bar, baz*/ // LibSass : /*foo, bar, baz*/ // LibSass does not inspect as () @include test; // Ruby Sass: /*()*/ // LibSass : /**/ // Ruby Sass throws error – LibSass shows keywords in arglist // (keywords should not show in arglist – see below) @include test(foo, bar, baz, $keyword: keyword); // Ruby Sass: "Mixin test1 doesn't have an argument named $keyword." // LibSass : /*foo, bar, baz, $keyword: keyword*/sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1192/output.css000066400000000000000000000001201355712145100261070ustar00rootroot00000000000000/*()*/ /*foo, bar, baz*/ /*()*/ /*()*/ /*(keyword: keyword)*/ /*foo, bar, baz*/ sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1206.hrx000066400000000000000000000002041355712145100245570ustar00rootroot00000000000000<===> input.scss foo { bar: #{0/0}; bar: #{0/1}; bar: #{1/2}; } <===> output.css foo { bar: 0/0; bar: 0/1; bar: 1/2; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1207.hrx000066400000000000000000000003631355712145100245660ustar00rootroot00000000000000<===> input.scss @function test($pos) { @return test-#{$pos}; } .foo { content: test(str-slice('scale-0', 7)); // Nope content: test-#{str-slice('scale-0', 7)}; // Yep } <===> output.css .foo { content: test-0; content: test-0; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1208.hrx000066400000000000000000000001731355712145100245660ustar00rootroot00000000000000<===> input.scss foo { &.bar, /* */ &.baz { color: red; } } <===> output.css foo.bar, foo.baz { color: red; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1210/000077500000000000000000000000001355712145100240335ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1210/ampersand.hrx000066400000000000000000000014041355712145100265270ustar00rootroot00000000000000<===> input.scss foo { @at-root { & { color: blue; } &--modifier { color: red; } } } foo { color: blue; @at-root { & bar { color: red; } } } foo { color: blue; @at-root { bar & { color: red; } } } foo { color: blue; @at-root { bar { & baz { color: red; } } } } foo { @at-root bar & { color: red; & baz { color: blue; } } } <===> output.css foo { color: blue; } foo--modifier { color: red; } foo { color: blue; } foo bar { color: red; } foo { color: blue; } bar foo { color: red; } foo { color: blue; } bar baz { color: red; } bar foo { color: red; } bar foo baz { color: blue; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1210/basic.hrx000066400000000000000000000010361355712145100256370ustar00rootroot00000000000000<===> input.scss foo { color: blue; @at-root { bar { color: red; } } } foo { color: blue; @at-root bar { color: red; } } foo { color: blue; @at-root bar { baz { color: red; } } } foo { color: blue; @at-root { bar { baz { color: red; } } } } <===> output.css foo { color: blue; } bar { color: red; } foo { color: blue; } bar { color: red; } foo { color: blue; } bar baz { color: red; } foo { color: blue; } bar baz { color: red; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1210/extend.hrx000066400000000000000000000010041355712145100260400ustar00rootroot00000000000000<===> input.scss foo { @at-root { %placeholder { color: red; } } baz { @at-root { %other-placeholder { color: blue; } } } %ampersand-placeholder & { color: green; } @at-root { qux { @extend %ampersand-placeholder; } } } bar { @extend %placeholder; } baz { @extend %other-placeholder; } bam { @extend %ampersand-placeholder; } <===> output.css bar { color: red; } baz { color: blue; } bam foo, qux foo { color: green; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1210/keyframes.hrx000066400000000000000000000006401355712145100265440ustar00rootroot00000000000000<===> input.scss foo { color: red; @at-root { @keyframes animation { to { color: red; } } } bar { color: blue; @at-root { @keyframes other-animation { to { color: blue; } } } } } <===> output.css foo { color: red; } @keyframes animation { to { color: red; } } foo bar { color: blue; } @keyframes other-animation { to { color: blue; } } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1210/media.hrx000066400000000000000000000004351355712145100256370ustar00rootroot00000000000000<===> input.scss foo { @at-root { @media print { bar { color: red; } } baz { @media speech { color: blue; } } } } <===> output.css @media print { bar { color: red; } } @media speech { baz { color: blue; } } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1210/nested.hrx000066400000000000000000000006211355712145100260370ustar00rootroot00000000000000<===> input.scss foo { color: blue; baz { color: purple; @at-root { bar { color: red; } } } } foo { color: blue; baz { color: purple; @at-root bar { color: red; } } } <===> output.css foo { color: blue; } foo baz { color: purple; } bar { color: red; } foo { color: blue; } foo baz { color: purple; } bar { color: red; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1210/with_without.hrx000066400000000000000000000144461355712145100273250ustar00rootroot00000000000000<===> input.scss // Unquoted @media (min-width: 1337px) { .foo { content: baz; } @at-root (without: media) { .foo { content: bar; } } } @media (min-width: 1337px) { .foo { content: baz; } @at-root (without: all) { .foo { content: bar; } } } @supports (color: red) { .foo { content: baz; } @at-root (without: supports) { .foo { content: bar; } } } @supports (color: red) { .foo { content: baz; } @at-root (without: all) { .foo { content: bar; } } } @media (min-width: 1337px) { @supports (color: red) { @at-root { .foo { content: bar; } } } } @media (min-width: 1337px) { @supports (color: red) { @at-root (without: all) { .foo { content: bar; } } } } @media (min-width: 1337px) { @supports (color: red) { @at-root (without: media supports) { .foo { content: bar; } } } } @media (min-width: 1337px) { @supports (color: red) { @at-root (without: media) { .foo { content: bar; } } } } @media (min-width: 1337px) { @supports (color: red) { @at-root (without: supports) { .foo { content: bar; } } } } @media (min-width: 1337px) { @supports (color: red) { @at-root { .foo { content: bar; } } } } @media (min-width: 1337px) { @supports (color: red) { @at-root (with: all) { .foo { content: bar; } } } } @media (min-width: 1337px) { @supports (color: red) { @at-root (with: media supports) { .foo { content: bar; } } } } @media (min-width: 1337px) { @supports (color: red) { @at-root (with: media) { .foo { content: bar; } } } } @media (min-width: 1337px) { @supports (color: red) { @at-root (with: supports) { .foo { content: bar; } } } } // Quoted @media (min-width: 1337px) { .foo { content: baz; } @at-root (without: "media") { .foo { content: bar; } } } @media (min-width: 1337px) { .foo { content: baz; } @at-root (without: "all") { .foo { content: bar; } } } @supports (color: red) { .foo { content: baz; } @at-root (without: "supports") { .foo { content: bar; } } } @supports (color: red) { .foo { content: baz; } @at-root (without: "all") { .foo { content: bar; } } } @media (min-width: 1337px) { @supports (color: red) { @at-root (without: "all") { .foo { content: bar; } } } } @media (min-width: 1337px) { @supports (color: red) { @at-root (without: "media" "supports") { .foo { content: bar; } } } } @media (min-width: 1337px) { @supports (color: red) { @at-root (without: "media" supports) { .foo { content: bar; } } } } @media (min-width: 1337px) { @supports (color: red) { @at-root (without: media "supports") { .foo { content: bar; } } } } @media (min-width: 1337px) { @supports (color: red) { @at-root (without: "media") { .foo { content: bar; } } } } @media (min-width: 1337px) { @supports (color: red) { @at-root (without: "supports") { .foo { content: bar; } } } } @media (min-width: 1337px) { @supports (color: red) { @at-root (with: "all") { .foo { content: bar; } } } } @media (min-width: 1337px) { @supports (color: red) { @at-root (with: "media" "supports") { .foo { content: bar; } } } } @media (min-width: 1337px) { @supports (color: red) { @at-root (with: "media" supports) { .foo { content: bar; } } } } @media (min-width: 1337px) { @supports (color: red) { @at-root (with: media "supports") { .foo { content: bar; } } } } @media (min-width: 1337px) { @supports (color: red) { @at-root (with: "media") { .foo { content: bar; } } } } @media (min-width: 1337px) { @supports (color: red) { @at-root (with: "supports") { .foo { content: bar; } } } } <===> output.css @media (min-width: 1337px) { .foo { content: baz; } } .foo { content: bar; } @media (min-width: 1337px) { .foo { content: baz; } } .foo { content: bar; } @supports (color: red) { .foo { content: baz; } } .foo { content: bar; } @supports (color: red) { .foo { content: baz; } } .foo { content: bar; } @media (min-width: 1337px) { @supports (color: red) { .foo { content: bar; } } } .foo { content: bar; } .foo { content: bar; } @supports (color: red) { .foo { content: bar; } } @media (min-width: 1337px) { .foo { content: bar; } } @media (min-width: 1337px) { @supports (color: red) { .foo { content: bar; } } } @media (min-width: 1337px) { @supports (color: red) { .foo { content: bar; } } } @media (min-width: 1337px) { @supports (color: red) { .foo { content: bar; } } } @media (min-width: 1337px) { .foo { content: bar; } } @supports (color: red) { .foo { content: bar; } } @media (min-width: 1337px) { .foo { content: baz; } } .foo { content: bar; } @media (min-width: 1337px) { .foo { content: baz; } } .foo { content: bar; } @supports (color: red) { .foo { content: baz; } } .foo { content: bar; } @supports (color: red) { .foo { content: baz; } } .foo { content: bar; } .foo { content: bar; } .foo { content: bar; } .foo { content: bar; } .foo { content: bar; } @supports (color: red) { .foo { content: bar; } } @media (min-width: 1337px) { .foo { content: bar; } } @media (min-width: 1337px) { @supports (color: red) { .foo { content: bar; } } } @media (min-width: 1337px) { @supports (color: red) { .foo { content: bar; } } } @media (min-width: 1337px) { @supports (color: red) { .foo { content: bar; } } } @media (min-width: 1337px) { @supports (color: red) { .foo { content: bar; } } } @media (min-width: 1337px) { .foo { content: bar; } } @supports (color: red) { .foo { content: bar; } } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1214.hrx000066400000000000000000000007241355712145100245650ustar00rootroot00000000000000<===> input.scss @mixin keyframes($animation-name) { @keyframes $animation-name { @content; } } @include keyframes(bounce) { 0%, 20%, 50%, 80%, 100% {transform: translateY(0);} 40% {transform: translateY(-30px);} 60% {transform: translateY(-15px);} } <===> output.css @keyframes $animation-name { 0%, 20%, 50%, 80%, 100% { transform: translateY(0); } 40% { transform: translateY(-30px); } 60% { transform: translateY(-15px); } } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1215.hrx000066400000000000000000000014601355712145100245640ustar00rootroot00000000000000<===> input.scss foo { -quotes: 'this-string' == 'this-string'; -quotes: this-string == 'this-string'; -quotes: 'this-string' == "this-string"; -quotes: 'this-string' == '"this-string"'; -quotes: '"this-string"' == "'this-string'"; foo: this-string; foo: 'this-string'; foo: "this-string"; foo: '"this-string"'; foo: "'this-string'"; } <===> output.css foo { -quotes: true; -quotes: true; -quotes: true; -quotes: false; -quotes: false; foo: this-string; foo: 'this-string'; foo: "this-string"; foo: '"this-string"'; foo: "'this-string'"; } <===> output-dart-sass.css foo { -quotes: true; -quotes: true; -quotes: true; -quotes: false; -quotes: false; foo: this-string; foo: "this-string"; foo: "this-string"; foo: '"this-string"'; foo: "'this-string'"; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1216.hrx000066400000000000000000000003401355712145100245610ustar00rootroot00000000000000<===> input.scss a { width: 4.0px; height: 3.00px; opacity: 1.0; } <===> output.css a { width: 4.0px; height: 3.00px; opacity: 1.0; } <===> output-dart-sass.css a { width: 4px; height: 3px; opacity: 1; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1218.hrx000066400000000000000000000005241355712145100245670ustar00rootroot00000000000000<===> input.scss $foo: 20px; @media screen and ("min-width:#{$foo}") { .bar { width: 12px; } } @media screen and ("min-width:0") { .bar { width: 12px; } } <===> output.css @media screen and (min-width:20px) { .bar { width: 12px; } } @media screen and (min-width:0) { .bar { width: 12px; } } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1224.hrx000066400000000000000000000003471355712145100245670ustar00rootroot00000000000000<===> options.yml --- :todo: - sass/libsass#1224 <===> input.scss @media all and (max-width: 768px) { @media only screen { a { b: c; } } } <===> output.css @media only screen and (max-width: 768px) { a { b: c; } } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1230.hrx000066400000000000000000000002561355712145100245630ustar00rootroot00000000000000<===> input.scss div { transition-property: border-color, box-shadow, color; } <===> output.css div { transition-property: border-color, box-shadow, color; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1231/000077500000000000000000000000001355712145100240365ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1231/input.scss000066400000000000000000000000561355712145100260730ustar00rootroot00000000000000div::before { content: #{"\""+\e600+"\""}; }sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1231/options.yml000066400000000000000000000000371355712145100262540ustar00rootroot00000000000000--- :todo: - sass/libsass#2700 sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1231/output.css000066400000000000000000000000641355712145100261100ustar00rootroot00000000000000@charset "UTF-8"; div::before { content: ""; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1233.hrx000066400000000000000000000003541355712145100245650ustar00rootroot00000000000000<===> input.scss @-moz-keyframes animatetoptop /* Firefox */ line 429 { from {width:0%} to {width:100%} } <===> output.css @-moz-keyframes animatetoptop /* Firefox */ line 429 { from { width: 0%; } to { width: 100%; } } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1240.hrx000066400000000000000000000006431355712145100245640ustar00rootroot00000000000000<===> input.scss $var: 1; $list: 2, 3; $new-list: append($var, $list); $nested-list: $var $list; @debug($var); @debug($list); @debug($new-list); @debug($nested-list); div { a: $var; a: $list; a: $new-list; a: $nested-list; } <===> output.css div { a: 1; a: 2, 3; a: 1 2, 3; a: 1 2, 3; } <===> warning input.scss:5 DEBUG: 1 input.scss:6 DEBUG: 2, 3 input.scss:7 DEBUG: 1 (2, 3) input.scss:8 DEBUG: 1 (2, 3) sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1243/000077500000000000000000000000001355712145100240415ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1243/at-rule.hrx000066400000000000000000000000661355712145100261370ustar00rootroot00000000000000<===> input.scss @foo bar <===> output.css @foo bar; sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1243/comma-list.hrx000066400000000000000000000000541355712145100266300ustar00rootroot00000000000000<===> input.scss $a: 1, 2 <===> output.css sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1243/debug.hrx000066400000000000000000000001271355712145100256520ustar00rootroot00000000000000<===> input.scss @debug("foo") <===> output.css <===> warning input.scss:1 DEBUG: foo sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1243/import.hrx000066400000000000000000000001161355712145100260740ustar00rootroot00000000000000<===> input.scss @import "http://foo" <===> output.css @import "http://foo"; sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1243/include.hrx000066400000000000000000000001351355712145100262060ustar00rootroot00000000000000<===> input.scss @mixin foo() { a { b: c; } } @include foo <===> output.css a { b: c; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1243/space-list.hrx000066400000000000000000000000531355712145100266260ustar00rootroot00000000000000<===> input.scss $a: 1 2 <===> output.css sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1243/warning.hrx000066400000000000000000000001021355712145100262220ustar00rootroot00000000000000<===> input.scss @warning "foo" <===> output.css @warning "foo"; sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1248.hrx000066400000000000000000000002121355712145100245640ustar00rootroot00000000000000<===> input.scss .a.b .c { top: 0; } .a { @extend .b; } .a .d { @extend .c; } <===> output.css .a.b .c, .a .c, .a .d { top: 0; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1251.hrx000066400000000000000000000003741355712145100245670ustar00rootroot00000000000000<===> input.scss .foo { yellow: yellow; red: red; blue: blue; white: white; black: black; eval: if(red, yellow, null); } <===> output.css .foo { yellow: yellow; red: red; blue: blue; white: white; black: black; eval: yellow; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1253.hrx000066400000000000000000000002371355712145100245670ustar00rootroot00000000000000<===> input.scss $foo: bar; @keyframes $foo { from { a: b } to { a: c } } <===> output.css @keyframes $foo { from { a: b; } to { a: c; } } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1255.hrx000066400000000000000000000004701355712145100245700ustar00rootroot00000000000000<===> input.scss @function double($value) { @return $value * 2; } @mixin dummy-bug($args...) { @for $i from 1 through length($args) { $args: set-nth($args, $i, double(nth($args, $i))); } content: $args; } .foo { @include dummy-bug(1, 2, 3, 4); } <===> output.css .foo { content: 2, 4, 6, 8; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1257.hrx000066400000000000000000000002201355712145100245630ustar00rootroot00000000000000<===> input.scss .foo { color: invert(red...); } <===> output.css .foo { color: cyan; } <===> output-dart-sass.css .foo { color: aqua; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1258.hrx000066400000000000000000000013411355712145100245710ustar00rootroot00000000000000<===> options.yml --- :ignore_for: - dart-sass <===> input.scss $list: '(-webkit-min-device-pixel-ratio: 2)', '(min-resolution: 192dpi)'; $string: '(-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi)'; .foo { // I should not unquote a list, I know. But still. content: unquote($list); content: unquote($string); } <===> output.css .foo { content: "(-webkit-min-device-pixel-ratio: 2)", "(min-resolution: 192dpi)"; content: (-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi); } <===> warning DEPRECATION WARNING: Passing "(-webkit-min-device-pixel-ratio: 2)", "(min-resolution: 192dpi)", a non-string value, to unquote() will be an error in future versions of Sass. on line 6 of input.scss sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1259.hrx000066400000000000000000000003251355712145100245730ustar00rootroot00000000000000<===> input.scss @mixin dummy($a, $b, $c, $d, $e: true) { content: $a $b $c $d $e; } .foo { @include dummy( ('a', 'b', 'c', 'e')..., $e: false ); } <===> output.css .foo { content: "a" "b" "c" "e" false; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1260.hrx000066400000000000000000000003161355712145100245630ustar00rootroot00000000000000<===> input.scss $EQ-Selectors: (); .el { $EQ-Selectors: append($EQ-Selectors, &, 'comma') !global; } html:before { content: "#{$EQ-Selectors}"; } <===> output.css html:before { content: ".el"; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1263.hrx000066400000000000000000000004201355712145100245620ustar00rootroot00000000000000<===> options.yml --- :todo: - sass/libsass#2721 <===> input.scss foo { @ap#{pl}y; @apply(--bar); @apply ( --bar ); @ap#{pl}y ( --bar , --foo ) ; } <===> output.css foo { @apply; @apply (--bar); @apply ( --bar ); @apply ( --bar , --foo ); } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1266/000077500000000000000000000000001355712145100240465ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1266/max.hrx000066400000000000000000000013741355712145100253630ustar00rootroot00000000000000<===> input.scss $foo: 1 2 3 blah 4; foo { bar: call(max, $foo...); } <===> error DEPRECATION WARNING: Passing a string to call() is deprecated and will be illegal in Sass 4.0. Use call(get-function("max")) instead. Error: "blah" is not a number for `max' on line 3 of spec/libsass-closed-issues/issue_1266/max/input.scss Use --trace for backtrace. <===> error-dart-sass DEPRECATION WARNING: Passing a string to call() is deprecated and will be illegal in Dart Sass 2.0.0. Use call(get-function(max)) instead. , 3 | bar: call(max, $foo...); | ^^^^^^^^^^^^^^^^^^ ' input.scss 3:8 root stylesheet Error: blah is not a number. , 3 | bar: call(max, $foo...); | ^^^^^^^^^^^^^^^^^^ ' input.scss 3:8 root stylesheet sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1266/min.hrx000066400000000000000000000013741355712145100253610ustar00rootroot00000000000000<===> input.scss $foo: 1 2 3 blah 4; foo { bar: call(min, $foo...); } <===> error DEPRECATION WARNING: Passing a string to call() is deprecated and will be illegal in Sass 4.0. Use call(get-function("min")) instead. Error: "blah" is not a number for `min' on line 3 of spec/libsass-closed-issues/issue_1266/min/input.scss Use --trace for backtrace. <===> error-dart-sass DEPRECATION WARNING: Passing a string to call() is deprecated and will be illegal in Dart Sass 2.0.0. Use call(get-function(min)) instead. , 3 | bar: call(min, $foo...); | ^^^^^^^^^^^^^^^^^^ ' input.scss 3:8 root stylesheet Error: blah is not a number. , 3 | bar: call(min, $foo...); | ^^^^^^^^^^^^^^^^^^ ' input.scss 3:8 root stylesheet sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1269.hrx000066400000000000000000000003701355712145100245740ustar00rootroot00000000000000<===> input.scss @function push($list, $items...) { @return join($list, $items, $separator: auto); } .test { $list: push(1 2 3, 4, 5); list: inspect($list); value: nth($list, 4); } <===> output.css .test { list: 1 2 3 4 5; value: 4; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1271.hrx000066400000000000000000000005241355712145100245660ustar00rootroot00000000000000<===> input.scss $character-code: f102; test { /* Expected: "\f102" */ /* Sass 3.4 */ content: unquote("\"\\#{$character-code}\""); /* Sass 3.3 */ content: str-slice("\x", 1, 1) + $character-code; } <===> output.css test { /* Expected: "\f102" */ /* Sass 3.4 */ content: "\f102"; /* Sass 3.3 */ content: "xf102"; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1273.hrx000066400000000000000000000001741355712145100245710ustar00rootroot00000000000000<===> input.scss test { src: url(test.eot#{if(true, '?#{42}', '')}); } <===> output.css test { src: url(test.eot?42); } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1277.hrx000066400000000000000000000002061355712145100245710ustar00rootroot00000000000000<===> input.scss $foo: foo; $bar: bar; .foo { foo: foo #{$foo}, bar #{$bar}; } <===> output.css .foo { foo: foo foo, bar bar; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1279.hrx000066400000000000000000000005631355712145100246010ustar00rootroot00000000000000<===> input.scss @function noop($string) { @return $string; } .foo { upper: to-upper-case('f') + str-slice('foo', 2); lower: to-lower-case('f') + str-slice('foo', 2); user-upper: to-upper-case('f') + noop('oo'); user-lower: to-lower-case('f') + noop('oo'); } <===> output.css .foo { upper: "Foo"; lower: "foo"; user-upper: "Foo"; user-lower: "foo"; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1281.hrx000066400000000000000000000004161355712145100245670ustar00rootroot00000000000000<===> input.scss $quoted: "green"; $unquoted: green; .test { string: type-of($quoted); color: type-of($unquoted); string: type-of("green"); color: type-of(green); } <===> output.css .test { string: string; color: color; string: string; color: color; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1283.hrx000066400000000000000000000002161355712145100245670ustar00rootroot00000000000000<===> input.scss $map: map-merge((1 2: 3), (2 1: 3)); .test { test: inspect($map); } <===> output.css .test { test: (1 2: 3, 2 1: 3); } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1285.hrx000066400000000000000000000005411355712145100245720ustar00rootroot00000000000000<===> input.scss .container { @for $i from 1 through 3 { @at-root .box-#{$i} { color: darken(red,($i * 5)); } } // Control @at-root .outside-child { background-color: blue; } } <===> output.css .box-1 { color: #e60000; } .box-2 { color: #cc0000; } .box-3 { color: #b30000; } .outside-child { background-color: blue; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1291.hrx000066400000000000000000000016441355712145100245740ustar00rootroot00000000000000<===> options.yml --- :ignore_for: - dart-sass <===> input.scss @mixin spec1($decimal) { $decimal: unquote($decimal) * -1; value: $decimal; } @mixin spec2($decimal) { $decimal: -1 * unquote($decimal); value: $decimal; } @mixin spec3($decimal) { value: #{$decimal * -1}; } .my-element { @include spec1(3); @include spec1(-3); @include spec2(5); @include spec2(-5); @include spec3(7); @include spec3(-7); } <===> output.css .my-element { value: -3; value: 3; value: -5; value: 5; value: -7; value: 7; } <===> warning DEPRECATION WARNING: Passing 3, a non-string value, to unquote() will be an error in future versions of Sass. on line 2 of input.scss, in `spec1' from line 16 of input.scss DEPRECATION WARNING: Passing 5, a non-string value, to unquote() will be an error in future versions of Sass. on line 7 of input.scss, in `spec2' from line 18 of input.scss sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1294.hrx000066400000000000000000000004661355712145100246000ustar00rootroot00000000000000<===> input.scss /*------------------------------------*\ #BUTTONS \*------------------------------------*/ foo { display: inline-block; /* [1] */ } <===> output.css /*------------------------------------*\ #BUTTONS \*------------------------------------*/ foo { display: inline-block; /* [1] */ } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1295.hrx000066400000000000000000000001751355712145100245760ustar00rootroot00000000000000<===> input.scss foo { $nothing: null; foo: "#{$nothing}' %' '#{$nothing}"; } <===> output.css foo { foo: "' %' '"; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1297.hrx000066400000000000000000000002161355712145100245740ustar00rootroot00000000000000<===> input.scss .test .testa { @at-root #{"%foo"} { color: red; } @extend %foo; } <===> output.css .test .testa { color: red; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1298.hrx000066400000000000000000000004711355712145100246000ustar00rootroot00000000000000<===> input.scss @import url(//fonts.googleapis.com/css?family=Roboto:400,500,700,400italic); html { font-family: roboto, arial, helvetica, sans-serif; } <===> output.css @import url(//fonts.googleapis.com/css?family=Roboto:400,500,700,400italic); html { font-family: roboto, arial, helvetica, sans-serif; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1301.hrx000066400000000000000000000001731355712145100245600ustar00rootroot00000000000000<===> input.scss $name: "my-class"; .-#{$name} { content: "test"; } <===> output.css .-my-class { content: "test"; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1303.hrx000066400000000000000000000002031355712145100245540ustar00rootroot00000000000000<===> input.scss .simple { a: selector-replace('foo.bar', 'foo', 'foo[baz]'); } <===> output.css .simple { a: foo.bar[baz]; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1304.hrx000066400000000000000000000003301355712145100245560ustar00rootroot00000000000000<===> input.scss foo { a:&; > bar { b:&; > baz { c:&; } } } <===> output.css foo { a: foo; } foo > bar { b: foo > bar; } foo > bar > baz { c: foo > bar > baz; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1305.hrx000066400000000000000000000011051355712145100245600ustar00rootroot00000000000000<===> input.scss .foo { content: call('unquote', 'foo', ()...); } <===> output.css .foo { content: foo; } <===> warning DEPRECATION WARNING: Passing a string to call() is deprecated and will be illegal in Sass 4.0. Use call(function-reference(unquote)) instead. <===> warning-dart-sass DEPRECATION WARNING: Passing a string to call() is deprecated and will be illegal in Dart Sass 2.0.0. Use call(get-function("unquote")) instead. , 2 | content: call('unquote', 'foo', ()...); | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 2:14 root stylesheet sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_131.hrx000066400000000000000000000001631355712145100244770ustar00rootroot00000000000000<===> input.scss $foo: bar; div { content: "foo #{$foo}" } <===> output.css div { content: "foo bar"; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1322.hrx000066400000000000000000000007121355712145100245620ustar00rootroot00000000000000<===> input.scss $foo: 400px; $bar: "min-width:400px"; @import url(foo.css) (min-width:400px); @import url(foo.css) (min-width:$foo); @import url(foo.css) (min-width:#{$foo}); @import url(foo.css) ($bar); @import url(foo.css) (#{$bar}); <===> output.css @import url(foo.css) (min-width: 400px); @import url(foo.css) (min-width: 400px); @import url(foo.css) (min-width: 400px); @import url(foo.css) (min-width:400px); @import url(foo.css) (min-width:400px); sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1323.hrx000066400000000000000000000004661355712145100245710ustar00rootroot00000000000000<===> input.scss @import url(foo.css) only screen; @import url(foo.css) (min-width:400px); @import url(foo.css) (min-width:400px) and (max-width:599px); <===> output.css @import url(foo.css) only screen; @import url(foo.css) (min-width: 400px); @import url(foo.css) (min-width: 400px) and (max-width: 599px); sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1328.hrx000066400000000000000000000003421355712145100245670ustar00rootroot00000000000000<===> input.scss #{bar}, [foo="#{bar}"], [foo="#{bar}"] { content: "foo"; } <===> output.css bar, [foo="bar"], [foo="bar"] { content: "foo"; } <===> output-dart-sass.css bar, [foo=bar], [foo=bar] { content: "foo"; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1331.hrx000066400000000000000000000005701355712145100245640ustar00rootroot00000000000000<===> input.scss $m: (foo: 1px, null: 2px, false: 3px, true: 4px); @debug $m; @debug map-get($m, foo); @debug map-get($m, null); @debug map-get($m, false); @debug map-get($m, true); <===> output.css <===> warning input.scss:3 DEBUG: (foo: 1px, null: 2px, false: 3px, true: 4px) input.scss:4 DEBUG: 1px input.scss:5 DEBUG: 2px input.scss:6 DEBUG: 3px input.scss:7 DEBUG: 4px sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1332.hrx000066400000000000000000000004051355712145100245620ustar00rootroot00000000000000<===> input.scss .box1 { color: rgb(20%, 20%, 20%); } .box2 { color: rgb(32, 32, 32); } .box3 { color: rgba(20%, 20%, 20%, 0.7); } <===> output.css .box1 { color: #333333; } .box2 { color: #202020; } .box3 { color: rgba(51, 51, 51, 0.7); } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1333.hrx000066400000000000000000000003711355712145100245650ustar00rootroot00000000000000<===> options.yml --- :todo: - libsass <===> input.scss @function baz() { @return 'baz'; } foo { bar: baz()#{' !important'}; bar: baz() #{' !important'}; } <===> output.css foo { bar: "baz" !important; bar: "baz" !important; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1336.hrx000066400000000000000000000001271355712145100245670ustar00rootroot00000000000000<===> input.scss @debug null; <===> output.css <===> warning input.scss:1 DEBUG: null sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1355.hrx000066400000000000000000000005511355712145100245710ustar00rootroot00000000000000<===> input.scss @function test() { @return; } div { x: type-of(test()); } <===> error Error: Invalid CSS after " @return": expected expression (e.g. 1px, bold), was ";" on line 2 of input.scss Use --trace for backtrace. <===> error-dart-sass Error: Expected expression. , 2 | @return; | ^ ' input.scss 2:10 root stylesheet sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_137.hrx000066400000000000000000000003071355712145100245050ustar00rootroot00000000000000<===> input.scss .foo { background-color: lime; a { color: white; } } .baz { @extend .foo; } <===> output.css .foo, .baz { background-color: lime; } .foo a, .baz a { color: white; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1370.hrx000066400000000000000000000007221355712145100245660ustar00rootroot00000000000000<===> input.scss @mixin ico-common($imgUrl){ display: inline-block; background: url(i/$imgUrl); background-repeat: no-repeat; } @mixin ico-size($width,$height){ width: $width; height: $height; } .test{ @include ico-common("icon.png"); @include ico-size(100px, 100px); } <===> output.css .test { display: inline-block; background: url(i/"icon.png"); background-repeat: no-repeat; width: 100px; height: 100px; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1376.hrx000066400000000000000000000001751355712145100245760ustar00rootroot00000000000000<===> input.scss .div{ $foo: 1, null, 2, null, 3; content: "#{$foo}"; } <===> output.css .div { content: "1, 2, 3"; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1393.hrx000066400000000000000000000002721355712145100245730ustar00rootroot00000000000000<===> input.scss div { back#{ground}: { imag#{e}: url(foo.png); pos#{it}ion: 50%; } } <===> output.css div { background-image: url(foo.png); background-position: 50%; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1394.hrx000066400000000000000000000002171355712145100245730ustar00rootroot00000000000000<===> options.yml --- :todo: - sass/libsass#2700 <===> input.scss foo { width: \10 + \20 \ ; } <===> output.css foo { width: \10 \ \ ; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1396.hrx000066400000000000000000000002621355712145100245750ustar00rootroot00000000000000<===> options.yml --- :todo: - libsass <===> input.scss foo { foo: foo"bar"#{baz}; foo: foo"bar"baz; } <===> output.css foo { foo: foo "bar" baz; foo: foo "bar" baz; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1398.hrx000066400000000000000000000002311355712145100245730ustar00rootroot00000000000000<===> input.scss @media screen and (hux: 3/4) { foo { bar: baz; } } <===> output.css @media screen and (hux: 3/4) { foo { bar: baz; } } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1399.hrx000066400000000000000000000004451355712145100246030ustar00rootroot00000000000000<===> input.scss foo { foo: 3 - "bar"; foo: (3 - "bar"); foo: 3 / "bar"; foo: (3 / "bar"); } <===> output.css foo { foo: 3-"bar"; foo: 3-"bar"; foo: 3 / "bar"; foo: 3/"bar"; } <===> output-dart-sass.css foo { foo: 3-"bar"; foo: 3-"bar"; foo: 3/"bar"; foo: 3/"bar"; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1404.hrx000066400000000000000000000003261355712145100245640ustar00rootroot00000000000000<===> input.scss .test { color: #aaabbb--1-2-a; color: type-of(#aaabbb--1-2-a); color: type-of(#aaabbb--1-2); } <===> output.css .test { color: #aaabbb--1-2-a; color: string; color: string; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1405.hrx000066400000000000000000000030161355712145100245640ustar00rootroot00000000000000<===> options.yml --- :todo: - sass/libsass#2700 <===> input.scss div { foo: (1a2b3c); length-1: length(1a2b3c); unit-1: unit(1a2b3c); result-1: 1em-.75em; result-2: 2em-1em; result-3: 2em-0.75em; result-4: 1.5em-1em; result-5: 2em-1.5em; type-1: type-of(1em-.75em); type-2: type-of(2em-1em); type-3: type-of(2em-0.75em); type-4: type-of(1.5em-1em); type-5: type-of(2em-1.5em); type-6: type-of(1a2b3c); test-1: (1-em-2-em); test-1: (1-em - 2-em); test-2: (1-0-em-2-0-em); test-2: (1-0-em - 2-0-em); test-3: (1-A-em-2-A-em); test-3: (1-A-em - 2-A-em); test-4: (1_em--_--e-2_em--_--e); test-4: (1_em--_--e - 2_em--_--e); test-5: (1_em--_--e0-2_em--_--e0); test-5: (1_em--_--e0 - 2_em--_--e0); test-6: (1_em--_--e0__-2_em--_--e0__); test-6: (1_em--_--e0__ - 2_em--_--e0__); test-7: (1\65 _em--_--e0-2\65 _em--_--e0); test-7: (1\65 _em--_--e0 - 2\65 _em--_--e0); } <===> output.css div { foo: 1a2b3c; length-1: 1; unit-1: "a2b3c"; result-1: 0.25em; result-2: 1em; result-3: 1.25em; result-4: 0.5em; result-5: 0.5em; type-1: number; type-2: number; type-3: number; type-4: number; type-5: number; type-6: number; test-1: -1-em; test-1: -1-em; test-2: -1-em; test-2: -1-em; test-3: -1-A-em; test-3: -1-A-em; test-4: -1_em--_--e; test-4: -1_em--_--e; test-5: -1_em--_--e0; test-5: -1_em--_--e0; test-6: -1_em--_--e0__; test-6: -1_em--_--e0__; test-7: -1e_em--_--e0; test-7: -1e_em--_--e0; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1413.hrx000066400000000000000000000027141355712145100245670ustar00rootroot00000000000000<===> options.yml --- :todo: - libsass <===> input.scss div { foo: 'A'#{B}; foo: #{A}'B'; foo: 'A'#{B}'C'; foo: #{A}'B'#{C}; foo: A#{B}'C'; foo: 'A'#{B}C; foo: #{A}B'C'; foo: 'A'#{B}C'D'; foo: 'A'B#{C}D'E'; foo: A'B'#{C}D'E'; foo: #{A}'B'C'D''E'; } div { foo: type-of('A'#{B}); foo: type-of(#{A}'B'); foo: type-of('A'#{B}'C'); foo: type-of(#{A}'B'#{C}); foo: type-of(A#{B}'C'); foo: type-of('A'#{B}C); foo: type-of(#{A}B'C'); foo: type-of('A'#{B}C'D'); foo: type-of('A'B#{C}D'E'); foo: type-of(A'B'#{C}D'E'); foo: type-of(#{A}'B'C'D''E'); } div { foo: length('A'#{B}); foo: length(#{A}'B'); foo: length('A'#{B}'C'); foo: length(#{A}'B'#{C}); foo: length(A#{B}'C'); foo: length('A'#{B}C); foo: length(#{A}B'C'); foo: length('A'#{B}C'D'); foo: length('A'B#{C}D'E'); foo: length(A'B'#{C}D'E'); foo: length(#{A}'B'C'D''E'); } <===> output.css div { foo: "A" B; foo: A "B"; foo: "A" B "C"; foo: A "B" C; foo: AB "C"; foo: "A" BC; foo: AB "C"; foo: "A" BC "D"; foo: "A" BCD "E"; foo: A "B" CD "E"; foo: A "B" C "D" "E"; } div { foo: list; foo: list; foo: list; foo: list; foo: list; foo: list; foo: list; foo: list; foo: list; foo: list; foo: list; } div { foo: 2; foo: 2; foo: 3; foo: 3; foo: 2; foo: 2; foo: 2; foo: 3; foo: 3; foo: 4; foo: 5; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1415/000077500000000000000000000000001355712145100240425ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1415/direct.hrx000066400000000000000000000001071355712145100260350ustar00rootroot00000000000000<===> input.scss @if & { foo { foo: bar; } } <===> output.css sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1415/mixin.hrx000066400000000000000000000005461355712145100257160ustar00rootroot00000000000000<===> input.scss @mixin prepend-foo { $parent: &; @if $parent { .foo & { @content; } } @else { .foo { @content; } } } @include prepend-foo { bar { color: red; } } bar { @include prepend-foo { baz { color: red; } } } <===> output.css .foo bar { color: red; } .foo bar baz { color: red; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1415/variable.hrx000066400000000000000000000001321355712145100263460ustar00rootroot00000000000000<===> input.scss $parent: &; @if $parent { foo { foo: bar; } } <===> output.css sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1417.hrx000066400000000000000000000017731355712145100245770ustar00rootroot00000000000000<===> input.scss @function foo($a, $b) { @return ($a $b); } foo { foo: 1px / 2px; foo: 1px / round(1.5); foo: foo(1px / 2px, 1px / round(1.5)); foo: missing(1px / 2px, 1px / round(1.5)); foo: call(missing, 1px / 2px, 1px / round(1.5)); } <===> output.css foo { foo: 1px / 2px; foo: 0.5px; foo: 0.5 0.5px; foo: missing(1px/2px, 0.5px); foo: missing(1px/2px, 0.5px); } <===> output-dart-sass.css foo { foo: 1px/2px; foo: 0.5px; foo: 0.5 0.5px; foo: missing(1px/2px, 0.5px); foo: missing(1px/2px, 0.5px); } <===> warning DEPRECATION WARNING: Passing a string to call() is deprecated and will be illegal in Sass 4.0. Use call(function-reference(missing)) instead. <===> warning-dart-sass DEPRECATION WARNING: Passing a string to call() is deprecated and will be illegal in Dart Sass 2.0.0. Use call(get-function(missing)) instead. , 10| foo: call(missing, 1px / 2px, 1px / round(1.5)); | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 10:8 root stylesheet sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1418/000077500000000000000000000000001355712145100240455ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1418/dynamic.hrx000066400000000000000000000022071355712145100262150ustar00rootroot00000000000000<===> input.scss foo { color: call(missing, $a: b); } <===> error DEPRECATION WARNING: Passing a string to call() is deprecated and will be illegal in Sass 4.0. Use call(get-function("missing")) instead. Error: Function missing doesn't support keyword arguments on line 2 of input.scss Use --trace for backtrace. <===> error-libsass DEPRECATION WARNING: Passing a string to call() is deprecated and will be illegal in Sass 4.0. Use call(get-function("missing")) instead. Error: Plain CSS function missing doesn't support keyword arguments on line 2:10 of inpit.scss, in function `call` from line 2:10 of input.scss >> color: call(missing, $a: b); ---------^ <===> error-dart-sass DEPRECATION WARNING: Passing a string to call() is deprecated and will be illegal in Dart Sass 2.0.0. Use call(get-function(missing)) instead. , 2 | color: call(missing, $a: b); | ^^^^^^^^^^^^^^^^^^^^ ' input.scss 2:12 root stylesheet Error: Plain CSS functions don't support keyword arguments. , 2 | color: call(missing, $a: b); | ^^^^^^^^^^^^^^^^^^^^ ' input.scss 2:12 root stylesheet sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1418/static.hrx000066400000000000000000000005751355712145100260660ustar00rootroot00000000000000<===> input.scss foo { color: missing($a: b); } <===> error Error: Plain CSS function missing doesn't support keyword arguments on line 2 of input.scss Use --trace for backtrace. <===> error-dart-sass Error: Plain CSS functions don't support keyword arguments. , 2 | color: missing($a: b); | ^^^^^^^^^^^^^^ ' input.scss 2:12 root stylesheet sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1419/000077500000000000000000000000001355712145100240465ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1419/quoted.hrx000066400000000000000000000001431355712145100260700ustar00rootroot00000000000000<===> input.scss foo { foo: to-upper-case("ab\63 d"); } <===> output.css foo { foo: "ABCD"; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1419/unquoted.hrx000066400000000000000000000002211355712145100264300ustar00rootroot00000000000000<===> options.yml --- :todo: - sass/libsass#2700 <===> input.scss foo { foo: to-upper-case(ab\63 d); } <===> output.css foo { foo: ABCD; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1422.hrx000066400000000000000000000002751355712145100245670ustar00rootroot00000000000000<===> input.scss .foo { /*foo*/foo/*foo*/: /*foo*/bar/*foo*/; /*foo*/ foo /*foo*/ : /*foo*/ bar /*foo*/; } <===> output.css .foo { /*foo*/ foo/*foo*/: bar; /*foo*/ foo: bar; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1425.hrx000066400000000000000000000002331355712145100245640ustar00rootroot00000000000000<===> input.scss $query: "(feature1: val)"; @supports (#{$query}) { foo { a: b } } <===> output.css @supports (feature1: val) { foo { a: b; } } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_143.hrx000066400000000000000000000005341355712145100245040ustar00rootroot00000000000000<===> input.scss $path: "images"; $file: "kittens.jpg"; $image: ""; $other: file_join("images", "kittens.jpg"); @if $image != none { $image: url(file_join($path, $file)); } body { background: $image; color: $other; } <===> output.css body { background: url(file_join("images", "kittens.jpg")); color: file_join("images", "kittens.jpg"); } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1432/000077500000000000000000000000001355712145100240415ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1432/selector-extend.hrx000066400000000000000000000010661355712145100276740ustar00rootroot00000000000000<===> input.scss @debug(selector-extend(".a .b", ".b", null)); <===> error Error: $extender: null is not a valid selector: it must be a string, a list of strings, or a list of lists of strings for `selector-extend' on line 1 of input.scss Use --trace for backtrace. <===> error-dart-sass Error: $extender: null is not a valid selector: it must be a string, a list of strings, or a list of lists of strings. , 1 | @debug(selector-extend(".a .b", ".b", null)); | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 1:8 root stylesheet sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1432/selector-nest.hrx000066400000000000000000000010141355712145100273470ustar00rootroot00000000000000<===> input.scss @debug(selector-nest("foo", null)); <===> error Error: $selectors: null is not a valid selector: it must be a string, a list of strings, or a list of lists of strings for `selector-nest' on line 1 of input.scss Use --trace for backtrace. <===> error-dart-sass Error: null is not a valid selector: it must be a string, a list of strings, or a list of lists of strings. , 1 | @debug(selector-nest("foo", null)); | ^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 1:8 root stylesheet sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1432/selector-replace.hrx000066400000000000000000000010751355712145100300200ustar00rootroot00000000000000<===> input.scss @debug(selector-replace("foo", "bar", null)); <===> error Error: $replacement: null is not a valid selector: it must be a string, a list of strings, or a list of lists of strings for `selector-replace' on line 1 of input.scss Use --trace for backtrace. <===> error-dart-sass Error: $replacement: null is not a valid selector: it must be a string, a list of strings, or a list of lists of strings. , 1 | @debug(selector-replace("foo", "bar", null)); | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 1:8 root stylesheet sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1432/selector-unify.hrx000066400000000000000000000010341355712145100275320ustar00rootroot00000000000000<===> input.scss @debug(selector-unify("foo", null)); <===> error Error: $selector2: null is not a valid selector: it must be a string, a list of strings, or a list of lists of strings for `selector-unify' on line 1 of input.scss Use --trace for backtrace. <===> error-dart-sass Error: $selector2: null is not a valid selector: it must be a string, a list of strings, or a list of lists of strings. , 1 | @debug(selector-unify("foo", null)); | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 1:8 root stylesheet sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1432/simple-selectors.hrx000066400000000000000000000006671355712145100300670ustar00rootroot00000000000000<===> input.scss @debug(simple-selectors(null)); <===> error Error: $selector: null is not a string for `simple-selectors' on line 1 of input.scss Use --trace for backtrace. <===> error-dart-sass Error: $selector: null is not a valid selector: it must be a string, a list of strings, or a list of lists of strings. , 1 | @debug(simple-selectors(null)); | ^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 1:8 root stylesheet sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1434.hrx000066400000000000000000000007151355712145100245710ustar00rootroot00000000000000<===> input.scss .foo { a: selector-nest('.foo', '.bar > .baz'); b: selector-nest('.foo', '.bar ~ .baz'); c: selector-nest('.foo', '.bar + .baz'); d: selector-nest('.foo > .bar', '.baz'); e: selector-nest('.foo ~ .bar', '.baz'); f: selector-nest('.foo + .bar', '.baz'); } <===> output.css .foo { a: .foo .bar > .baz; b: .foo .bar ~ .baz; c: .foo .bar + .baz; d: .foo > .bar .baz; e: .foo ~ .bar .baz; f: .foo + .bar .baz; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1437.hrx000066400000000000000000000004731355712145100245750ustar00rootroot00000000000000<===> input.scss div { @media screen and (min-width: 37.5em) { /* asd */ } @media screen and (min-width: 48em) { display: none; } } <===> output.css @media screen and (min-width: 37.5em) { div { /* asd */ } } @media screen and (min-width: 48em) { div { display: none; } } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1438.hrx000066400000000000000000000010061355712145100245670ustar00rootroot00000000000000<===> input.scss @function foo() { @return 20150812; } foo { background-image: url(../test.png); } bar { background-image: url(../test.png?v=20150812); } baz { background-image: url(../test.png?v=#{test()}); } bam { background-image: url("../test.png?v=#{test()}"); } <===> output.css foo { background-image: url(../test.png); } bar { background-image: url(../test.png?v=20150812); } baz { background-image: url(../test.png?v=test()); } bam { background-image: url("../test.png?v=test()"); } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1440.hrx000066400000000000000000000021071355712145100245630ustar00rootroot00000000000000<===> input.scss // works fine with plain @each directive $i: 1; $prop1: width; $prop2: background-position; $values: 132px, 100px "-100px -25px", 200px "-500px -100px"; @each $value1, $value2 in $values{ .okay#{$i} { #{$prop1}: #{$value1}; #{$prop2}: #{$value2}; } $i: ($i + 1); } // when using @each inside @mixin with variable arguments($values...), // $value2 is missing and no errors while compiling @mixin eachProp($prop1, $prop2, $values...){ $i: 1; @each $value1, $value2 in $values{ .error#{$i} { #{$prop1}: #{$value1}; #{$prop2}: #{$value2}; } $i: ($i + 1); } } @include eachProp($prop1, $prop2, 132px, 100px "-100px -25px", 200px "-500px -100px" ); <===> output.css .okay1 { width: 132px; } .okay2 { width: 100px; background-position: -100px -25px; } .okay3 { width: 200px; background-position: -500px -100px; } .error1 { width: 132px; } .error2 { width: 100px; background-position: -100px -25px; } .error3 { width: 200px; background-position: -500px -100px; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1441/000077500000000000000000000000001355712145100240415ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1441/adjacent.hrx000066400000000000000000000001731355712145100263360ustar00rootroot00000000000000<===> input.scss .adjacent { & + & { foo: bar; } } <===> output.css .adjacent + .adjacent { foo: bar; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1441/child.hrx000066400000000000000000000001621355712145100256460ustar00rootroot00000000000000<===> input.scss .child { & > & { foo: bar; } } <===> output.css .child > .child { foo: bar; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1441/sibling.hrx000066400000000000000000000001701355712145100262110ustar00rootroot00000000000000<===> input.scss .sibling { & ~ & { foo: bar; } } <===> output.css .sibling ~ .sibling { foo: bar; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1448.hrx000066400000000000000000000005341355712145100245750ustar00rootroot00000000000000<===> input.scss .md-card { .md-info-card-highlight { background: red; color: blue; .ng-md-icon { color: green; } } } <===> output.css .md-card .md-info-card-highlight { background: red; color: blue; } .md-card .md-info-card-highlight .ng-md-icon { color: green; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1452.hrx000066400000000000000000000004411355712145100245650ustar00rootroot00000000000000<===> input.scss foo { foo: foo(()); } <===> error Error: () isn't a valid CSS value. on line 2 of input.scss Use --trace for backtrace. <===> error-dart-sass Error: () isn't a valid CSS value. , 2 | foo: foo(()); | ^^ ' input.scss 2:12 root stylesheet sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1459.hrx000066400000000000000000000003341355712145100245750ustar00rootroot00000000000000<===> input.scss @font-face { font-family: "Font Name"; src: local("Arial"); unicode-range: U+270C; } <===> output.css @font-face { font-family: "Font Name"; src: local("Arial"); unicode-range: U+270C; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1482.hrx000066400000000000000000000003251355712145100245710ustar00rootroot00000000000000<===> input.scss .mango { color: red; } type { &__else { @extend .mango; } } .qualified { &__else { @extend .mango; } } <===> output.css .mango, .qualified__else, type__else { color: red; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1484.hrx000066400000000000000000000004031355712145100245700ustar00rootroot00000000000000<===> input.scss div { <===> error Error: Invalid CSS after "div {": expected "}", was "" on line 2 of input.scss Use --trace for backtrace. <===> error-dart-sass Error: expected "}". , 1 | div { | ^ ' input.scss 1:6 root stylesheet sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1486.hrx000066400000000000000000000026531355712145100246030ustar00rootroot00000000000000<===> input.scss $a: 41px; @function a() { @return 42px; } foo { foo: $a -121px; foo: ($a -122px); foo: $a*3-123px; foo: ($a*3-124px); foo: $a*3 -123px; foo: ($a*3 -124px); foo: $a*3 - 123px; foo: ($a*3 - 124px); foo: $a*3- 123px; foo: ($a*3- 124px); foo: $a*3- 123px; foo: ($a*3- 124px); } bar { bar: a() -121px; bar: (a() -122px); bar: a()*3-123px; bar: (a()*3-124px); bar: a()*3 -123px; bar: (a()*3 -124px); bar: a()*3 - 123px; bar: (a()*3 - 124px); bar: a()*3- 123px; bar: (a()*3- 124px); bar: a()*3- 123px; bar: (a()*3- 124px); } baz { baz: 43px -121px; baz: (43px -122px); baz: 43px*3-123px; baz: (43px*3-124px); baz: 43px*3 -123px; baz: (43px*3 -124px); baz: 43px*3 - 123px; baz: (43px*3 - 124px); baz: 43px*3- 123px; baz: (43px*3- 124px); baz: 43px*3- 123px; baz: (43px*3- 124px); } <===> output.css foo { foo: 41px -121px; foo: 41px -122px; foo: 0px; foo: -1px; foo: 123px -123px; foo: 123px -124px; foo: 0px; foo: -1px; foo: 0px; foo: -1px; foo: 0px; foo: -1px; } bar { bar: 42px -121px; bar: 42px -122px; bar: 3px; bar: 2px; bar: 126px -123px; bar: 126px -124px; bar: 3px; bar: 2px; bar: 3px; bar: 2px; bar: 3px; bar: 2px; } baz { baz: 43px -121px; baz: 43px -122px; baz: 6px; baz: 5px; baz: 129px -123px; baz: 129px -124px; baz: 6px; baz: 5px; baz: 6px; baz: 5px; baz: 6px; baz: 5px; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1487.hrx000066400000000000000000000006531355712145100246020ustar00rootroot00000000000000<===> input.scss @mixin foo() { foo: &; } foo { @include foo { bar: baz } } <===> error Error: Mixin "foo" does not accept a content block. on line 6 of input.scss, in `foo' from line 6 of input.scss Use --trace for backtrace. <===> error-dart-sass Error: Mixin doesn't accept a content block. , 6 | @include foo { bar: baz } | ^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 6:3 root stylesheet sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1488.hrx000066400000000000000000000103001355712145100245710ustar00rootroot00000000000000<===> input.scss @function foo($arg2) { @return type-of($arg2); } @function foo_($arg2...) { @return type-of($arg2); } @function bar($arg1, $arg2) { @return type-of($arg1) + "::" + type-of($arg2); } @function bar_($arg1, $arg2...) { @return type-of($arg1) + "::" + type-of($arg2); } foo { foo: foo(one); foo: foo(one...); bar: bar(one, two); bar: bar(one, two...); foo: call('foo', one); foo: call('foo', one...); bar: call('bar', one, two); bar: call('bar', one, two...); } bar { foo: foo_(one); foo: foo_(one...); bar: bar_(one, two); bar: bar_(one, two...); foo: call('foo_', one); foo: call('foo_', one...); bar: call('bar_', one, two); bar: call('bar_', one, two...); } <===> output.css foo { foo: string; foo: string; bar: string::string; bar: string::string; foo: string; foo: string; bar: string::string; bar: string::string; } bar { foo: arglist; foo: arglist; bar: string::arglist; bar: string::arglist; foo: arglist; foo: arglist; bar: string::arglist; bar: string::arglist; } <===> warning DEPRECATION WARNING: Passing a string to call() is deprecated and will be illegal in Sass 4.0. Use call(function-reference(foo)) instead. DEPRECATION WARNING: Passing a string to call() is deprecated and will be illegal in Sass 4.0. Use call(function-reference(foo)) instead. DEPRECATION WARNING: Passing a string to call() is deprecated and will be illegal in Sass 4.0. Use call(function-reference(bar)) instead. DEPRECATION WARNING: Passing a string to call() is deprecated and will be illegal in Sass 4.0. Use call(function-reference(bar)) instead. DEPRECATION WARNING: Passing a string to call() is deprecated and will be illegal in Sass 4.0. Use call(function-reference(foo_)) instead. DEPRECATION WARNING: Passing a string to call() is deprecated and will be illegal in Sass 4.0. Use call(function-reference(foo_)) instead. DEPRECATION WARNING: Passing a string to call() is deprecated and will be illegal in Sass 4.0. Use call(function-reference(bar_)) instead. DEPRECATION WARNING: Passing a string to call() is deprecated and will be illegal in Sass 4.0. Use call(function-reference(bar_)) instead. <===> warning-dart-sass DEPRECATION WARNING: Passing a string to call() is deprecated and will be illegal in Dart Sass 2.0.0. Use call(get-function("foo")) instead. , 22 | foo: call('foo', one); | ^^^^^^^^^^^^^^^^ ' input.scss 22:8 root stylesheet DEPRECATION WARNING: Passing a string to call() is deprecated and will be illegal in Dart Sass 2.0.0. Use call(get-function("foo")) instead. , 23 | foo: call('foo', one...); | ^^^^^^^^^^^^^^^^^^^ ' input.scss 23:8 root stylesheet DEPRECATION WARNING: Passing a string to call() is deprecated and will be illegal in Dart Sass 2.0.0. Use call(get-function("bar")) instead. , 24 | bar: call('bar', one, two); | ^^^^^^^^^^^^^^^^^^^^^ ' input.scss 24:8 root stylesheet DEPRECATION WARNING: Passing a string to call() is deprecated and will be illegal in Dart Sass 2.0.0. Use call(get-function("bar")) instead. , 25 | bar: call('bar', one, two...); | ^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 25:8 root stylesheet DEPRECATION WARNING: Passing a string to call() is deprecated and will be illegal in Dart Sass 2.0.0. Use call(get-function("foo_")) instead. , 33 | foo: call('foo_', one); | ^^^^^^^^^^^^^^^^^ ' input.scss 33:8 root stylesheet DEPRECATION WARNING: Passing a string to call() is deprecated and will be illegal in Dart Sass 2.0.0. Use call(get-function("foo_")) instead. , 34 | foo: call('foo_', one...); | ^^^^^^^^^^^^^^^^^^^^ ' input.scss 34:8 root stylesheet DEPRECATION WARNING: Passing a string to call() is deprecated and will be illegal in Dart Sass 2.0.0. Use call(get-function("bar_")) instead. , 35 | bar: call('bar_', one, two); | ^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 35:8 root stylesheet DEPRECATION WARNING: Passing a string to call() is deprecated and will be illegal in Dart Sass 2.0.0. Use call(get-function("bar_")) instead. , 36 | bar: call('bar_', one, two...); | ^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 36:8 root stylesheet sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_151.hrx000066400000000000000000000012331355712145100245000ustar00rootroot00000000000000<===> options.yml --- :todo: - sass/libsass#2895 <===> input.scss div.colors { background: grayscale(red); background: saturate(red); background: invert(red); background: alpha(red); color: grayscale(#369); color: saturate(#369); color: saturate(#369, 20%); color: invert(#369); color: alpha(#369); } div.numbers { filter: grayscale(30%); filter: saturate(30%); filter: invert(30%); -webkit-filter: grayscale(0.3); -webkit-filter: saturate(0.3); -webkit-filter: invert(0.3); } <===> error Error: $amount: red is not a number. , 3 | background: saturate(red); | ^^^^^^^^^^^^^ ' input.scss 3:15 root stylesheet sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_152.hrx000066400000000000000000000007561355712145100245120ustar00rootroot00000000000000<===> options.yml --- :todo: - libsass <===> input.scss $foo: 10; $bar: 10%; foo { a: #{10}% 100%; a: #{10} % 100%; a: #{10} %100%; a: 10% 100%; a: 10 % 100%; a: 10 %100%; a: $foo 100%; a: $foo % 100%; a: $foo %100%; a: $bar 100%; a: $bar % 100%; a: $bar %100%; } <===> error Error: Undefined operation: "10 mod 100%". <===> error-dart-sass Error: Undefined operation "10 % 100%". , 5 | a: #{10}% 100%; | ^^^^^^^^^^^ ' input.scss 5:6 root stylesheet sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1526.hrx000066400000000000000000000002141355712145100245650ustar00rootroot00000000000000<===> input.scss foo { bar: (1--em-2--em); baz: (1--em - 2--em); } <===> output.css foo { bar: 1 --em-2--em; baz: 1 --em-2 --em; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1527/000077500000000000000000000000001355712145100240465ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1527/extend.hrx000066400000000000000000000006711355712145100260640ustar00rootroot00000000000000<===> input.scss foo { @extend &; } <===> error Error: Can't extend &: can't extend parent selectors on line 2 of input.scss Use --trace for backtrace. <===> error-libsass Error: Parent selectors aren't allowed here. on line 2:11 of input.scss >> @extend &; ----------^ <===> error-dart-sass Error: Parent selectors aren't allowed here. , 2 | @extend &; | ^ ' input.scss 2:11 root stylesheet sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1527/selector/000077500000000000000000000000001355712145100256665ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1527/selector/first.hrx000066400000000000000000000007471355712145100275500ustar00rootroot00000000000000<===> input.scss & foo { bar: baz; } <===> error Error: Base-level rules cannot contain the parent-selector-referencing character '&'. on line 1 of input.scss Use --trace for backtrace. <===> error-libsass Error: Top-level selectors may not contain the parent selector "&". on line 1 of input.scss >> & foo { <===> error-dart-sass Error: Top-level selectors may not contain the parent selector "&". , 1 | & foo { | ^^^^^^ ' input.scss 1:1 root stylesheet sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1527/selector/last.hrx000066400000000000000000000007471355712145100273640ustar00rootroot00000000000000<===> input.scss foo & { bar: baz; } <===> error Error: Base-level rules cannot contain the parent-selector-referencing character '&'. on line 1 of input.scss Use --trace for backtrace. <===> error-libsass Error: Top-level selectors may not contain the parent selector "&". on line 1 of input.scss >> foo & { <===> error-dart-sass Error: Top-level selectors may not contain the parent selector "&". , 1 | foo & { | ^^^^^^ ' input.scss 1:1 root stylesheet sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1527/selector/only.hrx000066400000000000000000000007141355712145100273740ustar00rootroot00000000000000<===> input.scss & {} <===> error Error: Base-level rules cannot contain the parent-selector-referencing character '&'. on line 1 of input.scss Use --trace for backtrace. <===> error-libsass Error: Top-level selectors may not contain the parent selector "&". on line 1 of input.scss >> & {} <===> error-dart-sass Error: Top-level selectors may not contain the parent selector "&". , 1 | & {} | ^^ ' input.scss 1:1 root stylesheet sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1535.hrx000066400000000000000000000003561355712145100245740ustar00rootroot00000000000000<===> input.scss foo { test: type-of(1--em); test: (1--em-2--em); test: (1--em- 2--em); test: (1--em -2--em); } <===> output.css foo { test: list; test: 1 --em-2--em; test: 1 --em- 2 --em; test: 1 --em -2 --em; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1537.hrx000066400000000000000000000006671355712145100246030ustar00rootroot00000000000000<===> input.scss $map: ( a: 1, two, 3, foo: 'bar' ); test { a: map-get($map, a); type: type-of(map-get($map, a)); keys: map-keys($map); try: map-get($map, two); } <===> error Error: Invalid CSS after " a: 1, two": expected ":", was ", 3," on line 2 of input.scss Use --trace for backtrace. <===> error-dart-sass Error: expected ":". , 2 | a: 1, two, 3, | ^ ' input.scss 2:12 root stylesheet sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_154.hrx000066400000000000000000000001571355712145100245070ustar00rootroot00000000000000<===> input.scss test { filter:alpha(opacity=75); } <===> output.css test { filter: alpha(opacity=75); } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1546.hrx000066400000000000000000000001731355712145100245730ustar00rootroot00000000000000<===> input.sass @mixin foo($foo:red) color: $foo .foo @include foo(green) <===> output.css .foo { color: green; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1550/000077500000000000000000000000001355712145100240425ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1550/each_embedded.hrx000066400000000000000000000006241355712145100273000ustar00rootroot00000000000000<===> input.scss @each $i in (1) { @function foo() { @return 'foo'; } } <===> error Error: Functions may not be defined within control directives or other mixins. on line 2 of input.scss Use --trace for backtrace. <===> error-dart-sass Error: Functions may not be declared in control directives. , 2 | @function foo() { | ^^^^^^^^^^^^^^^ ' input.scss 2:3 root stylesheet sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1550/for_embedded.hrx000066400000000000000000000006351355712145100271700ustar00rootroot00000000000000<===> input.scss @for $i from 1 through 2 { @function foo() { @return 'foo'; } } <===> error Error: Functions may not be defined within control directives or other mixins. on line 2 of input.scss Use --trace for backtrace. <===> error-dart-sass Error: Functions may not be declared in control directives. , 2 | @function foo() { | ^^^^^^^^^^^^^^^ ' input.scss 2:3 root stylesheet sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1550/if_embedded.hrx000066400000000000000000000006171355712145100270000ustar00rootroot00000000000000<===> input.scss @if (true) { @function foo() { @return 'foo'; } } <===> error Error: Functions may not be defined within control directives or other mixins. on line 2 of input.scss Use --trace for backtrace. <===> error-dart-sass Error: Functions may not be declared in control directives. , 2 | @function foo() { | ^^^^^^^^^^^^^^^ ' input.scss 2:3 root stylesheet sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1550/mixin_embedded.hrx000066400000000000000000000006121355712145100275210ustar00rootroot00000000000000<===> input.scss @mixin foo() { @function foo() { @return 'foo'; } } <===> error Error: Functions may not be defined within control directives or other mixins. on line 2 of input.scss Use --trace for backtrace. <===> error-dart-sass Error: Mixins may not contain function declarations. , 2 | @function foo() { | ^^^^^^^^^^^^^^^ ' input.scss 2:3 root stylesheet sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1550/while_embedded.hrx000066400000000000000000000006501355712145100275070ustar00rootroot00000000000000<===> input.scss $i: 1; @while $i == 1 { @function foo() { @return 'foo'; } $i: $i + 1; } <===> error Error: Functions may not be defined within control directives or other mixins. on line 3 of input.scss Use --trace for backtrace. <===> error-dart-sass Error: Functions may not be declared in control directives. , 3 | @function foo() { | ^^^^^^^^^^^^^^^ ' input.scss 3:3 root stylesheet sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1557.hrx000066400000000000000000000002721355712145100245750ustar00rootroot00000000000000<===> input.scss $xs-break: 30em;@media ALL AND (max-width: $xs-break) {header {display: none;}} <===> output.css @media ALL and (max-width: 30em) { header { display: none; } } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1566.hrx000066400000000000000000000012541355712145100245760ustar00rootroot00000000000000<===> input.scss @function foo($predicate) { @return call('bar', $predicate); } @function bar($predicate) { @return type-of($predicate); } test { test: foo(1 2 3); } <===> output.css test { test: list; } <===> warning DEPRECATION WARNING: Passing a string to call() is deprecated and will be illegal in Sass 4.0. Use call(function-reference(bar)) instead. <===> warning-dart-sass DEPRECATION WARNING: Passing a string to call() is deprecated and will be illegal in Dart Sass 2.0.0. Use call(get-function("bar")) instead. , 2 | @return call('bar', $predicate); | ^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 2:11 foo() input.scss 10:9 root stylesheet sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1567.hrx000066400000000000000000000004431355712145100245760ustar00rootroot00000000000000<===> input.scss /* any */@media/* first */ /* screen */screen /*something */ , /* else */ /* not */not/* print */print /* final */ { /* whatever */ body { line-height: 1.2 } } <===> output.css /* any */ @media screen, not print { /* whatever */ body { line-height: 1.2; } } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1568.hrx000066400000000000000000000002301355712145100245710ustar00rootroot00000000000000<===> input.scss body { font-weight: bold; // test font-size: 10px // test } <===> output.css body { font-weight: bold; font-size: 10px; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1569.hrx000066400000000000000000000011721355712145100246000ustar00rootroot00000000000000<===> input.scss $common-border: "foo"; .nihilo & { .dijitMenu { border: $common-border; .dijitMenuItem { color: getColor('text-dark-main'); } } } <===> error Error: Base-level rules cannot contain the parent-selector-referencing character '&'. on line 2 of input.scss Use --trace for backtrace. <===> error-libsass Error: Top-level selectors may not contain the parent selector "&". on line 2 of input.scss >> .nihilo & { ^ <===> error-dart-sass Error: Top-level selectors may not contain the parent selector "&". , 2 | .nihilo & { | ^^^^^^^^^^ ' input.scss 2:1 root stylesheet sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1570.hrx000066400000000000000000000002731355712145100245710ustar00rootroot00000000000000<===> input.scss a { font: 12px/normal serif; } b { font: normal 12px/normal serif; } <===> output.css a { font: 12px/normal serif; } b { font: normal 12px/normal serif; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1574.hrx000066400000000000000000000013221355712145100245710ustar00rootroot00000000000000<===> input.scss .foo { bar: baz; } input[type="text"], input[type="search"], input[type="url"], input[type="email"], input[type="password"], input[type="number"], input[type="tel"], input[type="date"], input[type="range"], textarea { @extend .foo; } <===> output.css .foo, input[type="text"], input[type="search"], input[type="url"], input[type="email"], input[type="password"], input[type="number"], input[type="tel"], input[type="date"], input[type="range"], textarea { bar: baz; } <===> output-dart-sass.css .foo, input[type=text], input[type=search], input[type=url], input[type=email], input[type=password], input[type=number], input[type=tel], input[type=date], input[type=range], textarea { bar: baz; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1577.hrx000066400000000000000000000005421355712145100245770ustar00rootroot00000000000000<===> input.scss $foo: 10%; // line 1 // line 2 $error: $foo + 20px; // line 3 <===> error Error: Incompatible units: 'px' and '%'. on line 3 of input.scss Use --trace for backtrace. <===> error-dart-sass Error: Incompatible units px and %. , 3 | $error: $foo + 20px; // line 3 | ^^^^^^^^^^^ ' input.scss 3:9 root stylesheet sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1578.hrx000066400000000000000000000006561355712145100246060ustar00rootroot00000000000000<===> options.yml --- :warning_todo: - libsass <===> input.sass foo bar: baz &:hover baz:bam <===> output.css foo { bar: baz; } <===> warning WARNING on line 4 of input.sass: This selector doesn't have any properties and will not be rendered. <===> warning-dart-sass WARNING on line 4, column 5 of input.sass: This selector doesn't have any properties and won't be rendered. , 4 | baz:bam | ^^^^^^^ ' sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1579.hrx000066400000000000000000000012361355712145100246020ustar00rootroot00000000000000<===> input.scss @function foo($a, $b: null, $c: false) { @return $c; } @function bar($args...) { @return call(foo, $args...); } test { test: bar(3, $c: true); } <===> output.css test { test: true; } <===> warning DEPRECATION WARNING: Passing a string to call() is deprecated and will be illegal in Sass 4.0. Use call(function-reference(foo)) instead. <===> warning-dart-sass DEPRECATION WARNING: Passing a string to call() is deprecated and will be illegal in Dart Sass 2.0.0. Use call(get-function(foo)) instead. , 6 | @return call(foo, $args...); | ^^^^^^^^^^^^^^^^^^^ ' input.scss 6:11 bar() input.scss 10:9 root stylesheet sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1583.hrx000066400000000000000000000011351355712145100245730ustar00rootroot00000000000000<===> input.scss $ls: ((foo,)); foo { baz: length($ls); baz: type-of($ls); baz: inspect($ls); } bar { baz: length(&); baz: type-of(&); baz: inspect(&); } foo { string: inspect(&); str-length: str-length(inspect(&)); list-length: length(&); } foo, bar { string: inspect(&); str-length: str-length(inspect(&)); list-length: length(&); } <===> output.css foo { baz: 1; baz: list; baz: (foo,); } bar { baz: 1; baz: list; baz: (bar,); } foo { string: (foo,); str-length: 6; list-length: 1; } foo, bar { string: foo, bar; str-length: 8; list-length: 2; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1584.hrx000066400000000000000000000010571355712145100245770ustar00rootroot00000000000000<===> input.scss @mixin foo($out: false) { @if $out { @at-root { @content; } } } @mixin bar() { @at-root { @content; } } @mixin baz($string) { @at-root .#{$string} { @content; } } .test { @include foo(true) { .nest1 { color: red; } } @include bar() { .nest2 { color: green; } } @include baz('nest3') { color: blue; } @at-root { .nest4 { color: yellow; } } } <===> output.css .nest1 { color: red; } .nest2 { color: green; } .nest3 { color: blue; } .nest4 { color: yellow; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1585.hrx000066400000000000000000000010401355712145100245700ustar00rootroot00000000000000<===> input.scss @mixin bar() { @at-root { @content; } } .test { @include bar() { color: yellow; .nest2 { color: green; } } } <===> error Error: Properties are only allowed within rules, directives, mixin includes, or other properties. on line 7 of input.scss Use --trace for backtrace. <===> error-dart-sass Error: Declarations may only be used within style rules. , 7 | color: yellow; | ^^^^^^^^^^^^^ ' input.scss 7:5 @content input.scss 2:14 bar() input.scss 6:3 root stylesheet sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1590/000077500000000000000000000000001355712145100240465ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1590/ampersand-against-literal.hrx000066400000000000000000000006351355712145100316250ustar00rootroot00000000000000<===> input.scss @mixin where($sel: null) { @if ( & == $sel ) { h1 { color: white; } } @else { h1 { color: blue; } } } .hive { @include where(); } .bee { @include where(".bee"); } .amp { @include where(&); } .quotedamp { @include where("&"); } <===> output.css .hive h1 { color: blue; } .bee h1 { color: blue; } .amp h1 { color: white; } .quotedamp h1 { color: blue; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1590/ampersand-as-expression.hrx000066400000000000000000000005271355712145100313450ustar00rootroot00000000000000<===> input.scss @mixin where($sel: null) { @if ( & == $sel ) { h1 { color: white; } } @else { h1 { color: blue; } } } .hive { @include where(); } .bee { @include where(&); } .queen { @include where("&"); } <===> output.css .hive h1 { color: blue; } .bee h1 { color: white; } .queen h1 { color: blue; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1590/quoted-ampersand-does-not-select.hrx000066400000000000000000000006271355712145100330520ustar00rootroot00000000000000<===> input.scss @mixin where($sel: null) { @if ( "&" == $sel ) { h1 { color: white; } } @else { h1 { color: blue; } } } .hive { @include where(); } .bee { @include where(&); } .amp { @include where(".amp"); } .queen { @include where("&"); } <===> output.css .hive h1 { color: blue; } .bee h1 { color: blue; } .amp h1 { color: blue; } .queen h1 { color: white; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1596.hrx000066400000000000000000000005411355712145100245770ustar00rootroot00000000000000<===> input.scss @document url(http://www.w3.org/), url-prefix(http://www.w3.org/Style/), domain(mozilla.org), regexp("https:.*"); <===> output.css @document url(http://www.w3.org/), url-prefix(http://www.w3.org/Style/), domain(mozilla.org), regexp("https:.*"); sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1601.hrx000066400000000000000000000005671355712145100245720ustar00rootroot00000000000000<===> input.scss .code.ruby > { &.ruby { color: green; } } <===> error Error: Invalid parent selector for "&.ruby": ".code.ruby >" on line 2 of input.scss Use --trace for backtrace. <===> error-dart-sass Error: Parent ".code.ruby >" is incompatible with this selector. , 2 | &.ruby { | ^^^^^^^ ' input.scss 2:5 root stylesheet sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1604.hrx000066400000000000000000000004711355712145100245670ustar00rootroot00000000000000<===> input.scss @function test($args...) { $all: (); @each $arg in $args { $all: append($all, $arg); } @return inspect($all); } test { args-1: test(1 2 3); args-2: test(1 2, 3 4); args-3: test(1, 2, 3); } <===> output.css test { args-1: (1 2 3); args-2: (1 2) (3 4); args-3: 1 2 3; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1610.hrx000066400000000000000000000011221355712145100245560ustar00rootroot00000000000000<===> input.scss @function foo() { @return "bar"; } @function bar() { @return "foo" + "," + bar; } a { b: foo(), "bar"; b: foo(), "bar" } b { b: #{foo(), "bar"}; b: #{foo(), "bar"} } c { b: "foo", bar; } d { b: #{"foo", bar}; b: #{"foo", bar} } e { b: #{bar()}; b: #{bar()} } f { b: "foo" + "," + bar; b: "foo" + "," + bar } <===> output.css a { b: "bar", "bar"; b: "bar", "bar"; } b { b: bar, bar; b: bar, bar; } c { b: "foo", bar; } d { b: foo, bar; b: foo, bar; } e { b: foo,bar; b: foo,bar; } f { b: "foo,bar"; b: "foo,bar"; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1612.hrx000066400000000000000000000001621355712145100245630ustar00rootroot00000000000000<===> input.scss c { b: "foo", bar; b: "foo", bar } <===> output.css c { b: "foo", bar; b: "foo", bar; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1622.hrx000066400000000000000000000012241355712145100245640ustar00rootroot00000000000000<===> input.scss @function foo($list) { @return call(bar, $list); } @function bar($list, $args...) { @return length($list); } test { test: foo(1 2 3); } <===> output.css test { test: 3; } <===> warning DEPRECATION WARNING: Passing a string to call() is deprecated and will be illegal in Sass 4.0. Use call(function-reference(bar)) instead. <===> warning-dart-sass DEPRECATION WARNING: Passing a string to call() is deprecated and will be illegal in Dart Sass 2.0.0. Use call(get-function(bar)) instead. , 2 | @return call(bar, $list); | ^^^^^^^^^^^^^^^^ ' input.scss 2:13 foo() input.scss 10:9 root stylesheet sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1624.hrx000066400000000000000000000003331355712145100245660ustar00rootroot00000000000000<===> input.scss @function foo($foo) { @return $foo; } @function data($foo) { @return '[data-' + $foo + ']'; } #{foo(foo)} { #{data('bar')} { baz: bam; } } <===> output.css foo [data-bar] { baz: bam; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1629.hrx000066400000000000000000000002151355712145100245720ustar00rootroot00000000000000<===> input.scss foo { background: url(...) 2rem 3rem / auto 2rem; } <===> output.css foo { background: url(...) 2rem 3rem/auto 2rem; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1632.hrx000066400000000000000000000007401355712145100245670ustar00rootroot00000000000000<===> options.yml --- :warning_todo: - sass/libsass#2834 <===> input.scss $foo: \/ !global; .foo#{$foo}bar { a: b; } <===> output.css .foo\/bar { a: b; } <===> warning DEPRECATION WARNING: As of Dart Sass 2.0.0, !global assignments won't be able to declare new variables. Since this assignment is at the root of the stylesheet, the !global flag is unnecessary and can safely be removed. , 1 | $foo: \/ !global; | ^^^^^^^^^^^^^^^^ ' input.scss 1:1 root stylesheet sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1634.hrx000066400000000000000000000012551355712145100245730ustar00rootroot00000000000000<===> input.scss $empty-list: (); @function foo($args...) { @return call(bar, $args...); } @function bar($list) { @return length($list); } test { test: foo($empty-list); } <===> output.css test { test: 0; } <===> warning DEPRECATION WARNING: Passing a string to call() is deprecated and will be illegal in Sass 4.0. Use call(function-reference(bar)) instead. <===> warning-dart-sass DEPRECATION WARNING: Passing a string to call() is deprecated and will be illegal in Dart Sass 2.0.0. Use call(get-function(bar)) instead. , 4 | @return call(bar, $args...); | ^^^^^^^^^^^^^^^^^^^ ' input.scss 4:13 foo() input.scss 12:9 root stylesheet sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1640.hrx000066400000000000000000000002751355712145100245710ustar00rootroot00000000000000<===> input.scss @mixin foo() { @if false { a { b: c } } @else { @content; } } @include foo() { .foo { bar: baz; } } <===> output.css .foo { bar: baz; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1644/000077500000000000000000000000001355712145100240465ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1644/complex.hrx000066400000000000000000000035741355712145100262510ustar00rootroot00000000000000<===> input.scss $tablet-portrait: 768px; $tablet-landscape: 980px; $desk-normal: 1120px; $desk-big: 1280px; $grid-breakpoints-immobile: ( 'tablet-portrait': '(min-width: ' + $tablet-portrait + ') and (max-width: ' + $tablet-landscape + ')', 'tablet-landscape': '(min-width: ' + $tablet-landscape + ') and (max-width: ' + $desk-normal + ')', 'desk-normal': '(min-width: ' + $desk-normal + ') and (max-width: ' + $desk-big + ')', 'desk-big': '(min-width: ' + $desk-big + ')' ); @mixin grid-media-query($media-query, $breakpointDefinitions) { $breakpoint-found: false; @each $breakpoint, $breakpointvalue in $breakpointDefinitions{ $name: $breakpoint; $declaration: $breakpointvalue; @if $media-query == $name and $declaration{ $breakpoint-found: true; @media only screen and #{$declaration} { @content; } } } } @each $name in map-keys($grid-breakpoints-immobile) { @include grid-media-query($name, $grid-breakpoints-immobile) { body.immobile & { margin-bottom: 0; } } } <===> error Error: Base-level rules cannot contain the parent-selector-referencing character '&'. on line 30 of input.scss, in `@content' from line 22 of input.scss, in `grid-media-query' from line 29 of input.scss Use --trace for backtrace. <===> error-libsass Error: Top-level selectors may not contain the parent selector "&". on line 22:9 of input.scss, in mixin `grid-media-query` from line 29:12 of input.scss >> body.immobile & { ----^ <===> error-dart-sass Error: Top-level selectors may not contain the parent selector "&". , 30 | body.immobile & { | ^^^^^^^^^^^^^^^^ ' input.scss 30:5 @content input.scss 22:9 grid-media-query() input.scss 29:3 root stylesheet sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1644/mixin-parent.hrx000066400000000000000000000014631355712145100272100ustar00rootroot00000000000000<===> input.scss @mixin parent { @content; } @include parent() { body.immobile & { margin-bottom: 0; } } <===> error Error: Base-level rules cannot contain the parent-selector-referencing character '&'. on line 6 of input.scss, in `@content' from line 2 of input.scss, in `parent' from line 5 of input.scss Use --trace for backtrace. <===> error-libsass Error: Top-level selectors may not contain the parent selector "&". on line 2:5 of input.scss, in mixin `parent` from line 5:12 of input.scss >> body.immobile & { ----^ <===> error-dart-sass Error: Top-level selectors may not contain the parent selector "&". , 6 | body.immobile & { | ^^^^^^^^^^^^^^^^ ' input.scss 6:3 @content input.scss 2:3 parent() input.scss 5:1 root stylesheet sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1645.hrx000066400000000000000000000013531355712145100245740ustar00rootroot00000000000000<===> input.scss @function foo($a, $should-be-empty...) { @return length($should-be-empty); } @function bar($args...) { @return call(foo, $args...); } @function args($args...) { @return $args; } $a: args(1, 2, 3); test { test: bar($a); } <===> output.css test { test: 0; } <===> warning DEPRECATION WARNING: Passing a string to call() is deprecated and will be illegal in Sass 4.0. Use call(function-reference(foo)) instead. <===> warning-dart-sass DEPRECATION WARNING: Passing a string to call() is deprecated and will be illegal in Dart Sass 2.0.0. Use call(get-function(foo)) instead. , 6 | @return call(foo, $args...); | ^^^^^^^^^^^^^^^^^^^ ' input.scss 6:11 bar() input.scss 16:9 root stylesheet sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1647/000077500000000000000000000000001355712145100240515ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1647/directives.hrx000066400000000000000000000002371355712145100267370ustar00rootroot00000000000000<===> input.scss @foo #{"directive"} { .#{"foo"} { #{"foo-prop"}: #{"foo-val"}; } } <===> output.css @foo directive { .foo { foo-prop: foo-val; } } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1647/selectors.hrx000066400000000000000000000005351355712145100266020ustar00rootroot00000000000000<===> input.scss $map: (foo: 'b', bar: c); $list: ('d', e); a { #{map-get($map, foo)} & { foo: bar; } #{map-get($map, bar)} & { foo: bar; } #{nth($list, 1)} & { foo: bar; } #{nth($list, 2)} & { foo: bar; } } <===> output.css b a { foo: bar; } c a { foo: bar; } d a { foo: bar; } e a { foo: bar; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1648.hrx000066400000000000000000000012021355712145100245700ustar00rootroot00000000000000<===> input.scss $x: 3px; /* comment 1 */ @if/* pre 1 */$x == 3px/* post 1 */{ /* if 1 */ } /* comment 2 */ @elseif/* pre 2 */$x == 2px/* post 2 */{ /* else if 2 */ } /* comment 3 */ @else/* middle 3 */if/* pre 3 */$x == 3px/* post 3 */{ /* else if 3 */ } /* comment 4 */ @else/* post 4 */{ /* else 4 */ } /* comment 5 */ <===> output.css /* comment 1 */ /* if 1 */ /* comment 5 */ <===> warning-dart-sass DEPRECATION WARNING on line 7, column 1 of input.scss: @elseif is deprecated and will not be supported in future Sass versions. Use "@else if" instead. , 7 | @elseif/* pre 2 */$x == 2px/* post 2 */{ | ^^^^^^^ ' sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1650/000077500000000000000000000000001355712145100240435ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1650/negative.hrx000066400000000000000000000004371355712145100263740ustar00rootroot00000000000000<===> input.scss :nth-of-type(2n-1), :nth-of-type(2n- 1), :nth-of-type(2n -1), :nth-of-type(2n - 1), :nth-of-type( 2n - 1 ) { color: red; } <===> output.css :nth-of-type(2n-1), :nth-of-type(2n- 1), :nth-of-type(2n -1), :nth-of-type(2n - 1), :nth-of-type(2n - 1) { color: red; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1650/positive.hrx000066400000000000000000000004361355712145100264330ustar00rootroot00000000000000<===> input.scss :nth-of-type(2n+1), :nth-of-type(2n+ 1), :nth-of-type(2n +1), :nth-of-type(2n + 1), :nth-of-type( 2n + 1 ) { color: red; } <===> output.css :nth-of-type(2n+1), :nth-of-type(2n+ 1), :nth-of-type(2n +1), :nth-of-type(2n + 1), :nth-of-type(2n + 1) { color: red; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1651/000077500000000000000000000000001355712145100240445ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1651/with.hrx000066400000000000000000000005761355712145100255520ustar00rootroot00000000000000<===> input.scss a { display: block; } .b { @at-root (with: media) { @extend .a; } } <===> error Error: Extend directives may only be used within rules. on line 6 of input.scss Use --trace for backtrace. <===> error-dart-sass Error: @extend may only be used within style rules. , 6 | @extend .a; | ^^^^^^^^^^ ' input.scss 6:5 root stylesheet sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1651/without.hrx000066400000000000000000000002241355712145100262700ustar00rootroot00000000000000<===> input.scss .a { display: block; } .b { @at-root (without: media) { @extend .a; } } <===> output.css .a, .b { display: block; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1654/000077500000000000000000000000001355712145100240475ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1654/basic.hrx000066400000000000000000000002441355712145100256530ustar00rootroot00000000000000<===> input.scss %foo { &bar { display: block; } &.bar { display: block; } } zoo { @extend %foo; } <===> output.css zoo.bar { display: block; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1654/bem.hrx000066400000000000000000000003471355712145100253410ustar00rootroot00000000000000<===> input.scss %foo, .foo { display:block; &--up { border: none; } } .zoo { @extend %foo; &--up { @extend %foo--up; } } <===> output.css .zoo, .foo { display: block; } .zoo--up, .foo--up { border: none; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1658.hrx000066400000000000000000000004211355712145100245730ustar00rootroot00000000000000<===> input.scss @else{} <===> error Error: Invalid CSS: @else must come after @if on line 1 of input.scss Use --trace for backtrace. <===> error-dart-sass Error: This at-rule is not allowed here. , 1 | @else{} | ^^^^^ ' input.scss 1:1 root stylesheet sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1667.hrx000066400000000000000000000026641355712145100246060ustar00rootroot00000000000000<===> input.scss $map: ( 1: 1, 1px: 1px ); foo { a: map-get($map, 1); b: map-get($map, 1px); } $type-scale: ( -15:0.066667rem, -10:0.186rem, -9:0.211rem, -8:0.26rem, -7:0.295rem, -6:0.364rem, -5:0.413rem, -4:0.51rem, -3:0.578rem, -2:0.714rem, -1:0.809rem, 0:1rem, 1:1.133rem, 2:1.4rem, 3:1.586rem, 4:1.96rem, 5:2.221rem, 6:2.744rem, 7:3.109rem, 8:3.842rem, 9:4.353rem, 10:5.378rem, 11:6.094rem, 12:7.53rem, 13:8.531rem, 14:10.541rem, 15:11.943rem, 16:14.758rem ); @function get-size($size) { @if map-has-key($type-scale, $size) { @return map-get($type-scale, $size); } @warn "Not a valid size."; @return null; } @function scale-size($rem-size, $steps) { $size-key: get-key-for-value($type-scale, $rem-size); @if $size-key { $new-size: $size-key + $steps; @return get-size($new-size); } @warn "Not able to find size for " + $rem-size; @return null; } @function get-key-for-value($map, $value) { @each $map-key, $map-value in $map { @if $map-value == $value { @return $map-key } } @warn $value + " not found in " + $map; @return null; } $h1-font-size: get-size(5); h1 { font-size: $h1-font-size; small { font-size: scale-size($h1-font-size, -2); color: red; } } <===> output.css foo { a: 1; b: 1px; } h1 { font-size: 2.221rem; } h1 small { font-size: 1.586rem; color: red; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1669.hrx000066400000000000000000000001241355712145100245750ustar00rootroot00000000000000<===> input.scss foo { bar: #{100%/3} } <===> output.css foo { bar: 100%/3; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_167.hrx000066400000000000000000000002241355712145100245060ustar00rootroot00000000000000<===> input.scss %l-cell, .l-cell { margin: 0 auto; max-width: 1000px; } <===> output.css .l-cell { margin: 0 auto; max-width: 1000px; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1670.hrx000066400000000000000000000015531355712145100245740ustar00rootroot00000000000000<===> input.scss .this-should-error { @extend %an-undefined-placeholder; } <===> error Error: ".this-should-error" failed to @extend "%an-undefined-placeholder". The selector "%an-undefined-placeholder" was not found. Use "@extend %an-undefined-placeholder !optional" if the extend should be able to fail. on line 2 of input.scss Use --trace for backtrace. <===> error-libsass Error: The target selector was not found. Use "@extend %an-undefined-placeholder !optional" to avoid this error. on line 2 of input.scss >> @extend %an-undefined-placeholder; ------------^ <===> error-dart-sass Error: The target selector was not found. Use "@extend %an-undefined-placeholder !optional" to avoid this error. , 2 | @extend %an-undefined-placeholder; | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 2:3 root stylesheet sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1671.hrx000066400000000000000000000013621355712145100245730ustar00rootroot00000000000000<===> options.yml --- :todo: - libsass <===> input.scss $foo: 5px; a { background: url('img.png') no-repeat 6px 0 / #{$foo}; background: url('img.png') no-repeat 6px 1 / #{$foo}; background: url('img.png') no-repeat 6px 1px / #{$foo}; background: url('img.png') no-repeat 6px #{$foo} / 0; background: url('img.png') no-repeat 6px #{$foo} / 1; background: url('img.png') no-repeat 6px #{$foo} / 1px; } <===> output.css a { background: url("img.png") no-repeat 6px 0/5px; background: url("img.png") no-repeat 6px 1/5px; background: url("img.png") no-repeat 6px 1px/5px; background: url("img.png") no-repeat 6px 5px/0; background: url("img.png") no-repeat 6px 5px/1; background: url("img.png") no-repeat 6px 5px/1px; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1672.hrx000066400000000000000000000001721355712145100245720ustar00rootroot00000000000000<===> input.scss $breakpoint: 'tablet'; .-#{$breakpoint} { color: #FFF; } <===> output.css .-tablet { color: #FFF; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1673.hrx000066400000000000000000000003171355712145100245740ustar00rootroot00000000000000<===> input.scss %foo { test: outer; &-inner { test: inner; } } .foo { @extend %foo; &.inner { @extend %foo-inner; } } <===> output.css .foo { test: outer; } .foo.inner { test: inner; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1681/000077500000000000000000000000001355712145100240475ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1681/calc.hrx000066400000000000000000000007341355712145100255000ustar00rootroot00000000000000<===> input.scss @function calc() { @return null; } <===> error-dart-sass Error: Invalid function name. , 1 | @function calc() { | ^^^^^^^^^^^^^^^^ ' input.scss 1:1 root stylesheet <===> output.css <===> warning DEPRECATION WARNING on line 1 of /sass/spec/libsass-issues/issue_1681/calc/input.scss: Naming a function "calc" is disallowed and will be an error in future versions of Sass. This name conflicts with an existing CSS function with special parse rules. sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1681/element.hrx000066400000000000000000000007531355712145100262300ustar00rootroot00000000000000<===> input.scss @function element() { @return null; } <===> error-dart-sass Error: Invalid function name. , 1 | @function element() { | ^^^^^^^^^^^^^^^^^^^ ' input.scss 1:1 root stylesheet <===> output.css <===> warning DEPRECATION WARNING on line 1 of /sass/spec/libsass-issues/issue_1681/element/input.scss: Naming a function "element" is disallowed and will be an error in future versions of Sass. This name conflicts with an existing CSS function with special parse rules. sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1681/expression.hrx000066400000000000000000000007721355712145100267770ustar00rootroot00000000000000<===> input.scss @function expression() { @return null; } <===> error-dart-sass Error: Invalid function name. , 1 | @function expression() { | ^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 1:1 root stylesheet <===> output.css <===> warning DEPRECATION WARNING on line 1 of /sass/spec/libsass-issues/issue_1681/expression/input.scss: Naming a function "expression" is disallowed and will be an error in future versions of Sass. This name conflicts with an existing CSS function with special parse rules. sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1681/url.hrx000066400000000000000000000007271355712145100254020ustar00rootroot00000000000000<===> input.scss @function url() { @return null; } <===> error-dart-sass Error: Invalid function name. , 1 | @function url() { | ^^^^^^^^^^^^^^^ ' input.scss 1:1 root stylesheet <===> output.css <===> warning DEPRECATION WARNING on line 1 of /sass/spec/libsass-issues/issue_1681/url/input.scss: Naming a function "url" is disallowed and will be an error in future versions of Sass. This name conflicts with an existing CSS function with special parse rules. sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1683/000077500000000000000000000000001355712145100240515ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1683/function.hrx000066400000000000000000000006731355712145100264270ustar00rootroot00000000000000<===> input.scss @function foo($x, $y) { @return null } a { b: foo(1 2 3...); } <===> error-dart-sass Error: Only 2 arguments allowed, but 3 were passed. , 4 | b: foo(1 2 3...); | ^^^^^^^^^^^^^ ' input.scss 4:6 foo() input.scss 4:6 root stylesheet <===> output.css <===> warning WARNING: Function foo takes 2 arguments but 3 were passed. on line 4 of input.scss This will be an error in future versions of Sass. sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1683/mixin.hrx000066400000000000000000000006731355712145100257260ustar00rootroot00000000000000<===> input.scss @mixin foo($x, $y) { } a { @include foo(1 2 3...); } <===> error-dart-sass Error: Only 2 arguments allowed, but 3 were passed. , 4 | @include foo(1 2 3...); | ^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 4:3 foo() input.scss 4:3 root stylesheet <===> output.css <===> warning WARNING: Mixin foo takes 2 arguments but 3 were passed. on line 4 of input.scss This will be an error in future versions of Sass. sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1683/warning000066400000000000000000000003031355712145100254350ustar00rootroot00000000000000WARNING: Function foo takes 2 arguments but 3 were passed. on line 4 of /sass/sass-spec/spec/libsass-closed-issues/issue_1683/input.scss This will be an error in future versions of Sass. sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1685.hrx000066400000000000000000000001471355712145100246000ustar00rootroot00000000000000<===> input.scss @function foo($x, $y...) { @return null } a { b: foo(1 2 3...); } <===> output.css sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1706.hrx000066400000000000000000000016711355712145100245750ustar00rootroot00000000000000<===> input.scss @function calc($e) { @return custom; } @function -foo-calc($e) { @return custom; } .test { a: calc(1px * 1%); b: -foo-calc(2px * 2%); c: call(calc, 3px * 3%); } <===> error-dart-sass Error: Invalid function name. , 1 | @function calc($e) { @return custom; } | ^^^^^^^^^^^^^^^^^^ ' input.scss 1:1 root stylesheet <===> output.css .test { a: calc(1px * 1%); b: -foo-calc(2px * 2%); c: custom; } <===> warning DEPRECATION WARNING on line 1 of /sass/spec/libsass-issues/issue_1706/input.scss: Naming a function "calc" is disallowed and will be an error in future versions of Sass. This name conflicts with an existing CSS function with special parse rules. DEPRECATION WARNING on line 2 of /sass/spec/libsass-issues/issue_1706/input.scss: Naming a function "-foo-calc" is disallowed and will be an error in future versions of Sass. This name conflicts with an existing CSS function with special parse rules. sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1709.hrx000066400000000000000000000020141355712145100245700ustar00rootroot00000000000000<===> options.yml --- :todo: - libsass <===> input.scss @mixin transition( $prefix_properties, $transitions... ) { @if not str-index( inspect( $transitions ), ',') { $transitions: ( $transitions ); } @each $prefix in -webkit-, -moz-, -ms-, -o-, '' { $prefixed: ''; @each $transition in $transitions { @if $prefix_properties and '' != $prefix { $prefixed: #{$prefix}$transition,$transition; } @else { $prefixed: $transition; } } #{$prefix}transition: $prefixed; } } .my-element { @include transition( true, transform 0.25s linear ); } <===> output.css .my-element { -webkit-transition: -webkit- transform 0.25s linear, transform 0.25s linear; -moz-transition: -moz- transform 0.25s linear, transform 0.25s linear; -ms-transition: -ms- transform 0.25s linear, transform 0.25s linear; -o-transition: -o- transform 0.25s linear, transform 0.25s linear; transition: transform 0.25s linear; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1710.hrx000066400000000000000000000002071355712145100245620ustar00rootroot00000000000000<===> input.scss ul, ol { & & { display: block; } } <===> output.css ul ul, ul ol, ol ul, ol ol { display: block; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1715.hrx000066400000000000000000000005471355712145100245760ustar00rootroot00000000000000<===> input.scss div { color: red(blue, purple); } <===> error Error: wrong number of arguments (2 for 1) for `red' on line 2 of input.scss Use --trace for backtrace. <===> error-dart-sass Error: Only 1 argument allowed, but 2 were passed. , 2 | color: red(blue, purple); | ^^^^^^^^^^^^^^^^^ ' input.scss 2:10 root stylesheet sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1720.hrx000066400000000000000000000006761355712145100245750ustar00rootroot00000000000000<===> input.scss .test { a: a#{b//}c; } <===> error Error: Invalid CSS after "}": expected ";", was "" on line 4 of input.scss Use --trace for backtrace. <===> error-libsass Error: Invalid CSS after " a: a#{b": expected expression (e.g. 1px, bold), was "//}c;" on line 2:10 of input.scss >> a: a#{b//}c; ---------^ <===> error-dart-sass Error: expected "}". , 3 | } | ^ ' input.scss 3:2 root stylesheet sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1722.hrx000066400000000000000000000002661355712145100245720ustar00rootroot00000000000000<===> input.scss $score: (item-height: 1.12em); .test { background-position: 0 -#{map-get($score, item-height)}; } <===> output.css .test { background-position: 0 -1.12em; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1723.hrx000066400000000000000000000023621355712145100245720ustar00rootroot00000000000000<===> input.scss test-1 test-2 test-3 test-4 test-5, test-6 test-7 test-8 test-9 test-10 { @each $set in & { set: inspect($set); @each $selector in $set { selector: inspect($selector); } } } test-1 test-2 test-3 test-4 test-5, test-6 test-7 test-8 test-9 test-10 { @for $i from 1 through length(&) { $set: nth(&, $i); set: inspect($set); @each $selector in $set { selector: inspect($selector); } } } <===> output.css test-1 test-2 test-3 test-4 test-5, test-6 test-7 test-8 test-9 test-10 { set: test-1 test-2 test-3 test-4 test-5; selector: test-1; selector: test-2; selector: test-3; selector: test-4; selector: test-5; set: test-6 test-7 test-8 test-9 test-10; selector: test-6; selector: test-7; selector: test-8; selector: test-9; selector: test-10; } test-1 test-2 test-3 test-4 test-5, test-6 test-7 test-8 test-9 test-10 { set: test-1 test-2 test-3 test-4 test-5; selector: test-1; selector: test-2; selector: test-3; selector: test-4; selector: test-5; set: test-6 test-7 test-8 test-9 test-10; selector: test-6; selector: test-7; selector: test-8; selector: test-9; selector: test-10; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1726.hrx000066400000000000000000000001601355712145100245670ustar00rootroot00000000000000<===> input.scss item { background: #{2px} 2px /*red*/; } <===> output.css item { background: 2px 2px; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1729.hrx000066400000000000000000000012531355712145100245760ustar00rootroot00000000000000<===> input.scss %place-to-go { font-size: 1em; } a::foo(1){ @extend %place-to-go; } a::foo(2){ @extend %place-to-go; } b::foo(1){ @extend %place-to-go; } b::foo(2){ @extend %place-to-go; } :bar(1){ @extend %place-to-go; } :bar(2){ @extend %place-to-go; } :bar(3){ @extend %place-to-go; } [foo]{ @extend %place-to-go; } [bar]{ @extend %place-to-go; } [baz]{ @extend %place-to-go; } [bar="1"]{ @extend %place-to-go; } [bar="2"]{ @extend %place-to-go; } [bar="3"]{ @extend %place-to-go; } <===> output.css [bar="3"], [bar="2"], [bar="1"], [baz], [bar], [foo], :bar(3), :bar(2), :bar(1), b::foo(2), b::foo(1), a::foo(2), a::foo(1) { font-size: 1em; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1732/000077500000000000000000000000001355712145100240445ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1732/invalid/000077500000000000000000000000001355712145100254725ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1732/invalid/mixin-def.hrx000066400000000000000000000006071355712145100301000ustar00rootroot00000000000000<===> input.scss @mixin a { b: c; } @include a(); <===> error Error: Properties are only allowed within rules, directives, mixin includes, or other properties. on line 2 of input.scss Use --trace for backtrace. <===> error-dart-sass Error: Declarations may only be used within style rules. , 2 | b: c; | ^^^^ ' input.scss 2:3 a() input.scss 5:1 root stylesheet sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1732/valid/000077500000000000000000000000001355712145100251435ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1732/valid/directive.hrx000066400000000000000000000001671355712145100276500ustar00rootroot00000000000000<===> input.scss @media all { .foo { color: red; } } <===> output.css @media all { .foo { color: red; } } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1732/valid/keyframe.hrx000066400000000000000000000003301355712145100274650ustar00rootroot00000000000000<===> input.scss @keyframes baz { 0% { top: 0; bottom: 100; } 100% { top: 100; bottom: 0; } } <===> output.css @keyframes baz { 0% { top: 0; bottom: 100; } 100% { top: 100; bottom: 0; } } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1732/valid/mixin-call.hrx000066400000000000000000000002051355712145100277200ustar00rootroot00000000000000<===> input.scss @mixin bar() { @content; } foo { @include bar { color: blue; } } <===> output.css foo { color: blue; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1732/valid/mixin-def.hrx000066400000000000000000000000701355712145100275430ustar00rootroot00000000000000<===> input.scss @mixin a { b: c; } <===> output.css sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1732/valid/propset.hrx000066400000000000000000000002211355712145100273550ustar00rootroot00000000000000<===> input.scss foo { border: { width: 1px; color: green; } } <===> output.css foo { border-width: 1px; border-color: green; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1732/valid/ruleset.hrx000066400000000000000000000001231355712145100273450ustar00rootroot00000000000000<===> input.scss foo { color: green; } <===> output.css foo { color: green; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1733.hrx000066400000000000000000000001521355712145100245660ustar00rootroot00000000000000<===> input.scss foo { a: #ff6600; b: #ff6600 } <===> output.css foo { a: #ff6600; b: #ff6600; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1739/000077500000000000000000000000001355712145100240535ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1739/basic.hrx000066400000000000000000000017011355712145100256560ustar00rootroot00000000000000<===> input.scss div { baz: 2/3; baz: 2/ 3; baz: 2 /3; baz: 2 / 3; } add { baz: 2+3; baz: 2+ 3; baz: 2 +3; baz: 2 + 3; } sub { baz: 2-3; baz: 2- 3; baz: 2 -3; baz: 2 - 3; } mul { baz: 2*3; baz: 2* 3; baz: 2 *3; baz: 2 * 3; } mod { baz: 2%3; baz: 2% 3; baz: 2 %3; baz: 2 % 3; } <===> output.css div { baz: 2/3; baz: 2/ 3; baz: 2 /3; baz: 2 / 3; } add { baz: 5; baz: 5; baz: 2 +3; baz: 5; } sub { baz: -1; baz: -1; baz: 2 -3; baz: -1; } mul { baz: 6; baz: 6; baz: 6; baz: 6; } mod { baz: 2% 3; baz: 2% 3; baz: 2; baz: 2; } <===> output-dart-sass.css div { baz: 2/3; baz: 2/3; baz: 2/3; baz: 2/3; } add { baz: 5; baz: 5; baz: 5; baz: 5; } sub { baz: -1; baz: -1; baz: 2 -3; baz: -1; } mul { baz: 6; baz: 6; baz: 6; baz: 6; } mod { baz: 2% 3; baz: 2% 3; baz: 2; baz: 2; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1739/interpolate/000077500000000000000000000000001355712145100264015ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1739/interpolate/both.hrx000066400000000000000000000016101355712145100300560ustar00rootroot00000000000000<===> options.yml --- :todo: - libsass <===> input.scss div { baz: #{1/2}/#{1/2}; baz: #{1/ 2}/ #{1/ 2}; baz: #{1 /2} /#{1 /2}; baz: #{1 / 2} / #{1 / 2}; } add { baz: #{1+2}+#{1+2}; baz: #{1+ 2}+ #{1+ 2}; baz: #{1 +2} +#{1 +2}; baz: #{1 + 2} + #{1 + 2}; } sub { baz: #{1-2}-#{1-2}; baz: #{1- 2}- #{1- 2}; baz: #{1 -2} -#{1 -2}; baz: #{1 - 2} - #{1 - 2}; } mul { baz: #{1*2}*#{1*2}; baz: #{1* 2}* #{1* 2}; baz: #{1 *2} *#{1 *2}; baz: #{1 * 2} * #{1 * 2}; } mod { baz: #{1%2}%#{1%2}; baz: #{1% 2}% #{1% 2}; baz: #{1 %2} %#{1 %2}; baz: #{1 % 2} % #{1 % 2}; } <===> error Error: Undefined operation: "2 times 2". <===> error-dart-sass Error: Undefined operation "2 * 2". , 23 | baz: #{1*2}*#{1*2}; | ^^^^^^^^^^^^^ ' input.scss 23:8 root stylesheet sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1739/interpolate/left.hrx000066400000000000000000000013621355712145100300600ustar00rootroot00000000000000<===> options.yml --- :todo: - libsass <===> input.scss div { baz: #{1/2}/3; baz: #{1/ 2}/ 3; baz: #{1 /2} /3; baz: #{1 / 2} / 3; } add { baz: #{1+2}+3; baz: #{1+ 2}+ 3; baz: #{1 +2} +3; baz: #{1 + 2} + 3; } sub { baz: #{1-2}-3; baz: #{1- 2}- 3; baz: #{1 -2} -3; baz: #{1 - 2} - 3; } mul { baz: #{1*2}*3; baz: #{1* 2}* 3; baz: #{1 *2} *3; baz: #{1 * 2} * 3; } mod { baz: #{1%2}%3; baz: #{1% 2}% 3; baz: #{1 %2} %3; baz: #{1 % 2} % 3; } <===> error Error: Undefined operation: "2 times 3". <===> error-dart-sass Error: Undefined operation "2 * 3". , 23 | baz: #{1*2}*3; | ^^^^^^^^ ' input.scss 23:8 root stylesheet sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1739/interpolate/right.hrx000066400000000000000000000013551355712145100302450ustar00rootroot00000000000000<===> options.yml --- :todo: - libsass <===> input.scss div { baz: 3/#{1/2}; baz: 3/ #{1/ 2}; baz: 3 /#{1 /2}; baz: 3 / #{1 / 2}; } add { baz: 3+#{1+2}; baz: 3+ #{1+ 2}; baz: 3 +#{1 +2}; baz: 3 + #{1 + 2}; } sub { baz: 3-#{1-2}; baz: 3- #{1- 2}; baz: 3 -#{1 -2}; baz: 3 - #{1 - 2}; } mul { baz: 3*#{1*2}; baz: 3* #{1* 2}; baz: 3 *#{1 *2}; baz: 3 * #{1 * 2}; } mod { baz: 3%#{1%2}; baz: 3% #{1% 2}; baz: 3 %#{1 %2}; baz: 3 % #{1 % 2}; } <===> error Error: Undefined operation: "3 times 2". <===> error-dart-sass Error: Undefined operation "3 * 2". , 23 | baz: 3*#{1*2}; | ^^^^^^^^ ' input.scss 23:8 root stylesheet sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1741.hrx000066400000000000000000000002541355712145100245700ustar00rootroot00000000000000<===> input.scss .header { .nav-text-link:not(&.popover-link) { margin: 10px; } } <===> output.css .nav-text-link:not(.header.popover-link) { margin: 10px; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1752.hrx000066400000000000000000000002651355712145100245740ustar00rootroot00000000000000<===> input.scss @mixin some-fn($args...) { @each $item in $args { @debug($item); } } foo { @include some-fn(()); } <===> output.css <===> warning input.scss:3 DEBUG: () sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1757/000077500000000000000000000000001355712145100240535ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1757/each.hrx000066400000000000000000000006221355712145100254760ustar00rootroot00000000000000<===> input.scss .test .nest { length: length(&); @each $list in & { list: $list; length: length($list); } } .test, .other { length: length(&); @each $list in & { list: $list; length: length($list); } } <===> output.css .test .nest { length: 1; list: .test .nest; length: 2; } .test, .other { length: 2; list: .test; length: 1; list: .other; length: 1; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1757/for.hrx000066400000000000000000000007401355712145100253650ustar00rootroot00000000000000<===> input.scss .test .nest { length: length(&); @for $i from 1 through length(&) { $list: nth(&, $i); list: $list; length: length($list); } } .test, .other { length: length(&); @for $i from 1 through length(&) { $list: nth(&, $i); list: $list; length: length($list); } } <===> output.css .test .nest { length: 1; list: .test .nest; length: 2; } .test, .other { length: 2; list: .test; length: 1; list: .other; length: 1; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1765.hrx000066400000000000000000000002031355712145100245700ustar00rootroot00000000000000<===> input.scss foo { bar: 20px /* height */ + 2*5px /* padding */ + 2*1px /*border*/; } <===> output.css foo { bar: 32px; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1766.hrx000066400000000000000000000003331355712145100245750ustar00rootroot00000000000000<===> foo.scss foo { bar: baz } <===> input.scss @media all { @import "foo.scss" } @media all { @import "foo.scss"; } <===> output.css @media all { foo { bar: baz; } } @media all { foo { bar: baz; } } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1768.hrx000066400000000000000000000004021355712145100245740ustar00rootroot00000000000000<===> input.scss @debug(()); @debug(foo, (), bar); @debug(foo () bar); @debug((foo: (), bar: baz)); <===> output.css <===> warning input.scss:1 DEBUG: () input.scss:2 DEBUG: foo, (), bar input.scss:3 DEBUG: foo () bar input.scss:4 DEBUG: (foo: (), bar: baz) sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1770.hrx000066400000000000000000000005761355712145100246010ustar00rootroot00000000000000<===> input.scss @function returns-string() { @return "selector"; } #{"selector"} { color: red; } #{returns-string()} { color: red; } #{"selector"} selector2 { color: red; } #{returns-string()} selector2 { color: red; } <===> output.css selector { color: red; } selector { color: red; } selector selector2 { color: red; } selector selector2 { color: red; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1776.hrx000066400000000000000000000001541355712145100245770ustar00rootroot00000000000000<===> input.scss h1 { width :calc(100% - 110px); } <===> output.css h1 { width: calc(100% - 110px); } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1786/000077500000000000000000000000001355712145100240555ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1786/input.scss000066400000000000000000000001211355712145100261030ustar00rootroot00000000000000$input: "\0_\a_\A"; test { bug1: "#{"_\a" + b}"; bug2: "#{a $input}"; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1786/output.css000066400000000000000000000001011355712145100261170ustar00rootroot00000000000000@charset "UTF-8"; test { bug1: "_\a b"; bug2: "a �_ _ "; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1792.hrx000066400000000000000000000003441355712145100245760ustar00rootroot00000000000000<===> input.scss test { test1: (3px*4in) / 1in; test2: ((1px*2in) + (3px*4in)) / 1in; } <===> output.css test { test1: 12px; test2: 14px; } <===> output-dart-sass.css test { test1: 0.125in; test2: 0.1458333333in; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1793.hrx000066400000000000000000000005501355712145100245760ustar00rootroot00000000000000<===> input.scss @media (max-width: (2px*5in)) { foo { bar: baz; } } <===> error Error: 10in*px isn't a valid CSS value. on line 1 of input.scss Use --trace for backtrace. <===> error-dart-sass Error: 10px*in isn't a valid CSS value. , 1 | @media (max-width: (2px*5in)) { | ^^^^^^^^^ ' input.scss 1:20 root stylesheet sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1794.hrx000066400000000000000000000002311355712145100245730ustar00rootroot00000000000000<===> input.scss @media (max-width /*comment*/ : 500px) { foo { bar: baz; } } <===> output.css @media (max-width: 500px) { foo { bar: baz; } } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1796.hrx000066400000000000000000000014131355712145100246000ustar00rootroot00000000000000<===> input.scss .parent { .brother, .sister, .cousin { color: green; sel: &; $new-sel: (); @each $s in & { $last: nth($s, -1); $new-sel: append($new-sel, $s #{'+'} $last, comma); x: $new-sel; } @at-root #{$new-sel} { debug: foo; } } } <===> output.css .parent .brother, .parent .sister, .parent .cousin { color: green; sel: .parent .brother, .parent .sister, .parent .cousin; x: .parent .brother + .brother; x: .parent .brother + .brother, .parent .sister + .sister; x: .parent .brother + .brother, .parent .sister + .sister, .parent .cousin + .cousin; } .parent .brother + .brother, .parent .sister + .sister, .parent .cousin + .cousin { debug: foo; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1797.hrx000066400000000000000000000006501355712145100246030ustar00rootroot00000000000000<===> input.scss %not { color: red; } .not { @extend %not; } div:has(%not) { color: black; } bar { span:not(%not) { color: black; } span:not(&.foo) { color: black; } span:not(&%not) { color: black; } } <===> output.css .not { color: red; } div:has(.not) { color: black; } bar span:not(.not) { color: black; } span:not(bar.foo) { color: black; } span:not(bar.not) { color: black; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1798/000077500000000000000000000000001355712145100240605ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1798/1.hrx000066400000000000000000000001261355712145100247420ustar00rootroot00000000000000<===> input.scss a /*#{"}*/ { margin: 2px; } <===> output.css a { margin: 2px; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1798/2.hrx000066400000000000000000000001261355712145100247430ustar00rootroot00000000000000<===> input.scss a /*#{#{*/ { margin: 2px; } <===> output.css a { margin: 2px; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1801/000077500000000000000000000000001355712145100240415ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1801/import-cycle.hrx000066400000000000000000000011471355712145100271760ustar00rootroot00000000000000<===> _alpha.scss @import 'beta'; <===> _beta.scss @import 'alpha'; <===> input.scss @import 'alpha'; <===> error Error: An @import loop has been found: input.scss imports _alpha.scss _alpha.scss imports _beta.scss _beta.scss imports _alpha.scss on line 1 of _beta.scss from line 1 of _alpha.scss from line 1 of input.scss Use --trace for backtrace. <===> error-dart-sass Error: This file is already being loaded. , 1 | @import 'alpha'; | ^^^^^^^ ' _beta.scss 1:9 @import _alpha.scss 1:9 @import input.scss 1:9 root stylesheet sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1803/000077500000000000000000000000001355712145100240435ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1803/nested.hrx000066400000000000000000000005231355712145100260500ustar00rootroot00000000000000<===> input.scss a { display: block b { c { foo: bar; } } } <===> error Error: Illegal nesting: Only properties may be nested beneath properties. on line 5 of input.scss Use --trace for backtrace. <===> error-dart-sass Error: expected ":". , 5 | c { | ^ ' input.scss 5:7 root stylesheet sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1803/shallow.hrx000066400000000000000000000002011355712145100262300ustar00rootroot00000000000000<===> input.scss a { display: block b { foo: bar; } } <===> output.css a { display: block b; display-foo: bar; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1804/000077500000000000000000000000001355712145100240445ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1804/inline.hrx000066400000000000000000000004721355712145100260500ustar00rootroot00000000000000<===> input.scss foo { bar: #{(2px*5in)}; } <===> error Error: 10in*px isn't a valid CSS value. on line 2 of input.scss Use --trace for backtrace. <===> error-dart-sass Error: 10px*in isn't a valid CSS value. , 2 | bar: #{(2px*5in)}; | ^^^^^^^^^ ' input.scss 2:10 root stylesheet sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1804/variable.hrx000066400000000000000000000005271355712145100263600ustar00rootroot00000000000000<===> input.scss $foo: 2px; $bar: 5in; foo { bar: #{($foo*$bar)}; } <===> error Error: 10in*px isn't a valid CSS value. on line 5 of input.scss Use --trace for backtrace. <===> error-dart-sass Error: 10px*in isn't a valid CSS value. , 5 | bar: #{($foo*$bar)}; | ^^^^^^^^^^^ ' input.scss 5:10 root stylesheet sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1812.hrx000066400000000000000000000003251355712145100245660ustar00rootroot00000000000000<===> input.scss @svg-load test url(foo.svg) { fill: red; } .foo { background: svg-inline(test); } <===> output.css @svg-load test url(foo.svg) { fill: red; } .foo { background: svg-inline(test); } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1813.hrx000066400000000000000000000003141355712145100245650ustar00rootroot00000000000000<===> input.scss @function foo($value) { $a: bar($value); @return $value; } @function bar($list) { @while (true) { @return true; } } a { b: foo(true); } <===> output.css a { b: true; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1819.hrx000066400000000000000000000001511355712145100245720ustar00rootroot00000000000000<===> input.scss foo { bar: type-of(selector-unify('p', 'a')); } <===> output.css foo { bar: null; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1822.hrx000066400000000000000000000006641355712145100245750ustar00rootroot00000000000000<===> input.scss .btn { .open& { color: #000; } } <===> error Error: Invalid CSS after ".open": expected "{", was "&" "&" may only be used at the beginning of a compound selector. on line 2 of input.scss Use --trace for backtrace. <===> error-dart-sass Error: "&" may only used at the beginning of a compound selector. , 2 | .open&{ | ^ ' input.scss 2:10 root stylesheet sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1825.hrx000066400000000000000000000001671355712145100245760ustar00rootroot00000000000000<===> input.scss foo { &-- { &baz { color: red; } } } <===> output.css foo--baz { color: red; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1839.hrx000066400000000000000000000002121355712145100245720ustar00rootroot00000000000000<===> input.scss @custom-media --large-viewport (min-width: 1001px); <===> output.css @custom-media --large-viewport (min-width: 1001px); sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_185/000077500000000000000000000000001355712145100237655ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_185/hoisting.hrx000066400000000000000000000013521355712145100263350ustar00rootroot00000000000000<===> input.scss @media only screen { .foo { content: bar; @media (min-width: 1337px) { content: baz; } content: foo; } } $foo: "(min-width: 0) and (max-width: 599px), (min-width: 600px) and (max-width: 899px)"; @media #{$foo} { $bar: "(min-width: 0) and (max-width: 599px)"; @media #{$bar} { .foo { content: bar; } } } <===> output.css @media only screen { .foo { content: bar; content: foo; } } @media only screen and (min-width: 1337px) { .foo { content: baz; } } @media (min-width: 0) and (max-width: 599px) and (min-width: 0) and (max-width: 599px), (min-width: 600px) and (max-width: 899px) and (min-width: 0) and (max-width: 599px) { .foo { content: bar; } } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_185/media_level_4.hrx000066400000000000000000000006701355712145100272040ustar00rootroot00000000000000<===> input.scss .foo { @media (pointer: none) { content: foo; @media (scripting) { content: baz; @media (light-level: dim) { content: bar; } } } } <===> output.css @media (pointer: none) { .foo { content: foo; } } @media (pointer: none) and (scripting) { .foo { content: baz; } } @media (pointer: none) and (scripting) and (light-level: dim) { .foo { content: bar; } } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_185/media_wrapper_selector.hrx000066400000000000000000000017011355712145100312260ustar00rootroot00000000000000<===> input.scss @media all { .bar { content: baz; } @media (min-width: 1337px) { .foo { content: bar; } } } @media all { .bar { content: baz; } @media (min-width: 1337px) { .baz { content: foo; } @media (max-width: 42em) { .foo { content: bar; } } } } <===> output.css @media all { .bar { content: baz; } } @media all and (min-width: 1337px) { .foo { content: bar; } } @media all { .bar { content: baz; } } @media all and (min-width: 1337px) { .baz { content: foo; } } @media all and (min-width: 1337px) and (max-width: 42em) { .foo { content: bar; } } <===> output-dart-sass.css @media all { .bar { content: baz; } } @media (min-width: 1337px) { .foo { content: bar; } } @media all { .bar { content: baz; } } @media (min-width: 1337px) { .baz { content: foo; } } @media (min-width: 1337px) and (max-width: 42em) { .foo { content: bar; } } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_185/merge_no_repeat.hrx000066400000000000000000000006271355712145100276500ustar00rootroot00000000000000<===> input.scss .foo { content: foo; @media only screen and (min-width: 1337px) { content: bar; @media only screen and (max-width: 42em) { content: baz; } } } <===> output.css .foo { content: foo; } @media only screen and (min-width: 1337px) { .foo { content: bar; } } @media only screen and (min-width: 1337px) and (max-width: 42em) { .foo { content: baz; } } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_185/mixin.hrx000066400000000000000000000016551355712145100256430ustar00rootroot00000000000000<===> input.scss @function shift($list) { @if length($list) == 1 { @return (); } $new: (); @for $i from 2 through length($list) { $new: append($new, nth($list, $i)); } @return $new; } @mixin media($medias...) { @if length($medias) == 0 { @content; } @else { @media #{nth($medias, 1)} { @include media(shift($medias)...) { @content; } } } } .foo { @include media('only screen', '(color)', '(orientation: portrait)') { content: bar; } } @include media('all', '(min-width: 42em)') { .foo { content: bar; } } <===> output.css @media only screen and (color) and (orientation: portrait) { .foo { content: bar; } } @media all and (min-width: 42em) { .foo { content: bar; } } <===> output-dart-sass.css @media only screen and (color) and (orientation: portrait) { .foo { content: bar; } } @media (min-width: 42em) { .foo { content: bar; } } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_185/selector_wrapper_media.hrx000066400000000000000000000017071355712145100312340ustar00rootroot00000000000000<===> input.scss .foo { @media all { content: baz; @media (min-width: 1337px) { content: bar; } } } .foo { @media all { content: baz; @media (min-width: 1337px) { content: foo; @media (max-width: 42em) { content: bar; } } } } <===> output.css @media all { .foo { content: baz; } } @media all and (min-width: 1337px) { .foo { content: bar; } } @media all { .foo { content: baz; } } @media all and (min-width: 1337px) { .foo { content: foo; } } @media all and (min-width: 1337px) and (max-width: 42em) { .foo { content: bar; } } <===> output-dart-sass.css @media all { .foo { content: baz; } } @media (min-width: 1337px) { .foo { content: bar; } } @media all { .foo { content: baz; } } @media (min-width: 1337px) { .foo { content: foo; } } @media (min-width: 1337px) and (max-width: 42em) { .foo { content: bar; } } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1873.hrx000066400000000000000000000005511355712145100245760ustar00rootroot00000000000000<===> input.scss .a { display: block; } .b { @at-root (with: media) { @extend .a; } } <===> error Error: Extend directives may only be used within rules. input.scss Use --trace for backtrace. <===> error-dart-sass Error: @extend may only be used within style rules. , 7 | @extend .a; | ^^^^^^^^^^ ' input.scss 7:5 root stylesheet sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1886.hrx000066400000000000000000000001351355712145100246000ustar00rootroot00000000000000<===> input.scss body { background: url() } <===> output.css body { background: url(); } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1889.hrx000066400000000000000000000003711355712145100246050ustar00rootroot00000000000000<===> input.scss @media (min-width: 640px) { /* comment */ } div { @media (min-width: 320px) { /* comment */ } } <===> output.css @media (min-width: 640px) { /* comment */ } @media (min-width: 320px) { div { /* comment */ } } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1890.hrx000066400000000000000000000004471355712145100246010ustar00rootroot00000000000000<===> input.scss .wrap { @media (min-width: 480px) { display: block; @at-root (without: media){ .box { display: inline-block; } } } } <===> output.css @media (min-width: 480px) { .wrap { display: block; } } .wrap .box { display: inline-block; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1898.hrx000066400000000000000000000003711355712145100246050ustar00rootroot00000000000000<===> input.scss @media (min-width: 640px) { /* comment */ } div { @media (min-width: 320px) { /* comment */ } } <===> output.css @media (min-width: 640px) { /* comment */ } @media (min-width: 320px) { div { /* comment */ } } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1901.hrx000066400000000000000000000001561355712145100245670ustar00rootroot00000000000000<===> input.scss a, b { &:not(c) { d: e; } } <===> output.css a:not(c), b:not(c) { d: e; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1904.hrx000066400000000000000000000001531355712145100245670ustar00rootroot00000000000000<===> input.scss .foo { &--#{'bar'} { color: red; } } <===> output.css .foo--bar { color: red; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1907.hrx000066400000000000000000000001421355712145100245700ustar00rootroot00000000000000<===> input.scss foo { bar: 'test' + '1 #{2} 3'; } <===> output.css foo { bar: "test1 2 3"; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1915.hrx000066400000000000000000000002751355712145100245760ustar00rootroot00000000000000<===> input.scss @mixin wrapper() { .wrapped { @content; } } %ext { background: #000; } @include wrapper() { @extend %ext; } <===> output.css .wrapped { background: #000; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1916.hrx000066400000000000000000000017671355712145100246060ustar00rootroot00000000000000<===> input.scss .z-depth-1 { box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.16), 0 2px 10px 0 rgba(0, 0, 0, 0.12); } .z-depth-1-half { box-shadow: 0 5px 11px 0 rgba(0, 0, 0, 0.18), 0 4px 15px 0 rgba(0, 0, 0, 0.15); } .btn { @extend .z-depth-1; &:hover { @extend .z-depth-half-1; } } <===> error Error: ".btn:hover" failed to @extend ".z-depth-half-1". The selector ".z-depth-half-1" was not found. Use "@extend .z-depth-half-1 !optional" if the extend should be able to fail. on line 13 of input.scss Use --trace for backtrace. <===> error-libsass Error: The target selector was not found. Use "@extend .z-depth-half-1 !optional" to avoid this error. on line 13 of input.scss >> @extend .z-depth-half-1; ------------^ <===> error-dart-sass Error: The target selector was not found. Use "@extend .z-depth-half-1 !optional" to avoid this error. , 13 | @extend .z-depth-half-1; | ^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 13:5 root stylesheet sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_192.hrx000066400000000000000000000031211355712145100245030ustar00rootroot00000000000000<===> input.scss @function test($from, $to) { @warn 'Starting loop'; @for $i from $from through $to { @warn 'Step #{$i}' ; } @warn 'Finished loop'; @return 100%; } body { width: test(0, 1); height: test(-1, 1); } <===> output.css body { width: 100%; height: 100%; } <===> warning WARNING: Starting loop on line 2 of input.scss WARNING: Step 0 on line 4 of input.scss WARNING: Step 1 on line 4 of input.scss WARNING: Finished loop on line 6 of input.scss WARNING: Starting loop on line 2 of input.scss WARNING: Step -1 on line 4 of input.scss WARNING: Step 0 on line 4 of input.scss WARNING: Step 1 on line 4 of input.scss WARNING: Finished loop on line 6 of input.scss <===> warning-dart-sass WARNING: Starting loop input.scss 2:5 test() input.scss 10:12 root stylesheet WARNING: Step 0 input.scss 4:7 test() input.scss 10:12 root stylesheet WARNING: Step 1 input.scss 4:7 test() input.scss 10:12 root stylesheet WARNING: Finished loop input.scss 6:5 test() input.scss 10:12 root stylesheet WARNING: Starting loop input.scss 2:5 test() input.scss 11:13 root stylesheet WARNING: Step -1 input.scss 4:7 test() input.scss 11:13 root stylesheet WARNING: Step 0 input.scss 4:7 test() input.scss 11:13 root stylesheet WARNING: Step 1 input.scss 4:7 test() input.scss 11:13 root stylesheet WARNING: Finished loop input.scss 6:5 test() input.scss 11:13 root stylesheet sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1923.hrx000066400000000000000000000015641355712145100245770ustar00rootroot00000000000000<===> input.scss %btnBase { display: none; } @mixin mobile { @media only screen and (min-width:300px) { @content; } } @include mobile { a { @extend %btnBase; } } <===> error Error: You may not @extend an outer selector from within @media. You may only @extend selectors within the same directive. input.scss. input.scss Use --trace for backtrace. <===> error-libsass Error: You may not @extend selectors across media queries. Use "@extend %btnBase !optional" to avoid this error. on line 7:7 of inpit.scss, in mixin `mobile` from line 11:12 of input.scss >> @extend %btnBase <===> error-dart-sass Error: From line 1, column 1 of input.scss: , 1 | %btnBase { | ^^^^^^^^^ ' You may not @extend selectors across media queries. , 13 | @extend %btnBase; | ^^^^^^^^^^^^^^^^ ' input.scss 13:5 root stylesheet sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1926.hrx000066400000000000000000000067041355712145100246030ustar00rootroot00000000000000<===> input.sass // The amount of the column of a single row. $columnAmount: 16 // The name of the each column size. $columnName : one two three four five six seven eight nine ten eleven twelve thirteen fourteen fifteen sixteen =column-generator @for $i from 1 through $columnAmount [class*="#{nth($columnName, $i)} wide"] width: 100% / $columnAmount * $i &[class*="#{nth($columnName, $i)} column"], & .row[class*="#{nth($columnName, $i)} column"] > .column:not(.row) width : 100% / $columnAmount * $i !important .grid +column-generator <===> output.css .grid [class*="one wide"] { width: 6.25%; } .grid[class*="one column"] > .column:not(.row), .grid .row[class*="one column"] > .column:not(.row) { width: 6.25% !important; } .grid [class*="two wide"] { width: 12.5%; } .grid[class*="two column"] > .column:not(.row), .grid .row[class*="two column"] > .column:not(.row) { width: 12.5% !important; } .grid [class*="three wide"] { width: 18.75%; } .grid[class*="three column"] > .column:not(.row), .grid .row[class*="three column"] > .column:not(.row) { width: 18.75% !important; } .grid [class*="four wide"] { width: 25%; } .grid[class*="four column"] > .column:not(.row), .grid .row[class*="four column"] > .column:not(.row) { width: 25% !important; } .grid [class*="five wide"] { width: 31.25%; } .grid[class*="five column"] > .column:not(.row), .grid .row[class*="five column"] > .column:not(.row) { width: 31.25% !important; } .grid [class*="six wide"] { width: 37.5%; } .grid[class*="six column"] > .column:not(.row), .grid .row[class*="six column"] > .column:not(.row) { width: 37.5% !important; } .grid [class*="seven wide"] { width: 43.75%; } .grid[class*="seven column"] > .column:not(.row), .grid .row[class*="seven column"] > .column:not(.row) { width: 43.75% !important; } .grid [class*="eight wide"] { width: 50%; } .grid[class*="eight column"] > .column:not(.row), .grid .row[class*="eight column"] > .column:not(.row) { width: 50% !important; } .grid [class*="nine wide"] { width: 56.25%; } .grid[class*="nine column"] > .column:not(.row), .grid .row[class*="nine column"] > .column:not(.row) { width: 56.25% !important; } .grid [class*="ten wide"] { width: 62.5%; } .grid[class*="ten column"] > .column:not(.row), .grid .row[class*="ten column"] > .column:not(.row) { width: 62.5% !important; } .grid [class*="eleven wide"] { width: 68.75%; } .grid[class*="eleven column"] > .column:not(.row), .grid .row[class*="eleven column"] > .column:not(.row) { width: 68.75% !important; } .grid [class*="twelve wide"] { width: 75%; } .grid[class*="twelve column"] > .column:not(.row), .grid .row[class*="twelve column"] > .column:not(.row) { width: 75% !important; } .grid [class*="thirteen wide"] { width: 81.25%; } .grid[class*="thirteen column"] > .column:not(.row), .grid .row[class*="thirteen column"] > .column:not(.row) { width: 81.25% !important; } .grid [class*="fourteen wide"] { width: 87.5%; } .grid[class*="fourteen column"] > .column:not(.row), .grid .row[class*="fourteen column"] > .column:not(.row) { width: 87.5% !important; } .grid [class*="fifteen wide"] { width: 93.75%; } .grid[class*="fifteen column"] > .column:not(.row), .grid .row[class*="fifteen column"] > .column:not(.row) { width: 93.75% !important; } .grid [class*="sixteen wide"] { width: 100%; } .grid[class*="sixteen column"] > .column:not(.row), .grid .row[class*="sixteen column"] > .column:not(.row) { width: 100% !important; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1927.hrx000066400000000000000000000003021355712145100245700ustar00rootroot00000000000000<===> input.scss @media screen { $variable: dynamic; .foo-#{$variable} {a: b} .bar { @extend .foo-dynamic } } <===> output.css @media screen { .foo-dynamic, .bar { a: b; } } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1931.hrx000066400000000000000000000002321355712145100245650ustar00rootroot00000000000000<===> input.scss $var: 'http://test.com'; body { background-image: url( #{$var}); } <===> output.css body { background-image: url(http://test.com); } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1940.hrx000066400000000000000000000006361355712145100245750ustar00rootroot00000000000000<===> input.scss // ---- // libsass (v3.3.2) // ---- $prefix:( foo: foo, bar: #bar ); #{map-get($prefix, foo)} { color: red; } #{map-get($prefix, bar)} { color: red; } #{map-get($prefix, foo)} .baz { color: red; } #{map-get($prefix, bar)} .baz { color: red; } <===> output.css foo { color: red; } #bar { color: red; } foo .baz { color: red; } #bar .baz { color: red; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1941/000077500000000000000000000000001355712145100240465ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1941/function_function.hrx000066400000000000000000000006761355712145100303340ustar00rootroot00000000000000<===> input.scss @function parent() { @function nested() { @return foo; } @return nested(); } test { foo: parent(); } <===> error Error: Functions can only contain variable declarations and control directives. on line 2 of input.scss Use --trace for backtrace. <===> error-dart-sass Error: This at-rule is not allowed here. , 2 | @function nested() { | ^^^^^^^^^^^^^^^^^^^ ' input.scss 2:3 root stylesheet sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1941/function_mixin.hrx000066400000000000000000000006531355712145100276260ustar00rootroot00000000000000<===> input.scss @function parent() { @mixin nested { foo: bar; } @include nested; } test { foo: parent(); } <===> error Error: Functions can only contain variable declarations and control directives. on line 2 of input.scss Use --trace for backtrace. <===> error-dart-sass Error: This at-rule is not allowed here. , 2 | @mixin nested { | ^^^^^^^^^^^^^^ ' input.scss 2:3 root stylesheet sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1941/mixin_function.hrx000066400000000000000000000007021355712145100276210ustar00rootroot00000000000000<===> input.scss @mixin parent { @function nested() { @return foo; } foo: nested(); } test { @include parent; } <===> error Error: Functions may not be defined within control directives or other mixins. on line 2 of input.scss Use --trace for backtrace. <===> error-dart-sass Error: Mixins may not contain function declarations. , 2 | @function nested() { | ^^^^^^^^^^^^^^^^^^ ' input.scss 2:3 root stylesheet sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1941/mixin_mixin.hrx000066400000000000000000000006551355712145100271270ustar00rootroot00000000000000<===> input.scss @mixin parent { @mixin nested { foo: bar; } @include nested; } test { @include parent; } <===> error Error: Mixins may not be defined within control directives or other mixins. on line 2 of input.scss Use --trace for backtrace. <===> error-dart-sass Error: Mixins may not contain mixin declarations. , 2 | @mixin nested { | ^^^^^^^^^^^^^^ ' input.scss 2:3 root stylesheet sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1944.hrx000066400000000000000000000003241355712145100245730ustar00rootroot00000000000000<===> input.scss $count: 0; @function foo() { $count: $count + 1 !global; $selector: ('.bar' 'baz'); @return $selector; } #{foo()} { count: $count; } <===> output.css .bar baz { count: 1; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1945.hrx000066400000000000000000000001271355712145100245750ustar00rootroot00000000000000<===> input.scss foo { bar: #{"\\"}#{"baz"}; } <===> output.css foo { bar: \baz; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1947.hrx000066400000000000000000000001771355712145100246040ustar00rootroot00000000000000<===> input.scss .a-#{quote('' + b)} { c: d; } .a-#{'' + b} { c: d; } <===> output.css .a-b { c: d; } .a-b { c: d; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1960.hrx000066400000000000000000000003061355712145100245710ustar00rootroot00000000000000<===> input.scss foo:not(.missing) { a: b; &:hover { c: d; } } bar { @extend .missing; } <===> output.css foo:not(.missing):not(bar) { a: b; } foo:not(.missing):not(bar):hover { c: d; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1969.hrx000066400000000000000000000004621355712145100246050ustar00rootroot00000000000000<===> input.scss $base-text-color: #666; @function calcNavbarTextColor ($base-text-color) { @return $base-text-color; } $header-text-color: calcNavbarTextColor($base-text-color); .test_class { color: lighten($header-text-color, 20%); } <===> output.css .test_class { color: #999999; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1971.hrx000066400000000000000000000005071355712145100245760ustar00rootroot00000000000000<===> input.scss %foo1 { @supports (flex-wrap: wrap) { flex: auto; } } @supports (flex-wrap: wrap) { %foo2 { flex: auto; } } .bar { @extend %foo1; @extend %foo2; } <===> output.css @supports (flex-wrap: wrap) { .bar { flex: auto; } } @supports (flex-wrap: wrap) { .bar { flex: auto; } } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1977/000077500000000000000000000000001355712145100240575ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1977/input.scss000066400000000000000000000001031355712145100261050ustar00rootroot00000000000000body#some-\(selector\) { color: red; } #äöü { color: reds; }sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1977/output.css000066400000000000000000000001271355712145100261310ustar00rootroot00000000000000@charset "UTF-8"; body#some-\(selector\) { color: red; } #äöü { color: reds; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1991.hrx000066400000000000000000000001131355712145100245710ustar00rootroot00000000000000<===> input.scss $tests: ( 0: 'foo', false: 'bar', ); <===> output.css sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1993.hrx000066400000000000000000000001131355712145100245730ustar00rootroot00000000000000<===> input.scss .test { @extend #{'%test'} !optional } <===> output.css sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1994.hrx000066400000000000000000000012651355712145100246050ustar00rootroot00000000000000<===> input.scss %hoverbrighter { &:hover, &:focus { opacity: .8; @supports (filter: brightness(120%)) { filter: brightness(120%); } } } .productportal-link { @extend %hoverbrighter; } <===> output.css .productportal-link:hover, .productportal-link:focus { opacity: .8; } @supports (filter: brightness(120%)) { .productportal-link:hover, .productportal-link:focus { filter: brightness(120%); } } <===> output-dart-sass.css .productportal-link:hover, .productportal-link:focus { opacity: 0.8; } @supports (filter: brightness(120%)) { .productportal-link:hover, .productportal-link:focus { filter: brightness(120%); } } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_1996.hrx000066400000000000000000000001431355712145100246010ustar00rootroot00000000000000<===> input.scss $foo: "bar"; %class //#{$foo} { &_baz { color: red; } } <===> output.css sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_2000.hrx000066400000000000000000000004561355712145100245610ustar00rootroot00000000000000<===> options.yml --- :todo: - sass/libsass#2987 <===> input.scss .m__exhibit-header--medium { @extend #{&}--plain; &--plain { font-size: --&; } } <===> output.css .m__exhibit-header--medium--plain, .m__exhibit-header--medium { font-size: -- .m__exhibit-header--medium--plain; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_2006.hrx000066400000000000000000000002161355712145100245610ustar00rootroot00000000000000<===> input.scss @mixin main() { bar { baz: 1; } } foo { @at-root { @include main(); } } <===> output.css bar { baz: 1; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_2007.hrx000066400000000000000000000004011355712145100245560ustar00rootroot00000000000000<===> input.scss @mixin foo() { @media (mix-width: 100px) { @extend %bar; } } foo { @media (mix-width: 100px) { %bar { foo: bar; } } @include foo; } <===> output.css @media (mix-width: 100px) { foo foo { foo: bar; } } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_2009.hrx000066400000000000000000000006511355712145100245670ustar00rootroot00000000000000<===> input.scss @mixin breakpoint() { @media (min-width: 200px) { @content; } } @mixin foo() { @include breakpoint { @extend %reveal-centered; } } foo { @include breakpoint { %reveal-centered { left: auto; right: auto; margin: 0 auto; } } @include foo; } <===> output.css @media (min-width: 200px) { foo foo { left: auto; right: auto; margin: 0 auto; } } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_201.hrx000066400000000000000000000001171355712145100244740ustar00rootroot00000000000000<===> input.scss a, b, { color: red; } <===> output.css a, b { color: red; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_2017.hrx000066400000000000000000000004411355712145100245630ustar00rootroot00000000000000<===> input.scss foo { bar: baz; } @mixin link() { a:not(.btn) { color: red; } } foo { @include link; @extend .btn; @include link; } <===> output.css foo { bar: baz; } foo a:not(.btn):not(foo) { color: red; } foo a:not(.btn):not(foo) { color: red; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_2020.hrx000066400000000000000000000003021355712145100245510ustar00rootroot00000000000000<===> input.scss form { $selector: nth(&, 1); sel: inspect($selector); $selector: nth($selector, 1); sel: inspect($selector); } <===> output.css form { sel: form; sel: form; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_2023/000077500000000000000000000000001355712145100240365ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_2023/id-selector-id.hrx000066400000000000000000000003011355712145100273570ustar00rootroot00000000000000<===> input.scss #2b { color: red; } <===> error-dart-sass Error: Expected identifier. , 1 | #2b{ | ^ ' input.scss 1:2 root stylesheet <===> output.css #2b { color: red; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_2023/id-selector-nr.hrx000066400000000000000000000002761355712145100274150ustar00rootroot00000000000000<===> input.scss #2 { color: red; } <===> error-dart-sass Error: Expected identifier. , 1 | #2{ | ^ ' input.scss 1:2 root stylesheet <===> output.css #2 { color: red; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_2023/pseudo-selector-id.hrx000066400000000000000000000003011355712145100302620ustar00rootroot00000000000000<===> input.scss #4d { color: red; } <===> error-dart-sass Error: Expected identifier. , 1 | #4d{ | ^ ' input.scss 1:2 root stylesheet <===> output.css #4d { color: red; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_2023/pseudo-selector-nr.hrx000066400000000000000000000002761355712145100303200ustar00rootroot00000000000000<===> input.scss #4 { color: red; } <===> error-dart-sass Error: Expected identifier. , 1 | #4{ | ^ ' input.scss 1:2 root stylesheet <===> output.css #4 { color: red; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_2031/000077500000000000000000000000001355712145100240355ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_2031/extended-not.hrx000066400000000000000000000004151355712145100271560ustar00rootroot00000000000000<===> input.scss :not(.foo) { content: test; } .bar, .baz { @extend .foo; } test { content: selector-extend(":not(.foo)", ".foo", ".bar"); } <===> output.css :not(.foo):not(.bar):not(.baz) { content: test; } test { content: :not(.foo):not(.bar); } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_2031/wrapped-not.hrx000066400000000000000000000001601355712145100270150ustar00rootroot00000000000000<===> input.scss :not(.asd, .qwe) { content: test; } <===> output.css :not(.asd, .qwe) { content: test; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_2034.hrx000066400000000000000000000003051355712145100245610ustar00rootroot00000000000000<===> input.scss :not(.thing) { color: red; } :not(.bar) { @extend .thing; background: blue; } <===> output.css :not(.thing) { color: red; } :not(.bar) { background: blue; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_2042.hrx000066400000000000000000000003601355712145100245610ustar00rootroot00000000000000<===> input.scss .wizard-editor { transform: scale(50/1); transform: scale((50/1)); transform: scale( (50/1) ); } <===> output.css .wizard-editor { transform: scale(50/1); transform: scale(50); transform: scale(50); } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_2053.hrx000066400000000000000000000005541355712145100245700ustar00rootroot00000000000000<===> input.scss .foo[disabled] { @extend .foo; background: blue; } .bar[disabled] { foo { @extend .bar; background: blue; } } foo { .baz[disabled] { @extend .baz; background: blue; } } <===> output.css .foo[disabled] { background: blue; } .bar[disabled] foo { background: blue; } foo .baz[disabled] { background: blue; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_2054.hrx000066400000000000000000000003051355712145100245630ustar00rootroot00000000000000<===> input.scss :not(.thing) { color: red; } :not(.bar) { @extend .thing; background: blue; } <===> output.css :not(.thing) { color: red; } :not(.bar) { background: blue; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_2055.hrx000066400000000000000000000013551355712145100245720ustar00rootroot00000000000000<===> input.scss :not(.thing) { color: red; } :not(.thing[disabled]) { @extend .thing; background: blue; } :has(:not(.thing[disabled])) { @extend .thing; background: blue; } <===> output.css :not(.thing) { color: red; } :not(.thing[disabled]):not([disabled]:has(:not(.thing[disabled]):not([disabled]:not(.thing[disabled])))):not([disabled]:not(.thing[disabled]):not([disabled]:has(:not(.thing[disabled]):not([disabled]:not(.thing[disabled]))))) { background: blue; } :has(:not(.thing[disabled]):not([disabled]:has(:not(.thing[disabled]):not([disabled]:not(.thing[disabled])))):not([disabled]:not(.thing[disabled]):not([disabled]:has(:not(.thing[disabled]):not([disabled]:not(.thing[disabled])))))) { background: blue; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_2056.hrx000066400000000000000000000001451355712145100245670ustar00rootroot00000000000000<===> input.scss :foobar(.baz) { color: red; } <===> output.css :foobar(.baz) { color: red; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_2057.hrx000066400000000000000000000003051355712145100245660ustar00rootroot00000000000000<===> input.scss :not(.thing) { color: red; } :not(.bar) { @extend .thing; background: blue; } <===> output.css :not(.thing) { color: red; } :not(.bar) { background: blue; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_2074.hrx000066400000000000000000000002541355712145100245700ustar00rootroot00000000000000<===> input.scss @function calc_foo() { @return "bar"; } foo { test1: calc-foo(); test2: calc_foo(); } <===> output.css foo { test1: "bar"; test2: "bar"; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_2081.hrx000066400000000000000000000004551355712145100245710ustar00rootroot00000000000000<===> input.scss $foo: #{bar();}; <===> error Error: Invalid CSS after "$foo: #{bar()": expected "}", was ";};" on line 1 of input.scss Use --trace for backtrace. <===> error-dart-sass Error: expected "}". , 1 | $foo: #{bar();}; | ^ ' input.scss 1:14 root stylesheet sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_2095.hrx000066400000000000000000000001371355712145100245730ustar00rootroot00000000000000<===> expected_output.scss <===> input.scss @media all { @mixin foo() {} } <===> output.css sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_2106/000077500000000000000000000000001355712145100240405ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_2106/test.hrx000066400000000000000000000005441355712145100255450ustar00rootroot00000000000000<===> input.scss @import "../does-not-exist"; <===> error Error: File to import not found or unreadable: ../does-not-exist. on line 1 of input.scss Use --trace for backtrace. <===> error-dart-sass Error: Can't find stylesheet to import. , 1 | @import "../does-not-exist"; | ^^^^^^^^^^^^^^^^^^^ ' input.scss 1:9 root stylesheet sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_2112.hrx000066400000000000000000000004151355712145100245600ustar00rootroot00000000000000<===> input.scss $color: #1caf9a; body { test-01: change-color($color, $hue: -240); test-03: change-color($color, $hue: 120); test-02: change-color($color, $hue: 480); } <===> output.css body { test-01: #1caf1c; test-03: #1caf1c; test-02: #1caf1c; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_2116.hrx000066400000000000000000000002171355712145100245640ustar00rootroot00000000000000<===> input.scss @function foo() { @return if(& != null, green, red); } test { color: foo(); } <===> output.css test { color: green; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_2120/000077500000000000000000000000001355712145100240345ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_2120/input.scss000066400000000000000000000000341355712145100260650ustar00rootroot00000000000000@import url(//xyz.cöm/ürl)sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_2120/output.css000066400000000000000000000000601355712145100261020ustar00rootroot00000000000000@charset "UTF-8"; @import url(//xyz.cöm/ürl); sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_2123/000077500000000000000000000000001355712145100240375ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_2123/test-01.hrx000066400000000000000000000002211355712145100257520ustar00rootroot00000000000000<===> input.scss .class{background-image:url(//foo.bar/favicon.ico)} <===> output.css .class { background-image: url(//foo.bar/favicon.ico); } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_2123/test-02.hrx000066400000000000000000000004331355712145100257600ustar00rootroot00000000000000<===> input.scss @font-face { font-family:'foo';src:url(//foo.bar) format('woff2'); } <===> output.css @font-face { font-family: 'foo'; src: url(//foo.bar) format("woff2"); } <===> output-dart-sass.css @font-face { font-family: "foo"; src: url(//foo.bar) format("woff2"); } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_2124.hrx000066400000000000000000000020361355712145100245640ustar00rootroot00000000000000<===> input.scss test { test-01: #{if(&, 'true', 'false')}; test-01: #{if(0, 'true', 'false')}; test-01: #{if('', 'true', 'false')}; test-01: #{if('0', 'true', 'false')}; test-01: #{if(null, 'true', 'false')}; test-01: #{if(false, 'true', 'false')}; } #{if(&, 'has-parent', 'parentless')} { test: parent; } @mixin with-js() { .js:root #{if(&, '&', '')} { @content; } } @include with-js() { .bou { content: 'bar'; } } .bou { @include with-js() { .bar { content: 'baz'; } } } <===> output.css test { test-01: true; test-01: true; test-01: true; test-01: true; test-01: false; test-01: false; } parentless { test: parent; } .js:root .bou { content: 'bar'; } .js:root .bou .bar { content: 'baz'; } <===> output-dart-sass.css test { test-01: true; test-01: true; test-01: true; test-01: true; test-01: false; test-01: false; } parentless { test: parent; } .js:root .bou { content: "bar"; } .js:root .bou .bar { content: "baz"; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_2139.hrx000066400000000000000000000005641355712145100245760ustar00rootroot00000000000000<===> input.scss .foo { color: #FFF; } .bar .baz { @extend .foo; border: '1px'; } *:not(.foo) { display: none; } <===> output.css .foo, .bar .baz { color: #FFF; } .bar .baz { border: '1px'; } *:not(.foo) { display: none; } <===> output-dart-sass.css .foo, .bar .baz { color: #FFF; } .bar .baz { border: "1px"; } *:not(.foo) { display: none; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_2140.hrx000066400000000000000000000016611355712145100245650ustar00rootroot00000000000000<===> options.yml --- :todo: - sass/libsass#2987 <===> input.scss $red: red; $foo: red; :root { --red: #f00; // --red: $red; // --red: $foo; } a { content: var(--red) } a { content: var(--$red) } a { content: var(--$foo) } b { content: (- red) } b { content: (- $red) } b { content: (- $foo) } c { content: (+- red) } c { content: (+- $red) } c { content: (+- $foo) } d { content: (-red) } d { content: (-$red) } d { content: (-$foo) } e { content: (+ red) } e { content: (+ $red) } e { content: (+ $foo) } <===> output.css :root { --red: #f00; } a { content: var(--red); } a { content: var(-- red); } a { content: var(-- red); } b { content: -red; } b { content: -red; } b { content: -red; } c { content: +-red; } c { content: +-red; } c { content: +-red; } d { content: -red; } d { content: -red; } d { content: -red; } e { content: +red; } e { content: +red; } e { content: +red; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_2143.hrx000066400000000000000000000004441355712145100245660ustar00rootroot00000000000000<===> input.scss $map:; <===> error Error: Invalid CSS after "$map:": expected expression (e.g. 1px, bold), was ";" on line 1 of input.scss Use --trace for backtrace. <===> error-dart-sass Error: Expected expression. , 1 | $map:; | ^ ' input.scss 1:6 root stylesheet sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_2147/000077500000000000000000000000001355712145100240455ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_2147/lhs.hrx000066400000000000000000000004751355712145100253640ustar00rootroot00000000000000<===> input.scss $map: (a:b,c:d) + 1; <===> error Error: (a: b, c: d) isn't a valid CSS value. on line 1 of input.scss Use --trace for backtrace. <===> error-dart-sass Error: (a: b, c: d) isn't a valid CSS value. , 1 | $map: (a:b,c:d) + 1; | ^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_2147/rhs.hrx000066400000000000000000000005421355712145100253650ustar00rootroot00000000000000<===> input.scss $map: 1 + (a:b,c:d); <===> error Error: (a: b, c: d) isn't a valid CSS value. on line 1 of /sass/spec/libsass-issues/issue_2147/input.scss Use --trace for backtrace. <===> error-dart-sass Error: (a: b, c: d) isn't a valid CSS value. , 1 | $map: 1 + (a:b,c:d); | ^^^^^^^^^^^^^ ' input.scss 1:7 root stylesheet sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_2149.hrx000066400000000000000000000002641355712145100245740ustar00rootroot00000000000000<===> input.scss .foo { background: url('background.png') -10px -10px/110% no-repeat } <===> output.css .foo { background: url("background.png") -10px -10px/110% no-repeat; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_2150.hrx000066400000000000000000000003151355712145100245610ustar00rootroot00000000000000<===> input.scss @media (min-width: 100px) { .parent > %child { color: blue; } } .foo { @extend %child; } <===> output.css @media (min-width: 100px) { .parent > .foo { color: blue; } } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_2153.hrx000066400000000000000000000003021355712145100245600ustar00rootroot00000000000000<===> input.scss foo { a: "\"foo\"" + ""; b: "" + "\"foo\""; c: "" + "\"foo"; d: "\"foo\"" + "bar"; } <===> output.css foo { a: '"foo"'; b: '"foo"'; c: '"foo'; d: '"foo"bar'; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_2154.hrx000066400000000000000000000004211355712145100245630ustar00rootroot00000000000000<===> input.scss @media (min-width: 1px) { .first { font-weight: 100; @media (min-width: 2px) {} } .second { font-weight: 200; } } <===> output.css @media (min-width: 1px) { .first { font-weight: 100; } .second { font-weight: 200; } } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_2155.hrx000066400000000000000000000022411355712145100245660ustar00rootroot00000000000000<===> input.scss a { &.#{#ff0} { color: red; } } <===> error WARNING on line 2, column 5 of input.scss: You probably don't mean to use the color value `#ff0' in interpolation here. It may end up represented as #ffff00, which will likely produce invalid CSS. Always quote color names when using them as strings (for example, "#ff0"). If you really want to use the color value here, use `"" + #ff0'. Error: Invalid CSS after "&.": expected class name, was "#ff0" on line 2 of input.scss Use --trace for backtrace. <===> error-dart-sass WARNING: You probably don't mean to use the color value yellow in interpolation here. It may end up represented as #ff0, which will likely produce invalid CSS. Always quote color names when using them as strings or map keys (for example, "yellow"). If you really want to use the color value here, use '"" + #ff0'. , 2 | &.#{#ff0} { | ^^^^ ' input.scss 2:7 root stylesheet Error: Expected identifier. , 2 | &.#ff0{ | ^ ' input.scss 2:5 root stylesheet <===> error-libsass Error: Invalid CSS after "&": expected selector, was ".#ff0" on line 2 of input.scss Use --trace for backtrace. sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_2156/000077500000000000000000000000001355712145100240455ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_2156/debug.hrx000066400000000000000000000010011355712145100256460ustar00rootroot00000000000000<===> input.scss @debug "\"foo\"" + ""; @debug "" + "\"foo\""; @debug "" + "\"foo"; @debug "\"foo\"" + "bar"; @debug unquote("\"foo\" and \"bar\""); <===> output.css <===> warning /sass/spec/libsass-issues/issue_2156/input.scss:1 DEBUG: "foo" /sass/spec/libsass-issues/issue_2156/input.scss:2 DEBUG: "foo" /sass/spec/libsass-issues/issue_2156/input.scss:3 DEBUG: "foo /sass/spec/libsass-issues/issue_2156/input.scss:4 DEBUG: "foo"bar /sass/spec/libsass-issues/issue_2156/input.scss:5 DEBUG: "foo" and "bar" sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_2156/error.hrx000066400000000000000000000005541355712145100257250ustar00rootroot00000000000000<===> input.scss @error unquote("\"foo\" and \"bar\""); <===> error Error: "foo" and "bar" on line 1 of /sass/spec/libsass-issues/issue_2156/input.scss Use --trace for backtrace. <===> error-dart-sass Error: "foo" and "bar" , 1 | @error unquote("\"foo\" and \"bar\""); | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 1:1 root stylesheet sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_2156/warn.hrx000066400000000000000000000016301355712145100255370ustar00rootroot00000000000000<===> input.scss @warn "\"foo\"" + ""; @warn "" + "\"foo\""; @warn "" + "\"foo"; @warn "\"foo\"" + "bar"; @warn unquote("\"foo\" and \"bar\""); <===> output.css <===> warning WARNING: "foo" on line 7 of /sass/spec/libsass-issues/issue_2156/input.scss WARNING: "foo" on line 8 of /sass/spec/libsass-issues/issue_2156/input.scss WARNING: "foo on line 9 of /sass/spec/libsass-issues/issue_2156/input.scss WARNING: "foo"bar on line 10 of /sass/spec/libsass-issues/issue_2156/input.scss WARNING: "foo" and "bar" on line 11 of /sass/spec/libsass-issues/issue_2156/input.scss <===> warning-dart-sass WARNING: "foo" input.scss 1:1 root stylesheet WARNING: "foo" input.scss 2:1 root stylesheet WARNING: "foo input.scss 3:1 root stylesheet WARNING: "foo"bar input.scss 4:1 root stylesheet WARNING: "foo" and "bar" input.scss 5:1 root stylesheet sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_2158.hrx000066400000000000000000000005141355712145100245720ustar00rootroot00000000000000<===> input.scss @supports ( box-shadow: none ) { /* Shadow on first body column */ .sizechart { position: relative; } /* Comment at the end */ } <===> output.css @supports (box-shadow: none) { /* Shadow on first body column */ .sizechart { position: relative; } /* Comment at the end */ } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_2169.hrx000066400000000000000000000002511355712145100245720ustar00rootroot00000000000000<===> input.scss @function test($a, $b) { @return "#{$a}" + "#{$b}" + "" + ""; } foo { content: test('bim', 'baz'); } <===> output.css foo { content: "bimbaz"; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_2175.hrx000066400000000000000000000007501355712145100245730ustar00rootroot00000000000000<===> input.scss a:nth-child() { color: yellowgreen; } <===> error Error: Invalid CSS after "a:nth-child(": expected An+B expression, was ")" on line 2 of input.scss Use --trace for backtrace. <===> error-libsass Error: Invalid CSS after "a:nth-child(": expected An+B expression, was ") {" on line 1:3 of input.scss >> a:nth-child() { --^ <===> error-dart-sass Error: Expected "n". , 1 | a:nth-child(){ | ^ ' input.scss 1:13 root stylesheet sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_2177.hrx000066400000000000000000000001571355712145100245760ustar00rootroot00000000000000<===> input.sass .a + .c, .b margin: 10px <===> output.css .a + .c, .a + .b { margin: 10px; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_2179.hrx000066400000000000000000000011151355712145100245730ustar00rootroot00000000000000<===> input.scss @mixin sprite-arrow() { @extend %hidden-text; } %hidden-text { text-indent: -999em; } // button.scss .button-left, .button-right, .button-plus, .button-min { &:after { @include sprite-arrow(); } } .banner { &:after { @include sprite-arrow(); } } .calculator { .btn-down, .btn-up { &:after { @include sprite-arrow(); } } } <===> output.css .calculator .btn-down:after, .calculator .btn-up:after, .banner:after, .button-left:after, .button-right:after, .button-plus:after, .button-min:after { text-indent: -999em; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_2185.hrx000066400000000000000000000026021355712145100245720ustar00rootroot00000000000000<===> input.scss $bar: true; @mixin mixin() { mix: in; } @mixin include() { @content; } p { @at-root { @if $bar { #if { height: 100px; } } @if (not $bar) { } @else if($bar) { #elseif { width: 100px; } } @if (not $bar) { } @else { #else { width: 100px; } } @for $i from 1 through 1 { #for { foo: bar#{$i}; } } $i: 0; @while ($i == 0) { $i: $i + 1; #while { foo: bar#{$i}; } } @each $i in (1) { #each { foo: bar#{$i}; } } #inc { @include mixin(); @include include() { inc: lude; } } @supports (display: flex) { a {display: flex} } @foo { bar: bat; } } } <===> output.css #if { height: 100px; } #elseif { width: 100px; } #else { width: 100px; } #for { foo: bar1; } #while { foo: bar1; } #each { foo: bar1; } #inc { mix: in; inc: lude; } @supports (display: flex) { a { display: flex; } } @foo { bar: bat; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_2198.hrx000066400000000000000000000002771355712145100246040ustar00rootroot00000000000000<===> input.scss @mixin test() { @at-root { @include foo(); } } @mixin foo() { #{'.foo'} { bar: baz; } } .test { @include test(); } <===> output.css .foo { bar: baz; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_2200.hrx000066400000000000000000000004451355712145100245610ustar00rootroot00000000000000<===> input.scss .media-object-section:last-child:not(:nth-child(2)) { color: blue; } %orbit-control { color: red; } .orbit-previous { @extend %orbit-control; } <===> output.css .media-object-section:last-child:not(:nth-child(2)) { color: blue; } .orbit-previous { color: red; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_2202.hrx000066400000000000000000000001641355712145100245610ustar00rootroot00000000000000<===> input.scss @customAtRule; test { content: bar } <===> output.css @customAtRule; test { content: bar; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_2205.hrx000066400000000000000000000003711355712145100245640ustar00rootroot00000000000000<===> input.scss $params1: #fff .5; test { color: rgba($params1...); } $params2: 10 250 130 .5; test { color: rgba($params2...); } <===> output.css test { color: rgba(255, 255, 255, 0.5); } test { color: rgba(10, 250, 130, 0.5); } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_221255.hrx000066400000000000000000000003321355712145100247310ustar00rootroot00000000000000<===> options.yml --- :todo: - dart-sass <===> input.scss '#{)'{ <===> error Error: Invalid CSS after "'#{": expected expression (e.g. 1px, bold), was ")'{" on line 1 of input.scss Use --trace for backtrace. sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_221289.hrx000066400000000000000000000001261355712145100247410ustar00rootroot00000000000000<===> input.scss foo { bar: if(0,0<0,0); } <===> output.css foo { bar: false; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_2233.hrx000066400000000000000000000002571355712145100245700ustar00rootroot00000000000000<===> foo.scss a { b: c; } <===> input.scss @media all and (min-width: 100px) { @import "foo" } <===> output.css @media all and (min-width: 100px) { a { b: c; } } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_2236/000077500000000000000000000000001355712145100240445ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_2236/floats.hrx000066400000000000000000000003331355712145100260560ustar00rootroot00000000000000<===> input.scss .foo { test-01: +1.2 % +4.7; test-02: +1.2 % -4.7; test-03: -1.2 % +4.7; test-04: -1.2 % -4.7; } <===> output.css .foo { test-01: 1.2; test-02: -3.5; test-03: 3.5; test-04: -1.2; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_2236/ints.hrx000066400000000000000000000003031355712145100255400ustar00rootroot00000000000000<===> input.scss .foo { test-01: +1 % +4; test-02: +1 % -4; test-03: -1 % +4; test-04: -1 % -4; } <===> output.css .foo { test-01: 1; test-02: -3; test-03: 3; test-04: -1; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_2236/zeros.hrx000066400000000000000000000002771355712145100257370ustar00rootroot00000000000000<===> input.scss .foo { test-01: +0 % 1; test-02: -0 % 1; test-03: +0 % -1; test-04: -0 % -1; } <===> output.css .foo { test-01: 0; test-02: 0; test-03: 0; test-04: 0; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_224.hrx000066400000000000000000000004401355712145100245000ustar00rootroot00000000000000<===> input.scss $list: ("a", "b", "c"); test { content: nth($list, -1); content: nth($list, -2); content: nth($list, -3); content: nth($list, -1) == nth($list, length($list)); } <===> output.css test { content: "c"; content: "b"; content: "a"; content: true; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_2243/000077500000000000000000000000001355712145100240425ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_2243/sass.hrx000066400000000000000000000003051355712145100255340ustar00rootroot00000000000000<===> input.sass @namespace url("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul") <===> output.css @namespace url("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"); sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_2243/scss.hrx000066400000000000000000000003051355712145100255360ustar00rootroot00000000000000<===> input.scss @namespace url("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul") <===> output.css @namespace url("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"); sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_2246.hrx000066400000000000000000000010201355712145100245610ustar00rootroot00000000000000<===> input.scss @mixin foo($option: 'foo') { // Create a unique, random placeholder to store styles $placeholder : $option + random(9999); // Store the styles in the placeholder @at-root %#{$placeholder} { content: 'foo'; } @at-root { .bar { @extend %#{$placeholder}; } } } @mixin bar($option) { @include foo($option); } .foo { @include bar('baz'); } <===> output.css .bar { content: 'foo'; } <===> output-dart-sass.css .bar { content: "foo"; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_2260/000077500000000000000000000000001355712145100240415ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_2260/inner-parent-no-compound.hrx000066400000000000000000000003201355712145100314150ustar00rootroot00000000000000<===> input.scss @mixin test() { @at-root { .inner { @content; } } } @include test { .test { property: value; } } <===> output.css .inner .test { property: value; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_2260/inner-parent-with-compound.hrx000066400000000000000000000003221355712145100317560ustar00rootroot00000000000000<===> input.scss @mixin test() { @at-root { .inner { @content; } } } @include test { .test & { property: value; } } <===> output.css .test .inner { property: value; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_2260/no-parent-no-compound.hrx000066400000000000000000000002621355712145100307230ustar00rootroot00000000000000<===> input.scss @mixin test() { @at-root { @content; } } @include test { .test { property: value; } } <===> output.css .test { property: value; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_2260/no-parent-with-compound.hrx000066400000000000000000000014341355712145100312640ustar00rootroot00000000000000<===> input.scss @mixin test() { @at-root { @content; } } @include test { .test & { property: value; } } <===> error Error: Base-level rules cannot contain the parent-selector-referencing character '&'. on line 8 of input.scss, in `@content' from line 3 of input.scss, in `test' from line 7 of input.scss Use --trace for backtrace. <===> error-libsass Error: Top-level selectors may not contain the parent selector "&". on line 3:7 of input.scss, in mixin `test` from line 7:12 of input.scss >> .test & { ----^ <===> error-dart-sass Error: Top-level selectors may not contain the parent selector "&". , 8 | .test & { | ^^^^^^^^ ' input.scss 8:3 @content input.scss 3:5 test() input.scss 7:1 root stylesheet sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_2260/outer-parent-no-compound.hrx000066400000000000000000000003111355712145100314400ustar00rootroot00000000000000<===> input.scss @mixin test() { .outer { @at-root { @content; } } } @include test { .test { property: value; } } <===> output.css .test { property: value; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_2260/outer-parent-with-compound.hrx000066400000000000000000000003221355712145100320010ustar00rootroot00000000000000<===> input.scss @mixin test() { .outer { @at-root { @content; } } } @include test { .test & { property: value; } } <===> output.css .test .outer { property: value; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_2261.hrx000066400000000000000000000022601355712145100245650ustar00rootroot00000000000000<===> input.scss $seven: 7; .test { equal-01: (7 == 7); equal-02: ('7' == '7'); equal-03: ('#{7}' == '#{7}'); equal-04: (7 == '7'); equal-05: ('7' == 7); equal-06: (7 == '#{7}'); equal-07: ('#{7}' == 7); equal-08: ('7' == '#{7}'); equal-09: ('#{7}' == '7'); equal-10: ($seven == 7); equal-11: ($seven == '7'); equal-13: ($seven == '#{7}'); equal-14: (7 == $seven); equal-15: ('7' == $seven); equal-16: ('#{7}' == $seven); equal-17: ('#{$seven}' == 7); equal-18: ('#{$seven}' == '7'); equal-19: ('#{$seven}' == '#{7}'); equal-20: (7 == '#{$seven}'); equal-21: ('7' == '#{$seven}'); equal-22: ('#{7}' == '#{$seven}'); equal-23: ('#{$seven}' == $seven); equal-24: ('#{$seven}' == '#{$seven}'); } <===> output.css .test { equal-01: true; equal-02: true; equal-03: true; equal-04: false; equal-05: false; equal-06: false; equal-07: false; equal-08: true; equal-09: true; equal-10: true; equal-11: false; equal-13: false; equal-14: true; equal-15: false; equal-16: false; equal-17: false; equal-18: true; equal-19: true; equal-20: false; equal-21: true; equal-22: true; equal-23: false; equal-24: true; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_2289.hrx000066400000000000000000000002131355712145100245730ustar00rootroot00000000000000<===> input.scss .foo:baz:baz { float: left; } .bar { @extend .foo; } <===> output.css .foo:baz:baz, .bar:baz:baz { float: left; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_2291.hrx000066400000000000000000000064461355712145100246020ustar00rootroot00000000000000<===> input.scss .m__exhibit-header--medium { @extend #{&}--plain; &--plain { font-size: 1em; } } foo { bar[baz="#{&}"][str="&"] { asd: qwe; } } A, B, C { #{&}-foo#{&}-bar { color: blue; } #{"A, B, C"}-foo#{"A, B, C"}-bar { color: blue; } } A { B#{&}C { .b, .c, .d { #{&}-foo { parent: &bar; itpl: #{&}bar; } #{"A .b, A .c, A .d"}-foo { parent: &bar; itpl: #{&}bar; } } } } <===> output.css .m__exhibit-header--medium--plain, .m__exhibit-header--medium { font-size: 1em; } foo bar[baz="foo"][str="&"] { asd: qwe; } A A, A B, A C-fooA, A B, A C-bar, B A, B B, B C-fooA, B B, B C-bar, C A, C B, C C-fooA, C B, C C-bar { color: blue; } A A, A B, A C-fooA, A B, A C-bar, B A, B B, B C-fooA, B B, B C-bar, C A, C B, C C-fooA, C B, C C-bar { color: blue; } A BAC .b A BAC .b, A BAC .b A BAC .c, A BAC .b A BAC .d-foo, A BAC .c A BAC .b, A BAC .c A BAC .c, A BAC .c A BAC .d-foo, A BAC .d A BAC .b, A BAC .d A BAC .c, A BAC .d A BAC .d-foo { parent: A BAC .b A BAC .b, A BAC .b A BAC .c, A BAC .b A BAC .d-foo, A BAC .c A BAC .b, A BAC .c A BAC .c, A BAC .c A BAC .d-foo, A BAC .d A BAC .b, A BAC .d A BAC .c, A BAC .d A BAC .d-foo bar; itpl: A BAC .b A BAC .b, A BAC .b A BAC .c, A BAC .b A BAC .d-foo, A BAC .c A BAC .b, A BAC .c A BAC .c, A BAC .c A BAC .d-foo, A BAC .d A BAC .b, A BAC .d A BAC .c, A BAC .d A BAC .d-foobar; } A BAC .b A .b, A BAC .b A .c, A BAC .b A .d-foo, A BAC .c A .b, A BAC .c A .c, A BAC .c A .d-foo, A BAC .d A .b, A BAC .d A .c, A BAC .d A .d-foo { parent: A BAC .b A .b, A BAC .b A .c, A BAC .b A .d-foo, A BAC .c A .b, A BAC .c A .c, A BAC .c A .d-foo, A BAC .d A .b, A BAC .d A .c, A BAC .d A .d-foo bar; itpl: A BAC .b A .b, A BAC .b A .c, A BAC .b A .d-foo, A BAC .c A .b, A BAC .c A .c, A BAC .c A .d-foo, A BAC .d A .b, A BAC .d A .c, A BAC .d A .d-foobar; } <===> output-dart-sass.css .m__exhibit-header--medium--plain, .m__exhibit-header--medium { font-size: 1em; } foo bar[baz=foo][str="&"] { asd: qwe; } A A, A B, A C-fooA, A B, A C-bar, B A, B B, B C-fooA, B B, B C-bar, C A, C B, C C-fooA, C B, C C-bar { color: blue; } A A, A B, A C-fooA, A B, A C-bar, B A, B B, B C-fooA, B B, B C-bar, C A, C B, C C-fooA, C B, C C-bar { color: blue; } A BAC .b A BAC .b, A BAC .b A BAC .c, A BAC .b A BAC .d-foo, A BAC .c A BAC .b, A BAC .c A BAC .c, A BAC .c A BAC .d-foo, A BAC .d A BAC .b, A BAC .d A BAC .c, A BAC .d A BAC .d-foo { parent: A BAC .b A BAC .b, A BAC .b A BAC .c, A BAC .b A BAC .d-foo, A BAC .c A BAC .b, A BAC .c A BAC .c, A BAC .c A BAC .d-foo, A BAC .d A BAC .b, A BAC .d A BAC .c, A BAC .d A BAC .d-foo bar; itpl: A BAC .b A BAC .b, A BAC .b A BAC .c, A BAC .b A BAC .d-foo, A BAC .c A BAC .b, A BAC .c A BAC .c, A BAC .c A BAC .d-foo, A BAC .d A BAC .b, A BAC .d A BAC .c, A BAC .d A BAC .d-foobar; } A BAC .b A .b, A BAC .b A .c, A BAC .b A .d-foo, A BAC .c A .b, A BAC .c A .c, A BAC .c A .d-foo, A BAC .d A .b, A BAC .d A .c, A BAC .d A .d-foo { parent: A BAC .b A .b, A BAC .b A .c, A BAC .b A .d-foo, A BAC .c A .b, A BAC .c A .c, A BAC .c A .d-foo, A BAC .d A .b, A BAC .d A .c, A BAC .d A .d-foo bar; itpl: A BAC .b A .b, A BAC .b A .c, A BAC .b A .d-foo, A BAC .c A .b, A BAC .c A .c, A BAC .c A .d-foo, A BAC .d A .b, A BAC .d A .c, A BAC .d A .d-foobar; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_2295/000077500000000000000000000000001355712145100240515ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_2295/basic.hrx000066400000000000000000000002561355712145100256600ustar00rootroot00000000000000<===> include.scss @if (true) { .foo { display: none; } } <===> input.scss .my-scope { @import 'include.scss'; } <===> output.css .my-scope .foo { display: none; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_2295/original.hrx000066400000000000000000000007151355712145100264030ustar00rootroot00000000000000<===> _input-bug.scss $include-foo: true !default; .bar { display: none; } @if ($include-foo) { .foo { display: none; } } <===> input.scss $include-foo: true !default; .my-scope { .bar { display: none; } @if ($include-foo) { .foo { display: none; } } @import 'input-bug'; } <===> output.css .my-scope .bar { display: none; } .my-scope .foo { display: none; } .my-scope .bar { display: none; } .my-scope .foo { display: none; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_2303.hrx000066400000000000000000000004241355712145100245620ustar00rootroot00000000000000<===> _module.scss .okay { background: green; } @if true { .broken { background: red; } } <===> input.scss .wrapper-class { @import 'module'; } <===> output.css .wrapper-class .okay { background: green; } .wrapper-class .broken { background: red; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_2304.hrx000066400000000000000000000012201355712145100245560ustar00rootroot00000000000000<===> _module.scss .foo, & { background: red; } .foo, &:before { background: red; } <===> input.scss @import "module"; <===> error Error: Base-level rules cannot contain the parent-selector-referencing character '&'. on line 1 of _module.scss from line 1 of input.scss Use --trace for backtrace. <===> error-libsass Error: Top-level selectors may not contain the parent selector "&". on line 1:9 of input.scss >> .foo, & { ------^ <===> error-dart-sass Error: Top-level selectors may not contain the parent selector "&". , 1 | .foo, & { | ^^^^^^^^ ' _module.scss 1:1 @import input.scss 1:9 root stylesheet sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_2307.hrx000066400000000000000000000005761355712145100245760ustar00rootroot00000000000000<===> input.scss 0//#{ { <===> error Error: Invalid CSS after "{": expected "}", was "" on line 3 of input.scss Use --trace for backtrace. <===> error-dart-sass Error: expected "}". , 2 | { | ^ ' input.scss 2:2 root stylesheet <===> error-libsass Error: Invalid CSS after "0//#{": expected expression (e.g. 1px, bold), was "{" on line 1 of input.scss sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_2309.hrx000066400000000000000000000011171355712145100245700ustar00rootroot00000000000000<===> input.scss $button-sizes: ( 'xs': ( 'line-height': 16 / 12, ), 's': ( 'line-height': 18 / 14, ), 'm': ( 'line-height': 18 / 14, ), 'l': ( 'line-height': 22 / 16, ) ); @each $size in $button-sizes { $size-metrics: nth($size, 2); .c-button__icon { min-height: map-get($size-metrics, 'line-height') * 1em; } } <===> output.css .c-button__icon { min-height: 1.3333333333em; } .c-button__icon { min-height: 1.2857142857em; } .c-button__icon { min-height: 1.2857142857em; } .c-button__icon { min-height: 1.375em; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_231.hrx000066400000000000000000000002031355712145100244730ustar00rootroot00000000000000<===> input.scss // test.scss: a { background-image: url(fn("s")); } <===> output.css a { background-image: url(fn("s")); } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_2320/000077500000000000000000000000001355712145100240365ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_2320/input.scss000066400000000000000000000003571355712145100260770ustar00rootroot00000000000000$char-f: '\66'; $char-g: '\67'; .test-1 { content: '#{$char-f}\feff'; } .test-2 { content: '#{$char-g}\feff'; } // this is broken .test-3 { content: '\feff#{$char-f}'; } .test-4 { content: '\feff#{$char-g}'; }sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_2320/output.css000066400000000000000000000002211355712145100261030ustar00rootroot00000000000000@charset "UTF-8"; .test-1 { content: "f"; } .test-2 { content: "g"; } .test-3 { content: "f"; } .test-4 { content: "g"; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_2321.hrx000066400000000000000000000001601355712145100245570ustar00rootroot00000000000000<===> input.scss a { b: if(true, b, c...); c: if(false, b, c...); } <===> output.css a { b: b; c: c; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_2330.hrx000066400000000000000000000005451355712145100245660ustar00rootroot00000000000000<===> input.scss @function test () { $m: (); $abc: (a b c d e f g h i j k); @for $index from 1 through length($abc) {; $m: map-merge($m, (nth($abc, $index):$index) ); } @return $m; } test { content: inspect(test()); } <===> output.css test { content: (a: 1, b: 2, c: 3, d: 4, e: 5, f: 6, g: 7, h: 8, i: 9, j: 10, k: 11); } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_2333.hrx000066400000000000000000000001771355712145100245720ustar00rootroot00000000000000<===> input.scss test { test: inspect((a:1,b:(foo,bar),c:3)); } <===> output.css test { test: (a: 1, b: (foo, bar), c: 3); } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_2341.hrx000066400000000000000000000004641355712145100245700ustar00rootroot00000000000000<===> input.scss @function aFunction() { @return 1em; } @media (max-width: 1em) { %placeholder { color: red; } } @media (max-width: aFunction()) { .test { @extend %placeholder; } } <===> output.css @media (max-width: 1em) { .test { color: red; } } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_2346.hrx000066400000000000000000000003351355712145100245720ustar00rootroot00000000000000<===> input.scss $items: 3; li { &:nth-child(#{$items}n - #{$items}) { color: red; } } <===> output.css li:nth-child(3n - 3) { color: red; } <===> output-dart-sass.css li:nth-child(3n-3) { color: red; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_2347.hrx000066400000000000000000000004661355712145100246000ustar00rootroot00000000000000<===> input.scss %baz2 { display: flex; } %baz3 { display: flex; } custom2, [custom2], .custom2 { @extend %baz2 } [custom3], custom3, .custom3 { @extend %baz3 } <===> output.css custom2, [custom2], .custom2 { display: flex; } [custom3], custom3, .custom3 { display: flex; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_2349.hrx000066400000000000000000000004601355712145100245740ustar00rootroot00000000000000<===> input.scss $path1: assets/images; // no errors thrown $path2: /images; // errors thrown .test { background: url(#{$path1}/image.png); background: url(#{$path2}/image.png); } <===> output.css .test { background: url(assets/images/image.png); background: url(/images/image.png); } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_2352.hrx000066400000000000000000000010311355712145100245610ustar00rootroot00000000000000<===> input.scss $theme: (red: #D700EE); @function test($args...) { @return #000; } .test { color: test($theme...); } <===> error Error: Variable keyword argument map must have string keys. #ff0000 is not a string in (red: #D700EE). on line 8 of input.scss Use --trace for backtrace. <===> error-dart-sass Error: Variable keyword argument map must have string keys. red is not a string in (red: #D700EE). , 8 | color: test($theme...); | ^^^^^^ ' input.scss 8:14 root stylesheet sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_2358.hrx000066400000000000000000000024461355712145100246020ustar00rootroot00000000000000<===> input.scss .outer { @at-root .root { .inner { .element { --modifier#{&}--another-modifier { content: "#{&}"; } &--modifier#{&}--another-modifier { content: "#{&}"; } } } } } @at-root .block { &__element { #{&} { content: "#{&}"; } &--modifier { content: "#{&}"; } --modifier#{&}--another-modifier { content: "#{&}"; } &--modifier#{&}--another-modifier { content: "#{&}"; } } } <===> output.css .root .inner .element --modifier.root .inner .element--another-modifier { content: ".root .inner .element --modifier.root .inner .element--another-modifier"; } .root .inner .element--modifier.root .inner .element--another-modifier { content: ".root .inner .element--modifier.root .inner .element--another-modifier"; } .block__element .block__element { content: ".block__element .block__element"; } .block__element--modifier { content: ".block__element--modifier"; } .block__element --modifier.block__element--another-modifier { content: ".block__element --modifier.block__element--another-modifier"; } .block__element--modifier.block__element--another-modifier { content: ".block__element--modifier.block__element--another-modifier"; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_2360.hrx000066400000000000000000000002011355712145100245560ustar00rootroot00000000000000<===> input.sass @value test_1 #555 @value test_2 rgb(0,255,0) <===> output.css @value test_1 #555; @value test_2 rgb(0,255,0); sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_2365.hrx000066400000000000000000000007211355712145100245720ustar00rootroot00000000000000<===> input.scss a { b { color: red; }, c { color: blue; } } <===> error Error: Invalid CSS after "": expected selector, was "," on line 4 of input.scss Use --trace for backtrace. <===> error-dart-sass Error: expected selector. , 4 | }, | ^ ' input.scss 4:6 root stylesheet <===> error-libsass Error: Invalid CSS after " }": expected selector, was "," on line 4 of test.scss >> }, sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_2366/000077500000000000000000000000001355712145100240505ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_2366/global.hrx000066400000000000000000000006001355712145100260270ustar00rootroot00000000000000<===> input.scss .item { display: inline-block; :global(> .ext-link) { background: #000; } } .link { color: red; } .textLink { @extend .link; padding: 0 10px; } <===> output.css .item { display: inline-block; } .item :global(> .ext-link) { background: #000; } .link, .textLink { color: red; } .textLink { padding: 0 10px; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_2366/has.hrx000066400000000000000000000005721355712145100253520ustar00rootroot00000000000000<===> input.scss .item { display: inline-block; :has(> .ext-link) { background: #000; } } .link { color: red; } .textLink { @extend .link; padding: 0 10px; } <===> output.css .item { display: inline-block; } .item :has(> .ext-link) { background: #000; } .link, .textLink { color: red; } .textLink { padding: 0 10px; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_2369.hrx000066400000000000000000000007641355712145100246050ustar00rootroot00000000000000<===> input.scss @a(#{url(\#{})} <===> error Error: Invalid CSS after "@a(#{url(\#{": expected expression (e.g. 1px, bold), was "})}" on line 1 of input.scss Use --trace for backtrace. <===> error-dart-sass Error: Expected expression. , 1 | @a(#{url(\#{})} | ^^ ' input.scss 1:11 root stylesheet <===> error-libsass Error: Invalid CSS after "@a(#{url(\\#{}": expected expression (e.g. 1px, bold), was ")}" on line 1 of test.scss >> @a(#{url(\#{})} -------^ sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_2371.hrx000066400000000000000000000004131355712145100245650ustar00rootroot00000000000000<===> input.scss #{a==b} <===> error Error: Invalid CSS after "#{a==b}": expected "{", was "" on line 2 of input.scss Use --trace for backtrace. <===> error-dart-sass Error: expected "{". , 1 | #{a==b} | ^ ' input.scss 1:8 root stylesheet sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_2374.hrx000066400000000000000000000400431355712145100245730ustar00rootroot00000000000000<===> input.scss $colors: ( yellow: #ffeb3b ); @each $name, $color in $colors { $amount: 40; @for $i from 0 through 9 { .#{$name}-#{($i*100)} { background-color: lighten($color, $amount) }; $amount: $amount - 2; } } $colors: ( yellow: yellow, red: red, blue: blue, ); @each $name, $color in $colors { @for $i from 0 through 2 { .#{$name}-#{($i*100)} { background-color: lighten($color, 10) }; } } <===> output.css .yellow-0 { background-color: white; } .yellow-100 { background-color: #fffffd; } .yellow-200 { background-color: #fffef3; } .yellow-300 { background-color: #fffde8; } .yellow-400 { background-color: #fffcde; } .yellow-500 { background-color: #fffbd4; } .yellow-600 { background-color: #fffaca; } .yellow-700 { background-color: #fff9c0; } .yellow-800 { background-color: #fff7b5; } .yellow-900 { background-color: #fff6ab; } .yellow-0 { background-color: #ffff33; } .yellow-100 { background-color: #ffff33; } .yellow-200 { background-color: #ffff33; } .red-0 { background-color: #ff3333; } .red-100 { background-color: #ff3333; } .red-200 { background-color: #ff3333; } .blue-0 { background-color: #3333ff; } .blue-100 { background-color: #3333ff; } .blue-200 { background-color: #3333ff; } <===> warning WARNING on line 7, column 10 of input.scss: You probably don't mean to use the color value `yellow' in interpolation here. It may end up represented as #ffff00, which will likely produce invalid CSS. Always quote color names when using them as strings (for example, "yellow"). If you really want to use the color value here, use `"" + $name'. WARNING on line 7, column 10 of input.scss: You probably don't mean to use the color value `yellow' in interpolation here. It may end up represented as #ffff00, which will likely produce invalid CSS. Always quote color names when using them as strings (for example, "yellow"). If you really want to use the color value here, use `"" + $name'. WARNING on line 7, column 10 of input.scss: You probably don't mean to use the color value `yellow' in interpolation here. It may end up represented as #ffff00, which will likely produce invalid CSS. Always quote color names when using them as strings (for example, "yellow"). If you really want to use the color value here, use `"" + $name'. WARNING on line 7, column 10 of input.scss: You probably don't mean to use the color value `yellow' in interpolation here. It may end up represented as #ffff00, which will likely produce invalid CSS. Always quote color names when using them as strings (for example, "yellow"). If you really want to use the color value here, use `"" + $name'. WARNING on line 7, column 10 of input.scss: You probably don't mean to use the color value `yellow' in interpolation here. It may end up represented as #ffff00, which will likely produce invalid CSS. Always quote color names when using them as strings (for example, "yellow"). If you really want to use the color value here, use `"" + $name'. WARNING on line 7, column 10 of input.scss: You probably don't mean to use the color value `yellow' in interpolation here. It may end up represented as #ffff00, which will likely produce invalid CSS. Always quote color names when using them as strings (for example, "yellow"). If you really want to use the color value here, use `"" + $name'. WARNING on line 7, column 10 of input.scss: You probably don't mean to use the color value `yellow' in interpolation here. It may end up represented as #ffff00, which will likely produce invalid CSS. Always quote color names when using them as strings (for example, "yellow"). If you really want to use the color value here, use `"" + $name'. WARNING on line 7, column 10 of input.scss: You probably don't mean to use the color value `yellow' in interpolation here. It may end up represented as #ffff00, which will likely produce invalid CSS. Always quote color names when using them as strings (for example, "yellow"). If you really want to use the color value here, use `"" + $name'. WARNING on line 7, column 10 of input.scss: You probably don't mean to use the color value `yellow' in interpolation here. It may end up represented as #ffff00, which will likely produce invalid CSS. Always quote color names when using them as strings (for example, "yellow"). If you really want to use the color value here, use `"" + $name'. WARNING on line 7, column 10 of input.scss: You probably don't mean to use the color value `yellow' in interpolation here. It may end up represented as #ffff00, which will likely produce invalid CSS. Always quote color names when using them as strings (for example, "yellow"). If you really want to use the color value here, use `"" + $name'. WARNING on line 20, column 10 of input.scss: You probably don't mean to use the color value `yellow' in interpolation here. It may end up represented as #ffff00, which will likely produce invalid CSS. Always quote color names when using them as strings (for example, "yellow"). If you really want to use the color value here, use `"" + $name'. WARNING on line 20, column 10 of input.scss: You probably don't mean to use the color value `yellow' in interpolation here. It may end up represented as #ffff00, which will likely produce invalid CSS. Always quote color names when using them as strings (for example, "yellow"). If you really want to use the color value here, use `"" + $name'. WARNING on line 20, column 10 of input.scss: You probably don't mean to use the color value `yellow' in interpolation here. It may end up represented as #ffff00, which will likely produce invalid CSS. Always quote color names when using them as strings (for example, "yellow"). If you really want to use the color value here, use `"" + $name'. WARNING on line 20, column 10 of input.scss: You probably don't mean to use the color value `red' in interpolation here. It may end up represented as #ff0000, which will likely produce invalid CSS. Always quote color names when using them as strings (for example, "red"). If you really want to use the color value here, use `"" + $name'. WARNING on line 20, column 10 of input.scss: You probably don't mean to use the color value `red' in interpolation here. It may end up represented as #ff0000, which will likely produce invalid CSS. Always quote color names when using them as strings (for example, "red"). If you really want to use the color value here, use `"" + $name'. WARNING on line 20, column 10 of input.scss: You probably don't mean to use the color value `red' in interpolation here. It may end up represented as #ff0000, which will likely produce invalid CSS. Always quote color names when using them as strings (for example, "red"). If you really want to use the color value here, use `"" + $name'. WARNING on line 20, column 10 of input.scss: You probably don't mean to use the color value `blue' in interpolation here. It may end up represented as #0000ff, which will likely produce invalid CSS. Always quote color names when using them as strings (for example, "blue"). If you really want to use the color value here, use `"" + $name'. WARNING on line 20, column 10 of input.scss: You probably don't mean to use the color value `blue' in interpolation here. It may end up represented as #0000ff, which will likely produce invalid CSS. Always quote color names when using them as strings (for example, "blue"). If you really want to use the color value here, use `"" + $name'. WARNING on line 20, column 10 of input.scss: You probably don't mean to use the color value `blue' in interpolation here. It may end up represented as #0000ff, which will likely produce invalid CSS. Always quote color names when using them as strings (for example, "blue"). If you really want to use the color value here, use `"" + $name'. <===> warning-dart-sass WARNING: You probably don't mean to use the color value yellow in interpolation here. It may end up represented as yellow, which will likely produce invalid CSS. Always quote color names when using them as strings or map keys (for example, "yellow"). If you really want to use the color value here, use '"" + $name'. , 7 | .#{$name}-#{($i*100)} { background-color: lighten($color, $amount) }; | ^^^^^ ' input.scss 7:12 root stylesheet WARNING: You probably don't mean to use the color value yellow in interpolation here. It may end up represented as yellow, which will likely produce invalid CSS. Always quote color names when using them as strings or map keys (for example, "yellow"). If you really want to use the color value here, use '"" + $name'. , 7 | .#{$name}-#{($i*100)} { background-color: lighten($color, $amount) }; | ^^^^^ ' input.scss 7:12 root stylesheet WARNING: You probably don't mean to use the color value yellow in interpolation here. It may end up represented as yellow, which will likely produce invalid CSS. Always quote color names when using them as strings or map keys (for example, "yellow"). If you really want to use the color value here, use '"" + $name'. , 7 | .#{$name}-#{($i*100)} { background-color: lighten($color, $amount) }; | ^^^^^ ' input.scss 7:12 root stylesheet WARNING: You probably don't mean to use the color value yellow in interpolation here. It may end up represented as yellow, which will likely produce invalid CSS. Always quote color names when using them as strings or map keys (for example, "yellow"). If you really want to use the color value here, use '"" + $name'. , 7 | .#{$name}-#{($i*100)} { background-color: lighten($color, $amount) }; | ^^^^^ ' input.scss 7:12 root stylesheet WARNING: You probably don't mean to use the color value yellow in interpolation here. It may end up represented as yellow, which will likely produce invalid CSS. Always quote color names when using them as strings or map keys (for example, "yellow"). If you really want to use the color value here, use '"" + $name'. , 7 | .#{$name}-#{($i*100)} { background-color: lighten($color, $amount) }; | ^^^^^ ' input.scss 7:12 root stylesheet WARNING: You probably don't mean to use the color value yellow in interpolation here. It may end up represented as yellow, which will likely produce invalid CSS. Always quote color names when using them as strings or map keys (for example, "yellow"). If you really want to use the color value here, use '"" + $name'. , 7 | .#{$name}-#{($i*100)} { background-color: lighten($color, $amount) }; | ^^^^^ ' input.scss 7:12 root stylesheet WARNING: You probably don't mean to use the color value yellow in interpolation here. It may end up represented as yellow, which will likely produce invalid CSS. Always quote color names when using them as strings or map keys (for example, "yellow"). If you really want to use the color value here, use '"" + $name'. , 7 | .#{$name}-#{($i*100)} { background-color: lighten($color, $amount) }; | ^^^^^ ' input.scss 7:12 root stylesheet WARNING: You probably don't mean to use the color value yellow in interpolation here. It may end up represented as yellow, which will likely produce invalid CSS. Always quote color names when using them as strings or map keys (for example, "yellow"). If you really want to use the color value here, use '"" + $name'. , 7 | .#{$name}-#{($i*100)} { background-color: lighten($color, $amount) }; | ^^^^^ ' input.scss 7:12 root stylesheet WARNING: You probably don't mean to use the color value yellow in interpolation here. It may end up represented as yellow, which will likely produce invalid CSS. Always quote color names when using them as strings or map keys (for example, "yellow"). If you really want to use the color value here, use '"" + $name'. , 7 | .#{$name}-#{($i*100)} { background-color: lighten($color, $amount) }; | ^^^^^ ' input.scss 7:12 root stylesheet WARNING: You probably don't mean to use the color value yellow in interpolation here. It may end up represented as yellow, which will likely produce invalid CSS. Always quote color names when using them as strings or map keys (for example, "yellow"). If you really want to use the color value here, use '"" + $name'. , 7 | .#{$name}-#{($i*100)} { background-color: lighten($color, $amount) }; | ^^^^^ ' input.scss 7:12 root stylesheet WARNING: You probably don't mean to use the color value yellow in interpolation here. It may end up represented as yellow, which will likely produce invalid CSS. Always quote color names when using them as strings or map keys (for example, "yellow"). If you really want to use the color value here, use '"" + $name'. , 20 | .#{$name}-#{($i*100)} { | ^^^^^ ' input.scss 20:12 root stylesheet WARNING: You probably don't mean to use the color value yellow in interpolation here. It may end up represented as yellow, which will likely produce invalid CSS. Always quote color names when using them as strings or map keys (for example, "yellow"). If you really want to use the color value here, use '"" + $name'. , 20 | .#{$name}-#{($i*100)} { | ^^^^^ ' input.scss 20:12 root stylesheet WARNING: You probably don't mean to use the color value yellow in interpolation here. It may end up represented as yellow, which will likely produce invalid CSS. Always quote color names when using them as strings or map keys (for example, "yellow"). If you really want to use the color value here, use '"" + $name'. , 20 | .#{$name}-#{($i*100)} { | ^^^^^ ' input.scss 20:12 root stylesheet WARNING: You probably don't mean to use the color value red in interpolation here. It may end up represented as red, which will likely produce invalid CSS. Always quote color names when using them as strings or map keys (for example, "red"). If you really want to use the color value here, use '"" + $name'. , 20 | .#{$name}-#{($i*100)} { | ^^^^^ ' input.scss 20:12 root stylesheet WARNING: You probably don't mean to use the color value red in interpolation here. It may end up represented as red, which will likely produce invalid CSS. Always quote color names when using them as strings or map keys (for example, "red"). If you really want to use the color value here, use '"" + $name'. , 20 | .#{$name}-#{($i*100)} { | ^^^^^ ' input.scss 20:12 root stylesheet WARNING: You probably don't mean to use the color value red in interpolation here. It may end up represented as red, which will likely produce invalid CSS. Always quote color names when using them as strings or map keys (for example, "red"). If you really want to use the color value here, use '"" + $name'. , 20 | .#{$name}-#{($i*100)} { | ^^^^^ ' input.scss 20:12 root stylesheet WARNING: You probably don't mean to use the color value blue in interpolation here. It may end up represented as blue, which will likely produce invalid CSS. Always quote color names when using them as strings or map keys (for example, "blue"). If you really want to use the color value here, use '"" + $name'. , 20 | .#{$name}-#{($i*100)} { | ^^^^^ ' input.scss 20:12 root stylesheet WARNING: You probably don't mean to use the color value blue in interpolation here. It may end up represented as blue, which will likely produce invalid CSS. Always quote color names when using them as strings or map keys (for example, "blue"). If you really want to use the color value here, use '"" + $name'. , 20 | .#{$name}-#{($i*100)} { | ^^^^^ ' input.scss 20:12 root stylesheet WARNING: You probably don't mean to use the color value blue in interpolation here. It may end up represented as blue, which will likely produce invalid CSS. Always quote color names when using them as strings or map keys (for example, "blue"). If you really want to use the color value here, use '"" + $name'. , 20 | .#{$name}-#{($i*100)} { | ^^^^^ ' input.scss 20:12 root stylesheet <===> warning-libsass sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_2376.hrx000066400000000000000000000003121355712145100245700ustar00rootroot00000000000000<===> input.scss .test { background:url(//img12.360buyimg.com/..); .a{ height: 100px; } } <===> output.css .test { background: url(//img12.360buyimg.com/..); } .test .a { height: 100px; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_2382.hrx000066400000000000000000000002501355712145100245660ustar00rootroot00000000000000<===> input.scss .test { font: normal normal 400 16px/calc(16px * 1.4) Oxygen; } <===> output.css .test { font: normal normal 400 16px/calc(16px * 1.4) Oxygen; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_238760.hrx000066400000000000000000000006661355712145100247540ustar00rootroot00000000000000<===> input.scss $id: inspect((a#b:c)...) <===> error Error: Variable keyword argument map must have string keys. ("a" "#b") is not a string in (a #b: c). on line 1 of input.scss Use --trace for backtrace. <===> error-dart-sass Error: Variable keyword argument map must have string keys. a #b is not a string in (a #b: c). , 1 | $id: inspect((a#b:c)...) | ^^^^^^^ ' input.scss 1:14 root stylesheet sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_239.hrx000066400000000000000000000034131355712145100245110ustar00rootroot00000000000000<===> input.scss $gutter: 100% / 36.2; $gutter_em: 1rem; //This needs to be rem to not mess up margins // This calculate the gutter @function col_width($n, $use_calc: false) { $divisor: 12 / $n; @if ($use_calc) { $gutter_offset: $gutter_em * ($divisor - 1); @return calc((100% - #{$gutter_offset}) / #{$divisor}); } @else { @return (100% - $gutter * ($divisor - 1)) / $divisor; } } // Each number here becomes a grid: onecol, twocol etc. $grids: one, two, three, four, five, six, seven, eight, nine, ten, eleven, twelve; $i: 1; @each $grid in $grids { .#{$grid}col { width: col_width( $i ); width: col_width( $i, true ); } %#{$grid}col { width: col_width( $i ); width: col_width( $i, true ); } $i: $i + 1; } <===> output.css .onecol { width: 5.8011049724%; width: calc((100% - 11rem) / 12); } .twocol { width: 14.364640884%; width: calc((100% - 5rem) / 6); } .threecol { width: 22.9281767956%; width: calc((100% - 3rem) / 4); } .fourcol { width: 31.4917127072%; width: calc((100% - 2rem) / 3); } .fivecol { width: 40.0552486188%; width: calc((100% - 1.4rem) / 2.4); } .sixcol { width: 48.6187845304%; width: calc((100% - 1rem) / 2); } .sevencol { width: 57.182320442%; width: calc((100% - 0.7142857143rem) / 1.7142857143); } .eightcol { width: 65.7458563536%; width: calc((100% - 0.5rem) / 1.5); } .ninecol { width: 74.3093922652%; width: calc((100% - 0.3333333333rem) / 1.3333333333); } .tencol { width: 82.8729281768%; width: calc((100% - 0.2rem) / 1.2); } .elevencol { width: 91.4364640884%; width: calc((100% - 0.0909090909rem) / 1.0909090909); } .twelvecol { width: 100%; width: calc((100% - 0rem) / 1); } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_2394.hrx000066400000000000000000000016221355712145100245750ustar00rootroot00000000000000<===> input.scss @mixin brokenTest($color: red, $variableArguments...) { $width: map-get(keywords($variableArguments), width); a { width: $width; color: $color; } } @mixin workingTest($variableArguments...) { $width: map-get(keywords($variableArguments), width); $color: map-get(keywords($variableArguments), color); a { width: $width; color: $color; } } @include brokenTest($width: 30px, $color: blue); // #1 fails @include brokenTest($color: blue, $width: 30px); // #2 fails @include brokenTest(blue, $width: 30px); // #3 works (!) @include workingTest($width: 30px, $color: blue); // #4 works @include workingTest($color: blue, $width: 30px); // #5 works <===> output.css a { width: 30px; color: blue; } a { width: 30px; color: blue; } a { width: 30px; color: blue; } a { width: 30px; color: blue; } a { width: 30px; color: blue; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_2399.hrx000066400000000000000000000003541355712145100246030ustar00rootroot00000000000000<===> input.scss .thing { color: black; } .a, .b, .c, .d, .e { &:not(.thing) { @extend .thing; } } <===> output.css .thing, .a:not(.thing), .b:not(.thing), .c:not(.thing), .d:not(.thing), .e:not(.thing) { color: black; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_2429.hrx000066400000000000000000000001531355712145100245720ustar00rootroot00000000000000<===> input.scss input[type=url] { content: bar } <===> output.css input[type=url] { content: bar; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_2444.hrx000066400000000000000000000001371355712145100245710ustar00rootroot00000000000000<===> input.scss a { @at-root (with: rule) { b: c; } } <===> output.css a { b: c; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_2446/000077500000000000000000000000001355712145100240475ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_2446/error000066400000000000000000000001431355712145100251210ustar00rootroot00000000000000Error: Invalid UTF-8 character "\xE5" on line 1 of input.scss Use --trace for backtrace. sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_2446/error-dart-sass000066400000000000000000000002061355712145100270200ustar00rootroot00000000000000Error: Invalid UTF-8. , 1 | $�:D&(22#222222%0:/2222-2%22%222/2-2%22%2222-2%22%22)/22 | ^ ' input.scss 1:2 root stylesheet sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_2446/error-libsass000066400000000000000000000002021355712145100265530ustar00rootroot00000000000000Error: Invalid UTF-8 sequence on line 1 of input.scss >> $�:D&(22#222222%0:/2222-2%22%222/2-2%22%2222-2%22%22)/22 -^ sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_2446/input.scss000066400000000000000000000000701355712145100261000ustar00rootroot00000000000000$:D&(22#222222%0:/2222-2%22%222/2-2%22%2222-2%22%22)/22sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_2452.hrx000066400000000000000000000005301355712145100245650ustar00rootroot00000000000000<===> input.scss $prop: display; $val: flow-root; @mixin supports($prop, $val) { @supports ($prop: $val) { $prop: $val; } } div { @include supports($prop, $val); } div { @supports ($prop: $val) { #{$prop}: $val; } } <===> output.css @supports (display: flow-root) { div { display: flow-root; } } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_245443/000077500000000000000000000000001355712145100242155ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_245443/error000066400000000000000000000001431355712145100252670ustar00rootroot00000000000000Error: Invalid UTF-8 character "\x8A" on line 1 of input.scss Use --trace for backtrace. sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_245443/error-dart-sass000066400000000000000000000001621355712145100271670ustar00rootroot00000000000000Error: Invalid UTF-8. , 1 | @mfu�n pue0���� {�.\|,& | ^ ' input.scss 1:5 root stylesheet sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_245443/error-libsass000066400000000000000000000002051355712145100267240ustar00rootroot00000000000000Error: Invalid UTF-8 sequence on line 1:5 of input.scss >> @mfu\x{fffd}n pue0\x{fffd}\x{fffd}\x{fffd}\x{fffd} {\x{fffd}.\|,& sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_245443/input.scss000066400000000000000000000001441355712145100262500ustar00rootroot00000000000000@mfun pue0 {.\|,& ~,er { @\|j {} &e#{j {} r { @,er { @\| &e#ej {}} }} } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_246.hrx000066400000000000000000000005721355712145100245120ustar00rootroot00000000000000<===> input.scss $content-width: 960px; /* demo.css: */ .selector { padding: 0 calc(100%/2 - #{$content-width/2}) } /* bin/sassc demo.scss */ .selector { padding: 0 calc(100%/2 - #{$content-width/2}); } <===> output.css /* demo.css: */ .selector { padding: 0 calc(100%/2 - 480px); } /* bin/sassc demo.scss */ .selector { padding: 0 calc(100%/2 - 480px); } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_2462.hrx000066400000000000000000000001431355712145100245660ustar00rootroot00000000000000<===> input.scss b { color: lighten(Crimson, 10%); } <===> output.css b { color: #ed365b; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_2464.hrx000066400000000000000000000003221355712145100245670ustar00rootroot00000000000000<===> input.scss :host(:not(.foo)) { left: 0; } foobar { :host(:not(.foo)) { left: 0; } } <===> output.css :host(:not(.foo)) { left: 0; } foobar :host(:not(.foo)) { left: 0; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_2465.hrx000066400000000000000000000003711355712145100245740ustar00rootroot00000000000000<===> input.scss foo { a: 4e2px; b: 5e-2px; c: 6e2px + 3px; d: 7e-2px + 3px; } <===> output.css foo { a: 4e2px; b: 5e-2px; c: 603px; d: 3.07px; } <===> output-dart-sass.css foo { a: 400px; b: 0.05px; c: 603px; d: 3.07px; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_2467.hrx000066400000000000000000000010131355712145100245700ustar00rootroot00000000000000<===> input.scss foo { a: [footer-right] / 120px; b: [footer-right]/ 120px; c: [footer-right] /120px; d: [footer-right]/120px; e: [footer-right] / 120px 1fr; f: [footer-right]/ 120px 1fr; g: [footer-right] /120px 1fr; h: [footer-right]/120px 1fr; } <===> output.css foo { a: [footer-right]/120px; b: [footer-right]/120px; c: [footer-right]/120px; d: [footer-right]/120px; e: [footer-right]/120px 1fr; f: [footer-right]/120px 1fr; g: [footer-right]/120px 1fr; h: [footer-right]/120px 1fr; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_2468.hrx000066400000000000000000000005331355712145100245770ustar00rootroot00000000000000<===> input.scss %matches { :matches(oh, no) { x: 1; y: 2; } } matches { @extend %matches; @extend oh; } %any { :any(oh, no) { x: 1; y: 2; } } any { @extend %any; @extend oh; } <===> output.css matches :matches(oh, any, matches, no) { x: 1; y: 2; } any :any(oh, any, matches, no) { x: 1; y: 2; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_2472.hrx000066400000000000000000000035021355712145100245710ustar00rootroot00000000000000<===> input.scss @function dark( $color, $args... ) { @return call('darken', $color, $args...); } @function dark2( $args... ) { @return call('darken', $args...); } $arg: join((), 5%); .single { direct: darken(#102030, 5%); arg: darken(#102030, $arg...); call: call('darken', #102030, $arg...); function: dark(#102030, 5%); function2: dark2(#102030, 5%); } <===> output.css .single { direct: #0a131d; arg: #0a131d; call: #0a131d; function: #0a131d; function2: #0a131d; } <===> warning DEPRECATION WARNING: Passing a string to call() is deprecated and will be illegal in Sass 4.0. Use call(function-reference(foobar)) instead. DEPRECATION WARNING: Passing a string to call() is deprecated and will be illegal in Sass 4.0. Use call(function-reference(min)) instead. DEPRECATION WARNING: Passing a string to call() is deprecated and will be illegal in Sass 4.0. Use call(fu <===> warning-dart-sass DEPRECATION WARNING: Passing a string to call() is deprecated and will be illegal in Dart Sass 2.0.0. Use call(get-function("darken")) instead. , 19 | call: call('darken', #102030, $arg...); | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 19:9 root stylesheet DEPRECATION WARNING: Passing a string to call() is deprecated and will be illegal in Dart Sass 2.0.0. Use call(get-function("darken")) instead. , 5 | @return call('darken', $color, $args...); | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 5:11 dark() input.scss 20:13 root stylesheet DEPRECATION WARNING: Passing a string to call() is deprecated and will be illegal in Dart Sass 2.0.0. Use call(get-function("darken")) instead. , 11 | @return call('darken', $args...); | ^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 11:11 dark2() input.scss 21:14 root stylesheet sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_2480.hrx000066400000000000000000000013021355712145100245640ustar00rootroot00000000000000<===> input.scss @mixin main( $param1: param1, $param2: param2, $param3: param3 ) { param1-value: $param1; param2-value: $param2; param3-value: $param3; } @mixin router($args...) { @if (true) { @include main($args...) } @else { @include main2($args...) } } @mixin helper($args...) { @include router($param2: param__2, $args...) } .ordinal-arguments { @include helper(param___1); } .named-arguments { @include helper($param1: param___1); } <===> output.css .ordinal-arguments { param1-value: param___1; param2-value: param__2; param3-value: param3; } .named-arguments { param1-value: param___1; param2-value: param__2; param3-value: param3; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_2482.hrx000066400000000000000000000011721355712145100245730ustar00rootroot00000000000000<===> input.scss @mixin mixin() { & .class { color: black; } } @include mixin(); <===> error Error: Base-level rules cannot contain the parent-selector-referencing character '&'. on line 3 of input.scss, in `mixin' from line 9 of input.scss Use --trace for backtrace. <===> error-libsass Error: Top-level selectors may not contain the parent selector "&". on line 9:10 of input.scss >> & .class <===> error-dart-sass Error: Top-level selectors may not contain the parent selector "&". , 3 | / & .class 4 | | { | '----^ ' input.scss 3:2 mixin() input.scss 9:1 root stylesheet sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_2488.hrx000066400000000000000000000002001355712145100245700ustar00rootroot00000000000000<===> input.scss %foo { @supports (mask-repeat: repeat-x) { mask-image: url(foo.svg); } } <===> output.css sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_2509.hrx000066400000000000000000000006141355712145100245730ustar00rootroot00000000000000<===> options.yml --- :todo: - dart-sass <===> input.scss [charset i] { display: block; } [charset I] { display: block; } [charset="utf-8" i] { display: block; } [charset="utf-8" I] { display: block; } <===> output.css [charset i] { display: block; } [charset I] { display: block; } [charset="utf-8" i] { display: block; } [charset="utf-8" I] { display: block; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_2520.hrx000066400000000000000000000163521355712145100245720ustar00rootroot00000000000000<===> options.yml --- :todo: - dart-sass <===> input.scss // ---- // Sass (v3.4.21) // Compass (v1.0.3) // ---- @function remove-modifiers($selector) { // convert selector to a string $selector: inspect(nth($selector, 1)); $modifier: ''; // Find out where the first modifier starts $modifier-index: str-index($selector, '"--'); @if $modifier-index { // Strip the first part of the selector up until the first modifier $modifier: str-slice($selector, $modifier-index); // Find out where the modifier ends $modifier-end: str-index($modifier, '"]'); // Isolate the modifier $modifier: str-slice($modifier, 0, $modifier-end); // Remove the modifier from the selector $selector: str-replace($selector, $modifier, ''); // Remove junk characters $selector: str-replace($selector, '[class*=]', ''); // Recurse the function to eliminate any remainig modifiers $selector: remove-modifiers($selector); } @return $selector; } @function remove-duplicates($list, $recursive: false) { $result: (); @each $item in $list { @if not index($result, $item) { @if length($item) > 1 and $recursive { $result: append($result, remove-duplicates($item, $recursive)); } @else { $result: append($result, $item); } } } @return $result; } @function str-replace($string, $search, $replace) { $index: str-index($string, $search); @if $index { @return str-slice($string, 1, $index - 1) + $replace + str-replace( str-slice($string, $index + str-length($search)), $search, $replace ); } @return $string; } @function module-tree($selector) { $parent-module: $module; // Remove any modifers $selectors: remove-modifiers($selector); // Remove any junk characters $selectors: str-replace($selectors, '.', ''); $selectors: str-replace($selectors, '[class*="--', ''); $selectors: str-replace($selectors, '[class*="', ''); $selectors: str-replace($selectors, '--"]', ''); $selectors: str-replace($selectors, '"]', ''); // Spoof our modules into a list $selectors: str-replace($selectors, ' ', ', '); $selectors: selector-parse($selectors); @return $selectors; } @function list-remove($list, $value, $recursive: false) { $result: (); @for $i from 1 through length($list) { @if type-of(nth($list, $i)) == list and $recursive { $result: append($result, list-remove(nth($list, $i), $value, $recursive), comma); } @else if nth($list, $i) != $value { $result: append($result, nth($list, $i), comma); } } @return $result; } @function this($options...) { $value: map-get($config, $options...); $debug: true; $this: &; @if length($this) > 0 { @if str-index(inspect(nth($this, 1)), '%') == 1 { $debug: false; } } @if $debug and not $value and $value != false { @warn '#{$options} not found in #{$module} config'; } @return $value; } @function config($map-old, $map-new) { // Merge default and custom options $map-merged: map-merge($map-old, $map-new); // Store config in global variable $config: $map-merged !global; // Return merged map @return $map-merged; } @mixin module($module: $module) { $nested: &; @if not $nested { $module: $module !global; } $selectors: (); @each $item in $module { $selectors: join($selectors, '.#{$module}', comma); $selectors: join($selectors, '[class*="#{$module}--"]', comma); } #{$selectors} { @content; } } @mixin component($components: null, $glue: '__') { $selectors: '[class*="#{$module}#{$glue}"]'; $this: &; $tree: module-tree($this); $namespace: nth($tree, length($tree)); @if $components { $selectors: (); @each $component in $components { $selectors: join( $selectors, '.#{$namespace}#{$glue}#{$component}, [class*="#{$namespace}#{$glue}#{$component}-"]', comma ); } } $parents: (); @each $selector in & { // spoof the selector into a list $selector: str-replace(inspect($selector), ' ', ', '); $selector: selector-parse($selector); // if the last item isn't a modifier, remove it @if not str-index(inspect(nth($selector, length($selector))), '[class*="--') { $selector: list-remove($selector, nth($selector, length($selector))); } // convert the selector back into a string @if length($selector) == 1 { $selector: nth($selector, 1); } $selector: str-replace(inspect($selector), ', ', ' '); // Re-build the parent selector $parents: append($parents, $selector, comma); } // remove duplicate selectors $parents: remove-duplicates($parents); @if length($parents) == 1 { $parents: nth($parents, 1); } @if ($parents == '()') { @at-root #{$selectors} { @content; } } @else { @at-root #{$parents} { #{$selectors} { @content; } } } } @mixin modifier($modifier) { $selectors: &; @if str-index(inspect(&), '.#{$module}') { $selectors: (); @for $i from 1 through length(&) { @if $i % 2 == 0 { $selectors: append($selectors, nth(&, $i), comma); } } } @at-root #{$selectors} { $modifier-selectors: (); @each $item in $modifier { $modifier-selectors: join( $modifier-selectors, '&[class*="--#{$modifier}"]', comma ); } #{$modifier-selectors} { @content; } } } @mixin button($custom:()) { $buttons: config(( 'group-spacing': 1em ), $custom); @include module('button') { @include component('group') { content: 'fizzbuzz'; @include module { margin-left: this('group-spacing'); &:first-child { margin-left: 0; } } } } } @include button(); @include module('modal') { @include modifier('animate') { @include modifier('zoom') { content: "fizzbuzz" } } } <===> output.css .button__group, [class*="button__group-"] { content: 'fizzbuzz'; } .button__group .button, .button__group [class*="button--"], [class*="button__group-"] .button, [class*="button__group-"] [class*="button--"] { margin-left: 1em; } .button__group .button:first-child, .button__group [class*="button--"]:first-child, [class*="button__group-"] .button:first-child, [class*="button__group-"] [class*="button--"]:first-child { margin-left: 0; } [class*="modal--"][class*="--animate"][class*="--zoom"] { content: "fizzbuzz"; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_254.hrx000066400000000000000000000010151355712145100245020ustar00rootroot00000000000000<===> input.scss @mixin simple-media-query($max-width, $min-width) { @media only screen and (max-width: $max-width) and (min-width: $min-width) { @content; } } @mixin test($value) { border-color: $value; } body { @include test("#ccc"); @include simple-media-query(900px, 400px) { border-color: black; } } <===> output.css body { border-color: "#ccc"; } @media only screen and (max-width: 900px) and (min-width: 400px) { body { border-color: black; } } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_2560.hrx000066400000000000000000000002231355712145100245640ustar00rootroot00000000000000<===> input.scss $x: 10px / 5px; test { font-size: $x; font-size: #{$x}; } <===> output.css test { font-size: 2; font-size: 2; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_2569.hrx000066400000000000000000000006761355712145100246110ustar00rootroot00000000000000<===> input.scss @function test() { @if (false) { @return 0; } @else { opacity: 1; } } .my-module { opacity: test(); } <===> error Error: Functions can only contain variable declarations and control directives. on line 5 of input.scss Use --trace for backtrace. <===> error-dart-sass Error: @function rules may not contain declarations. , 5 | opacity: 1; | ^^^^^^^^^^ ' input.scss 5:5 root stylesheet sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_257.hrx000066400000000000000000000002011355712145100245010ustar00rootroot00000000000000<===> input.scss body{background:blue; a{color:black;}} <===> output.css body { background: blue; } body a { color: black; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_2582.hrx000066400000000000000000000003261355712145100245740ustar00rootroot00000000000000<===> input.scss .test { font-size: (16px / 16px) + 0em; font-size: (16px / 16px + 0em); font-size: 16px / 16px + 0em; } <===> output.css .test { font-size: 1em; font-size: 1em; font-size: 1em; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_2625.hrx000066400000000000000000000001401355712145100245640ustar00rootroot00000000000000<===> input.scss something\:{ padding: 2px; } <===> output.css something\: { padding: 2px; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_2633.hrx000066400000000000000000000012101355712145100245620ustar00rootroot00000000000000<===> input.scss $sel1: '.something__child + .something__child--mod1'; $sel2: '.something__child ~ .something__child--mod2'; $result1: selector-unify($sel1, $sel2); #{$result1} { /* nothing */ } .a { color: blue; & > * { @at-root #{selector-unify(&, '.b')} { color: red; } } } .a, .b { color: blue; & > * { @at-root #{selector-unify(&, '.c, .d')} { color: red; } } } <===> output.css .something__child + .something__child--mod1.something__child--mod2 { /* nothing */ } .a { color: blue; } .a > .b { color: red; } .a, .b { color: blue; } .a > .c, .a > .d, .b > .c, .b > .d { color: red; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_267.hrx000066400000000000000000000002121355712145100245040ustar00rootroot00000000000000<===> input.scss $x: foo; @keyframes $x { to { blah: blah; } } <===> output.css @keyframes $x { to { blah: blah; } } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_2697.hrx000066400000000000000000000003031355712145100245760ustar00rootroot00000000000000<===> input.scss .Card { &:not(.is-open, .is-static) { .CardContents { display: none; } } } <===> output.css .Card:not(.is-open, .is-static) .CardContents { display: none; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_274.hrx000066400000000000000000000003511355712145100245060ustar00rootroot00000000000000<===> input.scss input[type=submit], input[type=reset], input[type=button] { filter:chroma(color=#000000); } <===> output.css input[type=submit], input[type=reset], input[type=button] { filter: chroma(color=#000000); } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_2779.hrx000066400000000000000000000012711355712145100246040ustar00rootroot00000000000000<===> input.scss @debug(selector-extend(".a .b", "&b", ndll)); <===> status 65 <===> error-dart-sass Error: $extendee: Parent selectors aren't allowed here. , 1 | &b | ^^ ' - 1:1 root stylesheet , 1 | @debug(selector-extend(".a .b", "&b", ndll)); | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 1:8 root stylesheet <===> error-libsass Error: Parent selectors aren't allowed here. on line 1:33 of sass-spec/spec/libsass-closed-issues/issue_2779/input.scss, in function `selector-extend` from line 1:7 of sass-spec/spec/libsass-closed-issues/issue_2779/input.scss >> @debug(selector-extend(".a .b", "&b", ndll)); --------------------------------^ sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_279.hrx000066400000000000000000000003231355712145100245120ustar00rootroot00000000000000<===> foo.scss .test-hello { color: red; } .test-world { @extend .test-hello; } <===> input.scss .theme { @import "foo.scss"; } <===> output.css .theme .test-hello, .theme .test-world { color: red; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_2808.hrx000066400000000000000000000001511355712145100245710ustar00rootroot00000000000000<===> input.scss test { content: str-slice(abcdef, -10, 2) } <===> output.css test { content: ab; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_2863.hrx000066400000000000000000000011071355712145100245740ustar00rootroot00000000000000<===> input.scss $squoted: "'dquoted'"; $dquoted: "\"squoted\""; test { str-slice-single: str-slice( $squoted, 1, 2 ); str-slice-double: str-slice( $dquoted, 1, 2 ); str-index-single: str-index( $squoted, "q" ); str-index-double: str-index( $dquoted, "q" ); str-insert-single: str-insert( $squoted, "p", 2 ); str-insert-double: str-insert( $dquoted, "p", 2 ); } <===> output.css test { str-slice-single: "'d"; str-slice-double: '"s'; str-index-single: 3; str-index-double: 3; str-insert-single: "'pdquoted'"; str-insert-double: '"psquoted"'; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_2884.hrx000066400000000000000000000022751355712145100246060ustar00rootroot00000000000000<===> input.scss $titles: "foo", "bar", "BaZ"; %border { border: 1px solid; } @mixin border-red { border-color: red; } @mixin border-blue { border-color: blue; } @each $t in $titles { p[title="#{$t}" i] { @extend %border; @include border-red; } p[title="#{$t}"] { @extend %border; @include border-blue; } } <===> output.css p[title=BaZ], p[title=BaZ i], p[title=bar], p[title=bar i], p[title=foo], p[title=foo i] { border: 1px solid; } p[title=foo i] { border-color: red; } p[title=foo] { border-color: blue; } p[title=bar i] { border-color: red; } p[title=bar] { border-color: blue; } p[title=BaZ i] { border-color: red; } p[title=BaZ] { border-color: blue; } <===> output-libsass.css p[title="BaZ"], p[title="BaZ" i], p[title="bar"], p[title="bar" i], p[title="foo"], p[title="foo" i] { border: 1px solid; } p[title="foo" i] { border-color: red; } p[title="foo"] { border-color: blue; } p[title="bar" i] { border-color: red; } p[title="bar"] { border-color: blue; } p[title="BaZ" i] { border-color: red; } p[title="BaZ"] { border-color: blue; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_289.hrx000066400000000000000000000003101355712145100245070ustar00rootroot00000000000000<===> input.scss @import url(http://fonts.googleapis.com/css?family=Titillium+Web:400,300,200,600); <===> output.css @import url(http://fonts.googleapis.com/css?family=Titillium+Web:400,300,200,600); sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_2959.hrx000066400000000000000000000004511355712145100246030ustar00rootroot00000000000000<===> input.scss %color { color: blue; } @mixin getOverridedSelector { &#{&} { @content; } } .foo { @include getOverridedSelector { @extend %color; } } .bar { @include getOverridedSelector { color: red; } } <===> output.css .foo.foo { color: blue; } .bar.bar { color: red; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_2975.hrx000066400000000000000000000014001355712145100245740ustar00rootroot00000000000000<===> input.scss @mixin test($name: false) { $a: ""; $b: ""; @if $name { $a: "-#{$name}"; // works as expected $b: -$name; // here occurs the bug } @else { $a: ""; $b: ""; } .test-a#{$a} { display: block; } .test-b#{$b} { display: block; } } @include test; @include test(asdf); @include test(foo1); @include test(bar1); // @include test("foo2"); // @include test("bar2"); <===> output.css .test-a { display: block; } .test-b { display: block; } .test-a-asdf { display: block; } .test-b-asdf { display: block; } .test-a-foo1 { display: block; } .test-b-foo1 { display: block; } .test-a-bar1 { display: block; } .test-b-bar1 { display: block; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_2980.hrx000066400000000000000000000015501355712145100245760ustar00rootroot00000000000000<===> input.scss $config: ( phone: ( break-point-width:0px, break-point-name: xs ), tablet: ( break-point-width:600px, break-point-name: sm ), laptop: ( break-point-width:900px, break-point-name: md ), desktop: ( break-point-width:1200px, break-point-name:lg ), ); @each $key, $map in $config { $break-point-width: map_get($map, break-point-width); $break-point-name: map_get($map, break-point-name); $infix: if($break-point-width == 0px, null, -$break-point-name); .foo#{$infix} { content: '#{$break-point-name}'; } } <===> output.css .foo { content: "xs"; } .foo-sm { content: "sm"; } .foo-md { content: "md"; } .foo-lg { content: "lg"; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_2994.hrx000066400000000000000000000005561355712145100246100ustar00rootroot00000000000000<===> input.scss .one-screen-page { @extend %context-dark; } %context-dark { .button-secondary-outline { &:hover, &:focus, &:active, &:hover { color: #fca; } } } <===> output.css .one-screen-page .button-secondary-outline:hover, .one-screen-page .button-secondary-outline:focus, .one-screen-page .button-secondary-outline:active { color: #fca; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_308.hrx000066400000000000000000000017261355712145100245130ustar00rootroot00000000000000<===> options.yml --- :warning_todo: - libsass <===> input.scss $var: orange; .test { color: $var; } .#{$var} { color: #C0362C; } <===> output.css .test { color: orange; } .orange { color: #C0362C; } <===> warning WARNING on line 7, column 2 of input.scss: You probably don't mean to use the color value `orange' in interpolation here. It may end up represented as #ffa500, which will likely produce invalid CSS. Always quote color names when using them as strings (for example, "orange"). If you really want to use the color value here, use `"" + $var'. <===> warning-dart-sass WARNING: You probably don't mean to use the color value orange in interpolation here. It may end up represented as orange, which will likely produce invalid CSS. Always quote color names when using them as strings or map keys (for example, "orange"). If you really want to use the color value here, use '"" + $var'. , 7 | .#{$var} { | ^^^^ ' input.scss 7:4 root stylesheet sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_309.hrx000066400000000000000000000002441355712145100245060ustar00rootroot00000000000000<===> input.scss $zzz: zzz; a[data-foo="#{$zzz}"] { a: b; } <===> output.css a[data-foo="zzz"] { a: b; } <===> output-dart-sass.css a[data-foo=zzz] { a: b; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_312.hrx000066400000000000000000000013271355712145100245030ustar00rootroot00000000000000<===> input.scss @for $i from 0 through 10 { .foo [index = "#{$i}"] { transform: translateY($i * 100%); } } <===> output.css .foo [index="0"] { transform: translateY(0%); } .foo [index="1"] { transform: translateY(100%); } .foo [index="2"] { transform: translateY(200%); } .foo [index="3"] { transform: translateY(300%); } .foo [index="4"] { transform: translateY(400%); } .foo [index="5"] { transform: translateY(500%); } .foo [index="6"] { transform: translateY(600%); } .foo [index="7"] { transform: translateY(700%); } .foo [index="8"] { transform: translateY(800%); } .foo [index="9"] { transform: translateY(900%); } .foo [index="10"] { transform: translateY(1000%); } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_338.hrx000066400000000000000000000002351355712145100245100ustar00rootroot00000000000000<===> input.scss $list: ("a", "b"); test { content: if( length($list) > 2, nth($list, 3), nth($list, 1) ); } <===> output.css test { content: "a"; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_344.hrx000066400000000000000000000003071355712145100245050ustar00rootroot00000000000000<===> input.scss $variable: 1; $foo: #{$variable}px; $bar: #{1}px; $baz: "1px"; div { top: -$foo; top: -$bar; top: -$baz; } <===> output.css div { top: -1px; top: -1px; top: -"1px"; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_346.hrx000066400000000000000000000003171355712145100245100ustar00rootroot00000000000000<===> input.scss $mediaquery: 'and (min-width: 300px)'; @media all #{$mediaquery} { div { display: block; } } <===> output.css @media all and (min-width: 300px) { div { display: block; } } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_349.hrx000066400000000000000000000002121355712145100245050ustar00rootroot00000000000000<===> input.scss div { blah: not true; } <===> output.css div { blah: not true; } <===> output-dart-sass.css div { blah: false; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_368.hrx000066400000000000000000000004641355712145100245170ustar00rootroot00000000000000<===> input.scss @if true { div { background: green; } } @if not true { div { background: red; } } @if not not true { div { background: blue; } } @if not (true or false) { div { background: black; } } <===> output.css div { background: green; } div { background: blue; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_394.hrx000066400000000000000000000006171355712145100245160ustar00rootroot00000000000000<===> input.scss $list1: alpha beta gamma; $list2: one two three; $map: (alpha: one, beta: two, gamma: three); .ma-list { @each $item1, $item2 in zip($list1, $list2) { #{$item1}: $item2; } } .ma-map { @each $key, $value in $map { #{$key}: $value; } } <===> output.css .ma-list { alpha: one; beta: two; gamma: three; } .ma-map { alpha: one; beta: two; gamma: three; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_424.hrx000066400000000000000000000010561355712145100245060ustar00rootroot00000000000000<===> input.scss footer { color: red; } // Ampersand in SassScript: /*.button { &-primary { background: orange; } &-secondary { background: blue; } }*/ // Output: .button-primary { background: orange; } .button-secondary { background: blue; } <===> output.css footer { color: red; } /*.button { &-primary { background: orange; } &-secondary { background: blue; } }*/ .button-primary { background: orange; } .button-secondary { background: blue; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_435.hrx000066400000000000000000000022341355712145100245070ustar00rootroot00000000000000<===> input.scss $skin-name: "CMS_Black"; $QUOTE: unquote('"'); $EMPTY_STRING: unquote( "" ); $SLASH: unquote("/"); $SKINS_PATH: unquote("/CMS/Skins"); $URL_SEPARATOR: $SLASH; $URL_PREFIX: $EMPTY_STRING; $URL_SUFFIX: $EMPTY_STRING; $_URL_PREFIX: $URL_PREFIX + $EMPTY_STRING; $_URL_SUFFIX: $URL_SUFFIX + $EMPTY_STRING; $_URL_SEPARATOR: $URL_SEPARATOR + $EMPTY_STRING; $_SKINS_PATH: $SKINS_PATH + $EMPTY_STRING; @function webresource-image-url( $skin, $control, $file ) { $_url: $EMPTY_STRING; $_path: $_SKINS_PATH $skin $control; @each $_part in $_path { $_url: $_url + $_part + $_URL_SEPARATOR } @return $_URL_PREFIX + $QUOTE + $_url + $file + $QUOTE + $_URL_SUFFIX; } @function global-image-url( $skin, $control, $file ) { @return webresource-image-url( $skin, $control, $file ); } @function skin-image-url( $control, $file ) { @return global-image-url( $skin-name, $control, $file ); } $actions-sprite: skin-image-url( "Common", "radActionsSprite.png" ); .test { background-image: url( $actions-sprite ); } <===> output.css .test { background-image: url("/CMS/Skins/CMS_Black/Common/radActionsSprite.png"); } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_439.hrx000066400000000000000000000005731355712145100245170ustar00rootroot00000000000000<===> input.scss @mixin odd( $selector, $n) { $selector: "& + " + $selector + " + " + $selector; $placeholder: unique_id(); %#{$placeholder} { @content; } #{$selector}:first-child { #{$selector} { @extend %#{$placeholder}; } } } ul > { @include odd( li, 5 ) { background: #ccc; } } <===> output.css ul > + li + li:first-child + li + li { background: #ccc; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_442.hrx000066400000000000000000000003151355712145100245030ustar00rootroot00000000000000<===> options.yml --- :todo: - libsass <===> input.scss $lhs: (100/10)#{rem}; $rhs: 10rem; foo { a: $lhs; a: $rhs; a: $lhs == $rhs; } <===> output.css foo { a: 10 rem; a: 10rem; a: false; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_45.hrx000066400000000000000000000042211355712145100244220ustar00rootroot00000000000000<===> input.scss p:after { content:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAACXBIWXMAAAsTAAALEwEAmpwYAAAABGdBTUEAALGOfPtRkwAAACBjSFJNAAB6JQAAgIMAAPn/AACA6QAAdTAAAOpgAAA6mAAAF2+SX8VGAAACeElEQVR42nySy29McRTHP/fOnTvT6bQNrdHKMGGhFkTSELGxwoJY8Q9YWFhYEUJsRSKCsJWikjYSJBIbinpVPJLSRlEkKK2WTnXmvl+/Y4F4tPVJPqtvzjcnJ0cTEQxdY/miFH6gcAJpaWrQl86t05rR9axSKD8UZ6KqJscm5bMdyDDgAYgIBoCORm2G1u0b6w8unJ/bmDG1QtpUmIYiZ8Zk0zEpYmW76tujV9J3/Ep04v0XdR2IDYAdWxYt27Sa8/l8btWIlaYSupgqpNaMUYbC0DUa8qKXWpLGNSvZEETpZO/Z4B5gGQCRMio1xdVfioUIa3AQJ/ZARWhJgkQJKq3wfJ3RwETGhRtPgx7ABtBEhCVNBqViU2tn5+5bLfXmgurIYwJrGFEJmqZh2T4jo2X0YIreZ+7dfeejrcCEiKADfCon3O4fHzp25Nx+8nnqF65lXnEphQUtNBYKaKkMcRgxVY29093JUWCCn+gAORMaTLh0dbCjo/1KO3X1kC6BGIR+QLVioSc+F+9HnW/G1DX+QAcw0j8c/QaHj3UfeN0/MMicEmSL+J5P6DkMDUcfLvZGJ4FwWoHl/lAEXo344zv3dO3ynXJIpg7XdnBtj46bwSnblwH+QQdQ8lsNeNg32nOm/fIh3CGS0OXOQHCv90XYwUyICM2NNX85f26WUnOu5smFzX0vu9qktZjeNtusAbB+XdvfAWDZnjeurX2XST1Y8X6s7zmzYABUrHBaYNshYRC4k340FcZU/1vg2JVpgeP4uJXypHK8soD134In/W+mb+AJvffvvC022It/ve1MaCJCXU6f4UCQy1CbNVONH7/Gw7Md8fsAtddMUh5fveYAAAAASUVORK5CYII=); } <===> output.css p:after { content: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAACXBIWXMAAAsTAAALEwEAmpwYAAAABGdBTUEAALGOfPtRkwAAACBjSFJNAAB6JQAAgIMAAPn/AACA6QAAdTAAAOpgAAA6mAAAF2+SX8VGAAACeElEQVR42nySy29McRTHP/fOnTvT6bQNrdHKMGGhFkTSELGxwoJY8Q9YWFhYEUJsRSKCsJWikjYSJBIbinpVPJLSRlEkKK2WTnXmvl+/Y4F4tPVJPqtvzjcnJ0cTEQxdY/miFH6gcAJpaWrQl86t05rR9axSKD8UZ6KqJscm5bMdyDDgAYgIBoCORm2G1u0b6w8unJ/bmDG1QtpUmIYiZ8Zk0zEpYmW76tujV9J3/Ep04v0XdR2IDYAdWxYt27Sa8/l8btWIlaYSupgqpNaMUYbC0DUa8qKXWpLGNSvZEETpZO/Z4B5gGQCRMio1xdVfioUIa3AQJ/ZARWhJgkQJKq3wfJ3RwETGhRtPgx7ABtBEhCVNBqViU2tn5+5bLfXmgurIYwJrGFEJmqZh2T4jo2X0YIreZ+7dfeejrcCEiKADfCon3O4fHzp25Nx+8nnqF65lXnEphQUtNBYKaKkMcRgxVY29093JUWCCn+gAORMaTLh0dbCjo/1KO3X1kC6BGIR+QLVioSc+F+9HnW/G1DX+QAcw0j8c/QaHj3UfeN0/MMicEmSL+J5P6DkMDUcfLvZGJ4FwWoHl/lAEXo344zv3dO3ynXJIpg7XdnBtj46bwSnblwH+QQdQ8lsNeNg32nOm/fIh3CGS0OXOQHCv90XYwUyICM2NNX85f26WUnOu5smFzX0vu9qktZjeNtusAbB+XdvfAWDZnjeurX2XST1Y8X6s7zmzYABUrHBaYNshYRC4k340FcZU/1vg2JVpgeP4uJXypHK8soD134In/W+mb+AJvffvvC022It/ve1MaCJCXU6f4UCQy1CbNVONH7/Gw7Md8fsAtddMUh5fveYAAAAASUVORK5CYII=); } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_453.hrx000066400000000000000000000001611355712145100245040ustar00rootroot00000000000000<===> input.scss div { --a: 2px; top: var(--a); } <===> output.css div { --a: 2px; top: var(--a); } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_456.hrx000066400000000000000000000001651355712145100245130ustar00rootroot00000000000000<===> input.scss body { -webkit-filter: invert(100%); } <===> output.css body { -webkit-filter: invert(100%); } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_469.hrx000066400000000000000000000002221355712145100245110ustar00rootroot00000000000000<===> input.scss /*! */ @charset "utf-8"; a { color: red; } @import url("x"); <===> output.css /*! */ @import url("x"); a { color: red; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_472.hrx000066400000000000000000000002651355712145100245120ustar00rootroot00000000000000<===> input.scss div { display: block; @keyframes { from { foo: bar; } } } <===> output.css div { display: block; } @keyframes { from { foo: bar; } } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_478.hrx000066400000000000000000000001361355712145100245150ustar00rootroot00000000000000<===> input.scss $x: "x"; $y: "y"; #{$x}--#{$y} { a: 1 } <===> output.css x--y { a: 1; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_485.hrx000066400000000000000000000006431355712145100245160ustar00rootroot00000000000000<===> input.scss @media not all and (monochrome) { a {foo: bar} } @media not screen and (color), print and (color) { a {foo: bar} } @media (not (screen and (color))), print and (color) { a {foo: bar} } <===> output.css @media not all and (monochrome) { a { foo: bar; } } @media not screen and (color), print and (color) { a { foo: bar; } } @media (false), print and (color) { a { foo: bar; } } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_487.hrx000066400000000000000000000006471355712145100245240ustar00rootroot00000000000000<===> input.scss @mixin flex($grow: 1, $shrink: null, $basis: null) { -webkit-box-flex: $grow; -webkit-flex: $grow $shrink $basis; -moz-box-flex: $grow; -moz-flex: $grow $shrink $basis; -ms-flex: $grow $shrink $basis; flex: $grow $shrink $basis; } [flex] { @include flex; } <===> output.css [flex] { -webkit-box-flex: 1; -webkit-flex: 1; -moz-box-flex: 1; -moz-flex: 1; -ms-flex: 1; flex: 1; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_492.hrx000066400000000000000000000005401355712145100245100ustar00rootroot00000000000000<===> input.scss $map: ( foo: bar, baz: monkey, ); .css { @each $key, $value in $map { #{$key}: $value; } } $list: one two, three four five, six seven; .list { @each $foo, $bar, $baz in $list { #{$foo}: $bar $baz; } } <===> output.css .css { foo: bar; baz: monkey; } .list { one: two; three: four five; six: seven; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_495.hrx000066400000000000000000000003201355712145100245070ustar00rootroot00000000000000<===> input.scss /* Testing to make sure that a trailing comma doesn't break the tests */ $map: ( hello: world, ); <===> output.css /* Testing to make sure that a trailing comma doesn't break the tests */ sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_502.hrx000066400000000000000000000000561355712145100245020ustar00rootroot00000000000000<===> input.scss $a: 1;; ;; <===> output.css sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_506.hrx000066400000000000000000000004611355712145100245060ustar00rootroot00000000000000<===> input.scss $list: foo bar baz; $list--comma: foo, bar, baz; $single: foo; div { _list-space: list-separator($list); _list-comma: list-separator($list--comma); _single-item: list-separator($single); } <===> output.css div { _list-space: space; _list-comma: comma; _single-item: space; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_509.hrx000066400000000000000000000013461355712145100245140ustar00rootroot00000000000000<===> input.scss $foo: ( (key1): (value-1-0), key2: value-2-0, (key6): (value-6-0), key-3-0 key-3-1 key-3-2: value-3-0 value-3-1 value-3-2, key4: (value-4-0, value-4-1, value-4-2), key5: (key-5-0: value-5-1), (key-7-0: key-7-1): (value-7-0: value-7-1), (key-8-0, key-8-1, key-8-2): (value-8-0, value-8-1, value-8-2), ); div { foo: map-get((foo: 1, bar: 2), foo); foo: map-get((foo: 1, bar: 2), bar); foo: map-get((foo: 1, bar: 2), baz); foo: map-get((), foo); foo: map-get($foo, (key-5-0: value-5-1)); foo: map-get($foo, (key2)); foo: map-get($foo, (key-3-0 key-3-1 key-3-2)); } <===> output.css div { foo: 1; foo: 2; foo: value-2-0; foo: value-3-0 value-3-1 value-3-2; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_510.hrx000066400000000000000000000002671355712145100245050ustar00rootroot00000000000000<===> input.scss $before: map-remove((foo: 1, bar: 2, baz: 3, burp: 4), bar, baz); $after: (foo: 1, burp: 4); div { foo: $before == $after; } <===> output.css div { foo: true; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_512.hrx000066400000000000000000000002671355712145100245070ustar00rootroot00000000000000<===> input.scss $list: a b c; .css { debug: index($list, a); @if type-of(index($list, 2)) == "null" { debug: foo; } } <===> output.css .css { debug: 1; debug: foo; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_534.hrx000066400000000000000000000004021355712145100245020ustar00rootroot00000000000000<===> input.scss $foo: ( 1: foo1 bar1, 10: foo2 bar2, 100: foo3 bar3, ); div { foo: map-get($foo, 1); foo: map-get($foo, 10); foo: map-get($foo, 100); } <===> output.css div { foo: foo1 bar1; foo: foo2 bar2; foo: foo3 bar3; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_535.hrx000066400000000000000000000001731355712145100245100ustar00rootroot00000000000000<===> input.scss $width: 10; .test { margin-left: - 54 * $width - 1; } <===> output.css .test { margin-left: -541; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_54.hrx000066400000000000000000000012461355712145100244260ustar00rootroot00000000000000<===> options.yml --- :ignore_for: - dart-sass <===> input.scss @mixin opacity($percent) { foo { test: opacity($percent); } } @-webkit-keyframes uiDelayedFadeIn { 0% { @include opacity(0.01); } 50% { @include opacity(0.01); } 100% { @include opacity(1); } } @-webkit-keyframes bounce { from { left: 0px; } to { left: 200px; } } <===> output.css @-webkit-keyframes uiDelayedFadeIn { 0% { foo { test: opacity(0.01); } } 50% { foo { test: opacity(0.01); } } 100% { foo { test: opacity(1); } } } @-webkit-keyframes bounce { from { left: 0px; } to { left: 200px; } } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_548.hrx000066400000000000000000000010541355712145100245130ustar00rootroot00000000000000<===> input.scss .parent-sel-value { font-family: &; .parent-sel-interpolation { font-family: #{&}; .parent-sel-value-concat { font-family: "Current parent: " + &; } } } <===> output.css .parent-sel-value { font-family: .parent-sel-value; } .parent-sel-value .parent-sel-interpolation { font-family: .parent-sel-value .parent-sel-interpolation; } .parent-sel-value .parent-sel-interpolation .parent-sel-value-concat { font-family: "Current parent: .parent-sel-value .parent-sel-interpolation .parent-sel-value-concat"; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_549.hrx000066400000000000000000000002001355712145100245040ustar00rootroot00000000000000<===> input.scss $value: 10; foo { filter: foo(opacity=$value*100); } <===> output.css foo { filter: foo(opacity=1000); } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_550/000077500000000000000000000000001355712145100237615ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_550/literal/000077500000000000000000000000001355712145100254155ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_550/literal/dimension.hrx000066400000000000000000000012441355712145100301260ustar00rootroot00000000000000<===> input.scss #foo { i: 10.0001px; j: 10.01px; k: -10.0001px; l: -10.01px; } #foo { i: 0.0001px; j: 0.01px; k: -0.0001px; l: -0.01px; } #foo { i: .0001px; j: .01px; k: -.0001px; l: -.01px; } <===> output.css #foo { i: 10.0001px; j: 10.01px; k: -10.0001px; l: -10.01px; } #foo { i: 0.0001px; j: 0.01px; k: -0.0001px; l: -0.01px; } #foo { i: .0001px; j: .01px; k: -.0001px; l: -.01px; } <===> output-dart-sass.css #foo { i: 10.0001px; j: 10.01px; k: -10.0001px; l: -10.01px; } #foo { i: 0.0001px; j: 0.01px; k: -0.0001px; l: -0.01px; } #foo { i: 0.0001px; j: 0.01px; k: -0.0001px; l: -0.01px; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_550/literal/number.hrx000066400000000000000000000011341355712145100274270ustar00rootroot00000000000000<===> input.scss #foo { a: 10.0001; b: 10.01; c: -10.0001; d: -10.01; } #foo { a: 0.0001; b: 0.01; c: -0.0001; d: -0.01; } #foo { a: .0001; b: .01; c: -.0001; d: -.01; } <===> output.css #foo { a: 10.0001; b: 10.01; c: -10.0001; d: -10.01; } #foo { a: 0.0001; b: 0.01; c: -0.0001; d: -0.01; } #foo { a: .0001; b: .01; c: -.0001; d: -.01; } <===> output-dart-sass.css #foo { a: 10.0001; b: 10.01; c: -10.0001; d: -10.01; } #foo { a: 0.0001; b: 0.01; c: -0.0001; d: -0.01; } #foo { a: 0.0001; b: 0.01; c: -0.0001; d: -0.01; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_550/literal/percent.hrx000066400000000000000000000012001355712145100275710ustar00rootroot00000000000000<===> input.scss #foo { e: 10.0001%; f: 10.01%; g: -10.0001%; h: -10.01%; } #foo { e: 0.0001%; f: 0.01%; g: -0.0001%; h: -0.01%; } #foo { e: .0001%; f: .01%; g: -.0001%; h: -.01%; } <===> output.css #foo { e: 10.0001%; f: 10.01%; g: -10.0001%; h: -10.01%; } #foo { e: 0.0001%; f: 0.01%; g: -0.0001%; h: -0.01%; } #foo { e: .0001%; f: .01%; g: -.0001%; h: -.01%; } <===> output-dart-sass.css #foo { e: 10.0001%; f: 10.01%; g: -10.0001%; h: -10.01%; } #foo { e: 0.0001%; f: 0.01%; g: -0.0001%; h: -0.01%; } #foo { e: 0.0001%; f: 0.01%; g: -0.0001%; h: -0.01%; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_550/operator.hrx000066400000000000000000000004601355712145100263370ustar00rootroot00000000000000<===> input.scss $x: .03; $y: 0.7; #foo { color: saturate($x); color: saturate($y); -webkit-filter: grayscale(.03); -webkit-filter: grayscale(0.7); } <===> output.css #foo { color: saturate(0.03); color: saturate(0.7); -webkit-filter: grayscale(0.03); -webkit-filter: grayscale(0.7); } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_550/variable/000077500000000000000000000000001355712145100255465ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_550/variable/dimension.hrx000066400000000000000000000010711355712145100302550ustar00rootroot00000000000000<===> input.scss $i1: 10.0001px; $j1: 10.01px; $k1: -10.0001px; $l1: -10.01px; #foo { i: $i1; j: $j1; k: $k1; l: $l1; } $i2: 0.0001px; $j2: 0.01px; $k2: -0.0001px; $l2: -0.01px; #foo { i: $i2; j: $j2; k: $k2; l: $l2; } $i3: .0001px; $j3: .01px; $k3: -.0001px; $l3: -.01px; #foo { i: $i3; j: $j3; k: $k3; l: $l3; } <===> output.css #foo { i: 10.0001px; j: 10.01px; k: -10.0001px; l: -10.01px; } #foo { i: 0.0001px; j: 0.01px; k: -0.0001px; l: -0.01px; } #foo { i: 0.0001px; j: 0.01px; k: -0.0001px; l: -0.01px; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_550/variable/number.hrx000066400000000000000000000010111355712145100275520ustar00rootroot00000000000000<===> input.scss $a1: 10.0001; $b1: 10.01; $c1: -10.0001; $d1: -10.01; #foo { a: $a1; b: $b1; c: $c1; d: $d1; } $a2: 0.0001; $b2: 0.01; $c2: -0.0001; $d2: -0.01; #foo { a: $a2; b: $b2; c: $c2; d: $d2; } $a3: .0001; $b3: .01; $c3: -.0001; $d3: -.01; #foo { a: $a3; b: $b3; c: $c3; d: $d3; } <===> output.css #foo { a: 10.0001; b: 10.01; c: -10.0001; d: -10.01; } #foo { a: 0.0001; b: 0.01; c: -0.0001; d: -0.01; } #foo { a: 0.0001; b: 0.01; c: -0.0001; d: -0.01; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_550/variable/percent.hrx000066400000000000000000000010401355712145100277240ustar00rootroot00000000000000<===> input.scss $e1: 10.0001%; $f1: 10.01%; $g1: -10.0001%; $h1: -10.01%; #foo { e: $e1; f: $f1; g: $g1; h: $h1; } $e2: 0.0001%; $f2: 0.01%; $g2: -0.0001%; $h2: -0.01%; #foo { e: $e2; f: $f2; g: $g2; h: $h2; } $e3: .0001%; $f3: .01%; $g3: -.0001%; $h3: -.01%; #foo { e: $e3; f: $f3; g: $g3; h: $h3; } <===> output.css #foo { e: 10.0001%; f: 10.01%; g: -10.0001%; h: -10.01%; } #foo { e: 0.0001%; f: 0.01%; g: -0.0001%; h: -0.01%; } #foo { e: 0.0001%; f: 0.01%; g: -0.0001%; h: -0.01%; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_552.hrx000066400000000000000000000002351355712145100245060ustar00rootroot00000000000000<===> input.scss a, div { top: 0; } .a, .b { &.c { color: red; } } <===> output.css a, div { top: 0; } .a.c, .b.c { color: red; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_553.hrx000066400000000000000000000004231355712145100245060ustar00rootroot00000000000000<===> input.scss $foo\bar: 1; @function foo\func() { @return 1; } @mixin foo\mixin() { mixin-value: 1; } .test { var-value: $foo\bar; func-value: foo\func(); @include foo\mixin(); } <===> output.css .test { var-value: 1; func-value: 1; mixin-value: 1; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_555.hrx000066400000000000000000000005351355712145100245140ustar00rootroot00000000000000<===> input.scss @function hello($name) { @return $name; } $foo: ( bar() : baz, bar("foo") : blah, hello("bob") : bam, ); a { foo: map-get($foo, "bar()"); foo: map-get($foo, "bar(\"foo\")"); foo: map-get($foo, 'bar("foo")'); foo: map-get($foo, "bob"); } <===> output.css a { foo: baz; foo: blah; foo: blah; foo: bam; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_556.hrx000066400000000000000000000002451355712145100245130ustar00rootroot00000000000000<===> input.scss $test: ( one: 1, two: 2, ); $expect: ( two: 2, one: 1, ); .test { equal: $test == $expect; } <===> output.css .test { equal: true; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_557.hrx000066400000000000000000000001431355712145100245110ustar00rootroot00000000000000<===> input.scss a { foo: map-get((foo: 1, bar: 2), "bar"); } <===> output.css a { foo: 2; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_558.hrx000066400000000000000000000003511355712145100245130ustar00rootroot00000000000000<===> input.scss @function is_gold($c) { @if ($c == gold) { @return 'yes'; } @return 'no'; } div { foo: is_gold(gold); bar: is_gold(white); } <===> output.css div { foo: "yes"; bar: "no"; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_56.hrx000066400000000000000000000002361355712145100244260ustar00rootroot00000000000000<===> input.scss @media (min-width: 980px) { a { color: red; } } <===> output.css @media (min-width: 980px) { a { color: red; } } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_574.hrx000066400000000000000000000002641355712145100245140ustar00rootroot00000000000000<===> input.scss $flow: left; $map: ( margin-#{$flow}: 3em, foo: bar, ); .test { margin-left: map-get($map, margin-left); } <===> output.css .test { margin-left: 3em; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_575.hrx000066400000000000000000000001661355712145100245160ustar00rootroot00000000000000<===> input.scss .test { @if (foo: bar) == (foo: bar) { foo: bar; } } <===> output.css .test { foo: bar; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_577.hrx000066400000000000000000000004041355712145100245130ustar00rootroot00000000000000<===> input.scss @function map-each($map) { $values: (); @each $key, $value in $map { $values: append($values, $value); } @return $values; } $map: (foo: bar); .test { -map-test: map-each($map); } <===> output.css .test { -map-test: bar; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_578.hrx000066400000000000000000000004361355712145100245210ustar00rootroot00000000000000<===> input.scss $list: one foo three bar six seven; $pos: set-nth($list, 2, two); $neg: set-nth($pos, -3, four five); .test { -positive: $pos; -negative: $neg; } <===> output.css .test { -positive: one two three bar six seven; -negative: one two three four five six seven; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_579.hrx000066400000000000000000000003261355712145100245200ustar00rootroot00000000000000<===> input.scss $map: ( foo: fump, bar: bump, ); @mixin vararg-test($foo, $bar) { foo: $foo; bar: $bar; } .test { @include vararg-test($map...); } <===> output.css .test { foo: fump; bar: bump; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_58.hrx000066400000000000000000000002201355712145100244210ustar00rootroot00000000000000<===> input.scss test { background: url(/static_loc/img/beta.png); } <===> output.css test { background: url(/static_loc/img/beta.png); } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_59.hrx000066400000000000000000000003551355712145100244330ustar00rootroot00000000000000<===> input.scss @mixin apply-to-ie6-only { * html { @content; } } @include apply-to-ie6-only { #logo { background-image: url(/logo.gif); } } <===> output.css * html #logo { background-image: url(/logo.gif); } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_590.hrx000066400000000000000000000002771355712145100245160ustar00rootroot00000000000000<===> input.scss foo { foo: 1/2; foo: 0.5; foo: (1/2); foo: 1/2 == 0.5; foo: (1/2) == 0.5; } <===> output.css foo { foo: 1/2; foo: 0.5; foo: 0.5; foo: true; foo: true; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_592.hrx000066400000000000000000000003531355712145100245130ustar00rootroot00000000000000<===> input.scss %a::-webkit-scrollbar { color: green; } .a { .b { @extend %a; } .c .b { @extend %a; } } <===> output.css .a .c .b::-webkit-scrollbar, .a .b::-webkit-scrollbar { color: green; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_593.hrx000066400000000000000000000003401355712145100245100ustar00rootroot00000000000000<===> input.scss h1:nth-of-type(#{2 + 'n + 1'}) { color: red; } h1:nth-of-type(#{2 + 'n + 1'}) { color: red; } <===> output.css h1:nth-of-type(2n + 1) { color: red; } h1:nth-of-type(2n + 1) { color: red; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_595.hrx000066400000000000000000000001161355712145100245130ustar00rootroot00000000000000<===> input.scss a { color: red; }; <===> output.css a { color: red; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_6.hrx000066400000000000000000000006571355712145100243500ustar00rootroot00000000000000<===> input.scss *[class|="has-background"] { background: #efefef; padding: 7px; border: 1px solid #888; margin-bottom: 5px; } <===> output.css *[class|="has-background"] { background: #efefef; padding: 7px; border: 1px solid #888; margin-bottom: 5px; } <===> output-dart-sass.css *[class|=has-background] { background: #efefef; padding: 7px; border: 1px solid #888; margin-bottom: 5px; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_602/000077500000000000000000000000001355712145100237575ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_602/input.scss000066400000000000000000000002171355712145100260130ustar00rootroot00000000000000#foo.\bar { color: red; } #foo.b\ar { color: red; } #foo\.bar { color: red; } #foo\bar { color: red; } #fo\o.bar { color: red; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_602/options.yml000066400000000000000000000000371355712145100261750ustar00rootroot00000000000000--- :todo: - sass/libsass#2700 sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_602/output.css000066400000000000000000000002371355712145100260330ustar00rootroot00000000000000@charset "UTF-8"; #foo.ºr { color: red; } #foo.b\a r { color: red; } #foo\.bar { color: red; } #fooºr { color: red; } #foo.bar { color: red; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_610.hrx000066400000000000000000000017151355712145100245050ustar00rootroot00000000000000<===> input.scss @mixin vararg-test($a, $b, $c, $d) { a: $a; b: $b; c: $c; d: $d; } foo { @include vararg-test(a, b, c, d); } foo { @include vararg-test(a b c d...); } foo { @include vararg-test((a b c d)...); } foo { @include vararg-test((a, b, c, d)...); } foo { @include vararg-test((a: a, b: b, c: c, d: d)...); } foo { @include vararg-test(("a": a, "b": b, "c": c, "d": d)...); } foo { @include vararg-test(a b..., (c: c, d: d)...); } foo { @include vararg-test(a, b c..., (d: d)...); } foo { @include vararg-test($c: c, (a: a, b: b, d: d)...); } <===> output.css foo { a: a; b: b; c: c; d: d; } foo { a: a; b: b; c: c; d: d; } foo { a: a; b: b; c: c; d: d; } foo { a: a; b: b; c: c; d: d; } foo { a: a; b: b; c: c; d: d; } foo { a: a; b: b; c: c; d: d; } foo { a: a; b: b; c: c; d: d; } foo { a: a; b: b; c: c; d: d; } foo { a: a; b: b; c: c; d: d; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_613.hrx000066400000000000000000000004611355712145100245050ustar00rootroot00000000000000<===> input.scss $var: 1; @mixin test { $var: 2; } @function test() { $var: 3; @return "dummy"; } .selector { $var: 4; @include test; $dummy: test(); content: $var; } .other-selector { content: $var; } <===> output.css .selector { content: 4; } .other-selector { content: 1; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_614.hrx000066400000000000000000000003431355712145100245050ustar00rootroot00000000000000<===> input.scss @supports ((foo: bar) or (foo: bar) or (foo: bar)) and (foo: bar) { div { bar: baz; } } <===> output.css @supports ((foo: bar) or (foo: bar) or (foo: bar)) and (foo: bar) { div { bar: baz; } } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_615.hrx000066400000000000000000000002011355712145100244770ustar00rootroot00000000000000<===> input.scss $foo: "bar"; %#{"foo--#{$foo}"} { foo: bar; } a { @extend %foo--bar; } <===> output.css a { foo: bar; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_622.hrx000066400000000000000000000003721355712145100245060ustar00rootroot00000000000000<===> input.scss @media screen { a { color: red; } } .link { @media (foo: bar) { display: flex; } } <===> output.css @media screen { a { color: red; } } @media (foo: bar) { .link { display: flex; } } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_623.hrx000066400000000000000000000002701355712145100245040ustar00rootroot00000000000000<===> input.scss a { filter: alpha(opacity=.3); } div { filter: alpha(opacity=0.7); } <===> output.css a { filter: alpha(opacity=0.3); } div { filter: alpha(opacity=0.7); } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_628.hrx000066400000000000000000000004421355712145100245120ustar00rootroot00000000000000<===> input.scss $map: ( alpha: 1, beta: 2, gamma: 3, delta: ( eta: 5, eta: 6, ), ); <===> error Error: Duplicate key "eta" in map (eta: 5, eta: 6). <===> error-dart-sass Error: Duplicate key. , 7 | eta: 6, | ^^^ ' input.scss 7:5 root stylesheet sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_63.hrx000066400000000000000000000004131355712145100244210ustar00rootroot00000000000000<===> input.scss @mixin testComments { /* crash */ p { width: 100px; } } @media screen and (orientation:landscape) { @include testComments; } <===> output.css @media screen and (orientation: landscape) { /* crash */ p { width: 100px; } } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_639.hrx000066400000000000000000000004701355712145100245150ustar00rootroot00000000000000<===> input.scss $quoted_list: "foo", "bar", "baz"; $unquoted_list: foo, bar, baz; foo { foo: #{foo, bar, baz}; foo: #{"foo", "bar", "baz"}; foo: #{$quoted_list}; foo: #{$unquoted_list}; } <===> output.css foo { foo: foo, bar, baz; foo: foo, bar, baz; foo: foo, bar, baz; foo: foo, bar, baz; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_64.hrx000066400000000000000000000001341355712145100244220ustar00rootroot00000000000000<===> input.scss $var: 10px; p { width: -$var; } <===> output.css p { width: -10px; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_641.hrx000066400000000000000000000001321355712145100245010ustar00rootroot00000000000000<===> input.scss .#{"foo"}--1 { width:100%; } <===> output.css .foo--1 { width: 100%; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_643.hrx000066400000000000000000000001611355712145100245050ustar00rootroot00000000000000<===> input.scss $map: (foo: bar, bar: baz); foo { a: nth($map, 2); } <===> output.css foo { a: bar baz; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_644.hrx000066400000000000000000000002141355712145100245050ustar00rootroot00000000000000<===> input.scss foo { background-image: url(foo/#{"bar"}/baz.jpg); } <===> output.css foo { background-image: url(foo/bar/baz.jpg); } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_646.hrx000066400000000000000000000002031355712145100245050ustar00rootroot00000000000000<===> input.scss @function foo() { /* $bar: 1; */ @return true; } foo { foo: foo(); } <===> output.css foo { foo: true; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_652.hrx000066400000000000000000000004301355712145100245040ustar00rootroot00000000000000<===> input.scss $map: ( purple: foo, rgba(1,2,3,1): bar, #ffffff: baz, ); a { name: map-get($map, purple) == foo; func: map-get($map, rgba(1,2,3,1)) == bar; hex: map-get($map, #ffffff) == baz; } <===> output.css a { name: true; func: true; hex: true; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_659/000077500000000000000000000000001355712145100237735ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_659/issue_659.hrx000066400000000000000000000003321355712145100262470ustar00rootroot00000000000000<===> input.scss // libsass issue 659: never output empty blocks // https://github.com/sass/libsass/issues/659 @function null() { @return null; } $foo: null; .test { out: null(); out: $foo; } <===> output.css sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_659/sass-script.hrx000066400000000000000000000003351355712145100267720ustar00rootroot00000000000000<===> input.scss $foo: null; @mixin bar() { bar: $foo; } @mixin baz() { baz: $foo !important; } foo { baz: $foo; } bar { @include bar; } baz { @include baz; } <===> output.css baz { baz: !important; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_659/static.hrx000066400000000000000000000005751355712145100260140ustar00rootroot00000000000000<===> input.scss %bam { bam: null; } @mixin bar() { bar: null; } @mixin baz() { baz: null !important; } foo { foo: null; } bar { @include bar; } baz { @include baz; } bam { @extend %bam; } <===> output.css bam { bam: null; } foo { foo: null; } bar { bar: null; } baz { baz: null !important; } <===> output-dart-sass.css baz { baz: !important; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_660.hrx000066400000000000000000000003721355712145100245100ustar00rootroot00000000000000<===> input.scss $foo: true; div { blah: $foo; } div { blah: not $foo; } div { blah: not ($foo); } div { blah: not (true); } <===> output.css div { blah: true; } div { blah: false; } div { blah: false; } div { blah: false; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_666/000077500000000000000000000000001355712145100237715ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_666/angle.hrx000066400000000000000000000012611355712145100256020ustar00rootroot00000000000000<===> input.scss test { num_deg: 42 + 11deg; num_grad: 42 + 11grad; num_rad: 42 + 11rad; num_turn: 42 + 11turn; deg_num: 11deg + 42; deg_grad: 11deg + 42grad; deg_rad: 11deg + 42rad; deg_turn: 11deg + 1turn; grad_num: 11grad + 1.5; grad_rad: 11grad + 42rad; grad_turn: 11grad + 0.5turn; rad_num: 11rad + 1.5; rad_turn: 11rad + 0.5turn; } <===> output.css test { num_deg: 53deg; num_grad: 53grad; num_rad: 53rad; num_turn: 53turn; deg_num: 53deg; deg_grad: 48.8deg; deg_rad: 2417.4227395495deg; deg_turn: 371deg; grad_num: 12.5grad; grad_rad: 2684.8030439438grad; grad_turn: 211grad; rad_num: 12.5rad; rad_turn: 14.1415926536rad; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_666/length.hrx000066400000000000000000000021351355712145100257760ustar00rootroot00000000000000<===> input.scss test { num_in: 42 + 11in; num_cm: 42 + 11cm; num_pc: 42 + 11px; num_mm: 42 + 11mm; num_pt: 42 + 11pt; num_px: 42 + 11px; in_num: 11in + 42; in_cm: 11in + 42cm; in_pc: 11in + 42pc; in_mm: 11in + 42mm; in_pt: 11in + 42pt; in_px: 11in + 42px; cm_num: 11cm + 42; cm_pc: 11cm + 42pc; cm_mm: 11cm + 42mm; cm_pt: 11cm + 42pt; cm_px: 11cm + 42px; pc_num: 11pc + 42; pc_mm: 11pc + 42mm; pc_pt: 11pc + 42pt; pc_px: 11pc + 42px; mm_num: 11mm + 42; mm_pt: 11mm + 42pt; mm_px: 11mm + 42px; pt_num: 11pt + 42; pt_px: 11pt + 42px; } <===> output.css test { num_in: 53in; num_cm: 53cm; num_pc: 53px; num_mm: 53mm; num_pt: 53pt; num_px: 53px; in_num: 53in; in_cm: 27.5354330709in; in_pc: 18in; in_mm: 12.6535433071in; in_pt: 11.5833333333in; in_px: 11.4375in; cm_num: 53cm; cm_pc: 28.78cm; cm_mm: 15.2cm; cm_pt: 12.4816666667cm; cm_px: 12.11125cm; pc_num: 53pc; pc_mm: 20.9212598425pc; pc_pt: 14.5pc; pc_px: 13.625pc; mm_num: 53mm; mm_pt: 25.8166666667mm; mm_px: 22.1125mm; pt_num: 53pt; pt_px: 42.5pt; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_67.hrx000066400000000000000000000001131355712145100244220ustar00rootroot00000000000000<===> input.scss foo {bar: 70% - 40%} <===> output.css foo { bar: 30%; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_672.hrx000066400000000000000000000007041355712145100245120ustar00rootroot00000000000000<===> input.scss @mixin test($arglist...) { $map: keywords($arglist); answer: if($map, "Yep", "Nope"); } with-keyword-args{ @include test($arg1: one, $arg2: two, $arg3: three); } with-no-args { @include test(); } without-keyword-args { @include test(not-a-keyword-arg-1 , not-a-keyword-arg-2); } <===> output.css with-keyword-args { answer: "Yep"; } with-no-args { answer: "Yep"; } without-keyword-args { answer: "Yep"; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_673.hrx000066400000000000000000000015741355712145100245210ustar00rootroot00000000000000<===> input.scss .example { padding-left: 2rem; padding-right: 2rem; } @media screen and (min-width:768px) { #footer { .row { @extend .example; } } } <===> error Error: You may not @extend an outer selector from within @media. You may only @extend selectors within the same directive. From "@extend .example" on line 9 of input.scss. <===> error-libsass Error: You may not @extend selectors across media queries. Use "@extend .example !optional" to avoid this error. on line 9 of input.scss >> @extend .example; --------------------^ <===> error-dart-sass Error: From line 1, column 1 of input.scss: , 1 | .example { | ^^^^^^^^^ ' You may not @extend selectors across media queries. , 9 | @extend .example; | ^^^^^^^^^^^^^^^^ ' input.scss 9:13 root stylesheet sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_674.hrx000066400000000000000000000026141355712145100245160ustar00rootroot00000000000000<===> input.scss $base-path:'../images/'; $base-attr:'data-'; @function url($src, $path:''){ @return unquote('url('+$base-path + $path+ $src +')'); } @function url2($src, $path:''){ @return unquote('url('+ $base-path + $path+ $src +')'); } @function attr($arg1, $arg2:''){ @return unquote('attr('+$base-attr + $arg1 + $arg2 +')'); } div { background: url('image.png'); background: url('image.png','img/'); background: url2('image.png','img/'); &:after { content: attr(value); content: attr(value, -extra); content: url('icon.png'); content: url('icon.png','gfx/'); content: url2('icon.png','gfx/'); } } <===> error-dart-sass Error: Invalid function name. , 5 | @function url($src, $path:''){ | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 5:1 root stylesheet <===> output.css div { background: url(../images/image.png); background: url(../images/img/image.png); background: url(../images/img/image.png); } div:after { content: attr(data-value); content: attr(data-value-extra); content: url(../images/icon.png); content: url(../images/gfx/icon.png); content: url(../images/gfx/icon.png); } <===> warning DEPRECATION WARNING on line 5 of /sass/spec/libsass-issues/issue_674/input.scss: Naming a function "url" is disallowed and will be an error in future versions of Sass. This name conflicts with an existing CSS function with special parse rules. sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_683.hrx000066400000000000000000000004311355712145100245110ustar00rootroot00000000000000<===> input.scss foo { filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="data:image/png;base64,ABCD",sizingMethod=crop); } <===> output.css foo { filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="data:image/png;base64,ABCD",sizingMethod=crop); } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_688.hrx000066400000000000000000000037251355712145100245270ustar00rootroot00000000000000<===> input.scss test { /* Convert to px */ px-to-px: 0px + 1px; pt-to-px: 0px + 1pt; pc-to-px: 0px + 1pc; in-to-px: 0px + 1in; mm-to-px: 0px + 1mm; cm-to-px: 0px + 1cm; /* Convert to pt */ px-to-pt: 0pt + 1px; pt-to-pt: 0pt + 1pt; pc-to-pt: 0pt + 1pc; in-to-pt: 0pt + 1in; mm-to-pt: 0pt + 1mm; cm-to-pt: 0pt + 1cm; /* Convert to pc */ px-to-pc: 0pc + 1px; pt-to-pc: 0pc + 1pt; pc-to-pc: 0pc + 1pc; in-to-pc: 0pc + 1in; mm-to-pc: 0pc + 1mm; cm-to-pc: 0pc + 1cm; /* Convert to in */ px-to-in: 0in + 1px; pt-to-in: 0in + 1pt; pc-to-in: 0in + 1pc; in-to-in: 0in + 1in; mm-to-in: 0in + 1mm; cm-to-in: 0in + 1cm; /* Convert to mm */ px-to-mm: 0mm + 1px; pt-to-mm: 0mm + 1pt; pc-to-mm: 0mm + 1pc; in-to-mm: 0mm + 1in; mm-to-mm: 0mm + 1mm; cm-to-mm: 0mm + 1cm; /* Convert to cm */ px-to-cm: 0cm + 1px; pt-to-cm: 0cm + 1pt; pc-to-cm: 0cm + 1pc; in-to-cm: 0cm + 1in; mm-to-cm: 0cm + 1mm; cm-to-cm: 0cm + 1cm; } <===> output.css test { /* Convert to px */ px-to-px: 1px; pt-to-px: 1.3333333333px; pc-to-px: 16px; in-to-px: 96px; mm-to-px: 3.7795275591px; cm-to-px: 37.7952755906px; /* Convert to pt */ px-to-pt: 0.75pt; pt-to-pt: 1pt; pc-to-pt: 12pt; in-to-pt: 72pt; mm-to-pt: 2.8346456693pt; cm-to-pt: 28.3464566929pt; /* Convert to pc */ px-to-pc: 0.0625pc; pt-to-pc: 0.0833333333pc; pc-to-pc: 1pc; in-to-pc: 6pc; mm-to-pc: 0.2362204724pc; cm-to-pc: 2.3622047244pc; /* Convert to in */ px-to-in: 0.0104166667in; pt-to-in: 0.0138888889in; pc-to-in: 0.1666666667in; in-to-in: 1in; mm-to-in: 0.0393700787in; cm-to-in: 0.3937007874in; /* Convert to mm */ px-to-mm: 0.2645833333mm; pt-to-mm: 0.3527777778mm; pc-to-mm: 4.2333333333mm; in-to-mm: 25.4mm; mm-to-mm: 1mm; cm-to-mm: 10mm; /* Convert to cm */ px-to-cm: 0.0264583333cm; pt-to-cm: 0.0352777778cm; pc-to-cm: 0.4233333333cm; in-to-cm: 2.54cm; mm-to-cm: 0.1cm; cm-to-cm: 1cm; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_690.hrx000066400000000000000000000003051355712145100245070ustar00rootroot00000000000000<===> input.scss test { left: expression(callSomeFunc()); content: expression("Smile :-)"); } <===> output.css test { left: expression(callSomeFunc()); content: expression("Smile :-)"); } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_694.hrx000066400000000000000000000005731355712145100245220ustar00rootroot00000000000000<===> input.scss // test for libsass 694: // parser should be smarter about handling quoted quotes $str: '{' + '"foo": "bar"' + '}'; $str2: '"hello world"'; $str3: "hello world"; .interpolation-test { test: "#{$str}"; test: "#{$str2}"; test: "#{$str3}"; } <===> output.css .interpolation-test { test: '{"foo": "bar"}'; test: '"hello world"'; test: "hello world"; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_698.hrx000066400000000000000000000003321355712145100245170ustar00rootroot00000000000000<===> options.yml --- :ignore_for: - dart-sass <===> input.scss test { test: foo + null; } <===> error Error: Invalid null operation: ""foo" plus null". on line 2 of input.scss Use --trace for backtrace. sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_699.hrx000066400000000000000000000001601355712145100245170ustar00rootroot00000000000000<===> input.scss .selector { color: invert(rebeccapurple); } <===> output.css .selector { color: #99cc66; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_700.hrx000066400000000000000000000001751355712145100245040ustar00rootroot00000000000000<===> input.scss .selector { color: invert(transparent); } <===> output.css .selector { color: rgba(255, 255, 255, 0); } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_701.hrx000066400000000000000000000013751355712145100245100ustar00rootroot00000000000000<===> input.scss .test-1 { content: null; content: inspect(null); content: inspect(false); content: inspect(true); content: inspect(42); content: inspect(42.3); content: inspect(42px); content: inspect("string"); $list: 1, 2, 3; content: inspect($list); $map: ( a: 1, b: 2, c: 3 ); content: inspect($map); } <===> output.css .test-1 { content: null; content: null; content: false; content: true; content: 42; content: 42.3; content: 42px; content: "string"; content: 1, 2, 3; content: (a: 1, b: 2, c: 3); } <===> output-dart-sass.css .test-1 { content: null; content: false; content: true; content: 42; content: 42.3; content: 42px; content: "string"; content: 1, 2, 3; content: (a: 1, b: 2, c: 3); } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_702.hrx000066400000000000000000000002501355712145100245000ustar00rootroot00000000000000<===> input.scss .foo { content: function-exists("feature-exists"); content: feature-exists("foo"); } <===> output.css .foo { content: true; content: false; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_703.hrx000066400000000000000000000007231355712145100245060ustar00rootroot00000000000000<===> input.scss .test-1 { @for $i from 1 through 3 { content: $i; } } .test-2 { @for $i from 3 through 1 { content: $i; } } .test-3 { @for $i from 1 to 3 { content: $i; } } .test-4 { @for $i from 3 to 1 { content: $i; } } <===> output.css .test-1 { content: 1; content: 2; content: 3; } .test-2 { content: 3; content: 2; content: 1; } .test-3 { content: 1; content: 2; } .test-4 { content: 3; content: 2; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_708.hrx000066400000000000000000000006471355712145100245200ustar00rootroot00000000000000<===> input.scss @function foobar($x, $y, $z : 3) { @return $x + $y * 2 + $z } .foobar { content: foobar($y:2, $x:4); content: foobar($y: 2, $x: 4); content: foobar($y : 2, $x : 4); content: foobar($y:2px, $x:4); content: foobar($y: 2px, $x: 4); content: foobar($y : 2px, $x : 4); } <===> output.css .foobar { content: 11; content: 11; content: 11; content: 11px; content: 11px; content: 11px; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_712.hrx000066400000000000000000000014321355712145100245040ustar00rootroot00000000000000<===> input.scss .foo { content: 'foo'; } @media print { .bar { @extend .foo; } } <===> error Error: You may not @extend an outer selector from within @media. You may only @extend selectors within the same directive. From "@extend .foo" on line 7 of input.scss. on line 1 of input.scss Use --trace for backtrace. <===> error-libsass Error: You may not @extend selectors across media queries. Use "@extend .foo !optional" to avoid this error. on line 7 of input.scss >> @extend .foo; --------------^ <===> error-dart-sass Error: From line 1, column 1 of input.scss: , 1 | .foo { | ^^^^^ ' You may not @extend selectors across media queries. , 7 | @extend .foo; | ^^^^^^^^^^^^ ' input.scss 7:5 root stylesheet sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_713/000077500000000000000000000000001355712145100237625ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_713/and.hrx000066400000000000000000000005041355712145100252460ustar00rootroot00000000000000<===> input.scss @function and() { @return "and"; } test { and: and(); } <===> error Error: Invalid function name "and". on line of input.scss Use --trace for backtrace. <===> error-dart-sass Error: Invalid function name. , 1 | @function and() { | ^^^^^^^^^^^^^^^ ' input.scss 1:1 root stylesheet sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_713/not.hrx000066400000000000000000000005041355712145100253040ustar00rootroot00000000000000<===> input.scss @function not() { @return "not"; } test { not: not(); } <===> error Error: Invalid function name "not". on line of input.scss Use --trace for backtrace. <===> error-dart-sass Error: Invalid function name. , 1 | @function not() { | ^^^^^^^^^^^^^^^ ' input.scss 1:1 root stylesheet sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_713/or.hrx000066400000000000000000000004751355712145100251330ustar00rootroot00000000000000<===> input.scss @function or() { @return "or"; } test { or: or(); } <===> error Error: Invalid function name "or". on line of input.scss Use --trace for backtrace. <===> error-dart-sass Error: Invalid function name. , 1 | @function or() { | ^^^^^^^^^^^^^^ ' input.scss 1:1 root stylesheet sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_72.hrx000066400000000000000000000010451355712145100244230ustar00rootroot00000000000000<===> input.scss test { filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#223344', endColorstr='#112233',GradientType=0 ); } @mixin opacity($opacity) { opacity: $opacity / 100; filter: alpha(opacity=$opacity); } <===> output.css test { filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#223344', endColorstr='#112233',GradientType=0 ); } <===> output-dart-sass.css test { filter: progid:DXImageTransform.Microsoft.gradient( startColorstr="#223344", endColorstr="#112233",GradientType=0 ); } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_73.hrx000066400000000000000000000002461355712145100244260ustar00rootroot00000000000000<===> input.scss @mixin box-shadow($shadow...) { -webkit-box-shadow: $shadow; -moz-box-shadow: $shadow; box-shadow: $shadow; } <===> output.css sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_733.hrx000066400000000000000000000003321355712145100245050ustar00rootroot00000000000000<===> input.scss @function getter() { @return 42px; } test { content: getter()-1; content: getter()- 1; content: getter() -1; } <===> output.css test { content: 41px; content: 41px; content: 42px -1; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_736.hrx000066400000000000000000000007471355712145100245220ustar00rootroot00000000000000<===> input.scss // libsass issue 736: @return does not cause function exit // https://github.com/sass/libsass/issues/736 @function contains-true($list) { @each $bool in $list { @if $bool { @return "found true"; } } @return "nothing found"; } .test { out: contains-true(true false false); out: contains-true(false true false); out: contains-true(false false true); } <===> output.css .test { out: "found true"; out: "found true"; out: "found true"; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_738.hrx000066400000000000000000000002311355712145100245100ustar00rootroot00000000000000<===> input.scss .foo { &--bar { color: red; } &--1bar { color: blue;} } <===> output.css .foo--bar { color: red; } .foo--1bar { color: blue; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_740.hrx000066400000000000000000000002521355712145100245040ustar00rootroot00000000000000<===> input.scss $foo: null; $foo: #fff !default; $bar: #000; $bar: #f00 !default; foo { foo: $foo; bar: $bar; } <===> output.css foo { foo: #fff; bar: #000; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_748.hrx000066400000000000000000000014621355712145100245200ustar00rootroot00000000000000<===> input.scss // problem: not expression is currently returning false on values other than true, false or null @function truthyfalsey($bool: null) { @if not $bool { @return falsey; } @else { @return truthy; } } .test { debug: truthyfalsey(true); // expect truthy debug: truthyfalsey(false); // expect falsey debug: truthyfalsey(); // expect falsey (default arg is null) debug: truthyfalsey(5); // expect truthy debug: truthyfalsey(string); // expect truthy debug: truthyfalsey((alpha: 1, bravo: 2)); // expect truthy debug: truthyfalsey(this is a list); // expect truthy debug: truthyfalsey('true'); // expect truthy } <===> output.css .test { debug: truthy; debug: falsey; debug: falsey; debug: truthy; debug: truthy; debug: truthy; debug: truthy; debug: truthy; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_759.hrx000066400000000000000000000043671355712145100245310ustar00rootroot00000000000000<===> options.yml --- :warning_todo: - sass/libsass#2834 <===> input.scss $a: 10px !global !default; $b: 20px !default !global; $c: 30px !default !default !default !global !global !global; $d: 40px !global !global !global !default !default !default; $e: 50px !global !default !global !default !global !default; foo { a: $a; b: $b; c: $c; d: $d; e: $e; } <===> output.css foo { a: 10px; b: 20px; c: 30px; d: 40px; e: 50px; } <===> warning DEPRECATION WARNING: As of Dart Sass 2.0.0, !global assignments won't be able to declare new variables. Since this assignment is at the root of the stylesheet, the !global flag is unnecessary and can safely be removed. , 1 | $a: 10px !global !default; | ^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 1:1 root stylesheet DEPRECATION WARNING: As of Dart Sass 2.0.0, !global assignments won't be able to declare new variables. Since this assignment is at the root of the stylesheet, the !global flag is unnecessary and can safely be removed. , 2 | $b: 20px !default !global; | ^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 2:1 root stylesheet DEPRECATION WARNING: As of Dart Sass 2.0.0, !global assignments won't be able to declare new variables. Since this assignment is at the root of the stylesheet, the !global flag is unnecessary and can safely be removed. , 3 | $c: 30px !default !default !default !global !global !global; | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 3:1 root stylesheet DEPRECATION WARNING: As of Dart Sass 2.0.0, !global assignments won't be able to declare new variables. Since this assignment is at the root of the stylesheet, the !global flag is unnecessary and can safely be removed. , 4 | $d: 40px !global !global !global !default !default !default; | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 4:1 root stylesheet DEPRECATION WARNING: As of Dart Sass 2.0.0, !global assignments won't be able to declare new variables. Since this assignment is at the root of the stylesheet, the !global flag is unnecessary and can safely be removed. , 5 | $e: 50px !global !default !global !default !global !default; | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 5:1 root stylesheet sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_760.hrx000066400000000000000000000002071355712145100245060ustar00rootroot00000000000000<===> input.scss foo { quoted: str-slice("abcd", 1, 0); unquoted: str-slice(abcd, 1, 0); } <===> output.css foo { quoted: ""; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_763.hrx000066400000000000000000000005441355712145100245150ustar00rootroot00000000000000<===> input.scss foo { a: str-slice("abcd", 1, 1); b: str-slice('abcd', 1, 1); c: str-slice(abcd, 1, 1); d: str-insert("abcd", "X", 1); e: str-insert("abcd", 'X', 1); f: str-insert('abcd', "X", 1); g: str-insert('abcd', 'X', 1); } <===> output.css foo { a: "a"; b: "a"; c: a; d: "Xabcd"; e: "Xabcd"; f: "Xabcd"; g: "Xabcd"; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_77.hrx000066400000000000000000000002231355712145100244250ustar00rootroot00000000000000<===> input.scss @mixin m { .m { color: red; @content; } } div.a { @include m; } <===> output.css div.a .m { color: red; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_783/000077500000000000000000000000001355712145100237715ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_783/input.scss000066400000000000000000000064331355712145100260330ustar00rootroot00000000000000// $a: 12px / 1em; // $b: 6px / 1em; // $c: 10em; // $x: -9999em; // $aa: 1px * 1px; a { $foo: 2em; $bar: 2em; foo: $foo; // 2em ✔ bar: $bar; // 2em ✔ // a: $foo * $bar; // 4em*em isn't a valid CSS value. ✔ a: $foo / $bar; // 1 ✔ a: $foo + $bar; // 4em ✔ a: $foo - $bar; // 0em ✔ $foo: 2px; $bar: 2em; foo: $foo; // 2px ✔ bar: $bar; // 2em ✔ // a: $foo * $bar; // 4em*px isn't a valid CSS value. ✔ // a: $foo / $bar; // 1px/em isn't a valid CSS value. ✔ // a: $foo + $bar; // Incompatible units: 'em' and 'px'. ✔ // a: $foo - $bar; // Incompatible units: 'em' and 'px'. ✔ $foo: 2em; $bar: 2px; foo: $foo; // 2em ✔ bar: $bar; // 2px ✔ // a: $foo * $bar; // 4em*px isn't a valid CSS value. ✔ // a: $foo / $bar; // 1em/px isn't a valid CSS value. ✔ // a: $foo + $bar; // Incompatible units: 'px' and 'em'. ✔ // a: $foo - $bar; // Incompatible units: 'px' and 'em'. ✔ $foo: 2px / 2em; $bar: 2px; // foo: $foo; // 1px/em isn't a valid CSS value. ✔ bar: $bar; // 2px ✔ // a: $foo * $bar; // 2px*px/em isn't a valid CSS value. ✔ // a: $foo / $bar; // 0.5/em isn't a valid CSS value. ✔ // a: $foo + $bar; // Incompatible units: '' and 'em'. // a: $foo - $bar; // Incompatible units: '' and 'em'. $foo: 2em / 2px; $bar: 2px; // foo: $foo; // 1em/px isn't a valid CSS value. ✔ bar: $bar; // 2px ✔ a: $foo * $bar; // 2em ✔ // a: $foo / $bar; // 0.5em/px*px isn't a valid CSS value. ✔ // a: $foo + $bar; // Incompatible units: 'px' and 'em'. // a: $foo - $bar; // Incompatible units: 'px' and 'em'. $foo: 2em / 2px; $bar: 2em / 2px; // foo: $foo; // 1em/px isn't a valid CSS value. ✔ // bar: $bar; // 1em/px isn't a valid CSS value. ✔ // a: $foo * $bar; // 1em*em/px*px isn't a valid CSS value. ✔ a: $foo / $bar; // 1 ✔ // a: $foo + $bar; // 2em/px isn't a valid CSS value. ✔ // a: $foo - $bar; // 0em/px isn't a valid CSS value. ✔ $foo: 2px / 2em; $bar: 2em / 2px; // foo: $foo; // 1px/em isn't a valid CSS value. ✔ // bar: $bar; // 1em/px isn't a valid CSS value. ✔ a: $foo * $bar; // 1 ✔ // a: $foo / $bar; // 1px*px/em*em isn't a valid CSS value. ✔ // a: $foo + $bar; // Incompatible units: 'em' and 'px'. // a: $foo - $bar; // Incompatible units: 'em' and 'px'. $foo: 2px; $bar: 2px / 2em; foo: $foo; // 2px ✔ // bar: $bar; // 1px/em isn't a valid CSS value. ✔ // a: $foo * $bar; // 2px*px/em isn't a valid CSS value. ✔ a: $foo / $bar; // 2em ✔ // a: $foo + $bar; // Incompatible units: 'em' and ''. // a: $foo - $bar; // Incompatible units: 'em' and ''. $foo: 2px; $bar: 2em / 2px; foo: $foo; // 2px ✔ // bar: $bar; // 1em/px isn't a valid CSS value. ✔ a: $foo * $bar; // 2em ✔ // a: $foo / $bar; // 2px*px/em isn't a valid CSS value. ✔ // a: $foo + $bar; // Incompatible units: 'em' and 'px'. // a: $foo - $bar; // Incompatible units: 'em' and 'px'. } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_783/output.css000066400000000000000000000003101355712145100260350ustar00rootroot00000000000000a { foo: 2em; bar: 2em; a: 1; a: 4em; a: 0em; foo: 2px; bar: 2em; foo: 2em; bar: 2px; bar: 2px; bar: 2px; a: 2em; a: 1; a: 1; foo: 2px; a: 2em; foo: 2px; a: 2em; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_784.hrx000066400000000000000000000002271355712145100245160ustar00rootroot00000000000000<===> input.scss .foo { @each $item in (a: 1, b: 2, c: 3) { each: $item; } } <===> output.css .foo { each: a 1; each: b 2; each: c 3; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_803.hrx000066400000000000000000000004761355712145100245140ustar00rootroot00000000000000<===> input.scss $query-string: "(min-width: 0) and (max-width: 599px), (min-width: 600px) and (max-width: 899px)"; @media #{$query-string} { .foo { content: bar; } } <===> output.css @media (min-width: 0) and (max-width: 599px), (min-width: 600px) and (max-width: 899px) { .foo { content: bar; } } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_813.hrx000066400000000000000000000003141355712145100245040ustar00rootroot00000000000000<===> input.scss @function foo($one, $two) { @return $one + $two; } $nums: 1px 2px; .foo { left: foo($nums...); bottom: $nums 3px; } <===> output.css .foo { left: 3px; bottom: 1px 2px 3px; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_815.hrx000066400000000000000000000002071355712145100245070ustar00rootroot00000000000000<===> input.scss foo { foo: str-slice("bar", 1, 2); bar: str-slice("bar", 3); } <===> output.css foo { foo: "ba"; bar: "r"; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_817.hrx000066400000000000000000000006611355712145100245150ustar00rootroot00000000000000<===> input.scss foo { foo: url('foo/bar.baz'); foo: url("foo/bar.baz"); foo: url(foo/bar.baz); foo: foo('foo/bar.baz', "bar", 55); foo: foo("foo/bar.baz", 'bar', 55); foo: foo("foo/bar.baz", bar, 55); } <===> output.css foo { foo: url("foo/bar.baz"); foo: url("foo/bar.baz"); foo: url(foo/bar.baz); foo: foo("foo/bar.baz", "bar", 55); foo: foo("foo/bar.baz", "bar", 55); foo: foo("foo/bar.baz", bar, 55); } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_820/000077500000000000000000000000001355712145100237615ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_820/input.scss000066400000000000000000000001671355712145100260210ustar00rootroot00000000000000@charset "UTF-8"; /*! Force output of above line by adding a unicode character. ♫ */ html, body { height: 100%; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_820/output.css000066400000000000000000000001671355712145100260370ustar00rootroot00000000000000@charset "UTF-8"; /*! Force output of above line by adding a unicode character. ♫ */ html, body { height: 100%; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_823.hrx000066400000000000000000000003131355712145100245040ustar00rootroot00000000000000<===> input.scss %test { > { .red { color: #F00; } } } p { @extend %test; > { a { @extend %test; } } } <===> output.css p > a > .red, p > .red { color: #F00; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_828.hrx000066400000000000000000000020171355712145100245140ustar00rootroot00000000000000<===> input.scss foo { box-shadow: inset -1.5em 0 1.5em -0.75em rgba(0, 0, 0, 0.25); box-shadow: inset -1.5em 0 1.5em - 0.75em rgba(0, 0, 0, 0.25); box-shadow: inset -1.5em 0 1.5em- 0.75em rgba(0, 0, 0, 0.25); box-shadow: inset -1.5em 0 1.5em-0.75em rgba(0, 0, 0, 0.25); box-shadow: inset -1.5em 0 1.5em -.75em rgba(0, 0, 0, .25); box-shadow: inset -1.5em 0 1.5em - .75em rgba(0, 0, 0, .25); box-shadow: inset -1.5em 0 1.5em- .75em rgba(0, 0, 0, .25); box-shadow: inset -1.5em 0 1.5em-.75em rgba(0, 0, 0, .25); } <===> output.css foo { box-shadow: inset -1.5em 0 1.5em -0.75em rgba(0, 0, 0, 0.25); box-shadow: inset -1.5em 0 0.75em rgba(0, 0, 0, 0.25); box-shadow: inset -1.5em 0 1.5em- 0.75em rgba(0, 0, 0, 0.25); box-shadow: inset -1.5em 0 0.75em rgba(0, 0, 0, 0.25); box-shadow: inset -1.5em 0 1.5em -0.75em rgba(0, 0, 0, 0.25); box-shadow: inset -1.5em 0 0.75em rgba(0, 0, 0, 0.25); box-shadow: inset -1.5em 0 1.5em- 0.75em rgba(0, 0, 0, 0.25); box-shadow: inset -1.5em 0 0.75em rgba(0, 0, 0, 0.25); } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_829.hrx000066400000000000000000000006611355712145100245200ustar00rootroot00000000000000<===> input.scss .foo { @media (foo: bar), (bar: baz) { foo: bar; @media (foo: bar) { bar: baz; } .bar { baz: bam; } } } <===> output.css @media (foo: bar), (bar: baz) { .foo { foo: bar; } } @media (foo: bar) and (foo: bar), (bar: baz) and (foo: bar) { .foo { bar: baz; } } @media (foo: bar), (bar: baz) { .foo .bar { baz: bam; } } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_83.hrx000066400000000000000000000006671355712145100244360ustar00rootroot00000000000000<===> input.scss @mixin colors($color) { border-color: $color; background-color: $color; @content; } .colors { @include colors { color: $color; } border-width: 10px; } <===> error Error: Mixin colors is missing argument $color. <===> error-dart-sass Error: Missing argument $color. , 7 | / @include colors { 8 | | color: $color; 9 | \ } ' input.scss 7:3 colors() input.scss 7:3 root stylesheet sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_845.hrx000066400000000000000000000001301355712145100245050ustar00rootroot00000000000000<===> input.sass @charset 'UTF-8' * color: red <===> output.css * { color: red; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_857.hrx000066400000000000000000000002751355712145100245220ustar00rootroot00000000000000<===> input.scss $list: "item-1" "item-2" "item-3"; #hello { @if length($list) % 2 == 0 { color: blue; } @else { color: red; } } <===> output.css #hello { color: red; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_859.hrx000066400000000000000000000003701355712145100245200ustar00rootroot00000000000000<===> input.scss @media screen { .two { @at-root .one { background: blue; .three { color: red; } } } } <===> output.css @media screen { .one { background: blue; } .one .three { color: red; } } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_86.hrx000066400000000000000000000006711355712145100244340ustar00rootroot00000000000000<===> input.scss .color-functions { $color: red; hue: hue($color); hue-type: type-of(hue($color)); hue-unit: unit(hue($color)); hue-comparable: comparable(hue($color), hue($color)); test-1: comparable(lightness(red), 1%); test-2: comparable(saturation(red), 1%); } <===> output.css .color-functions { hue: 0deg; hue-type: number; hue-unit: "deg"; hue-comparable: true; test-1: true; test-2: true; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_864.hrx000066400000000000000000000001421355712145100245110ustar00rootroot00000000000000<===> input.scss div { color: desaturate(#999, 50%); } <===> output.css div { color: #999999; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_87.hrx000066400000000000000000000004241355712145100244310ustar00rootroot00000000000000<===> input.scss $bar: "bar"; $foobar: "foo#{$bar}"; #{$bar} { #{$bar}: #{$bar}; #{$bar}: $bar; } #{$foobar} { #{$foobar}: #{$foobar}; #{$foobar}: $foobar; } <===> output.css bar { bar: bar; bar: "bar"; } foobar { foobar: foobar; foobar: "foobar"; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_870.hrx000066400000000000000000000024121355712145100245100ustar00rootroot00000000000000<===> options.yml --- :todo: - libsass <===> input.scss $quoted-strings-csv: "alpha", "beta", 'gamma', 'delta'; $quoted-strings-ssv: "alpha" "beta" 'gamma' 'delta'; .csv { output: $quoted-strings-csv; output: #{$quoted-strings-csv}; output: "[#{$quoted-strings-csv}]"; output: "#{$quoted-strings-csv}"; output: "["#{$quoted-strings-csv}"]"; output: '#{$quoted-strings-csv}'; output: "['#{$quoted-strings-csv}']"; } .ssv { output: $quoted-strings-ssv; output: #{$quoted-strings-ssv}; output: "[#{$quoted-strings-ssv}]"; output: "#{$quoted-strings-ssv}"; output: "["#{$quoted-strings-ssv}"]"; output: '#{$quoted-strings-ssv}'; output: "['#{$quoted-strings-ssv}']"; } <===> output.css .csv { output: "alpha", "beta", "gamma", "delta"; output: alpha, beta, gamma, delta; output: "[alpha, beta, gamma, delta]"; output: "alpha, beta, gamma, delta"; output: "[" alpha, beta, gamma, delta "]"; output: "alpha, beta, gamma, delta"; output: "['alpha, beta, gamma, delta']"; } .ssv { output: "alpha" "beta" "gamma" "delta"; output: alpha beta gamma delta; output: "[alpha beta gamma delta]"; output: "alpha beta gamma delta"; output: "[" alpha beta gamma delta "]"; output: "alpha beta gamma delta"; output: "['alpha beta gamma delta']"; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_871.hrx000066400000000000000000000012351355712145100245130ustar00rootroot00000000000000<===> input.scss .bar { @extend .foo; color: green; } <===> error Error: ".bar" failed to @extend ".foo". The selector ".foo" was not found. Use "@extend .foo !optional" if the extend should be able to fail. on line 2 of input.scss Use --trace for backtrace. <===> error-libsass Error: The target selector was not found. Use "@extend .foo !optional" to avoid this error. on line 2 of input.scss >> @extend .foo; ----------^ <===> error-dart-sass Error: The target selector was not found. Use "@extend .foo !optional" to avoid this error. , 2 | @extend .foo; | ^^^^^^^^^^^^ ' input.scss 2:3 root stylesheet sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_873.hrx000066400000000000000000000006151355712145100245160ustar00rootroot00000000000000<===> input.scss $quoted: "notification"; $unquoted: notification; @function func($var) { @return $var; } foo { foo: func(notification); foo: #{notification}; foo: #{$quoted}; foo: $quoted; foo: #{$unquoted}; foo: $unquoted; } <===> output.css foo { foo: notification; foo: notification; foo: notification; foo: "notification"; foo: notification; foo: notification; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_877.hrx000066400000000000000000000037241355712145100245260ustar00rootroot00000000000000<===> input.scss @function _test1() { @return 'hello'; } @function -test2() { @return 'hello'; } @function test() { @return 'world'; } @mixin _test1() { mixin: true; } @mixin -test2() { mixin: true; } @mixin test() { mixin: true; } $-test1: true; $_test2: true; $test: true; .test { function: function-exists('_test1'); function: function-exists('-test1'); function: function-exists('_test2'); function: function-exists('-test2'); function: function-exists('test1'); function: function-exists('test2'); function: function-exists('test'); mixin: mixin-exists('_test1'); mixin: mixin-exists('-test1'); mixin: mixin-exists('_test2'); mixin: mixin-exists('-test2'); mixin: mixin-exists('test1'); mixin: mixin-exists('test2'); mixin: mixin-exists('test'); variable: variable-exists('_test1'); variable: variable-exists('-test1'); variable: variable-exists('_test2'); variable: variable-exists('-test2'); variable: variable-exists('test1'); variable: variable-exists('test2'); variable: variable-exists('test'); global-variable: global-variable-exists('_test1'); global-variable: global-variable-exists('-test1'); global-variable: global-variable-exists('_test2'); global-variable: global-variable-exists('-test2'); global-variable: global-variable-exists('test1'); global-variable: global-variable-exists('test2'); global-variable: global-variable-exists('test'); } <===> output.css .test { function: true; function: true; function: true; function: true; function: false; function: false; function: true; mixin: true; mixin: true; mixin: true; mixin: true; mixin: false; mixin: false; mixin: true; variable: true; variable: true; variable: true; variable: true; variable: false; variable: false; variable: true; global-variable: true; global-variable: true; global-variable: true; global-variable: true; global-variable: false; global-variable: false; global-variable: true; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_883.hrx000066400000000000000000000002451355712145100245160ustar00rootroot00000000000000<===> input.scss div { @foo { font: a; } @bar { color: b; } } <===> output.css @foo { div { font: a; } } @bar { div { color: b; } } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_884.hrx000066400000000000000000000002361355712145100245170ustar00rootroot00000000000000<===> input.scss @function foo() { @return 2; } $foo: false; @if foo() % 2 == 0 { $foo: true; } a { foo: $foo; } <===> output.css a { foo: true; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_890.hrx000066400000000000000000000002161355712145100245120ustar00rootroot00000000000000<===> input.scss .foo { border: { right: 10px solid /*here is a comment*/; } } <===> output.css .foo { border-right: 10px solid; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_893.hrx000066400000000000000000000001531355712145100245150ustar00rootroot00000000000000<===> input.scss $gutter: 20px; .row { margin: 0 -$gutter; } <===> output.css .row { margin: -20px; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_894.hrx000066400000000000000000000004521355712145100245200ustar00rootroot00000000000000<===> input.scss a {/**/} b {content: 'something so I have a non-empty expected output'} <===> output.css a { /**/ } b { content: 'something so I have a non-empty expected output'; } <===> output-dart-sass.css a { /**/ } b { content: "something so I have a non-empty expected output"; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_91.hrx000066400000000000000000000010151355712145100244210ustar00rootroot00000000000000<===> input.scss @mixin simple-media-query($max-width, $min-width) { @media only screen and (max-width: $max-width) and (min-width: $min-width) { @content; } } @mixin test($value) { border-color: $value; } body { @include test("#ccc"); @include simple-media-query(900px, 400px) { border-color: black; } } <===> output.css body { border-color: "#ccc"; } @media only screen and (max-width: 900px) and (min-width: 400px) { body { border-color: black; } } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_930.hrx000066400000000000000000000004451355712145100245110ustar00rootroot00000000000000<===> input.scss .foo { &.bar { color: #F00; } } $class: 'baz'; .foo { &.#{$class} { color: #F00; } } $n: 1; .foo { &:nth-child(#{$n}) { color: #F00; } } <===> output.css .foo.bar { color: #F00; } .foo.baz { color: #F00; } .foo:nth-child(1) { color: #F00; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_931.hrx000066400000000000000000000007461355712145100245160ustar00rootroot00000000000000<===> input.scss @mixin img-opacity($trans) { filter : alpha(opacity=($trans * 100)); -ms-filter : "progid:DXImageTransform.Microsoft.Alpha(Opacity=#{$trans * 100})"; -moz-opacity : $trans; -khtml-opacity : $trans; opacity : $trans; } img { @include img-opacity(.5); } <===> output.css img { filter: alpha(opacity=50); -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=50)"; -moz-opacity: 0.5; -khtml-opacity: 0.5; opacity: 0.5; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_941.hrx000066400000000000000000000002221355712145100245040ustar00rootroot00000000000000<===> input.scss .one, /* 1 */ .two /* 2 */ { /* 3 */ color: #F00; /* 4 */ } <===> output.css .one, .two { /* 3 */ color: #F00; /* 4 */ } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_942.hrx000066400000000000000000000002501355712145100245060ustar00rootroot00000000000000<===> input.scss $v: ".foo \ .bar"; #{$v} { color: #F00; } div { content: "foo\ bar"; } <===> output.css .foo .bar { color: #F00; } div { content: "foobar"; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_943.hrx000066400000000000000000000004521355712145100245130ustar00rootroot00000000000000<===> input.scss %dog { @media (min-width: 10px) { &:hover { display: none; } } } .puppy { @extend %dog; background-color: red; } <===> output.css @media (min-width: 10px) { .puppy:hover { display: none; } } .puppy { background-color: red; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_945.hrx000066400000000000000000000004561355712145100245210ustar00rootroot00000000000000<===> input.scss .a { b: c; d: } <===> error Error: Invalid CSS after " d:": expected expression (e.g. 1px, bold), was "}" on line 4 of input.scss Use --trace for backtrace. <===> error-dart-sass Error: Expected expression. , 3 | d: | ^ ' input.scss 3:5 root stylesheet sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_947.hrx000066400000000000000000000002241355712145100245140ustar00rootroot00000000000000<===> input.scss @keyframes test { $var: 10%; #{$var} { color: red; } } <===> output.css @keyframes test { 10% { color: red; } } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_948.hrx000066400000000000000000000001721355712145100245170ustar00rootroot00000000000000<===> options.yml --- :todo: - libsass <===> input.scss foo { bar: 10 * 5#{px}; } <===> output.css foo { bar: 50 px; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_950.hrx000066400000000000000000000004061355712145100245100ustar00rootroot00000000000000<===> options.yml --- :ignore_for: - dart-sass <===> input.scss .selector1{ foo: bar; } .selector2{ zapf: dings; } .selector3{ @extend .selector1, .selector2; } <===> output.css .selector1, .selector3 { foo: bar; } .selector2, .selector3 { zapf: dings; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_976.hrx000066400000000000000000000001741355712145100245220ustar00rootroot00000000000000<===> input.scss .debug { @debug-this { foo: bar; } } <===> output.css @debug-this { .debug { foo: bar; } } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_978.hrx000066400000000000000000000001601355712145100245170ustar00rootroot00000000000000<===> input.scss .foo { [baz="#{&}"] { foo: bar; } } <===> output.css .foo [baz=".foo"] { foo: bar; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_980.hrx000066400000000000000000000005501355712145100245130ustar00rootroot00000000000000<===> input.scss @function foo($value, $default: 13, $args...) { $res: $value + $default; @if length($args) != 0 { $res: $res + nth($args, 1); } @return $res; } .test { value: foo(3); // expected: 16 value: foo(3, 4); // expected: 7 value: foo(3, 4, 5, 6); // expected: 12 } <===> output.css .test { value: 16; value: 7; value: 12; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_988.hrx000066400000000000000000000006641355712145100245310ustar00rootroot00000000000000<===> input.scss @function str-replace($string, $search, $replace: '') { $index: str-index($string, $search); @if $index { @return str-slice($string, 1, $index - 1) + $replace + str-replace(str-slice($string, $index + str-length($search)), $search, $replace); } @return $string; } $string: 'Foo Bar Baz Qux'; .foo { content: str-replace($string, ' ', '-'); } <===> output.css .foo { content: "Foo-Bar-Baz-Qux"; } sass-spec-libsass-3.6.3/spec/libsass-closed-issues/issue_992.hrx000066400000000000000000000001711355712145100245150ustar00rootroot00000000000000<===> input.scss $color: 'red'; .-text-#{$color}- { color: $color; } <===> output.css .-text-red- { color: "red"; } sass-spec-libsass-3.6.3/spec/libsass-todo-issues/000077500000000000000000000000001355712145100217345ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/libsass-todo-issues/issue_1026.hrx000066400000000000000000000003031355712145100242530ustar00rootroot00000000000000<===> input.scss div { a { /** * a * multiline * comment */ top: 10px; } } <===> output.css div a { /** * a * multiline * comment */ top: 10px; } sass-spec-libsass-3.6.3/spec/libsass-todo-issues/issue_1096.hrx000066400000000000000000000011041355712145100242620ustar00rootroot00000000000000<===> input.scss // line-endings in this file must be CRLF @import url("foo\ bar"); @import url("foo bar"); @import url(foo bar); <===> error-dart-sass Error: Expected ". , 4 | @import url("foo | ^ ' input.scss 4:17 root stylesheet <===> output.css @import url("foobar"); @import url("foo\a bar"); @import url(foo bar); <===> warning DEPRECATION WARNING on line 4, column 13 of input.scss: Unescaped multiline strings are deprecated and will be removed in a future version of Sass. To include a newline in a string, use "\a" or "\a " as in CSS. sass-spec-libsass-3.6.3/spec/libsass-todo-issues/issue_1694/000077500000000000000000000000001355712145100235475ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/libsass-todo-issues/issue_1694/quoted-right-dbl-paren.hrx000066400000000000000000000005211355712145100305460ustar00rootroot00000000000000<===> input.scss test { filter: progid:DXImageTransform.Microsoft.Alpha(opacity=20\)); } <===> error Error: Invalid CSS after "...ha(opacity=20\)": expected ";", was ");" on line 2 of input.scss Use --trace for backtrace. <===> output-dart-sass.css test { filter: progid:DXImageTransform.Microsoft.Alpha(opacity=20\)); } sass-spec-libsass-3.6.3/spec/libsass-todo-issues/issue_1694/quoted-right-paren.hrx000066400000000000000000000006241355712145100300130ustar00rootroot00000000000000<===> input.scss test { filter: progid:DXImageTransform.Microsoft.Alpha(opacity=20\); } <===> error-dart-sass Error: expected ")". , 2 | filter: progid:DXImageTransform.Microsoft.Alpha(opacity=20\); | ^ ' input.scss 2:63 root stylesheet <===> output.css test { filter: progid:DXImageTransform.Microsoft.Alpha(opacity=20\); } sass-spec-libsass-3.6.3/spec/libsass-todo-issues/issue_1732/000077500000000000000000000000001355712145100235405ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/libsass-todo-issues/issue_1732/invalid/000077500000000000000000000000001355712145100251665ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/libsass-todo-issues/issue_1732/invalid/ruleset.hrx000066400000000000000000000004431355712145100273750ustar00rootroot00000000000000<===> input.scss color: green; <===> error Error: Invalid CSS after "color: green": expected "{", was ";" on line 1 of input.scss Use --trace for backtrace. <===> error-dart-sass Error: expected "{". , 1 | color: green; | ^ ' input.scss 1:13 root stylesheet sass-spec-libsass-3.6.3/spec/libsass-todo-issues/issue_1763.hrx000066400000000000000000000007511355712145100242720ustar00rootroot00000000000000<===> first.scss foo { bar: baz } <===> input.scss @import "first.css", "second.css" (max-width: 400px); @import "first.scss", "second.scss" (max-width: 400px); <===> second.scss a { b: c } <===> output.css @import url(first.css); @import "second.css" (max-width: 400px); @import "second.scss" (max-width: 400px); foo { bar: baz; } <===> output-dart-sass.css @import "first.css"; @import "second.css" (max-width: 400px); @import "second.scss" (max-width: 400px); foo { bar: baz; } sass-spec-libsass-3.6.3/spec/libsass-todo-issues/issue_1798/000077500000000000000000000000001355712145100235545ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/libsass-todo-issues/issue_1798/3.hrx000066400000000000000000000001361355712145100244410ustar00rootroot00000000000000<===> input.scss a { content: "#{ a /*#{"}*/ }"; } <===> output.css a { content: "a"; } sass-spec-libsass-3.6.3/spec/libsass-todo-issues/issue_1801/000077500000000000000000000000001355712145100235355ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/libsass-todo-issues/issue_1801/simple-import-loop.hrx000066400000000000000000000006761355712145100300410ustar00rootroot00000000000000<===> _susy.scss @import 'susy'; <===> input.scss @import 'susy'; <===> error Error: An @import loop has been found: _susy.scss imports itself on line 1 of _susy.scss from line 1 of _susy.scss from line 1 of input.scss Use --trace for backtrace. <===> error-dart-sass Error: This file is already being loaded. , 1 | @import 'susy'; | ^^^^^^ ' _susy.scss 1:9 @import input.scss 1:9 root stylesheet sass-spec-libsass-3.6.3/spec/libsass-todo-issues/issue_2016/000077500000000000000000000000001355712145100235345ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/libsass-todo-issues/issue_2016/error000066400000000000000000000002231355712145100246050ustar00rootroot00000000000000Error: Invalid CSS after "...pecific grammar": expected ")", was ". And this thin..." on line 1 of input.scss Use --trace for backtrace. sass-spec-libsass-3.6.3/spec/libsass-todo-issues/issue_2016/error-dart-sass000066400000000000000000000003441355712145100265100ustar00rootroot00000000000000Error: Expected identifier. , 1 | $_: ___((Classes and IDs must follow a specific grammar. And this thing here doesn’t.)); | ^ ' input.scss 1:57 root stylesheet sass-spec-libsass-3.6.3/spec/libsass-todo-issues/issue_2016/input.scss000066400000000000000000000001321355712145100255640ustar00rootroot00000000000000$_: ___((Classes and IDs must follow a specific grammar. And this thing here doesn’t.));sass-spec-libsass-3.6.3/spec/libsass-todo-issues/issue_2023/000077500000000000000000000000001355712145100235325ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/libsass-todo-issues/issue_2023/class-selector-id.hrx000066400000000000000000000003421355712145100275710ustar00rootroot00000000000000<===> input.scss .3c { color: red; } <===> error Error: Invalid CSS after ".": expected class name, was "3c" <===> error-dart-sass Error: Expected identifier. , 1 | .3c{ | ^ ' input.scss 1:2 root stylesheet sass-spec-libsass-3.6.3/spec/libsass-todo-issues/issue_2023/class-selector-nr.hrx000066400000000000000000000003371355712145100276200ustar00rootroot00000000000000<===> input.scss .3 { color: red; } <===> error Error: Invalid CSS after ".": expected class name, was "3" <===> error-dart-sass Error: Expected identifier. , 1 | .3{ | ^ ' input.scss 1:2 root stylesheet sass-spec-libsass-3.6.3/spec/libsass-todo-issues/issue_2023/type-selector-id.hrx000066400000000000000000000003321355712145100274440ustar00rootroot00000000000000<===> input.scss 1a { color: red; } <===> error Error: Invalid CSS after "": expected selector, was "1a" <===> error-dart-sass Error: expected selector. , 1 | 1a{ | ^ ' input.scss 1:1 root stylesheet sass-spec-libsass-3.6.3/spec/libsass-todo-issues/issue_2023/type-selector-nr.hrx000066400000000000000000000003271355712145100274730ustar00rootroot00000000000000<===> input.scss 1 { color: red; } <===> error Error: Invalid CSS after "": expected selector, was "1" <===> error-dart-sass Error: expected selector. , 1 | 1{ | ^ ' input.scss 1:1 root stylesheet sass-spec-libsass-3.6.3/spec/libsass-todo-issues/issue_2051.hrx000066400000000000000000000011641355712145100242600ustar00rootroot00000000000000<===> options.yml --- :todo: - libsass <===> input.scss :global(.thing) { color: red; } :global(.thing[disabled]) { @extend .thing; background: blue; } <===> error Error: ":global(.thing[disabled])" failed to @extend ".thing". The selector ".thing" was not found. Use "@extend .thing !optional" if the extend should be able to fail. on line 6 of input.scss Use --trace for backtrace. <===> error-dart-sass Error: The target selector was not found. Use "@extend .thing !optional" to avoid this error. , 6 | @extend .thing; | ^^^^^^^^^^^^^^ ' input.scss 6:5 root stylesheet sass-spec-libsass-3.6.3/spec/libsass-todo-issues/issue_2096.hrx000066400000000000000000000001621355712145100242660ustar00rootroot00000000000000<===> input.scss @mixin foo() { @import "https://foo"; } @include foo; <===> output.css @import "https://foo"; sass-spec-libsass-3.6.3/spec/libsass-todo-issues/issue_221260.hrx000066400000000000000000000050521355712145100244250ustar00rootroot00000000000000<===> input.scss @H#{[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[} <===> error Error: Invalid CSS after "@H#{": expected expression (e.g. 1px, bold), was "[[[[[[[[[[[[[[[..." on line 1 of input.scss Use --trace for backtrace. <===> error-dart-sass Error: Expected expression. , 1 | @H#{[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[} | ^ ' input.scss 1:770 root stylesheet sass-spec-libsass-3.6.3/spec/libsass-todo-issues/issue_221262.hrx000066400000000000000000000025761355712145100244370ustar00rootroot00000000000000<===> options.yml --- :todo: - dart-sass <===> input.scss 0{g:00;m:(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((0 <===> output.css 0{g:00;m:(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((0sass-spec-libsass-3.6.3/spec/libsass-todo-issues/issue_221264/000077500000000000000000000000001355712145100237045ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/libsass-todo-issues/issue_221264/error000066400000000000000000000001431355712145100247560ustar00rootroot00000000000000Error: Invalid UTF-8 character "\xC0" on line 1 of input.scss Use --trace for backtrace. sass-spec-libsass-3.6.3/spec/libsass-todo-issues/issue_221264/error-dart-sass000066400000000000000000000047231355712145100266650ustar00rootroot00000000000000Error: Invalid UTF-8. , 1 | @if(f( 201J����������������������[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[���[[[[[[[[[[[[[[[[[[[[:[[D[[[[[[[[[[[��[[[[��[q[[[[[[[[[[[[;����������[[[[[[ | ^ ' input.scss 1:12 root stylesheet sass-spec-libsass-3.6.3/spec/libsass-todo-issues/issue_221264/input.scss000066400000000000000000000044571355712145100257520ustar00rootroot00000000000000@if(f( 201J[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[:[[D[[[[[[[[[[[[[[[[q[[[[[[[[[[[[;[[[[[[sass-spec-libsass-3.6.3/spec/libsass-todo-issues/issue_221267/000077500000000000000000000000001355712145100237075ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/libsass-todo-issues/issue_221267/error000066400000000000000000000001431355712145100247610ustar00rootroot00000000000000Error: Invalid UTF-8 character "\xAD" on line 1 of input.scss Use --trace for backtrace. sass-spec-libsass-3.6.3/spec/libsass-todo-issues/issue_221267/error-dart-sass000066400000000000000000000610471355712145100266720ustar00rootroot00000000000000Error: Invalid UTF-8. , 1 | @ph��#{I�wpl no�+H�c9ri2�ig�re2�ight==242-4, DdJ�-, o�t==-nqt n���2�e2��ght==242-4, DdE�-, o�t==-nqt n�����me2�ight==242- ne2�ight==242-4, DdJ�-, o�t==-nqt n���2�ig�re2�ight==242-4, DdE�-, o�t==-nqt n�����me2�ight==242- not no�+Hight==242- not no�+H�c9ri2�ight==24Q, D��re2�ight==242- not no�+Hight!=242-+ not no�+H�c9ri=242-4, DdE�-, o�t==-nqt n�����me2�ight==242- noot no�+Hight==242- not no�+H�c�+X�c9ri2�ig�re2�ight==242-4, DdJ�-, o�t==-nqt n���2�ig�re2�ight==242-4, DdE�-, o�t==-nqt n�����me2�ight==242- ne2�ight==242-4, DdJ�-, o�t==-nqt n���2�ig�re2�ight==242-4, DdE�-, o�t==-nqt n�����me2�ight==242- not no�+Hight==242- not no�+H�c9ri2�ight==24Q, D��re2�ight==242- not no�+Hight!=242-t==242- not no�+Hight!=242-+ not no�+H�c9ri=242-4, DdE�+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-, o�t==-nqt n�����me2�ight==242- noot no�+Hight==242- not no�+H�c�+X�c9ri2�ig�re2�ight==242-4, DdJ�-, o�t==-nqt n���2�ig�re2�ight==242-4, DdE�-, o�t==-nqt n�����me2�ight==242- ne2�ight==242-4, DdJ�-, o�t==-nqt n���2�ig�re2�ight==242-4, DdE�-, o�t==-nqt242-4, DdE�-, o�t==-nqt n�����me2�ight==242- ne2�ight==242-4, DdJ�-, o�t==-nqt n���2�ig�re2�ight==242-4, DdE�-, o�t==-nqt n�����me2�ight==242- not no�+Hight==242- not no�+H�c9ri2�ight==24Q, D��re2�ight==242- not no�+Hight!=242-+ not no�+H�c9ri=242-4, DdE�-, o�t==-nqt n�����me2�ight==242- noot no�+Hight==242- not no�+H�c�+X�c9ri2�ig�re2�ight==242-4, DdJ�-, o�t==-nqt n���2�ig�re2�ight==242-4, DdE�-, o�t==-nqt n�����me2�ight==242- ne2�ight==242-4, DdJ�-, o�t==-nqt n���2�ig�re2�ight==242-4, DdE�-, o�t==-nqt n�����me2�ight==242- not no�+Hight==242- not no�����me2�ight==242- not no�+Hight==242- not no�+H�c9ri2�igh+H�c9ri2�ight==24Q, D��re2�ight==242- not no�+Hight!=242-t==242- not no�+Hight!=242-+ not no�+H�c9ri=242-4, DdE�-, o�t==-nqt n�����me2�ight=6242- noot no�+Hight==242- not no�+H�c�+X�c9ri2�ig�re2�ight==242-4, DdJ�-, o�t==-nqt n���2�ig�re2�ight==242-4, DdE�-, o�t==-nqt n�����me2�ight==242- ne2�ight==242-4, DdJ�-, o�t==-nqt n���2�ig�re2�ight==242-4, DdE�-, o�t==-nqt n�����me2�ight==242- not no�+Hight==242- not no�+H�c9ri2�ight==24Q, D��re2�ight==242- not no�+Hight!=242-+ not no�+H�c9ri=242-4, DdE�-, o�t==-nqt n�����me2�ight==242- noot no�+Hight==242- not no�+H�c9ri2�ight==24Q, D��re2�ight==242- not n�����me2�ight==242- not no�+Hight==242- not no�+H�c9ri2�ight==24Q, D��re2�ight==242- not no�+Hight!=242-+ not no�+H�c9ri=242-4, DdE�-, o�t==-nqt n�����me2�ight==242- noot no�+Hight==242- not no�+H�c9ri2�ight==24Q, D��re2�ight==242- not no�+Hight!=242-+3not no�+H�c9ri=242-4, DdE�-, o�t==-nqt n�����me2�ight==29ri2�ight==24Q, D��re2�ight==242- not no�+Hight!=242-+3not no�+H�c9ri=242-4+ not no�+H�c9ri=242-4, DdE�-, o�t==-nqt n�����me2�ight==242- noot no�+Hight==242- not no�+H�c9ri2�ight==24Q, D��re2�ight==242- not no�+Hight!=242-+3not no�+H�c9ri=242-4, DdE�-, o�t==-nqt n�����me2�ight==29ri2�ight==24Q, D��re2�ight==242- not no�+Hight!=242-+3not no�+H�c9ri=242-4, DDE�-, o�t==-�qt n�����me2�ight==242- not2�ight==244, DdE4�}��t6li� | ^ ' input.scss 1:4 root stylesheet sass-spec-libsass-3.6.3/spec/libsass-todo-issues/issue_221267/input.scss000066400000000000000000000571751355712145100257620ustar00rootroot00000000000000@ph#{Iwpl no+Hc9ri2igre2ight==242-4, DdJ-, ot==-nqt n2e2ght==242-4, DdE-, ot==-nqt nme2ight==242- ne2ight==242-4, DdJ-, ot==-nqt n2igre2ight==242-4, DdE-, ot==-nqt nme2ight==242- not no+Hight==242- not no+Hc9ri2ight==24Q, Dre2ight==242- not no+Hight!=242-+ not no+Hc9ri=242-4, DdE-, ot==-nqt nme2ight==242- noot no+Hight==242- not no+Hc+Xc9ri2igre2ight==242-4, DdJ-, ot==-nqt n2igre2ight==242-4, DdE-, ot==-nqt nme2ight==242- ne2ight==242-4, DdJ-, ot==-nqt n2igre2ight==242-4, DdE-, ot==-nqt nme2ight==242- not no+Hight==242- not no+Hc9ri2ight==24Q, Dre2ight==242- not no+Hight!=242-t==242- not no+Hight!=242-+ not no+Hc9ri=242-4, DdE+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-, ot==-nqt nme2ight==242- noot no+Hight==242- not no+Hc+Xc9ri2igre2ight==242-4, DdJ-, ot==-nqt n2igre2ight==242-4, DdE-, ot==-nqt nme2ight==242- ne2ight==242-4, DdJ-, ot==-nqt n2igre2ight==242-4, DdE-, ot==-nqt242-4, DdE-, ot==-nqt nme2ight==242- ne2ight==242-4, DdJ-, ot==-nqt n2igre2ight==242-4, DdE-, ot==-nqt nme2ight==242- not no+Hight==242- not no+Hc9ri2ight==24Q, Dre2ight==242- not no+Hight!=242-+ not no+Hc9ri=242-4, DdE-, ot==-nqt nme2ight==242- noot no+Hight==242- not no+Hc+Xc9ri2igre2ight==242-4, DdJ-, ot==-nqt n2igre2ight==242-4, DdE-, ot==-nqt nme2ight==242- ne2ight==242-4, DdJ-, ot==-nqt n2igre2ight==242-4, DdE-, ot==-nqt nme2ight==242- not no+Hight==242- not nome2ight==242- not no+Hight==242- not no+Hc9ri2igh+Hc9ri2ight==24Q, Dre2ight==242- not no+Hight!=242-t==242- not no+Hight!=242-+ not no+Hc9ri=242-4, DdE-, ot==-nqt nme2ight=6242- noot no+Hight==242- not no+Hc+Xc9ri2igre2ight==242-4, DdJ-, ot==-nqt n2igre2ight==242-4, DdE-, ot==-nqt nme2ight==242- ne2ight==242-4, DdJ-, ot==-nqt n2igre2ight==242-4, DdE-, ot==-nqt nme2ight==242- not no+Hight==242- not no+Hc9ri2ight==24Q, Dre2ight==242- not no+Hight!=242-+ not no+Hc9ri=242-4, DdE-, ot==-nqt nme2ight==242- noot no+Hight==242- not no+Hc9ri2ight==24Q, Dre2ight==242- not nme2ight==242- not no+Hight==242- not no+Hc9ri2ight==24Q, Dre2ight==242- not no+Hight!=242-+ not no+Hc9ri=242-4, DdE-, ot==-nqt nme2ight==242- noot no+Hight==242- not no+Hc9ri2ight==24Q, Dre2ight==242- not no+Hight!=242-+3not no+Hc9ri=242-4, DdE-, ot==-nqt nme2ight==29ri2ight==24Q, Dre2ight==242- not no+Hight!=242-+3not no+Hc9ri=242-4+ not no+Hc9ri=242-4, DdE-, ot==-nqt nme2ight==242- noot no+Hight==242- not no+Hc9ri2ight==24Q, Dre2ight==242- not no+Hight!=242-+3not no+Hc9ri=242-4, DdE-, ot==-nqt nme2ight==29ri2ight==24Q, Dre2ight==242- not no+Hight!=242-+3not no+Hc9ri=242-4, DDE-, ot==-qt nme2ight==242- not2ight==244, DdE4}t6lisass-spec-libsass-3.6.3/spec/libsass-todo-issues/issue_221286/000077500000000000000000000000001355712145100237105ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/libsass-todo-issues/issue_221286/error000066400000000000000000000001431355712145100247620ustar00rootroot00000000000000Error: Invalid UTF-8 character "\xD2" on line 1 of input.scss Use --trace for backtrace. sass-spec-libsass-3.6.3/spec/libsass-todo-issues/issue_221286/error-dart-sass000066400000000000000000001216141355712145100266700ustar00rootroot00000000000000Error: Invalid UTF-8. , 1 | >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>/>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>$>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>�>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>A>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> | ^ ' input.scss 1:13789 root stylesheet sass-spec-libsass-3.6.3/spec/libsass-todo-issues/issue_221286/input.scss000066400000000000000000000665371355712145100257650ustar00rootroot00000000000000>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>,>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>/>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>$>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>A>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>sass-spec-libsass-3.6.3/spec/libsass-todo-issues/issue_221292.hrx000066400000000000000000000025761355712145100244420ustar00rootroot00000000000000<===> options.yml --- :todo: - dart-sass <===> input.scss /**/0{i:(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((( <===> output.css /**/0{i:((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((sass-spec-libsass-3.6.3/spec/libsass-todo-issues/issue_2235/000077500000000000000000000000001355712145100235375ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/libsass-todo-issues/issue_2235/empty.hrx000066400000000000000000000002611355712145100254170ustar00rootroot00000000000000<===> input.scss @media all and (min-width: 100px) { @import "https://example.org"; } <===> output.css @media all and (min-width: 100px) { @import "https://example.org"; } sass-spec-libsass-3.6.3/spec/libsass-todo-issues/issue_2235/not-empty.hrx000066400000000000000000000003231355712145100262140ustar00rootroot00000000000000<===> input.scss @media all and (min-width: 100px) { a { b: c } @import "https://example.org"; } <===> output.css @media all and (min-width: 100px) { a { b: c; } @import "https://example.org"; } sass-spec-libsass-3.6.3/spec/libsass-todo-issues/issue_2295/000077500000000000000000000000001355712145100235455ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/libsass-todo-issues/issue_2295/error/000077500000000000000000000000001355712145100246765ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/libsass-todo-issues/issue_2295/error/basic.hrx000066400000000000000000000006501355712145100265030ustar00rootroot00000000000000<===> include.scss display: none; <===> input.scss .my-scope { @import 'include.scss'; } <===> error Error: Invalid CSS after "display: none": expected "{", was ";" on line 1 of include.scss from line 2 of input.scss Use --trace for backtrace. <===> error-dart-sass Error: expected "{". , 1 | display: none; | ^ ' include.scss 1:14 @import input.scss 2:11 root stylesheet sass-spec-libsass-3.6.3/spec/libsass-todo-issues/issue_2295/error/wrapped.hrx000066400000000000000000000007371355712145100270720ustar00rootroot00000000000000<===> include.scss @if (true) { display: none; } <===> input.scss .my-scope { @import 'include.scss'; } <===> error Error: Properties are only allowed within rules, directives, mixin includes, or other properties. on line 2 of include.scss from line 2 of input.scss Use --trace for backtrace. <===> error-dart-sass Error: expected "{". , 2 | display: none; | ^ ' include.scss 2:16 @import input.scss 2:11 root stylesheet sass-spec-libsass-3.6.3/spec/libsass-todo-issues/issue_238764.hrx000066400000000000000000000006471355712145100244530ustar00rootroot00000000000000<===> input.scss @mixin bar { @at-root @bar {a: b} } .foo { @include bar; } <===> error Error: Invalid CSS after "": expected selector, was "@bar" on line 2 of input.scss, in `bar' from line 6 of input.scss Use --trace for backtrace. <===> error-dart-sass Error: expected selector. , 2 | @at-root @bar{a: b} | ^ ' input.scss 2:12 bar() input.scss 6:3 root stylesheet sass-spec-libsass-3.6.3/spec/libsass-todo-issues/issue_245442/000077500000000000000000000000001355712145100237105ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/libsass-todo-issues/issue_245442/error000066400000000000000000000001431355712145100247620ustar00rootroot00000000000000Error: Invalid UTF-8 character "\xDF" on line 1 of input.scss Use --trace for backtrace. sass-spec-libsass-3.6.3/spec/libsass-todo-issues/issue_245442/error-dart-sass000066400000000000000000000002731355712145100266650ustar00rootroot00000000000000Error: Invalid UTF-8. , 1 | j,\|.-������>>>g>>>>>>>>>>>>>>>>>�sd>>>>��mixin�o%nsend R��mixinAo,ns()j*AJ�xte{ | ^ ' input.scss 1:7 root stylesheet sass-spec-libsass-3.6.3/spec/libsass-todo-issues/issue_245442/input.scss000066400000000000000000000001641355712145100257450ustar00rootroot00000000000000j,\|.->>>g>>>>>>>>>>>>>>>>>sd>>>>mixino%nsend RmixinAo,ns()j*AJxte{ @extend RmixinAo,ns()j*; @e&i} sass-spec-libsass-3.6.3/spec/libsass-todo-issues/issue_245446/000077500000000000000000000000001355712145100237145ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/libsass-todo-issues/issue_245446/error000066400000000000000000000001431355712145100247660ustar00rootroot00000000000000Error: Invalid UTF-8 character "\xDF" on line 1 of input.scss Use --trace for backtrace. sass-spec-libsass-3.6.3/spec/libsass-todo-issues/issue_245446/error-dart-sass000066400000000000000000000002321355712145100266640ustar00rootroot00000000000000Error: Invalid UTF-8. , 1 | j,\|.-��������mixin�o,ns()j*\|(tesR��mixi,ws)>J�{ | ^ ' input.scss 1:7 root stylesheet sass-spec-libsass-3.6.3/spec/libsass-todo-issues/issue_245446/input.scss000066400000000000000000000001251355712145100257460ustar00rootroot00000000000000j,\|.-mixino,ns()j*\|(tesRmixi,ws)>J{ @extend Rmixi,ws,ns()j*; @e&i} sass-spec-libsass-3.6.3/spec/libsass-todo-issues/issue_2818.hrx000066400000000000000000000002761355712145100242760ustar00rootroot00000000000000<===> input.scss $map: ("lightness": 10%, "saturation": 10%); $base: call(get-function('scale-color'), #dedede, $map...); test { color: $base; } <===> output.css test { color: #e4dede; } sass-spec-libsass-3.6.3/spec/libsass-todo-issues/options.yml000066400000000000000000000000251355712145100241470ustar00rootroot00000000000000--- :todo: - libsass sass-spec-libsass-3.6.3/spec/libsass-todo-tests/000077500000000000000000000000001355712145100215635ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/libsass-todo-tests/errors/000077500000000000000000000000001355712145100230775ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/libsass-todo-tests/errors/import/000077500000000000000000000000001355712145100244115ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/libsass-todo-tests/errors/import/url/000077500000000000000000000000001355712145100252135ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/libsass-todo-tests/errors/import/url/mixin/000077500000000000000000000000001355712145100263375ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/libsass-todo-tests/errors/import/url/mixin/control-else/000077500000000000000000000000001355712145100307455ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/libsass-todo-tests/errors/import/url/mixin/control-else/inside.hrx000066400000000000000000000003371355712145100327460ustar00rootroot00000000000000<===> input.scss @mixin do_import() { @if (false) { } @else { @import url("http://www.libsass.org"); } } foo { @include do_import(); } <===> output.css foo { @import url("http://www.libsass.org"); } sass-spec-libsass-3.6.3/spec/libsass-todo-tests/errors/import/url/mixin/control-if/000077500000000000000000000000001355712145100304135ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/libsass-todo-tests/errors/import/url/mixin/control-if/inside.hrx000066400000000000000000000003211355712145100324050ustar00rootroot00000000000000<===> input.scss @mixin do_import() { @if (true) { @import url("http://www.libsass.org"); } } foo { @include do_import(); } <===> output.css foo { @import url("http://www.libsass.org"); } sass-spec-libsass-3.6.3/spec/libsass-todo-tests/errors/unicode/000077500000000000000000000000001355712145100245255ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/libsass-todo-tests/errors/unicode/invalid/000077500000000000000000000000001355712145100261535ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/libsass-todo-tests/errors/unicode/invalid/after/000077500000000000000000000000001355712145100272545ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/libsass-todo-tests/errors/unicode/invalid/after/error000066400000000000000000000001431355712145100303260ustar00rootroot00000000000000Error: Invalid UTF-8 character "\xF6" on line 1 of input.scss Use --trace for backtrace. sass-spec-libsass-3.6.3/spec/libsass-todo-tests/errors/unicode/invalid/after/error-dart-sass000066400000000000000000000001551355712145100322300ustar00rootroot00000000000000Error: Invalid UTF-8. , 1 | foo{;�������� | ^ ' input.scss 1:6 root stylesheet sass-spec-libsass-3.6.3/spec/libsass-todo-tests/errors/unicode/invalid/after/input.scss000066400000000000000000000000151355712145100313040ustar00rootroot00000000000000foo{;sass-spec-libsass-3.6.3/spec/libsass-todo-tests/errors/unicode/invalid/before/000077500000000000000000000000001355712145100274155ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/libsass-todo-tests/errors/unicode/invalid/before/error000066400000000000000000000001431355712145100304670ustar00rootroot00000000000000Error: Invalid UTF-8 character "\xF6" on line 1 of input.scss Use --trace for backtrace. sass-spec-libsass-3.6.3/spec/libsass-todo-tests/errors/unicode/invalid/before/error-dart-sass000066400000000000000000000001471355712145100323720ustar00rootroot00000000000000Error: Invalid UTF-8. , 1 | ��������{a:c | ^ ' input.scss 1:1 root stylesheet sass-spec-libsass-3.6.3/spec/libsass-todo-tests/errors/unicode/invalid/before/input.scss000066400000000000000000000000141355712145100314440ustar00rootroot00000000000000{a:csass-spec-libsass-3.6.3/spec/libsass-todo-tests/options.yml000066400000000000000000000000251355712145100237760ustar00rootroot00000000000000--- :todo: - libsass sass-spec-libsass-3.6.3/spec/libsass/000077500000000000000000000000001355712145100174605ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/libsass/Sáss-UŢF8.hrx000066400000000000000000000001571355712145100231430ustar00rootroot00000000000000<===> input.scss span.utf8-in-path { margin: auto; } <===> output.css span.utf8-in-path { margin: auto; } sass-spec-libsass-3.6.3/spec/libsass/Sáss-UŢF8.hrx000066400000000000000000000001571355712145100226710ustar00rootroot00000000000000<===> input.scss span.utf8-in-path { margin: auto; } <===> output.css span.utf8-in-path { margin: auto; } sass-spec-libsass-3.6.3/spec/libsass/arg-eval.hrx000066400000000000000000000007601355712145100217040ustar00rootroot00000000000000<===> input.scss @function foo() { @return 1+2 3/4 5+6; } @mixin bar($x: 3/4) { bar-content: $x; } div { content: foobar(1+2 3/4 5+6, orange); content: append(1+2 2/3 5+6, orange); content: 1+2 2/3 5+6; content: type-of(2/3); content: type-of(orange); content: foo(); @include bar(); } <===> output.css div { content: foobar(3 3/4 11, orange); content: 3 2/3 11 orange; content: 3 2/3 11; content: number; content: color; content: 3 3/4 11; bar-content: 0.75; } sass-spec-libsass-3.6.3/spec/libsass/at-error/000077500000000000000000000000001355712145100212135ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/libsass/at-error/feature-test.hrx000066400000000000000000000001741355712145100243500ustar00rootroot00000000000000<===> input.scss @if feature-exists(at-error) { div { feature: true; } } <===> output.css div { feature: true; } sass-spec-libsass-3.6.3/spec/libsass/at-root/000077500000000000000000000000001355712145100210455ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/libsass/at-root/135_test_simple_at_root.hrx000066400000000000000000000001361355712145100262370ustar00rootroot00000000000000<===> input.scss .foo { @at-root { .bar {a: b} } } <===> output.css .bar { a: b; } sass-spec-libsass-3.6.3/spec/libsass/at-root/136_test_at_root_with_selector.hrx000066400000000000000000000001241355712145100276170ustar00rootroot00000000000000<===> input.scss .foo { @at-root .bar {a: b} } <===> output.css .bar { a: b; } sass-spec-libsass-3.6.3/spec/libsass/at-root/137_test_at_root_in_mixin.hrx000066400000000000000000000001641355712145100265630ustar00rootroot00000000000000<===> input.scss @mixin bar { @at-root .bar {a: b} } .foo { @include bar; } <===> output.css .bar { a: b; } sass-spec-libsass-3.6.3/spec/libsass/at-root/138_test_at_root_in_media.hrx000066400000000000000000000002041355712145100265120ustar00rootroot00000000000000<===> input.scss @media screen { .foo { @at-root .bar {a: b} } } <===> output.css @media screen { .bar { a: b; } } sass-spec-libsass-3.6.3/spec/libsass/at-root/139_test_at_root_in_bubbled_media.hrx000066400000000000000000000002041355712145100301720ustar00rootroot00000000000000<===> input.scss .foo { @media screen { @at-root .bar {a: b} } } <===> output.css @media screen { .bar { a: b; } } sass-spec-libsass-3.6.3/spec/libsass/at-root/140_test_at_root_in_unknown_directive.hrx000066400000000000000000000001701355712145100311630ustar00rootroot00000000000000<===> input.scss @fblthp { .foo { @at-root .bar {a: b} } } <===> output.css @fblthp { .bar { a: b; } } sass-spec-libsass-3.6.3/spec/libsass/at-root/141_test_at_root_with_parent_ref.hrx000066400000000000000000000001321355712145100301170ustar00rootroot00000000000000<===> input.scss .foo { @at-root & { a: b; } } <===> output.css .foo { a: b; } sass-spec-libsass-3.6.3/spec/libsass/at-root/142_test_multi_level_at_root_with_parent_ref.hrx000066400000000000000000000002171355712145100325250ustar00rootroot00000000000000<===> input.scss .foo { @at-root & { .bar { @at-root & { a: b; } } } } <===> output.css .foo .bar { a: b; } sass-spec-libsass-3.6.3/spec/libsass/at-root/143_test_multi_level_at_root_with_inner_parent_ref.hrx000066400000000000000000000001661355712145100337240ustar00rootroot00000000000000<===> input.scss .foo { @at-root .bar { @at-root & { a: b; } } } <===> output.css .bar { a: b; } sass-spec-libsass-3.6.3/spec/libsass/at-root/ampersand.hrx000066400000000000000000000003001355712145100235330ustar00rootroot00000000000000<===> input.scss foo { @at-root { & { color: blue; } &--modifier { color: red; } } } <===> output.css foo { color: blue; } foo--modifier { color: red; } sass-spec-libsass-3.6.3/spec/libsass/at-root/basic.hrx000066400000000000000000000004071355712145100226520ustar00rootroot00000000000000<===> input.scss foo { color: blue; @at-root { bar { color: red; } } } foo { color: blue; @at-root bar { color: red; } } <===> output.css foo { color: blue; } bar { color: red; } foo { color: blue; } bar { color: red; } sass-spec-libsass-3.6.3/spec/libsass/at-root/extend.hrx000066400000000000000000000004661355712145100230650ustar00rootroot00000000000000<===> input.scss foo { @at-root { %placeholder { color: red; } } baz { @at-root { %other-placeholder { color: blue; } } } } bar { @extend %placeholder; } baz { @extend %other-placeholder; } <===> output.css bar { color: red; } baz { color: blue; } sass-spec-libsass-3.6.3/spec/libsass/at-root/keyframes.hrx000066400000000000000000000006401355712145100235560ustar00rootroot00000000000000<===> input.scss foo { color: red; @at-root { @keyframes animation { to { color: red; } } } bar { color: blue; @at-root { @keyframes other-animation { to { color: blue; } } } } } <===> output.css foo { color: red; } @keyframes animation { to { color: red; } } foo bar { color: blue; } @keyframes other-animation { to { color: blue; } } sass-spec-libsass-3.6.3/spec/libsass/at-root/media.hrx000066400000000000000000000004351355712145100226510ustar00rootroot00000000000000<===> input.scss foo { @at-root { @media print { bar { color: red; } } baz { @media speech { color: blue; } } } } <===> output.css @media print { bar { color: red; } } @media speech { baz { color: blue; } } sass-spec-libsass-3.6.3/spec/libsass/at-root/nested.hrx000066400000000000000000000006211355712145100230510ustar00rootroot00000000000000<===> input.scss foo { color: blue; baz { color: purple; @at-root { bar { color: red; } } } } foo { color: blue; baz { color: purple; @at-root bar { color: red; } } } <===> output.css foo { color: blue; } foo baz { color: purple; } bar { color: red; } foo { color: blue; } foo baz { color: purple; } bar { color: red; } sass-spec-libsass-3.6.3/spec/libsass/at-root/with_without.hrx000066400000000000000000000144461355712145100243370ustar00rootroot00000000000000<===> input.scss // Unquoted @media (min-width: 1337px) { .foo { content: baz; } @at-root (without: media) { .foo { content: bar; } } } @media (min-width: 1337px) { .foo { content: baz; } @at-root (without: all) { .foo { content: bar; } } } @supports (color: red) { .foo { content: baz; } @at-root (without: supports) { .foo { content: bar; } } } @supports (color: red) { .foo { content: baz; } @at-root (without: all) { .foo { content: bar; } } } @media (min-width: 1337px) { @supports (color: red) { @at-root { .foo { content: bar; } } } } @media (min-width: 1337px) { @supports (color: red) { @at-root (without: all) { .foo { content: bar; } } } } @media (min-width: 1337px) { @supports (color: red) { @at-root (without: media supports) { .foo { content: bar; } } } } @media (min-width: 1337px) { @supports (color: red) { @at-root (without: media) { .foo { content: bar; } } } } @media (min-width: 1337px) { @supports (color: red) { @at-root (without: supports) { .foo { content: bar; } } } } @media (min-width: 1337px) { @supports (color: red) { @at-root { .foo { content: bar; } } } } @media (min-width: 1337px) { @supports (color: red) { @at-root (with: all) { .foo { content: bar; } } } } @media (min-width: 1337px) { @supports (color: red) { @at-root (with: media supports) { .foo { content: bar; } } } } @media (min-width: 1337px) { @supports (color: red) { @at-root (with: media) { .foo { content: bar; } } } } @media (min-width: 1337px) { @supports (color: red) { @at-root (with: supports) { .foo { content: bar; } } } } // Quoted @media (min-width: 1337px) { .foo { content: baz; } @at-root (without: "media") { .foo { content: bar; } } } @media (min-width: 1337px) { .foo { content: baz; } @at-root (without: "all") { .foo { content: bar; } } } @supports (color: red) { .foo { content: baz; } @at-root (without: "supports") { .foo { content: bar; } } } @supports (color: red) { .foo { content: baz; } @at-root (without: "all") { .foo { content: bar; } } } @media (min-width: 1337px) { @supports (color: red) { @at-root (without: "all") { .foo { content: bar; } } } } @media (min-width: 1337px) { @supports (color: red) { @at-root (without: "media" "supports") { .foo { content: bar; } } } } @media (min-width: 1337px) { @supports (color: red) { @at-root (without: "media" supports) { .foo { content: bar; } } } } @media (min-width: 1337px) { @supports (color: red) { @at-root (without: media "supports") { .foo { content: bar; } } } } @media (min-width: 1337px) { @supports (color: red) { @at-root (without: "media") { .foo { content: bar; } } } } @media (min-width: 1337px) { @supports (color: red) { @at-root (without: "supports") { .foo { content: bar; } } } } @media (min-width: 1337px) { @supports (color: red) { @at-root (with: "all") { .foo { content: bar; } } } } @media (min-width: 1337px) { @supports (color: red) { @at-root (with: "media" "supports") { .foo { content: bar; } } } } @media (min-width: 1337px) { @supports (color: red) { @at-root (with: "media" supports) { .foo { content: bar; } } } } @media (min-width: 1337px) { @supports (color: red) { @at-root (with: media "supports") { .foo { content: bar; } } } } @media (min-width: 1337px) { @supports (color: red) { @at-root (with: "media") { .foo { content: bar; } } } } @media (min-width: 1337px) { @supports (color: red) { @at-root (with: "supports") { .foo { content: bar; } } } } <===> output.css @media (min-width: 1337px) { .foo { content: baz; } } .foo { content: bar; } @media (min-width: 1337px) { .foo { content: baz; } } .foo { content: bar; } @supports (color: red) { .foo { content: baz; } } .foo { content: bar; } @supports (color: red) { .foo { content: baz; } } .foo { content: bar; } @media (min-width: 1337px) { @supports (color: red) { .foo { content: bar; } } } .foo { content: bar; } .foo { content: bar; } @supports (color: red) { .foo { content: bar; } } @media (min-width: 1337px) { .foo { content: bar; } } @media (min-width: 1337px) { @supports (color: red) { .foo { content: bar; } } } @media (min-width: 1337px) { @supports (color: red) { .foo { content: bar; } } } @media (min-width: 1337px) { @supports (color: red) { .foo { content: bar; } } } @media (min-width: 1337px) { .foo { content: bar; } } @supports (color: red) { .foo { content: bar; } } @media (min-width: 1337px) { .foo { content: baz; } } .foo { content: bar; } @media (min-width: 1337px) { .foo { content: baz; } } .foo { content: bar; } @supports (color: red) { .foo { content: baz; } } .foo { content: bar; } @supports (color: red) { .foo { content: baz; } } .foo { content: bar; } .foo { content: bar; } .foo { content: bar; } .foo { content: bar; } .foo { content: bar; } @supports (color: red) { .foo { content: bar; } } @media (min-width: 1337px) { .foo { content: bar; } } @media (min-width: 1337px) { @supports (color: red) { .foo { content: bar; } } } @media (min-width: 1337px) { @supports (color: red) { .foo { content: bar; } } } @media (min-width: 1337px) { @supports (color: red) { .foo { content: bar; } } } @media (min-width: 1337px) { @supports (color: red) { .foo { content: bar; } } } @media (min-width: 1337px) { .foo { content: bar; } } @supports (color: red) { .foo { content: bar; } } sass-spec-libsass-3.6.3/spec/libsass/at-stuff.hrx000066400000000000000000000035531355712145100217420ustar00rootroot00000000000000<===> input.scss @fudge hux bloo; div { color: red; @fudge { span { width: 10px; a { font: whatever; } } } height: 20px; @-webkit-keyframes SOMETHING { 0% { opacity: 0; } 50% { opacity: 0.5; } 100% { opacity: 1.0; } } @-webkit-keyframes BOUNCE { from { left: 0px; } to { left: 200px; } } } div { span { font: whatever; } border: { upper: { left: 10px; right: 9px; } lower: { left: 8px; right: 7px; } } background: gray; } @fudge HEY, HOO, HA:first-child { color: blue; } @mudge div span, a:visited; @fu#{dge} foo { color: red; } <===> output.css @fudge hux bloo; div { color: red; height: 20px; } @fudge { div span { width: 10px; } div span a { font: whatever; } } @-webkit-keyframes SOMETHING { 0% { opacity: 0; } 50% { opacity: 0.5; } 100% { opacity: 1.0; } } @-webkit-keyframes BOUNCE { from { left: 0px; } to { left: 200px; } } div { border-upper-left: 10px; border-upper-right: 9px; border-lower-left: 8px; border-lower-right: 7px; background: gray; } div span { font: whatever; } @fudge HEY, HOO, HA:first-child { color: blue; } @mudge div span, a:visited; @fu dge foo { color: red; } <===> output-dart-sass.css @fudge hux bloo; div { color: red; height: 20px; } @fudge { div span { width: 10px; } div span a { font: whatever; } } @-webkit-keyframes SOMETHING { 0% { opacity: 0; } 50% { opacity: 0.5; } 100% { opacity: 1; } } @-webkit-keyframes BOUNCE { from { left: 0px; } to { left: 200px; } } div { border-upper-left: 10px; border-upper-right: 9px; border-lower-left: 8px; border-lower-right: 7px; background: gray; } div span { font: whatever; } @fudge HEY, HOO, HA:first-child { color: blue; } @mudge div span, a:visited; @fudge foo { color: red; } sass-spec-libsass-3.6.3/spec/libsass/base-level-parent/000077500000000000000000000000001355712145100227665ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/libsass/base-level-parent/imported/000077500000000000000000000000001355712145100246115ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/libsass/base-level-parent/imported/at-root-alone-itpl.hrx000066400000000000000000000006531355712145100307670ustar00rootroot00000000000000<===> include.scss @at-root { #{&} { foo { bar: baz; } } } <===> input.scss @import "include.scss"; <===> error Error: Invalid CSS after "": expected selector, was "" on line 2 of include.scss from line 1 of input.scss Use --trace for backtrace. <===> error-dart-sass Error: expected selector. , 2 | { | ^ ' include.scss 2:3 @import input.scss 1:9 root stylesheet sass-spec-libsass-3.6.3/spec/libsass/base-level-parent/imported/at-root-alone.hrx000066400000000000000000000011671355712145100300220ustar00rootroot00000000000000<===> include.scss @at-root { & { foo { bar: baz; } } } <===> input.scss @import "include.scss"; <===> error Error: Base-level rules cannot contain the parent-selector-referencing character '&'. on line 2 of include.scss from line 1 of input.scss Use --trace for backtrace. <===> error-libsass Error: Top-level selectors may not contain the parent selector "&". on line 1:9 of input.scss >> & { --^ <===> error-dart-sass Error: Top-level selectors may not contain the parent selector "&". , 2 | & { | ^^ ' include.scss 2:3 @import input.scss 1:9 root stylesheet sass-spec-libsass-3.6.3/spec/libsass/base-level-parent/imported/at-root-postfix-itpl.hrx000066400000000000000000000002541355712145100313620ustar00rootroot00000000000000<===> include.scss @at-root { #{&}post { foo { bar: baz; } } } <===> input.scss @import "include.scss"; <===> output.css post foo { bar: baz; } sass-spec-libsass-3.6.3/spec/libsass/base-level-parent/imported/at-root-postfix.hrx000066400000000000000000000012071355712145100304130ustar00rootroot00000000000000<===> include.scss @at-root { &post { foo { bar: baz; } } } <===> input.scss @import "include.scss"; <===> error Error: Base-level rules cannot contain the parent-selector-referencing character '&'. on line 2 of include.scss from line 1 of input.scss Use --trace for backtrace. <===> error-libsass Error: Top-level selectors may not contain the parent selector "&". on line 1:9 of input.scss >> &post { --^ <===> error-dart-sass Error: Top-level selectors may not contain the parent selector "&". , 2 | &post { | ^^^^^^ ' include.scss 2:3 @import input.scss 1:9 root stylesheet sass-spec-libsass-3.6.3/spec/libsass/base-level-parent/imported/at-root-prefix-itpl.hrx000066400000000000000000000002521355712145100311610ustar00rootroot00000000000000<===> include.scss @at-root { pre#{&} { foo { bar: baz; } } } <===> input.scss @import "include.scss"; <===> output.css pre foo { bar: baz; } sass-spec-libsass-3.6.3/spec/libsass/base-level-parent/imported/at-root-prefix.hrx000066400000000000000000000010441355712145100302130ustar00rootroot00000000000000<===> include.scss @at-root { pre& { foo { bar: baz; } } } <===> input.scss @import "include.scss"; <===> error Error: Invalid CSS after "pre": expected "{", was "&" "&" may only be used at the beginning of a compound selector. on line 2 of include.scss from line 1 of input.scss Use --trace for backtrace. <===> error-dart-sass Error: "&" may only used at the beginning of a compound selector. , 2 | pre&{ | ^ ' include.scss 2:6 @import input.scss 1:9 root stylesheet sass-spec-libsass-3.6.3/spec/libsass/base-level-parent/imported/basic-alone-itpl.hrx000066400000000000000000000006161355712145100304620ustar00rootroot00000000000000<===> include.scss #{&} { foo { bar: baz; } } <===> input.scss @import "include.scss"; <===> error Error: Invalid CSS after "": expected selector, was "" on line 1 of include.scss from line 1 of input.scss Use --trace for backtrace. <===> error-dart-sass Error: expected selector. , 1 | { | ^ ' include.scss 1:1 @import input.scss 1:9 root stylesheet sass-spec-libsass-3.6.3/spec/libsass/base-level-parent/imported/basic-alone.hrx000066400000000000000000000011241355712145100275070ustar00rootroot00000000000000<===> include.scss & { foo { bar: baz; } } <===> input.scss @import "include.scss"; <===> error Error: Base-level rules cannot contain the parent-selector-referencing character '&'. on line 1 of include.scss from line 1 of input.scss Use --trace for backtrace. <===> error-libsass Error: Top-level selectors may not contain the parent selector "&". on line 1:9 of input.scss >> & { <===> error-dart-sass Error: Top-level selectors may not contain the parent selector "&". , 1 | & { | ^^ ' include.scss 1:1 @import input.scss 1:9 root stylesheet sass-spec-libsass-3.6.3/spec/libsass/base-level-parent/imported/basic-postfix-itpl.hrx000066400000000000000000000002231355712145100310520ustar00rootroot00000000000000<===> include.scss #{&}post { foo { bar: baz; } } <===> input.scss @import "include.scss"; <===> output.css post foo { bar: baz; } sass-spec-libsass-3.6.3/spec/libsass/base-level-parent/imported/basic-postfix.hrx000066400000000000000000000011431355712145100301060ustar00rootroot00000000000000<===> include.scss &post { foo { bar: baz; } } <===> input.scss @import "include.scss"; <===> error Error: Base-level rules cannot contain the parent-selector-referencing character '&'. on line 1 of include.scss from line 1 of input.scss Use --trace for backtrace. <===> error-libsass Error: Top-level selectors may not contain the parent selector "&". on line 1:9 of input.scss >> &post { <===> error-dart-sass Error: Top-level selectors may not contain the parent selector "&". , 1 | &post { | ^^^^^^ ' include.scss 1:1 @import input.scss 1:9 root stylesheet sass-spec-libsass-3.6.3/spec/libsass/base-level-parent/imported/basic-prefix-itpl.hrx000066400000000000000000000002211355712145100306510ustar00rootroot00000000000000<===> include.scss pre#{&} { foo { bar: baz; } } <===> input.scss @import "include.scss"; <===> output.css pre foo { bar: baz; } sass-spec-libsass-3.6.3/spec/libsass/base-level-parent/imported/basic-prefix.hrx000066400000000000000000000010071355712145100277060ustar00rootroot00000000000000<===> include.scss pre& { foo { bar: baz; } } <===> input.scss @import "include.scss"; <===> error Error: Invalid CSS after "pre": expected "{", was "&" "&" may only be used at the beginning of a compound selector. on line 1 of include.scss from line 1 of input.scss Use --trace for backtrace. <===> error-dart-sass Error: "&" may only used at the beginning of a compound selector. , 1 | pre&{ | ^ ' include.scss 1:4 @import input.scss 1:9 root stylesheet sass-spec-libsass-3.6.3/spec/libsass/base-level-parent/imported/inputs.scss000066400000000000000000000000271355712145100270270ustar00rootroot00000000000000@import "include.scss";sass-spec-libsass-3.6.3/spec/libsass/base-level-parent/nested/000077500000000000000000000000001355712145100242505ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/libsass/base-level-parent/nested/at-root-alone-itpl.hrx000066400000000000000000000002261355712145100304220ustar00rootroot00000000000000<===> input.scss test { @at-root { #{&} { foo { bar: baz; } } } } <===> output.css test foo { bar: baz; } sass-spec-libsass-3.6.3/spec/libsass/base-level-parent/nested/at-root-alone.hrx000066400000000000000000000002211355712145100274470ustar00rootroot00000000000000<===> input.scss test { @at-root { & { foo { bar: baz; } } } } <===> output.css test foo { bar: baz; } sass-spec-libsass-3.6.3/spec/libsass/base-level-parent/nested/at-root-postfix-itpl.hrx000066400000000000000000000002361355712145100310210ustar00rootroot00000000000000<===> input.scss test { @at-root { #{&}post { foo { bar: baz; } } } } <===> output.css testpost foo { bar: baz; } sass-spec-libsass-3.6.3/spec/libsass/base-level-parent/nested/at-root-postfix.hrx000066400000000000000000000002311355712145100300460ustar00rootroot00000000000000<===> input.scss test { @at-root { &post { foo { bar: baz; } } } } <===> output.css testpost foo { bar: baz; } sass-spec-libsass-3.6.3/spec/libsass/base-level-parent/nested/at-root-prefix-itpl.hrx000066400000000000000000000002341355712145100306200ustar00rootroot00000000000000<===> input.scss test { @at-root { pre#{&} { foo { bar: baz; } } } } <===> output.css pretest foo { bar: baz; } sass-spec-libsass-3.6.3/spec/libsass/base-level-parent/nested/at-root-prefix.hrx000066400000000000000000000007231355712145100276550ustar00rootroot00000000000000<===> input.scss test{ @at-root { pre& { foo { bar: baz; } } } } <===> error Error: Invalid CSS after "pre": expected "{", was "&" "&" may only be used at the beginning of a compound selector. on line 3 of input.scss Use --trace for backtrace. <===> error-dart-sass Error: "&" may only used at the beginning of a compound selector. , 3 | pre&{ | ^ ' input.scss 3:8 root stylesheet sass-spec-libsass-3.6.3/spec/libsass/base-level-parent/nested/basic-alone-itpl.hrx000066400000000000000000000001761355712145100301220ustar00rootroot00000000000000<===> input.scss test { #{&} { foo { bar: baz; } } } <===> output.css test test foo { bar: baz; } sass-spec-libsass-3.6.3/spec/libsass/base-level-parent/nested/basic-alone.hrx000066400000000000000000000001641355712145100271510ustar00rootroot00000000000000<===> input.scss test { & { foo { bar: baz; } } } <===> output.css test foo { bar: baz; } sass-spec-libsass-3.6.3/spec/libsass/base-level-parent/nested/basic-postfix-itpl.hrx000066400000000000000000000002061355712145100305120ustar00rootroot00000000000000<===> input.scss test { #{&}post { foo { bar: baz; } } } <===> output.css test testpost foo { bar: baz; } sass-spec-libsass-3.6.3/spec/libsass/base-level-parent/nested/basic-postfix.hrx000066400000000000000000000001741355712145100275500ustar00rootroot00000000000000<===> input.scss test { &post { foo { bar: baz; } } } <===> output.css testpost foo { bar: baz; } sass-spec-libsass-3.6.3/spec/libsass/base-level-parent/nested/basic-prefix-itpl.hrx000066400000000000000000000002041355712145100303110ustar00rootroot00000000000000<===> input.scss test { pre#{&} { foo { bar: baz; } } } <===> output.css test pretest foo { bar: baz; } sass-spec-libsass-3.6.3/spec/libsass/base-level-parent/nested/basic-prefix.hrx000066400000000000000000000007461355712145100273560ustar00rootroot00000000000000<===> input.scss test { pre& { foo { bar: baz; } } } <===> error Error: Invalid CSS after "pre": expected "{", was "&" "&" may only be used at the beginning of a compound selector. on line 2 of /sass/spec/libsass/base-level-parent/nested/prefix/input.scss Use --trace for backtrace. <===> error-dart-sass Error: "&" may only used at the beginning of a compound selector. , 2 | pre&{ | ^ ' input.scss 2:6 root stylesheet sass-spec-libsass-3.6.3/spec/libsass/base-level-parent/root/000077500000000000000000000000001355712145100237515ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/libsass/base-level-parent/root/at-root-alone-itpl.hrx000066400000000000000000000004761355712145100301320ustar00rootroot00000000000000<===> input.scss @at-root { #{&} { foo { bar: baz; } } } <===> error Error: Invalid CSS after "": expected selector, was "" on line 2 of input.scss Use --trace for backtrace. <===> error-dart-sass Error: expected selector. , 2 | { | ^ ' input.scss 2:3 root stylesheet sass-spec-libsass-3.6.3/spec/libsass/base-level-parent/root/at-root-alone.hrx000066400000000000000000000010141355712145100271510ustar00rootroot00000000000000<===> input.scss @at-root { & { foo { bar: baz; } } } <===> error Error: Base-level rules cannot contain the parent-selector-referencing character '&'. on line 2 of input.scss Use --trace for backtrace. <===> error-libsass Error: Top-level selectors may not contain the parent selector "&". on line 2 of input.scss >> & { ----^ <===> error-dart-sass Error: Top-level selectors may not contain the parent selector "&". , 2 | & { | ^^ ' input.scss 2:3 root stylesheet sass-spec-libsass-3.6.3/spec/libsass/base-level-parent/root/at-root-postfix-itpl.hrx000066400000000000000000000002011355712145100305120ustar00rootroot00000000000000<===> input.scss @at-root { #{&}post { foo { bar: baz; } } } <===> output.css post foo { bar: baz; } sass-spec-libsass-3.6.3/spec/libsass/base-level-parent/root/at-root-postfix.hrx000066400000000000000000000010341355712145100275510ustar00rootroot00000000000000<===> input.scss @at-root { &post { foo { bar: baz; } } } <===> error Error: Base-level rules cannot contain the parent-selector-referencing character '&'. on line 2 of input.scss Use --trace for backtrace. <===> error-libsass Error: Top-level selectors may not contain the parent selector "&". on line 2 of input.scss >> &post { ----^ <===> error-dart-sass Error: Top-level selectors may not contain the parent selector "&". , 2 | &post { | ^^^^^^ ' input.scss 2:3 root stylesheet sass-spec-libsass-3.6.3/spec/libsass/base-level-parent/root/at-root-prefix-itpl.hrx000066400000000000000000000001771355712145100303270ustar00rootroot00000000000000<===> input.scss @at-root { pre#{&} { foo { bar: baz; } } } <===> output.css pre foo { bar: baz; } sass-spec-libsass-3.6.3/spec/libsass/base-level-parent/root/at-root-prefix.hrx000066400000000000000000000006671355712145100273650ustar00rootroot00000000000000<===> input.scss @at-root { pre& { foo { bar: baz; } } } <===> error Error: Invalid CSS after "pre": expected "{", was "&" "&" may only be used at the beginning of a compound selector. on line 2 of input.scss Use --trace for backtrace. <===> error-dart-sass Error: "&" may only used at the beginning of a compound selector. , 2 | pre&{ | ^ ' input.scss 2:6 root stylesheet sass-spec-libsass-3.6.3/spec/libsass/base-level-parent/root/basic-alone-itpl.hrx000066400000000000000000000004411355712145100276160ustar00rootroot00000000000000<===> input.scss #{&} { foo { bar: baz; } } <===> error Error: Invalid CSS after "": expected selector, was "" on line 1 of input.scss Use --trace for backtrace. <===> error-dart-sass Error: expected selector. , 1 | { | ^ ' input.scss 1:1 root stylesheet sass-spec-libsass-3.6.3/spec/libsass/base-level-parent/root/basic-alone.hrx000066400000000000000000000007451355712145100266570ustar00rootroot00000000000000<===> input.scss & { foo { bar: baz; } } <===> error Error: Base-level rules cannot contain the parent-selector-referencing character '&'. on line 1 of input.scss Use --trace for backtrace. <===> error-libsass Error: Top-level selectors may not contain the parent selector "&". on line 1 of input.scss >> & { <===> error-dart-sass Error: Top-level selectors may not contain the parent selector "&". , 1 | & { | ^^ ' input.scss 1:1 root stylesheet sass-spec-libsass-3.6.3/spec/libsass/base-level-parent/root/basic-postfix-itpl.hrx000066400000000000000000000001501355712145100302110ustar00rootroot00000000000000<===> input.scss #{&}post { foo { bar: baz; } } <===> output.css post foo { bar: baz; } sass-spec-libsass-3.6.3/spec/libsass/base-level-parent/root/basic-postfix.hrx000066400000000000000000000007641355712145100272560ustar00rootroot00000000000000<===> input.scss &post { foo { bar: baz; } } <===> error Error: Base-level rules cannot contain the parent-selector-referencing character '&'. on line 1 of input.scss Use --trace for backtrace. <===> error-libsass Error: Top-level selectors may not contain the parent selector "&". on line 1 of input.scss >> &post { <===> error-dart-sass Error: Top-level selectors may not contain the parent selector "&". , 1 | &post { | ^^^^^^ ' input.scss 1:1 root stylesheet sass-spec-libsass-3.6.3/spec/libsass/base-level-parent/root/basic-prefix-itpl.hrx000066400000000000000000000001461355712145100300170ustar00rootroot00000000000000<===> input.scss pre#{&} { foo { bar: baz; } } <===> output.css pre foo { bar: baz; } sass-spec-libsass-3.6.3/spec/libsass/base-level-parent/root/basic-prefix.hrx000066400000000000000000000006321355712145100270510ustar00rootroot00000000000000<===> input.scss pre& { foo { bar: baz; } } <===> error Error: Invalid CSS after "pre": expected "{", was "&" "&" may only be used at the beginning of a compound selector. on line 1 of input.scss Use --trace for backtrace. <===> error-dart-sass Error: "&" may only used at the beginning of a compound selector. , 1 | pre&{ | ^ ' input.scss 1:4 root stylesheet sass-spec-libsass-3.6.3/spec/libsass/basic/000077500000000000000000000000001355712145100205415ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/libsass/basic/44_not_number_expression.hrx000066400000000000000000000003551355712145100262250ustar00rootroot00000000000000<===> input.scss @if 2 { div { background: green; } } @if not 2 { div { background: red; } } @if not not 2 { div { background: blue; } } <===> output.css div { background: green; } div { background: blue; } sass-spec-libsass-3.6.3/spec/libsass/bool.hrx000066400000000000000000000005771355712145100211470ustar00rootroot00000000000000<===> input.scss div { a: (false and "hey"); b: ("hey" and "ho"); b: ("hey" or "ho"); a: false and "hey"; b: "hey" and "ho"; b: unquote("hey") or "ho"; } <===> output.css div { a: false; b: "ho"; b: "hey"; a: false and "hey"; b: "hey" and "ho"; b: hey; } <===> output-dart-sass.css div { a: false; b: "ho"; b: "hey"; a: false; b: "ho"; b: hey; } sass-spec-libsass-3.6.3/spec/libsass/bourbon.hrx000066400000000000000000001757321355712145100216700ustar00rootroot00000000000000<===> input.scss @import "lib/_bourbon.scss"; box:hover { @include animation-name(scale, slide); @include animation-duration(2s); @include animation-timing-function(ease); @include animation-iteration-count(infinite); // Animation shorthand works the same as the CSS3 animation shorthand @include animation(scale 1s ease-in, slide 2s ease); } div { @include appearance(none); /* boo boo boo */ // Multiple image assets @include background-image(url("/images/a.png"), url("images/b.png")); // Image asset with a linear-gradient @include background-image(url("/images/a.png"), linear-gradient(white 0, yellow 50%, transparent 50%)); // Multiple linear-gradients - Demo @include background-image(linear-gradient(hsla(0, 100%, 100%, 0.25) 0%, hsla(0, 100%, 100%, 0.08) 50%, transparent 50%), linear-gradient(#4e7ba3, darken(#4e7ba4, 10%))); // NOT SUPPORTED - Multiple image assets with shorthand notation @include background-image(url("/images/a.png") center no-repeat, url("images/b.png") left repeat); } <===> lib/_bourbon-deprecated-upcoming.scss //************************************************************************// // These mixins/functions are deprecated // They will be removed in the next MAJOR version release //************************************************************************// @mixin box-shadow ($shadows...) { @include prefixer(box-shadow, $shadows, spec); @warn "box-shadow is deprecated and will be removed in the next major version release"; } @mixin background-size ($lengths...) { @include prefixer(background-size, $lengths, spec); @warn "background-size is deprecated and will be removed in the next major version release"; } <===> lib/_bourbon.scss // Custom Helpers @import "helpers/deprecated-webkit-gradient"; @import "helpers/gradient-positions-parser"; @import "helpers/linear-positions-parser"; @import "helpers/radial-arg-parser"; @import "helpers/radial-positions-parser"; @import "helpers/render-gradients"; @import "helpers/shape-size-stripper"; // Custom Functions @import "functions/compact"; @import "functions/flex-grid"; @import "functions/grid-width"; @import "functions/linear-gradient"; @import "functions/modular-scale"; @import "functions/px-to-em"; @import "functions/radial-gradient"; @import "functions/tint-shade"; @import "functions/transition-property-name"; // CSS3 Mixins @import "css3/animation"; @import "css3/appearance"; @import "css3/backface-visibility"; @import "css3/background"; @import "css3/background-image"; @import "css3/border-image"; @import "css3/border-radius"; @import "css3/box-sizing"; @import "css3/columns"; @import "css3/flex-box"; @import "css3/font-face"; @import "css3/hidpi-media-query"; @import "css3/image-rendering"; @import "css3/inline-block"; @import "css3/keyframes"; @import "css3/linear-gradient"; @import "css3/perspective"; @import "css3/radial-gradient"; @import "css3/transform"; @import "css3/transition"; @import "css3/user-select"; @import "css3/placeholder"; // Addons & other mixins @import "addons/button"; @import "addons/clearfix"; @import "addons/font-family"; @import "addons/hide-text"; @import "addons/html5-input-types"; @import "addons/position"; @import "addons/prefixer"; @import "addons/retina-image"; @import "addons/size"; @import "addons/timing-functions"; @import "addons/triangle"; // Soon to be deprecated Mixins @import "bourbon-deprecated-upcoming"; <===> lib/addons/_button.scss @mixin button ($style: simple, $base-color: #4294f0) { @if type-of($style) == color { $base-color: $style; $style: simple; } // Grayscale button @if $base-color == grayscale($base-color) { @if $style == simple { @include simple($base-color, $grayscale: true); } @else if $style == shiny { @include shiny($base-color, $grayscale: true); } @else if $style == pill { @include pill($base-color, $grayscale: true); } } // Colored button @else { @if $style == simple { @include simple($base-color); } @else if $style == shiny { @include shiny($base-color); } @else if $style == pill { @include pill($base-color); } } &:disabled { opacity: 0.5; cursor: not-allowed; } } // Simple Button //************************************************************************// @mixin simple($base-color, $grayscale: false) { $color: hsl(0, 0, 100%); $border: adjust-color($base-color, $saturation: 9%, $lightness: -14%); $inset-shadow: adjust-color($base-color, $saturation: -8%, $lightness: 15%); $stop-gradient: adjust-color($base-color, $saturation: 9%, $lightness: -11%); $text-shadow: adjust-color($base-color, $saturation: 15%, $lightness: -18%); @if lightness($base-color) > 70% { $color: hsl(0, 0, 20%); $text-shadow: adjust-color($base-color, $saturation: 10%, $lightness: 4%); } @if $grayscale == true { $border: grayscale($border); $inset-shadow: grayscale($inset-shadow); $stop-gradient: grayscale($stop-gradient); $text-shadow: grayscale($text-shadow); } border: 1px solid $border; border-radius: 3px; box-shadow: inset 0 1px 0 0 $inset-shadow; color: $color; display: inline-block; font-size: 11px; font-weight: bold; @include linear-gradient ($base-color, $stop-gradient); padding: 7px 18px; text-decoration: none; text-shadow: 0 1px 0 $text-shadow; background-clip: padding-box; &:hover:not(:disabled) { $base-color-hover: adjust-color($base-color, $saturation: -4%, $lightness: -5%); $inset-shadow-hover: adjust-color($base-color, $saturation: -7%, $lightness: 5%); $stop-gradient-hover: adjust-color($base-color, $saturation: 8%, $lightness: -14%); @if $grayscale == true { $base-color-hover: grayscale($base-color-hover); $inset-shadow-hover: grayscale($inset-shadow-hover); $stop-gradient-hover: grayscale($stop-gradient-hover); } box-shadow: inset 0 1px 0 0 $inset-shadow-hover; cursor: pointer; @include linear-gradient ($base-color-hover, $stop-gradient-hover); } &:active:not(:disabled) { $border-active: adjust-color($base-color, $saturation: 9%, $lightness: -14%); $inset-shadow-active: adjust-color($base-color, $saturation: 7%, $lightness: -17%); @if $grayscale == true { $border-active: grayscale($border-active); $inset-shadow-active: grayscale($inset-shadow-active); } border: 1px solid $border-active; box-shadow: inset 0 0 8px 4px $inset-shadow-active, inset 0 0 8px 4px $inset-shadow-active, 0 1px 1px 0 #eee; } } // Shiny Button //************************************************************************// @mixin shiny($base-color, $grayscale: false) { $color: hsl(0, 0, 100%); $border: adjust-color($base-color, $red: -117, $green: -111, $blue: -81); $border-bottom: adjust-color($base-color, $red: -126, $green: -127, $blue: -122); $fourth-stop: adjust-color($base-color, $red: -79, $green: -70, $blue: -46); $inset-shadow: adjust-color($base-color, $red: 37, $green: 29, $blue: 12); $second-stop: adjust-color($base-color, $red: -56, $green: -50, $blue: -33); $text-shadow: adjust-color($base-color, $red: -140, $green: -141, $blue: -114); $third-stop: adjust-color($base-color, $red: -86, $green: -75, $blue: -48); @if lightness($base-color) > 70% { $color: hsl(0, 0, 20%); $text-shadow: adjust-color($base-color, $saturation: 10%, $lightness: 4%); } @if $grayscale == true { $border: grayscale($border); $border-bottom: grayscale($border-bottom); $fourth-stop: grayscale($fourth-stop); $inset-shadow: grayscale($inset-shadow); $second-stop: grayscale($second-stop); $text-shadow: grayscale($text-shadow); $third-stop: grayscale($third-stop); } border: 1px solid $border; border-bottom: 1px solid $border-bottom; border-radius: 5px; box-shadow: inset 0 1px 0 0 $inset-shadow; color: $color; display: inline-block; font-size: 14px; font-weight: bold; @include linear-gradient(top, $base-color 0%, $second-stop 50%, $third-stop 50%, $fourth-stop 100%); padding: 8px 20px; text-align: center; text-decoration: none; text-shadow: 0 -1px 1px $text-shadow; &:hover:not(:disabled) { $first-stop-hover: adjust-color($base-color, $red: -13, $green: -15, $blue: -18); $second-stop-hover: adjust-color($base-color, $red: -66, $green: -62, $blue: -51); $third-stop-hover: adjust-color($base-color, $red: -93, $green: -85, $blue: -66); $fourth-stop-hover: adjust-color($base-color, $red: -86, $green: -80, $blue: -63); @if $grayscale == true { $first-stop-hover: grayscale($first-stop-hover); $second-stop-hover: grayscale($second-stop-hover); $third-stop-hover: grayscale($third-stop-hover); $fourth-stop-hover: grayscale($fourth-stop-hover); } cursor: pointer; @include linear-gradient(top, $first-stop-hover 0%, $second-stop-hover 50%, $third-stop-hover 50%, $fourth-stop-hover 100%); } &:active:not(:disabled) { $inset-shadow-active: adjust-color($base-color, $red: -111, $green: -116, $blue: -122); @if $grayscale == true { $inset-shadow-active: grayscale($inset-shadow-active); } box-shadow: inset 0 0 20px 0 $inset-shadow-active, 0 1px 0 #fff; } } // Pill Button //************************************************************************// @mixin pill($base-color, $grayscale: false) { $color: hsl(0, 0, 100%); $border-bottom: adjust-color($base-color, $hue: 8, $saturation: -11%, $lightness: -26%); $border-sides: adjust-color($base-color, $hue: 4, $saturation: -21%, $lightness: -21%); $border-top: adjust-color($base-color, $hue: -1, $saturation: -30%, $lightness: -15%); $inset-shadow: adjust-color($base-color, $hue: -1, $saturation: -1%, $lightness: 7%); $stop-gradient: adjust-color($base-color, $hue: 8, $saturation: 14%, $lightness: -10%); $text-shadow: adjust-color($base-color, $hue: 5, $saturation: -19%, $lightness: -15%); @if lightness($base-color) > 70% { $color: hsl(0, 0, 20%); $text-shadow: adjust-color($base-color, $saturation: 10%, $lightness: 4%); } @if $grayscale == true { $border-bottom: grayscale($border-bottom); $border-sides: grayscale($border-sides); $border-top: grayscale($border-top); $inset-shadow: grayscale($inset-shadow); $stop-gradient: grayscale($stop-gradient); $text-shadow: grayscale($text-shadow); } border: 1px solid $border-top; border-color: $border-top $border-sides $border-bottom; border-radius: 16px; box-shadow: inset 0 1px 0 0 $inset-shadow, 0 1px 2px 0 #b3b3b3; color: $color; display: inline-block; font-size: 11px; font-weight: normal; line-height: 1; @include linear-gradient ($base-color, $stop-gradient); padding: 5px 16px; text-align: center; text-decoration: none; text-shadow: 0 -1px 1px $text-shadow; background-clip: padding-box; &:hover:not(:disabled) { $base-color-hover: adjust-color($base-color, $lightness: -4.5%); $border-bottom: adjust-color($base-color, $hue: 8, $saturation: 13.5%, $lightness: -32%); $border-sides: adjust-color($base-color, $hue: 4, $saturation: -2%, $lightness: -27%); $border-top: adjust-color($base-color, $hue: -1, $saturation: -17%, $lightness: -21%); $inset-shadow-hover: adjust-color($base-color, $saturation: -1%, $lightness: 3%); $stop-gradient-hover: adjust-color($base-color, $hue: 8, $saturation: -4%, $lightness: -15.5%); $text-shadow-hover: adjust-color($base-color, $hue: 5, $saturation: -5%, $lightness: -22%); @if $grayscale == true { $base-color-hover: grayscale($base-color-hover); $border-bottom: grayscale($border-bottom); $border-sides: grayscale($border-sides); $border-top: grayscale($border-top); $inset-shadow-hover: grayscale($inset-shadow-hover); $stop-gradient-hover: grayscale($stop-gradient-hover); $text-shadow-hover: grayscale($text-shadow-hover); } border: 1px solid $border-top; border-color: $border-top $border-sides $border-bottom; box-shadow: inset 0 1px 0 0 $inset-shadow-hover; cursor: pointer; @include linear-gradient ($base-color-hover, $stop-gradient-hover); text-shadow: 0 -1px 1px $text-shadow-hover; background-clip: padding-box; } &:active:not(:disabled) { $active-color: adjust-color($base-color, $hue: 4, $saturation: -12%, $lightness: -10%); $border-active: adjust-color($base-color, $hue: 6, $saturation: -2.5%, $lightness: -30%); $border-bottom-active: adjust-color($base-color, $hue: 11, $saturation: 6%, $lightness: -31%); $inset-shadow-active: adjust-color($base-color, $hue: 9, $saturation: 2%, $lightness: -21.5%); $text-shadow-active: adjust-color($base-color, $hue: 5, $saturation: -12%, $lightness: -21.5%); @if $grayscale == true { $active-color: grayscale($active-color); $border-active: grayscale($border-active); $border-bottom-active: grayscale($border-bottom-active); $inset-shadow-active: grayscale($inset-shadow-active); $text-shadow-active: grayscale($text-shadow-active); } background: $active-color; border: 1px solid $border-active; border-bottom: 1px solid $border-bottom-active; box-shadow: inset 0 0 6px 3px $inset-shadow-active, 0 1px 0 0 #fff; text-shadow: 0 -1px 1px $text-shadow-active; } } <===> lib/addons/_clearfix.scss // Micro clearfix provides an easy way to contain floats without adding additional markup // // Example usage: // // // Contain all floats within .wrapper // .wrapper { // @include clearfix; // .content, // .sidebar { // float : left; // } // } @mixin clearfix { *zoom: 1; &:before, &:after { content: " "; display: table; } &:after { clear: both; } } // Acknowledgements // Micro clearfix: [Nicolas Gallagher](http://nicolasgallagher.com/micro-clearfix-hack/) <===> lib/addons/_font-family.scss $georgia: Georgia, Cambria, "Times New Roman", Times, serif; $helvetica: "Helvetica Neue", Helvetica, Arial, sans-serif; $lucida-grande: "Lucida Grande", Tahoma, Verdana, Arial, sans-serif; $monospace: "Bitstream Vera Sans Mono", Consolas, Courier, monospace; $verdana: Verdana, Geneva, sans-serif; <===> lib/addons/_hide-text.scss @mixin hide-text { color: transparent; font: 0/0 a; text-shadow: none; } <===> lib/addons/_html5-input-types.scss //************************************************************************// // Generate a variable ($all-text-inputs) with a list of all html5 // input types that have a text-based input, excluding textarea. // http://diveintohtml5.org/forms.html //************************************************************************// $inputs-list: 'input[type="email"]', 'input[type="number"]', 'input[type="password"]', 'input[type="search"]', 'input[type="tel"]', 'input[type="text"]', 'input[type="url"]', // Webkit & Gecko may change the display of these in the future 'input[type="color"]', 'input[type="date"]', 'input[type="datetime"]', 'input[type="datetime-local"]', 'input[type="month"]', 'input[type="time"]', 'input[type="week"]'; $unquoted-inputs-list: (); @each $input-type in $inputs-list { $unquoted-inputs-list: append($unquoted-inputs-list, unquote($input-type), comma); } $all-text-inputs: $unquoted-inputs-list; // Hover Pseudo-class //************************************************************************// $all-text-inputs-hover: (); @each $input-type in $unquoted-inputs-list { $input-type-hover: $input-type + ":hover"; $all-text-inputs-hover: append($all-text-inputs-hover, $input-type-hover, comma); } // Focus Pseudo-class //************************************************************************// $all-text-inputs-focus: (); @each $input-type in $unquoted-inputs-list { $input-type-focus: $input-type + ":focus"; $all-text-inputs-focus: append($all-text-inputs-focus, $input-type-focus, comma); } // You must use interpolation on the variable: // #{$all-text-inputs} // #{$all-text-inputs-hover} // #{$all-text-inputs-focus} // Example //************************************************************************// // #{$all-text-inputs}, textarea { // border: 1px solid red; // } <===> lib/addons/_position.scss @mixin position ($position: relative, $coordinates: 0 0 0 0) { @if type-of($position) == list { $coordinates: $position; $position: relative; } $top: nth($coordinates, 1); $right: nth($coordinates, 2); $bottom: nth($coordinates, 3); $left: nth($coordinates, 4); position: $position; @if $top == auto { top: $top; } @else if not(unitless($top)) { top: $top; } @if $right == auto { right: $right; } @else if not(unitless($right)) { right: $right; } @if $bottom == auto { bottom: $bottom; } @else if not(unitless($bottom)) { bottom: $bottom; } @if $left == auto { left: $left; } @else if not(unitless($left)) { left: $left; } } <===> lib/addons/_prefixer.scss //************************************************************************// // Example: @include prefixer(border-radius, $radii, webkit ms spec); //************************************************************************// $prefix-for-webkit: true !default; $prefix-for-mozilla: true !default; $prefix-for-microsoft: true !default; $prefix-for-opera: true !default; $prefix-for-spec: true !default; // required for keyframe mixin @mixin prefixer ($property, $value, $prefixes) { @each $prefix in $prefixes { @if $prefix == webkit { @if $prefix-for-webkit { -webkit-#{$property}: $value; } } @else if $prefix == moz { @if $prefix-for-mozilla { -moz-#{$property}: $value; } } @else if $prefix == ms { @if $prefix-for-microsoft { -ms-#{$property}: $value; } } @else if $prefix == o { @if $prefix-for-opera { -o-#{$property}: $value; } } @else if $prefix == spec { @if $prefix-for-spec { #{$property}: $value; } } @else { @warn "Unrecognized prefix: #{$prefix}"; } } } @mixin disable-prefix-for-all() { $prefix-for-webkit: false; $prefix-for-mozilla: false; $prefix-for-microsoft: false; $prefix-for-opera: false; $prefix-for-spec: false; } <===> lib/addons/_retina-image.scss @mixin retina-image($filename, $background-size, $extension: png, $retina-filename: null, $asset-pipeline: false) { @if $asset-pipeline { background-image: image_url("#{$filename}.#{$extension}"); } @else { background-image: url("#{$filename}.#{$extension}"); } @include hidpi { @if $asset-pipeline { @if $retina-filename { background-image: image_url("#{$retina-filename}.#{$extension}"); } @else { background-image: image_url("#{$filename}@2x.#{$extension}"); } } @else { @if $retina-filename { background-image: url("#{$retina-filename}.#{$extension}"); } @else { background-image: url("#{$filename}@2x.#{$extension}"); } } background-size: $background-size; } } <===> lib/addons/_size.scss @mixin size($size) { @if length($size) == 1 { @if $size == auto { width: $size; height: $size; } @else if unitless($size) { width: $size + px; height: $size + px; } @else if not(unitless($size)) { width: $size; height: $size; } } // Width x Height @if length($size) == 2 { $width: nth($size, 1); $height: nth($size, 2); @if $width == auto { width: $width; } @else if not(unitless($width)) { width: $width; } @else if unitless($width) { width: $width + px; } @if $height == auto { height: $height; } @else if not(unitless($height)) { height: $height; } @else if unitless($height) { height: $height + px; } } } <===> lib/addons/_timing-functions.scss // CSS cubic-bezier timing functions. Timing functions courtesy of jquery.easie (github.com/jaukia/easie) // Timing functions are the same as demo'ed here: http://jqueryui.com/demos/effect/easing.html // EASE IN $ease-in-quad: cubic-bezier(0.550, 0.085, 0.680, 0.530); $ease-in-cubic: cubic-bezier(0.550, 0.055, 0.675, 0.190); $ease-in-quart: cubic-bezier(0.895, 0.030, 0.685, 0.220); $ease-in-quint: cubic-bezier(0.755, 0.050, 0.855, 0.060); $ease-in-sine: cubic-bezier(0.470, 0.000, 0.745, 0.715); $ease-in-expo: cubic-bezier(0.950, 0.050, 0.795, 0.035); $ease-in-circ: cubic-bezier(0.600, 0.040, 0.980, 0.335); $ease-in-back: cubic-bezier(0.600, -0.280, 0.735, 0.045); // EASE OUT $ease-out-quad: cubic-bezier(0.250, 0.460, 0.450, 0.940); $ease-out-cubic: cubic-bezier(0.215, 0.610, 0.355, 1.000); $ease-out-quart: cubic-bezier(0.165, 0.840, 0.440, 1.000); $ease-out-quint: cubic-bezier(0.230, 1.000, 0.320, 1.000); $ease-out-sine: cubic-bezier(0.390, 0.575, 0.565, 1.000); $ease-out-expo: cubic-bezier(0.190, 1.000, 0.220, 1.000); $ease-out-circ: cubic-bezier(0.075, 0.820, 0.165, 1.000); $ease-out-back: cubic-bezier(0.175, 0.885, 0.320, 1.275); // EASE IN OUT $ease-in-out-quad: cubic-bezier(0.455, 0.030, 0.515, 0.955); $ease-in-out-cubic: cubic-bezier(0.645, 0.045, 0.355, 1.000); $ease-in-out-quart: cubic-bezier(0.770, 0.000, 0.175, 1.000); $ease-in-out-quint: cubic-bezier(0.860, 0.000, 0.070, 1.000); $ease-in-out-sine: cubic-bezier(0.445, 0.050, 0.550, 0.950); $ease-in-out-expo: cubic-bezier(1.000, 0.000, 0.000, 1.000); $ease-in-out-circ: cubic-bezier(0.785, 0.135, 0.150, 0.860); $ease-in-out-back: cubic-bezier(0.680, -0.550, 0.265, 1.550); <===> lib/addons/_triangle.scss @mixin triangle ($size, $color, $direction) { height: 0; width: 0; @if ($direction == up) or ($direction == down) or ($direction == right) or ($direction == left) { border-color: transparent; border-style: solid; border-width: $size / 2; @if $direction == up { border-bottom-color: $color; } @else if $direction == right { border-left-color: $color; } @else if $direction == down { border-top-color: $color; } @else if $direction == left { border-right-color: $color; } } @else if ($direction == up-right) or ($direction == up-left) { border-top: $size solid $color; @if $direction == up-right { border-left: $size solid transparent; } @else if $direction == up-left { border-right: $size solid transparent; } } @else if ($direction == down-right) or ($direction == down-left) { border-bottom: $size solid $color; @if $direction == down-right { border-left: $size solid transparent; } @else if $direction == down-left { border-right: $size solid transparent; } } } <===> lib/css3/_animation.scss // http://www.w3.org/TR/css3-animations/#the-animation-name-property- // Each of these mixins support comma separated lists of values, which allows different transitions for individual properties to be described in a single style rule. Each value in the list corresponds to the value at that same position in the other properties. // Official animation shorthand property. @mixin animation ($animations...) { @include prefixer(animation, $animations, webkit moz spec); } // Individual Animation Properties @mixin animation-name ($names...) { @include prefixer(animation-name, $names, webkit moz spec); } @mixin animation-duration ($times...) { @include prefixer(animation-duration, $times, webkit moz spec); } @mixin animation-timing-function ($motions...) { // ease | linear | ease-in | ease-out | ease-in-out @include prefixer(animation-timing-function, $motions, webkit moz spec); } @mixin animation-iteration-count ($values...) { // infinite | @include prefixer(animation-iteration-count, $values, webkit moz spec); } @mixin animation-direction ($directions...) { // normal | alternate @include prefixer(animation-direction, $directions, webkit moz spec); } @mixin animation-play-state ($states...) { // running | paused @include prefixer(animation-play-state, $states, webkit moz spec); } @mixin animation-delay ($times...) { @include prefixer(animation-delay, $times, webkit moz spec); } @mixin animation-fill-mode ($modes...) { // none | forwards | backwards | both @include prefixer(animation-fill-mode, $modes, webkit moz spec); } <===> lib/css3/_appearance.scss @mixin appearance ($value) { @include prefixer(appearance, $value, webkit moz ms o spec); } <===> lib/css3/_backface-visibility.scss //************************************************************************// // Backface-visibility mixin //************************************************************************// @mixin backface-visibility($visibility) { @include prefixer(backface-visibility, $visibility, webkit spec); } <===> lib/css3/_background-image.scss //************************************************************************// // Background-image property for adding multiple background images with // gradients, or for stringing multiple gradients together. //************************************************************************// @mixin background-image($images...) { background-image: _add-prefix($images, webkit); background-image: _add-prefix($images); } @function _add-prefix($images, $vendor: false) { $images-prefixed: (); $gradient-positions: false; @for $i from 1 through length($images) { $type: type-of(nth($images, $i)); // Get type of variable - List or String // If variable is a list - Gradient @if $type == list { $gradient-type: nth(nth($images, $i), 1); // linear or radial $gradient-pos: null; $gradient-args: null; @if ($gradient-type == linear) or ($gradient-type == radial) { $gradient-pos: nth(nth($images, $i), 2); // Get gradient position $gradient-args: nth(nth($images, $i), 3); // Get actual gradient (red, blue) } @else { $gradient-args: nth(nth($images, $i), 2); // Get actual gradient (red, blue) } $gradient-positions: _gradient-positions-parser($gradient-type, $gradient-pos); $gradient: _render-gradients($gradient-positions, $gradient-args, $gradient-type, $vendor); $images-prefixed: append($images-prefixed, $gradient, comma); } // If variable is a string - Image @else if $type == string { $images-prefixed: join($images-prefixed, nth($images, $i), comma); } } @return $images-prefixed; } //Examples: //@include background-image(linear-gradient(top, orange, red)); //@include background-image(radial-gradient(50% 50%, cover circle, orange, red)); //@include background-image(url("/images/a.png"), linear-gradient(orange, red)); //@include background-image(url("image.png"), linear-gradient(orange, red), url("image.png")); //@include background-image(linear-gradient(hsla(0, 100%, 100%, 0.25) 0%, hsla(0, 100%, 100%, 0.08) 50%, transparent 50%), linear-gradient(orange, red)); <===> lib/css3/_background.scss //************************************************************************// // Background property for adding multiple backgrounds using shorthand // notation. //************************************************************************// @mixin background( $background-1 , $background-2: false, $background-3: false, $background-4: false, $background-5: false, $background-6: false, $background-7: false, $background-8: false, $background-9: false, $background-10: false, $fallback: false ) { $backgrounds: compact($background-1, $background-2, $background-3, $background-4, $background-5, $background-6, $background-7, $background-8, $background-9, $background-10); $fallback-color: false; @if (type-of($fallback) == color) or ($fallback == "transparent") { $fallback-color: $fallback; } @else { $fallback-color: _extract-background-color($backgrounds); } @if $fallback-color { background-color: $fallback-color; } background: _background-add-prefix($backgrounds, webkit); background: _background-add-prefix($backgrounds); } @function _extract-background-color($backgrounds) { $final-bg-layer: nth($backgrounds, length($backgrounds)); @if type-of($final-bg-layer) == list { @for $i from 1 through length($final-bg-layer) { $value: nth($final-bg-layer, $i); @if type-of($value) == color { @return $value; } } } @return false; } @function _background-add-prefix($backgrounds, $vendor: false) { $backgrounds-prefixed: (); @for $i from 1 through length($backgrounds) { $shorthand: nth($backgrounds, $i); // Get member for current index $type: type-of($shorthand); // Get type of variable - List (gradient) or String (image) // If shorthand is a list (gradient) @if $type == list { $first-member: nth($shorthand, 1); // Get first member of shorthand // Linear Gradient @if index(linear radial, nth($first-member, 1)) { $gradient-type: nth($first-member, 1); // linear || radial $gradient-args: false; $gradient-positions: false; $shorthand-start: false; @if type-of($first-member) == list { // Linear gradient plus additional shorthand values - lg(red,orange)repeat,... $gradient-positions: nth($first-member, 2); $gradient-args: nth($first-member, 3); $shorthand-start: 2; } @else { // Linear gradient only - lg(red,orange),... $gradient-positions: nth($shorthand, 2); $gradient-args: nth($shorthand, 3); // Get gradient (red, blue) } $gradient-positions: _gradient-positions-parser($gradient-type, $gradient-positions); $gradient: _render-gradients($gradient-positions, $gradient-args, $gradient-type, $vendor); // Append any additional shorthand args to gradient @if $shorthand-start { @for $j from $shorthand-start through length($shorthand) { $gradient: join($gradient, nth($shorthand, $j), space); } } $backgrounds-prefixed: append($backgrounds-prefixed, $gradient, comma); } // Image with additional properties @else { $backgrounds-prefixed: append($backgrounds-prefixed, $shorthand, comma); } } // If shorthand is a simple string (color or image) @else if $type == string { $backgrounds-prefixed: join($backgrounds-prefixed, $shorthand, comma); } } @return $backgrounds-prefixed; } //Examples: //@include background(linear-gradient(top, orange, red)); //@include background(radial-gradient(circle at 40% 40%, orange, red)); //@include background(url("/images/a.png") no-repeat, linear-gradient(orange, red)); //@include background(url("image.png") center center, linear-gradient(orange, red), url("image.png")); <===> lib/css3/_border-image.scss @mixin border-image($images) { -webkit-border-image: _border-add-prefix($images, webkit); -moz-border-image: _border-add-prefix($images, moz); -o-border-image: _border-add-prefix($images, o); border-image: _border-add-prefix($images); } @function _border-add-prefix($images, $vendor: false) { $border-image: null; $images-type: type-of(nth($images, 1)); $first-var: nth(nth($images, 1), 1); // Get type of Gradient (Linear || radial) // If input is a gradient @if $images-type == string { @if ($first-var == "linear") or ($first-var == "radial") { $gradient-type: nth($images, 1); // Get type of gradient (linear || radial) $gradient-pos: nth($images, 2); // Get gradient position $gradient-args: nth($images, 3); // Get actual gradient (red, blue) $gradient-positions: _gradient-positions-parser($gradient-type, $gradient-pos); $border-image: _render-gradients($gradient-positions, $gradient-args, $gradient-type, $vendor); } // If input is a URL @else { $border-image: $images; } } // If input is gradient or url + additional args @else if $images-type == list { $type: type-of(nth($images, 1)); // Get type of variable - List or String // If variable is a list - Gradient @if $type == list { $gradient: nth($images, 1); $gradient-type: nth($gradient, 1); // Get type of gradient (linear || radial) $gradient-pos: nth($gradient, 2); // Get gradient position $gradient-args: nth($gradient, 3); // Get actual gradient (red, blue) $gradient-positions: _gradient-positions-parser($gradient-type, $gradient-pos); $border-image: _render-gradients($gradient-positions, $gradient-args, $gradient-type, $vendor); @for $i from 2 through length($images) { $border-image: append($border-image, nth($images, $i)); } } } @return $border-image; } //Examples: // @include border-image(url("image.png")); // @include border-image(url("image.png") 20 stretch); // @include border-image(linear-gradient(45deg, orange, yellow)); // @include border-image(linear-gradient(45deg, orange, yellow) stretch); // @include border-image(linear-gradient(45deg, orange, yellow) 20 30 40 50 stretch round); // @include border-image(radial-gradient(top, cover, orange, yellow, orange)); <===> lib/css3/_border-radius.scss //************************************************************************// // Shorthand Border-radius mixins //************************************************************************// @mixin border-top-radius($radii) { @include prefixer(border-top-left-radius, $radii, spec); @include prefixer(border-top-right-radius, $radii, spec); } @mixin border-bottom-radius($radii) { @include prefixer(border-bottom-left-radius, $radii, spec); @include prefixer(border-bottom-right-radius, $radii, spec); } @mixin border-left-radius($radii) { @include prefixer(border-top-left-radius, $radii, spec); @include prefixer(border-bottom-left-radius, $radii, spec); } @mixin border-right-radius($radii) { @include prefixer(border-top-right-radius, $radii, spec); @include prefixer(border-bottom-right-radius, $radii, spec); } <===> lib/css3/_box-sizing.scss @mixin box-sizing ($box) { // content-box | border-box | inherit @include prefixer(box-sizing, $box, webkit moz spec); } <===> lib/css3/_columns.scss @mixin columns($arg: auto) { // || @include prefixer(columns, $arg, webkit moz spec); } @mixin column-count($int: auto) { // auto || integer @include prefixer(column-count, $int, webkit moz spec); } @mixin column-gap($length: normal) { // normal || length @include prefixer(column-gap, $length, webkit moz spec); } @mixin column-fill($arg: auto) { // auto || length @include prefixer(columns-fill, $arg, webkit moz spec); } @mixin column-rule($arg) { // || || @include prefixer(column-rule, $arg, webkit moz spec); } @mixin column-rule-color($color) { @include prefixer(column-rule-color, $color, webkit moz spec); } @mixin column-rule-style($style: none) { // none | hidden | dashed | dotted | double | groove | inset | inset | outset | ridge | solid @include prefixer(column-rule-style, $style, webkit moz spec); } @mixin column-rule-width ($width: none) { @include prefixer(column-rule-width, $width, webkit moz spec); } @mixin column-span($arg: none) { // none || all @include prefixer(column-span, $arg, webkit moz spec); } @mixin column-width($length: auto) { // auto || length @include prefixer(column-width, $length, webkit moz spec); } <===> lib/css3/_flex-box.scss // CSS3 Flexible Box Model and property defaults // Custom shorthand notation for flexbox @mixin box($orient: inline-axis, $pack: start, $align: stretch) { @include display-box; @include box-orient($orient); @include box-pack($pack); @include box-align($align); } @mixin display-box { display: -webkit-box; display: -moz-box; display: box; } @mixin box-orient($orient: inline-axis) { // horizontal|vertical|inline-axis|block-axis|inherit @include prefixer(box-orient, $orient, webkit moz spec); } @mixin box-pack($pack: start) { // start|end|center|justify @include prefixer(box-pack, $pack, webkit moz spec); } @mixin box-align($align: stretch) { // start|end|center|baseline|stretch @include prefixer(box-align, $align, webkit moz spec); } @mixin box-direction($direction: normal) { // normal|reverse|inherit @include prefixer(box-direction, $direction, webkit moz spec); } @mixin box-lines($lines: single) { // single|multiple @include prefixer(box-lines, $lines, webkit moz spec); } @mixin box-ordinal-group($int: 1) { @include prefixer(box-ordinal-group, $int, webkit moz spec); } @mixin box-flex($value: 0.0) { @include prefixer(box-flex, $value, webkit moz spec); } @mixin box-flex-group($int: 1) { @include prefixer(box-flex-group, $int, webkit moz spec); } <===> lib/css3/_font-face.scss // Order of the includes matters, and it is: normal, bold, italic, bold+italic. @mixin font-face($font-family, $file-path, $weight: normal, $style: normal, $asset-pipeline: false ) { @font-face { font-family: $font-family; font-weight: $weight; font-style: $style; @if $asset-pipeline == true { src: font-url('#{$file-path}.eot'); src: font-url('#{$file-path}.eot?#iefix') format('embedded-opentype'), font-url('#{$file-path}.woff') format('woff'), font-url('#{$file-path}.ttf') format('truetype'), font-url('#{$file-path}.svg##{$font-family}') format('svg'); } @else { src: url('#{$file-path}.eot'); src: url('#{$file-path}.eot?#iefix') format('embedded-opentype'), url('#{$file-path}.woff') format('woff'), url('#{$file-path}.ttf') format('truetype'), url('#{$file-path}.svg##{$font-family}') format('svg'); } } } <===> lib/css3/_hidpi-media-query.scss // HiDPI mixin. Default value set to 1.3 to target Google Nexus 7 (http://bjango.com/articles/min-device-pixel-ratio/) @mixin hidpi($ratio: 1.3) { @media only screen and (-webkit-min-device-pixel-ratio: $ratio), only screen and (min--moz-device-pixel-ratio: $ratio), only screen and (-o-min-device-pixel-ratio: #{$ratio}/1), only screen and (min-resolution: #{round($ratio*96)}dpi), only screen and (min-resolution: #{$ratio}dppx) { @content; } } <===> lib/css3/_image-rendering.scss @mixin image-rendering ($mode:optimizeQuality) { @if ($mode == optimize-contrast) { image-rendering: -moz-crisp-edges; image-rendering: -o-crisp-edges; image-rendering: -webkit-optimize-contrast; image-rendering: optimize-contrast; } @else { image-rendering: $mode; } } <===> lib/css3/_inline-block.scss // Legacy support for inline-block in IE7 (maybe IE6) @mixin inline-block { display: inline-block; vertical-align: baseline; zoom: 1; *display: inline; *vertical-align: auto; } <===> lib/css3/_keyframes.scss // Adds keyframes blocks for supported prefixes, removing redundant prefixes in the block's content @mixin keyframes($name) { $original-prefix-for-webkit: $prefix-for-webkit; $original-prefix-for-mozilla: $prefix-for-mozilla; $original-prefix-for-microsoft: $prefix-for-microsoft; $original-prefix-for-opera: $prefix-for-opera; $original-prefix-for-spec: $prefix-for-spec; @if $original-prefix-for-webkit { @include disable-prefix-for-all(); $prefix-for-webkit: true; #{"@-webkit-keyframes"} #{$name} { @content; } } @if $original-prefix-for-mozilla { @include disable-prefix-for-all(); $prefix-for-mozilla: true; #{"@-moz-keyframes"} #{$name} { @content; } } @if $original-prefix-for-opera { @include disable-prefix-for-all(); $prefix-for-opera: true; #{"@-o-keyframes"} #{$name} { @content; } } @if $original-prefix-for-spec { @include disable-prefix-for-all(); $prefix-for-spec: true; #{"@keyframes"} #{$name} { @content; } } $prefix-for-webkit: $original-prefix-for-webkit; $prefix-for-mozilla: $original-prefix-for-mozilla; $prefix-for-microsoft: $original-prefix-for-microsoft; $prefix-for-opera: $original-prefix-for-opera; $prefix-for-spec: $original-prefix-for-spec; } <===> lib/css3/_linear-gradient.scss @mixin linear-gradient($pos, $G1, $G2: false, $G3: false, $G4: false, $G5: false, $G6: false, $G7: false, $G8: false, $G9: false, $G10: false, $deprecated-pos1: left top, $deprecated-pos2: left bottom, $fallback: false) { // Detect what type of value exists in $pos $pos-type: type-of(nth($pos, 1)); $pos-spec: null; $pos-degree: null; // If $pos is missing from mixin, reassign vars and add default position @if ($pos-type == color) or (nth($pos, 1) == "transparent") { $G10: $G9; $G9: $G8; $G8: $G7; $G7: $G6; $G6: $G5; $G5: $G4; $G4: $G3; $G3: $G2; $G2: $G1; $G1: $pos; $pos: null; } @if $pos { $positions: _linear-positions-parser($pos); $pos-degree: nth($positions, 1); $pos-spec: nth($positions, 2); } $full: compact($G1, $G2, $G3, $G4, $G5, $G6, $G7, $G8, $G9, $G10); // Set $G1 as the default fallback color $fallback-color: nth($G1, 1); // If $fallback is a color use that color as the fallback color @if (type-of($fallback) == color) or ($fallback == "transparent") { $fallback-color: $fallback; } background-color: $fallback-color; background-image: _deprecated-webkit-gradient(linear, $deprecated-pos1, $deprecated-pos2, $full); // Safari <= 5.0 background-image: -webkit-linear-gradient($pos-degree $full); // Safari 5.1+, Chrome background-image: unquote("linear-gradient(#{$pos-spec}#{$full})"); } <===> lib/css3/_perspective.scss @mixin perspective($depth: none) { // none | @include prefixer(perspective, $depth, webkit moz spec); } @mixin perspective-origin($value: 50% 50%) { @include prefixer(perspective-origin, $value, webkit moz spec); } <===> lib/css3/_placeholder.scss $placeholders: '-webkit-input-placeholder', '-moz-placeholder', '-ms-input-placeholder'; @mixin placeholder { @each $placeholder in $placeholders { @if $placeholder == "-webkit-input-placeholder" { &::#{$placeholder} { @content; } } @else if $placeholder == "-moz-placeholder" { // FF 18- &:#{$placeholder} { @content; } // FF 19+ &::#{$placeholder} { @content; } } @else { &:#{$placeholder} { @content; } } } } <===> lib/css3/_radial-gradient.scss // Requires Sass 3.1+ @mixin radial-gradient($G1, $G2, $G3: false, $G4: false, $G5: false, $G6: false, $G7: false, $G8: false, $G9: false, $G10: false, $pos: null, $shape-size: null, $deprecated-pos1: center center, $deprecated-pos2: center center, $deprecated-radius1: 0, $deprecated-radius2: 460, $fallback: false) { $data: _radial-arg-parser($G1, $G2, $pos, $shape-size); $G1: nth($data, 1); $G2: nth($data, 2); $pos: nth($data, 3); $shape-size: nth($data, 4); $full: compact($G1, $G2, $G3, $G4, $G5, $G6, $G7, $G8, $G9, $G10); // Strip deprecated cover/contain for spec $shape-size-spec: _shape-size-stripper($shape-size); // Set $G1 as the default fallback color $first-color: nth($full, 1); $fallback-color: nth($first-color, 1); @if (type-of($fallback) == color) or ($fallback == "transparent") { $fallback-color: $fallback; } // Add Commas and spaces $shape-size: if($shape-size, '#{$shape-size}, ', null); $pos: if($pos, '#{$pos}, ', null); $pos-spec: if($pos, 'at #{$pos}', null); $shape-size-spec: if(($shape-size-spec != ' ') and ($pos == null), '#{$shape-size-spec}, ', '#{$shape-size-spec} '); background-color: $fallback-color; background-image: _deprecated-webkit-gradient(radial, $deprecated-pos1, $deprecated-pos2, $full, $deprecated-radius1, $deprecated-radius2); // Safari <= 5.0 && IOS 4 background-image: -webkit-radial-gradient(unquote(#{$pos}#{$shape-size}#{$full})); background-image: unquote("radial-gradient(#{$shape-size-spec}#{$pos-spec}#{$full})"); } <===> lib/css3/_transform.scss @mixin transform($property: none) { // none | @include prefixer(transform, $property, webkit moz ms o spec); } @mixin transform-origin($axes: 50%) { // x-axis - left | center | right | length | % // y-axis - top | center | bottom | length | % // z-axis - length @include prefixer(transform-origin, $axes, webkit moz ms o spec); } @mixin transform-style ($style: flat) { @include prefixer(transform-style, $style, webkit moz ms o spec); } <===> lib/css3/_transition.scss // Shorthand mixin. Supports multiple parentheses-deliminated values for each variable. // Example: @include transition (all, 2.0s, ease-in-out); // @include transition ((opacity, width), (1.0s, 2.0s), ease-in, (0, 2s)); // @include transition ($property:(opacity, width), $delay: (1.5s, 2.5s)); @mixin transition ($properties...) { @if length($properties) >= 1 { @include prefixer(transition, $properties, webkit moz spec); } @else { $properties: all 0.15s ease-out 0; @include prefixer(transition, $properties, webkit moz spec); } } @mixin transition-property ($properties...) { -webkit-transition-property: transition-property-names($properties, 'webkit'); -moz-transition-property: transition-property-names($properties, 'moz'); transition-property: transition-property-names($properties, false); } @mixin transition-duration ($times...) { @include prefixer(transition-duration, $times, webkit moz spec); } @mixin transition-timing-function ($motions...) { // ease | linear | ease-in | ease-out | ease-in-out | cubic-bezier() @include prefixer(transition-timing-function, $motions, webkit moz spec); } @mixin transition-delay ($times...) { @include prefixer(transition-delay, $times, webkit moz spec); } <===> lib/css3/_user-select.scss @mixin user-select($arg: none) { @include prefixer(user-select, $arg, webkit moz ms spec); } <===> lib/functions/_compact.scss // Remove `false` values from a list @function compact($vars...) { $list: (); @each $var in $vars { @if $var { $list: append($list, $var, comma); } } @return $list; } <===> lib/functions/_flex-grid.scss // Flexible grid @function flex-grid($columns, $container-columns: $fg-max-columns) { $width: $columns * $fg-column + ($columns - 1) * $fg-gutter; $container-width: $container-columns * $fg-column + ($container-columns - 1) * $fg-gutter; @return percentage($width / $container-width); } // Flexible gutter @function flex-gutter($container-columns: $fg-max-columns, $gutter: $fg-gutter) { $container-width: $container-columns * $fg-column + ($container-columns - 1) * $fg-gutter; @return percentage($gutter / $container-width); } // The $fg-column, $fg-gutter and $fg-max-columns variables must be defined in your base stylesheet to properly use the flex-grid function. // This function takes the fluid grid equation (target / context = result) and uses columns to help define each. // // The calculation presumes that your column structure will be missing the last gutter: // // -- column -- gutter -- column -- gutter -- column // // $fg-column: 60px; // Column Width // $fg-gutter: 25px; // Gutter Width // $fg-max-columns: 12; // Total Columns For Main Container // // div { // width: flex-grid(4); // returns (315px / 995px) = 31.65829%; // margin-left: flex-gutter(); // returns (25px / 995px) = 2.51256%; // // p { // width: flex-grid(2, 4); // returns (145px / 315px) = 46.031746%; // float: left; // margin: flex-gutter(4); // returns (25px / 315px) = 7.936508%; // } // // blockquote { // float: left; // width: flex-grid(2, 4); // returns (145px / 315px) = 46.031746%; // } // } <===> lib/functions/_grid-width.scss @function grid-width($n) { @return $n * $gw-column + ($n - 1) * $gw-gutter; } // The $gw-column and $gw-gutter variables must be defined in your base stylesheet to properly use the grid-width function. // // $gw-column: 100px; // Column Width // $gw-gutter: 40px; // Gutter Width // // div { // width: grid-width(4); // returns 520px; // margin-left: $gw-gutter; // returns 40px; // } <===> lib/functions/_linear-gradient.scss @function linear-gradient($pos, $gradients...) { $type: linear; $pos-type: type-of(nth($pos, 1)); // if $pos doesn't exist, fix $gradient @if ($pos-type == color) or (nth($pos, 1) == "transparent") { $gradients: zip($pos $gradients); $pos: false; } $type-gradient: $type, $pos, $gradients; @return $type-gradient; } <===> lib/functions/_modular-scale.scss @function modular-scale($value, $increment, $ratio) { @if $increment > 0 { @for $i from 1 through $increment { $value: ($value * $ratio); } } @if $increment < 0 { $increment: abs($increment); @for $i from 1 through $increment { $value: ($value / $ratio); } } @return $value; } // div { // Increment Up GR with positive value // font-size: modular-scale(14px, 1, 1.618); // returns: 22.652px // // Increment Down GR with negative value // font-size: modular-scale(14px, -1, 1.618); // returns: 8.653px // // Can be used with ceil(round up) or floor(round down) // font-size: floor( modular-scale(14px, 1, 1.618) ); // returns: 22px // font-size: ceil( modular-scale(14px, 1, 1.618) ); // returns: 23px // } // // modularscale.com @function golden-ratio($value, $increment) { @return modular-scale($value, $increment, 1.618) } // div { // font-size: golden-ratio(14px, 1); // returns: 22.652px // } // // goldenratiocalculator.com <===> lib/functions/_px-to-em.scss // Convert pixels to ems // eg. for a relational value of 12px write em(12) when the parent is 16px // if the parent is another value say 24px write em(12, 24) @function em($pxval, $base: 16) { @return ($pxval / $base) * 1em; } <===> lib/functions/_radial-gradient.scss // This function is required and used by the background-image mixin. @function radial-gradient($G1, $G2, $G3: false, $G4: false, $G5: false, $G6: false, $G7: false, $G8: false, $G9: false, $G10: false, $pos: null, $shape-size: null) { $data: _radial-arg-parser($G1, $G2, $pos, $shape-size); $G1: nth($data, 1); $G2: nth($data, 2); $pos: nth($data, 3); $shape-size: nth($data, 4); $type: radial; $gradient: compact($G1, $G2, $G3, $G4, $G5, $G6, $G7, $G8, $G9, $G10); $type-gradient: $type, $shape-size $pos, $gradient; @return $type-gradient; } <===> lib/functions/_tint-shade.scss // Add percentage of white to a color @function tint($color, $percent){ @return mix(white, $color, $percent); } // Add percentage of black to a color @function shade($color, $percent){ @return mix(black, $color, $percent); } <===> lib/functions/_transition-property-name.scss // Return vendor-prefixed property names if appropriate // Example: transition-property-names((transform, color, background), moz) -> -moz-transform, color, background //************************************************************************// @function transition-property-names($props, $vendor: false) { $new-props: (); @each $prop in $props { $new-props: append($new-props, transition-property-name($prop, $vendor), comma); } @return $new-props; } @function transition-property-name($prop, $vendor: false) { // put other properties that need to be prefixed here aswell @if $vendor and $prop == transform { @return unquote('-'+$vendor+'-'+$prop); } @else { @return $prop; } } <===> lib/helpers/_deprecated-webkit-gradient.scss // Render Deprecated Webkit Gradient - Linear || Radial //************************************************************************// @function _deprecated-webkit-gradient($type, $deprecated-pos1, $deprecated-pos2, $full, $deprecated-radius1: false, $deprecated-radius2: false) { $gradient-list: (); $gradient: false; $full-length: length($full); $percentage: false; $gradient-type: $type; @for $i from 1 through $full-length { $gradient: nth($full, $i); @if length($gradient) == 2 { $color-stop: color-stop(nth($gradient, 2), nth($gradient, 1)); $gradient-list: join($gradient-list, $color-stop, comma); } @else if $gradient != null { @if $i == $full-length { $percentage: 100%; } @else { $percentage: ($i - 1) * (100 / ($full-length - 1)) + "%"; } $color-stop: color-stop(unquote($percentage), $gradient); $gradient-list: join($gradient-list, $color-stop, comma); } } @if $type == radial { $gradient: -webkit-gradient(radial, $deprecated-pos1, $deprecated-radius1, $deprecated-pos2, $deprecated-radius2, $gradient-list); } @else if $type == linear { $gradient: -webkit-gradient(linear, $deprecated-pos1, $deprecated-pos2, $gradient-list); } @return $gradient; } <===> lib/helpers/_gradient-positions-parser.scss @function _gradient-positions-parser($gradient-type, $gradient-positions) { @if $gradient-positions and ($gradient-type == linear) and (type-of($gradient-positions) != color) { $gradient-positions: _linear-positions-parser($gradient-positions); } @else if $gradient-positions and ($gradient-type == radial) and (type-of($gradient-positions) != color) { $gradient-positions: _radial-positions-parser($gradient-positions); } @return $gradient-positions; } <===> lib/helpers/_linear-positions-parser.scss @function _linear-positions-parser($pos) { $type: type-of(nth($pos, 1)); $spec: null; $degree: null; $side: null; $corner: null; $length: length($pos); // Parse Side and corner positions @if ($length > 1) { @if nth($pos, 1) == "to" { // Newer syntax $side: nth($pos, 2); @if $length == 2 { // eg. to top // Swap for backwards compatability $degree: _position-flipper(nth($pos, 2)); } @else if $length == 3 { // eg. to top left $corner: nth($pos, 3); } } @else if $length == 2 { // Older syntax ("top left") $side: _position-flipper(nth($pos, 1)); $corner: _position-flipper(nth($pos, 2)); } @if ("#{$side} #{$corner}" == "left top") or ("#{$side} #{$corner}" == "top left") { $degree: _position-flipper(#{$side}) _position-flipper(#{$corner}); } @else if ("#{$side} #{$corner}" == "right top") or ("#{$side} #{$corner}" == "top right") { $degree: _position-flipper(#{$side}) _position-flipper(#{$corner}); } @else if ("#{$side} #{$corner}" == "right bottom") or ("#{$side} #{$corner}" == "bottom right") { $degree: _position-flipper(#{$side}) _position-flipper(#{$corner}); } @else if ("#{$side} #{$corner}" == "left bottom") or ("#{$side} #{$corner}" == "bottom left") { $degree: _position-flipper(#{$side}) _position-flipper(#{$corner}); } $spec: to $side $corner; } @else if $length == 1 { // Swap for backwards compatability @if $type == string { $degree: $pos; $spec: to _position-flipper($pos); } @else { $degree: -270 - $pos; //rotate the gradient opposite from spec $spec: $pos; } } $degree: unquote($degree + ","); $spec: unquote($spec + ","); @return $degree $spec; } @function _position-flipper($pos) { @return if($pos == left, right, null) if($pos == right, left, null) if($pos == top, bottom, null) if($pos == bottom, top, null); } <===> lib/helpers/_radial-arg-parser.scss @function _radial-arg-parser($G1, $G2, $pos, $shape-size) { @each $value in $G1, $G2 { $first-val: nth($value, 1); $pos-type: type-of($first-val); $spec-at-index: null; // Determine if spec was passed to mixin @if type-of($value) == list { $spec-at-index: if(index($value, at), index($value, at), false); } @if $spec-at-index { @if $spec-at-index > 1 { @for $i from 1 through ($spec-at-index - 1) { $shape-size: $shape-size nth($value, $i); } @for $i from ($spec-at-index + 1) through length($value) { $pos: $pos nth($value, $i); } } @else if $spec-at-index == 1 { @for $i from ($spec-at-index + 1) through length($value) { $pos: $pos nth($value, $i); } } $G1: false; } // If not spec calculate correct values @else { @if ($pos-type != color) or ($first-val != "transparent") { @if ($pos-type == number) or ($first-val == "center") or ($first-val == "top") or ($first-val == "right") or ($first-val == "bottom") or ($first-val == "left") { $pos: $value; @if $pos == $G1 { $G1: false; } } @else if ($first-val == "ellipse") or ($first-val == "circle") or ($first-val == "closest-side") or ($first-val == "closest-corner") or ($first-val == "farthest-side") or ($first-val == "farthest-corner") or ($first-val == "contain") or ($first-val == "cover") { $shape-size: $value; @if $value == $G1 { $G1: false; } @else if $value == $G2 { $G2: false; } } } } } @return $G1, $G2, $pos, $shape-size; } <===> lib/helpers/_radial-positions-parser.scss @function _radial-positions-parser($gradient-pos) { $shape-size: nth($gradient-pos, 1); $pos: nth($gradient-pos, 2); $shape-size-spec: _shape-size-stripper($shape-size); $pre-spec: unquote(if($pos, "#{$pos}, ", null)) unquote(if($shape-size, "#{$shape-size},", null)); $pos-spec: if($pos, "at #{$pos}", null); $spec: "#{$shape-size-spec} #{$pos-spec}"; // Add comma @if ($spec != ' ') { $spec: "#{$spec}," } @return $pre-spec $spec; } <===> lib/helpers/_render-gradients.scss // User for linear and radial gradients within background-image or border-image properties @function _render-gradients($gradient-positions, $gradients, $gradient-type, $vendor: false) { $pre-spec: null; $spec: null; $vendor-gradients: null; @if $gradient-type == linear { @if $gradient-positions { $pre-spec: nth($gradient-positions, 1); $spec: nth($gradient-positions, 2); } } @else if $gradient-type == radial { $pre-spec: nth($gradient-positions, 1); $spec: nth($gradient-positions, 2); } @if $vendor { $vendor-gradients: -#{$vendor}-#{$gradient-type}-gradient(#{$pre-spec} $gradients); } @else if $vendor == false { $vendor-gradients: "#{$gradient-type}-gradient(#{$spec} #{$gradients})"; $vendor-gradients: unquote($vendor-gradients); } @return $vendor-gradients; } <===> lib/helpers/_shape-size-stripper.scss @function _shape-size-stripper($shape-size) { $shape-size-spec: null; @each $value in $shape-size { @if ($value == "cover") or ($value == "contain") { $value: null; } $shape-size-spec: "#{$shape-size-spec} #{$value}"; } @return $shape-size-spec; } <===> output.css box:hover { -webkit-animation-name: scale, slide; -moz-animation-name: scale, slide; animation-name: scale, slide; -webkit-animation-duration: 2s; -moz-animation-duration: 2s; animation-duration: 2s; -webkit-animation-timing-function: ease; -moz-animation-timing-function: ease; animation-timing-function: ease; -webkit-animation-iteration-count: infinite; -moz-animation-iteration-count: infinite; animation-iteration-count: infinite; -webkit-animation: scale 1s ease-in, slide 2s ease; -moz-animation: scale 1s ease-in, slide 2s ease; animation: scale 1s ease-in, slide 2s ease; } div { -webkit-appearance: none; -moz-appearance: none; -ms-appearance: none; -o-appearance: none; appearance: none; /* boo boo boo */ background-image: url("/images/a.png"), url("images/b.png"); background-image: url("/images/a.png"), url("images/b.png"); background-image: url("/images/a.png"), -webkit-linear-gradient( white 0, yellow 50%, transparent 50%); background-image: url("/images/a.png"), linear-gradient( white 0, yellow 50%, transparent 50%); background-image: -webkit-linear-gradient( rgba(255, 255, 255, 0.25) 0%, rgba(255, 255, 255, 0.08) 50%, transparent 50%), -webkit-linear-gradient( #4e7ba3, #3e6181); background-image: linear-gradient( rgba(255, 255, 255, 0.25) 0%, rgba(255, 255, 255, 0.08) 50%, transparent 50%), linear-gradient( #4e7ba3, #3e6181); background-image: -webkit-url("/images/a.png")-gradient( center), -webkit-url("images/b.png")-gradient( left); background-image: url("/images/a.png")-gradient( center), url("images/b.png")-gradient( left); } <===> output-dart-sass.css box:hover { -webkit-animation-name: scale, slide; -moz-animation-name: scale, slide; animation-name: scale, slide; -webkit-animation-duration: 2s; -moz-animation-duration: 2s; animation-duration: 2s; -webkit-animation-timing-function: ease; -moz-animation-timing-function: ease; animation-timing-function: ease; -webkit-animation-iteration-count: infinite; -moz-animation-iteration-count: infinite; animation-iteration-count: infinite; -webkit-animation: scale 1s ease-in, slide 2s ease; -moz-animation: scale 1s ease-in, slide 2s ease; animation: scale 1s ease-in, slide 2s ease; } div { -webkit-appearance: none; -moz-appearance: none; -ms-appearance: none; -o-appearance: none; appearance: none; /* boo boo boo */ background-image: url("/images/a.png"), url("images/b.png"); background-image: url("/images/a.png"), url("images/b.png"); background-image: url("/images/a.png"), -webkit-linear-gradient(white 0, yellow 50%, transparent 50%); background-image: url("/images/a.png"), linear-gradient( white 0, yellow 50%, transparent 50%); background-image: -webkit-linear-gradient(rgba(255, 255, 255, 0.25) 0%, rgba(255, 255, 255, 0.08) 50%, transparent 50%), -webkit-linear-gradient(#4e7ba3, #3e6181); background-image: linear-gradient( rgba(255, 255, 255, 0.25) 0%, rgba(255, 255, 255, 0.08) 50%, transparent 50%), linear-gradient( #4e7ba3, #3e6181); background-image: -webkit-url("/images/a.png")-gradient(center), -webkit-url("images/b.png")-gradient(left); background-image: url("/images/a.png")-gradient( center), url("images/b.png")-gradient( left); } sass-spec-libsass-3.6.3/spec/libsass/calc.hrx000066400000000000000000000007261355712145100211120ustar00rootroot00000000000000<===> input.scss $x: 2; body { width: calc($x + 2 - 3em / hoolabaloo); width: -moz-calc($x + 2 - 3em / hoolabaloo); width: -webkit-calc($x + 2 - 3em / hoolabaloo); width: -ms-calc($x + 2 - 3em / hoolabaloo); height: foo(2 + 2); } <===> output.css body { width: calc($x + 2 - 3em / hoolabaloo); width: -moz-calc($x + 2 - 3em / hoolabaloo); width: -webkit-calc($x + 2 - 3em / hoolabaloo); width: -ms-calc($x + 2 - 3em / hoolabaloo); height: foo(4); } sass-spec-libsass-3.6.3/spec/libsass/charset/000077500000000000000000000000001355712145100211115ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/libsass/charset/input.scss000066400000000000000000000001201355712145100231360ustar00rootroot00000000000000div { content: to-upper-case("øáéíóúüñ¿éàŤDžǂɊɱʭʬѪ҈ݓ"); } sass-spec-libsass-3.6.3/spec/libsass/charset/output.css000066400000000000000000000001231355712145100231570ustar00rootroot00000000000000@charset "UTF-8"; div { content: "øáéíóúüñ¿éàŤDžǂɊɱʭʬѪ҈ݓ"; } sass-spec-libsass-3.6.3/spec/libsass/color-functions/000077500000000000000000000000001355712145100226045ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/libsass/color-functions/opacity/000077500000000000000000000000001355712145100242545ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/libsass/color-functions/opacity/alpha.hrx000066400000000000000000000010101355712145100260540ustar00rootroot00000000000000<===> input.scss foo { c0: opacity(rgba(0,0,0,0.0)); c1: opacity(rgba(0,0,0,0.1)); c2: opacity(rgba(0,0,0,0.2)); c3: opacity(rgba(0,0,0,0.3)); c4: opacity(rgba(0,0,0,0.4)); c5: opacity(rgba(0,0,0,0.5)); c6: opacity(rgba(0,0,0,0.6)); c7: opacity(rgba(0,0,0,0.7)); c8: opacity(rgba(0,0,0,0.8)); c9: opacity(rgba(0,0,0,0.9)); c10: opacity(rgba(0,0,0,1)); } <===> output.css foo { c0: 0; c1: 0.1; c2: 0.2; c3: 0.3; c4: 0.4; c5: 0.5; c6: 0.6; c7: 0.7; c8: 0.8; c9: 0.9; c10: 1; } sass-spec-libsass-3.6.3/spec/libsass/color-functions/other/000077500000000000000000000000001355712145100237255ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/libsass/color-functions/other/change-color/000077500000000000000000000000001355712145100262665ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/libsass/color-functions/other/change-color/a.hrx000066400000000000000000000015371355712145100272370ustar00rootroot00000000000000<===> input.scss foo { // c-1: change-color(black,$alpha:-1); c0: change-color(black,$alpha:0.0); c1: change-color(black,$alpha:0.1); c2: change-color(black,$alpha:0.2); c3: change-color(black,$alpha:0.3); c4: change-color(black,$alpha:0.4); c5: change-color(black,$alpha:0.5); c6: change-color(black,$alpha:0.6); c7: change-color(black,$alpha:0.7); c8: change-color(black,$alpha:0.8); c9: change-color(black,$alpha:0.9); c10: change-color(black,$alpha:1); // c11: change-color(black,$alpha:1.1); // c12: change-color(black,$alpha:2); } <===> output.css foo { c0: rgba(0, 0, 0, 0); c1: rgba(0, 0, 0, 0.1); c2: rgba(0, 0, 0, 0.2); c3: rgba(0, 0, 0, 0.3); c4: rgba(0, 0, 0, 0.4); c5: rgba(0, 0, 0, 0.5); c6: rgba(0, 0, 0, 0.6); c7: rgba(0, 0, 0, 0.7); c8: rgba(0, 0, 0, 0.8); c9: rgba(0, 0, 0, 0.9); c10: black; } sass-spec-libsass-3.6.3/spec/libsass/color-functions/other/change-color/b.hrx000066400000000000000000000334671355712145100272470ustar00rootroot00000000000000<===> input.scss foo { // c-1: change-color(black,$blue:-1); c0: change-color(black,$blue:0); c1: change-color(black,$blue:1); c2: change-color(black,$blue:2); c3: change-color(black,$blue:3); c4: change-color(black,$blue:4); c5: change-color(black,$blue:5); c6: change-color(black,$blue:6); c7: change-color(black,$blue:7); c8: change-color(black,$blue:8); c9: change-color(black,$blue:9); c10: change-color(black,$blue:10); c11: change-color(black,$blue:11); c12: change-color(black,$blue:12); c13: change-color(black,$blue:13); c14: change-color(black,$blue:14); c15: change-color(black,$blue:15); c16: change-color(black,$blue:16); c17: change-color(black,$blue:17); c18: change-color(black,$blue:18); c19: change-color(black,$blue:19); c20: change-color(black,$blue:20); c21: change-color(black,$blue:21); c22: change-color(black,$blue:22); c23: change-color(black,$blue:23); c24: change-color(black,$blue:24); c25: change-color(black,$blue:25); c26: change-color(black,$blue:26); c27: change-color(black,$blue:27); c28: change-color(black,$blue:28); c29: change-color(black,$blue:29); c30: change-color(black,$blue:30); c31: change-color(black,$blue:31); c32: change-color(black,$blue:32); c33: change-color(black,$blue:33); c34: change-color(black,$blue:34); c35: change-color(black,$blue:35); c36: change-color(black,$blue:36); c37: change-color(black,$blue:37); c38: change-color(black,$blue:38); c39: change-color(black,$blue:39); c40: change-color(black,$blue:40); c41: change-color(black,$blue:41); c42: change-color(black,$blue:42); c43: change-color(black,$blue:43); c44: change-color(black,$blue:44); c45: change-color(black,$blue:45); c46: change-color(black,$blue:46); c47: change-color(black,$blue:47); c48: change-color(black,$blue:48); c49: change-color(black,$blue:49); c50: change-color(black,$blue:50); c51: change-color(black,$blue:51); c52: change-color(black,$blue:52); c53: change-color(black,$blue:53); c54: change-color(black,$blue:54); c55: change-color(black,$blue:55); c56: change-color(black,$blue:56); c57: change-color(black,$blue:57); c58: change-color(black,$blue:58); c59: change-color(black,$blue:59); c60: change-color(black,$blue:60); c61: change-color(black,$blue:61); c62: change-color(black,$blue:62); c63: change-color(black,$blue:63); c64: change-color(black,$blue:64); c65: change-color(black,$blue:65); c66: change-color(black,$blue:66); c67: change-color(black,$blue:67); c68: change-color(black,$blue:68); c69: change-color(black,$blue:69); c70: change-color(black,$blue:70); c71: change-color(black,$blue:71); c72: change-color(black,$blue:72); c73: change-color(black,$blue:73); c74: change-color(black,$blue:74); c75: change-color(black,$blue:75); c76: change-color(black,$blue:76); c77: change-color(black,$blue:77); c78: change-color(black,$blue:78); c79: change-color(black,$blue:79); c80: change-color(black,$blue:80); c81: change-color(black,$blue:81); c82: change-color(black,$blue:82); c83: change-color(black,$blue:83); c84: change-color(black,$blue:84); c85: change-color(black,$blue:85); c86: change-color(black,$blue:86); c87: change-color(black,$blue:87); c88: change-color(black,$blue:88); c89: change-color(black,$blue:89); c90: change-color(black,$blue:90); c91: change-color(black,$blue:91); c92: change-color(black,$blue:92); c93: change-color(black,$blue:93); c94: change-color(black,$blue:94); c95: change-color(black,$blue:95); c96: change-color(black,$blue:96); c97: change-color(black,$blue:97); c98: change-color(black,$blue:98); c99: change-color(black,$blue:99); c100: change-color(black,$blue:100); c101: change-color(black,$blue:101); c102: change-color(black,$blue:102); c103: change-color(black,$blue:103); c104: change-color(black,$blue:104); c105: change-color(black,$blue:105); c106: change-color(black,$blue:106); c107: change-color(black,$blue:107); c108: change-color(black,$blue:108); c109: change-color(black,$blue:109); c110: change-color(black,$blue:110); c111: change-color(black,$blue:111); c112: change-color(black,$blue:112); c113: change-color(black,$blue:113); c114: change-color(black,$blue:114); c115: change-color(black,$blue:115); c116: change-color(black,$blue:116); c117: change-color(black,$blue:117); c118: change-color(black,$blue:118); c119: change-color(black,$blue:119); c120: change-color(black,$blue:120); c121: change-color(black,$blue:121); c122: change-color(black,$blue:122); c123: change-color(black,$blue:123); c124: change-color(black,$blue:124); c125: change-color(black,$blue:125); c126: change-color(black,$blue:126); c127: change-color(black,$blue:127); c128: change-color(black,$blue:128); c129: change-color(black,$blue:129); c130: change-color(black,$blue:130); c131: change-color(black,$blue:131); c132: change-color(black,$blue:132); c133: change-color(black,$blue:133); c134: change-color(black,$blue:134); c135: change-color(black,$blue:135); c136: change-color(black,$blue:136); c137: change-color(black,$blue:137); c138: change-color(black,$blue:138); c139: change-color(black,$blue:139); c140: change-color(black,$blue:140); c141: change-color(black,$blue:141); c142: change-color(black,$blue:142); c143: change-color(black,$blue:143); c144: change-color(black,$blue:144); c145: change-color(black,$blue:145); c146: change-color(black,$blue:146); c147: change-color(black,$blue:147); c148: change-color(black,$blue:148); c149: change-color(black,$blue:149); c150: change-color(black,$blue:150); c151: change-color(black,$blue:151); c152: change-color(black,$blue:152); c153: change-color(black,$blue:153); c154: change-color(black,$blue:154); c155: change-color(black,$blue:155); c156: change-color(black,$blue:156); c157: change-color(black,$blue:157); c158: change-color(black,$blue:158); c159: change-color(black,$blue:159); c160: change-color(black,$blue:160); c161: change-color(black,$blue:161); c162: change-color(black,$blue:162); c163: change-color(black,$blue:163); c164: change-color(black,$blue:164); c165: change-color(black,$blue:165); c166: change-color(black,$blue:166); c167: change-color(black,$blue:167); c168: change-color(black,$blue:168); c169: change-color(black,$blue:169); c170: change-color(black,$blue:170); c171: change-color(black,$blue:171); c172: change-color(black,$blue:172); c173: change-color(black,$blue:173); c174: change-color(black,$blue:174); c175: change-color(black,$blue:175); c176: change-color(black,$blue:176); c177: change-color(black,$blue:177); c178: change-color(black,$blue:178); c179: change-color(black,$blue:179); c180: change-color(black,$blue:180); c181: change-color(black,$blue:181); c182: change-color(black,$blue:182); c183: change-color(black,$blue:183); c184: change-color(black,$blue:184); c185: change-color(black,$blue:185); c186: change-color(black,$blue:186); c187: change-color(black,$blue:187); c188: change-color(black,$blue:188); c189: change-color(black,$blue:189); c190: change-color(black,$blue:190); c191: change-color(black,$blue:191); c192: change-color(black,$blue:192); c193: change-color(black,$blue:193); c194: change-color(black,$blue:194); c195: change-color(black,$blue:195); c196: change-color(black,$blue:196); c197: change-color(black,$blue:197); c198: change-color(black,$blue:198); c199: change-color(black,$blue:199); c200: change-color(black,$blue:200); c201: change-color(black,$blue:201); c202: change-color(black,$blue:202); c203: change-color(black,$blue:203); c204: change-color(black,$blue:204); c205: change-color(black,$blue:205); c206: change-color(black,$blue:206); c207: change-color(black,$blue:207); c208: change-color(black,$blue:208); c209: change-color(black,$blue:209); c210: change-color(black,$blue:210); c211: change-color(black,$blue:211); c212: change-color(black,$blue:212); c213: change-color(black,$blue:213); c214: change-color(black,$blue:214); c215: change-color(black,$blue:215); c216: change-color(black,$blue:216); c217: change-color(black,$blue:217); c218: change-color(black,$blue:218); c219: change-color(black,$blue:219); c220: change-color(black,$blue:220); c221: change-color(black,$blue:221); c222: change-color(black,$blue:222); c223: change-color(black,$blue:223); c224: change-color(black,$blue:224); c225: change-color(black,$blue:225); c226: change-color(black,$blue:226); c227: change-color(black,$blue:227); c228: change-color(black,$blue:228); c229: change-color(black,$blue:229); c230: change-color(black,$blue:230); c231: change-color(black,$blue:231); c232: change-color(black,$blue:232); c233: change-color(black,$blue:233); c234: change-color(black,$blue:234); c235: change-color(black,$blue:235); c236: change-color(black,$blue:236); c237: change-color(black,$blue:237); c238: change-color(black,$blue:238); c239: change-color(black,$blue:239); c240: change-color(black,$blue:240); c241: change-color(black,$blue:241); c242: change-color(black,$blue:242); c243: change-color(black,$blue:243); c244: change-color(black,$blue:244); c245: change-color(black,$blue:245); c246: change-color(black,$blue:246); c247: change-color(black,$blue:247); c248: change-color(black,$blue:248); c249: change-color(black,$blue:249); c250: change-color(black,$blue:250); c251: change-color(black,$blue:251); c252: change-color(black,$blue:252); c253: change-color(black,$blue:253); c254: change-color(black,$blue:254); c255: change-color(black,$blue:255); // c256: change-color(black,$blue:256); } <===> output.css foo { c0: black; c1: #000001; c2: #000002; c3: #000003; c4: #000004; c5: #000005; c6: #000006; c7: #000007; c8: #000008; c9: #000009; c10: #00000a; c11: #00000b; c12: #00000c; c13: #00000d; c14: #00000e; c15: #00000f; c16: #000010; c17: #000011; c18: #000012; c19: #000013; c20: #000014; c21: #000015; c22: #000016; c23: #000017; c24: #000018; c25: #000019; c26: #00001a; c27: #00001b; c28: #00001c; c29: #00001d; c30: #00001e; c31: #00001f; c32: #000020; c33: #000021; c34: #000022; c35: #000023; c36: #000024; c37: #000025; c38: #000026; c39: #000027; c40: #000028; c41: #000029; c42: #00002a; c43: #00002b; c44: #00002c; c45: #00002d; c46: #00002e; c47: #00002f; c48: #000030; c49: #000031; c50: #000032; c51: #000033; c52: #000034; c53: #000035; c54: #000036; c55: #000037; c56: #000038; c57: #000039; c58: #00003a; c59: #00003b; c60: #00003c; c61: #00003d; c62: #00003e; c63: #00003f; c64: #000040; c65: #000041; c66: #000042; c67: #000043; c68: #000044; c69: #000045; c70: #000046; c71: #000047; c72: #000048; c73: #000049; c74: #00004a; c75: #00004b; c76: #00004c; c77: #00004d; c78: #00004e; c79: #00004f; c80: #000050; c81: #000051; c82: #000052; c83: #000053; c84: #000054; c85: #000055; c86: #000056; c87: #000057; c88: #000058; c89: #000059; c90: #00005a; c91: #00005b; c92: #00005c; c93: #00005d; c94: #00005e; c95: #00005f; c96: #000060; c97: #000061; c98: #000062; c99: #000063; c100: #000064; c101: #000065; c102: #000066; c103: #000067; c104: #000068; c105: #000069; c106: #00006a; c107: #00006b; c108: #00006c; c109: #00006d; c110: #00006e; c111: #00006f; c112: #000070; c113: #000071; c114: #000072; c115: #000073; c116: #000074; c117: #000075; c118: #000076; c119: #000077; c120: #000078; c121: #000079; c122: #00007a; c123: #00007b; c124: #00007c; c125: #00007d; c126: #00007e; c127: #00007f; c128: navy; c129: #000081; c130: #000082; c131: #000083; c132: #000084; c133: #000085; c134: #000086; c135: #000087; c136: #000088; c137: #000089; c138: #00008a; c139: darkblue; c140: #00008c; c141: #00008d; c142: #00008e; c143: #00008f; c144: #000090; c145: #000091; c146: #000092; c147: #000093; c148: #000094; c149: #000095; c150: #000096; c151: #000097; c152: #000098; c153: #000099; c154: #00009a; c155: #00009b; c156: #00009c; c157: #00009d; c158: #00009e; c159: #00009f; c160: #0000a0; c161: #0000a1; c162: #0000a2; c163: #0000a3; c164: #0000a4; c165: #0000a5; c166: #0000a6; c167: #0000a7; c168: #0000a8; c169: #0000a9; c170: #0000aa; c171: #0000ab; c172: #0000ac; c173: #0000ad; c174: #0000ae; c175: #0000af; c176: #0000b0; c177: #0000b1; c178: #0000b2; c179: #0000b3; c180: #0000b4; c181: #0000b5; c182: #0000b6; c183: #0000b7; c184: #0000b8; c185: #0000b9; c186: #0000ba; c187: #0000bb; c188: #0000bc; c189: #0000bd; c190: #0000be; c191: #0000bf; c192: #0000c0; c193: #0000c1; c194: #0000c2; c195: #0000c3; c196: #0000c4; c197: #0000c5; c198: #0000c6; c199: #0000c7; c200: #0000c8; c201: #0000c9; c202: #0000ca; c203: #0000cb; c204: #0000cc; c205: mediumblue; c206: #0000ce; c207: #0000cf; c208: #0000d0; c209: #0000d1; c210: #0000d2; c211: #0000d3; c212: #0000d4; c213: #0000d5; c214: #0000d6; c215: #0000d7; c216: #0000d8; c217: #0000d9; c218: #0000da; c219: #0000db; c220: #0000dc; c221: #0000dd; c222: #0000de; c223: #0000df; c224: #0000e0; c225: #0000e1; c226: #0000e2; c227: #0000e3; c228: #0000e4; c229: #0000e5; c230: #0000e6; c231: #0000e7; c232: #0000e8; c233: #0000e9; c234: #0000ea; c235: #0000eb; c236: #0000ec; c237: #0000ed; c238: #0000ee; c239: #0000ef; c240: #0000f0; c241: #0000f1; c242: #0000f2; c243: #0000f3; c244: #0000f4; c245: #0000f5; c246: #0000f6; c247: #0000f7; c248: #0000f8; c249: #0000f9; c250: #0000fa; c251: #0000fb; c252: #0000fc; c253: #0000fd; c254: #0000fe; c255: blue; } sass-spec-libsass-3.6.3/spec/libsass/color-functions/other/change-color/g.hrx000066400000000000000000000340701355712145100272430ustar00rootroot00000000000000<===> input.scss foo { // c-1: change-color(black,$green:-1); c0: change-color(black,$green:0); c1: change-color(black,$green:1); c2: change-color(black,$green:2); c3: change-color(black,$green:3); c4: change-color(black,$green:4); c5: change-color(black,$green:5); c6: change-color(black,$green:6); c7: change-color(black,$green:7); c8: change-color(black,$green:8); c9: change-color(black,$green:9); c10: change-color(black,$green:10); c11: change-color(black,$green:11); c12: change-color(black,$green:12); c13: change-color(black,$green:13); c14: change-color(black,$green:14); c15: change-color(black,$green:15); c16: change-color(black,$green:16); c17: change-color(black,$green:17); c18: change-color(black,$green:18); c19: change-color(black,$green:19); c20: change-color(black,$green:20); c21: change-color(black,$green:21); c22: change-color(black,$green:22); c23: change-color(black,$green:23); c24: change-color(black,$green:24); c25: change-color(black,$green:25); c26: change-color(black,$green:26); c27: change-color(black,$green:27); c28: change-color(black,$green:28); c29: change-color(black,$green:29); c30: change-color(black,$green:30); c31: change-color(black,$green:31); c32: change-color(black,$green:32); c33: change-color(black,$green:33); c34: change-color(black,$green:34); c35: change-color(black,$green:35); c36: change-color(black,$green:36); c37: change-color(black,$green:37); c38: change-color(black,$green:38); c39: change-color(black,$green:39); c40: change-color(black,$green:40); c41: change-color(black,$green:41); c42: change-color(black,$green:42); c43: change-color(black,$green:43); c44: change-color(black,$green:44); c45: change-color(black,$green:45); c46: change-color(black,$green:46); c47: change-color(black,$green:47); c48: change-color(black,$green:48); c49: change-color(black,$green:49); c50: change-color(black,$green:50); c51: change-color(black,$green:51); c52: change-color(black,$green:52); c53: change-color(black,$green:53); c54: change-color(black,$green:54); c55: change-color(black,$green:55); c56: change-color(black,$green:56); c57: change-color(black,$green:57); c58: change-color(black,$green:58); c59: change-color(black,$green:59); c60: change-color(black,$green:60); c61: change-color(black,$green:61); c62: change-color(black,$green:62); c63: change-color(black,$green:63); c64: change-color(black,$green:64); c65: change-color(black,$green:65); c66: change-color(black,$green:66); c67: change-color(black,$green:67); c68: change-color(black,$green:68); c69: change-color(black,$green:69); c70: change-color(black,$green:70); c71: change-color(black,$green:71); c72: change-color(black,$green:72); c73: change-color(black,$green:73); c74: change-color(black,$green:74); c75: change-color(black,$green:75); c76: change-color(black,$green:76); c77: change-color(black,$green:77); c78: change-color(black,$green:78); c79: change-color(black,$green:79); c80: change-color(black,$green:80); c81: change-color(black,$green:81); c82: change-color(black,$green:82); c83: change-color(black,$green:83); c84: change-color(black,$green:84); c85: change-color(black,$green:85); c86: change-color(black,$green:86); c87: change-color(black,$green:87); c88: change-color(black,$green:88); c89: change-color(black,$green:89); c90: change-color(black,$green:90); c91: change-color(black,$green:91); c92: change-color(black,$green:92); c93: change-color(black,$green:93); c94: change-color(black,$green:94); c95: change-color(black,$green:95); c96: change-color(black,$green:96); c97: change-color(black,$green:97); c98: change-color(black,$green:98); c99: change-color(black,$green:99); c100: change-color(black,$green:100); c101: change-color(black,$green:101); c102: change-color(black,$green:102); c103: change-color(black,$green:103); c104: change-color(black,$green:104); c105: change-color(black,$green:105); c106: change-color(black,$green:106); c107: change-color(black,$green:107); c108: change-color(black,$green:108); c109: change-color(black,$green:109); c110: change-color(black,$green:110); c111: change-color(black,$green:111); c112: change-color(black,$green:112); c113: change-color(black,$green:113); c114: change-color(black,$green:114); c115: change-color(black,$green:115); c116: change-color(black,$green:116); c117: change-color(black,$green:117); c118: change-color(black,$green:118); c119: change-color(black,$green:119); c120: change-color(black,$green:120); c121: change-color(black,$green:121); c122: change-color(black,$green:122); c123: change-color(black,$green:123); c124: change-color(black,$green:124); c125: change-color(black,$green:125); c126: change-color(black,$green:126); c127: change-color(black,$green:127); c128: change-color(black,$green:128); c129: change-color(black,$green:129); c130: change-color(black,$green:130); c131: change-color(black,$green:131); c132: change-color(black,$green:132); c133: change-color(black,$green:133); c134: change-color(black,$green:134); c135: change-color(black,$green:135); c136: change-color(black,$green:136); c137: change-color(black,$green:137); c138: change-color(black,$green:138); c139: change-color(black,$green:139); c140: change-color(black,$green:140); c141: change-color(black,$green:141); c142: change-color(black,$green:142); c143: change-color(black,$green:143); c144: change-color(black,$green:144); c145: change-color(black,$green:145); c146: change-color(black,$green:146); c147: change-color(black,$green:147); c148: change-color(black,$green:148); c149: change-color(black,$green:149); c150: change-color(black,$green:150); c151: change-color(black,$green:151); c152: change-color(black,$green:152); c153: change-color(black,$green:153); c154: change-color(black,$green:154); c155: change-color(black,$green:155); c156: change-color(black,$green:156); c157: change-color(black,$green:157); c158: change-color(black,$green:158); c159: change-color(black,$green:159); c160: change-color(black,$green:160); c161: change-color(black,$green:161); c162: change-color(black,$green:162); c163: change-color(black,$green:163); c164: change-color(black,$green:164); c165: change-color(black,$green:165); c166: change-color(black,$green:166); c167: change-color(black,$green:167); c168: change-color(black,$green:168); c169: change-color(black,$green:169); c170: change-color(black,$green:170); c171: change-color(black,$green:171); c172: change-color(black,$green:172); c173: change-color(black,$green:173); c174: change-color(black,$green:174); c175: change-color(black,$green:175); c176: change-color(black,$green:176); c177: change-color(black,$green:177); c178: change-color(black,$green:178); c179: change-color(black,$green:179); c180: change-color(black,$green:180); c181: change-color(black,$green:181); c182: change-color(black,$green:182); c183: change-color(black,$green:183); c184: change-color(black,$green:184); c185: change-color(black,$green:185); c186: change-color(black,$green:186); c187: change-color(black,$green:187); c188: change-color(black,$green:188); c189: change-color(black,$green:189); c190: change-color(black,$green:190); c191: change-color(black,$green:191); c192: change-color(black,$green:192); c193: change-color(black,$green:193); c194: change-color(black,$green:194); c195: change-color(black,$green:195); c196: change-color(black,$green:196); c197: change-color(black,$green:197); c198: change-color(black,$green:198); c199: change-color(black,$green:199); c200: change-color(black,$green:200); c201: change-color(black,$green:201); c202: change-color(black,$green:202); c203: change-color(black,$green:203); c204: change-color(black,$green:204); c205: change-color(black,$green:205); c206: change-color(black,$green:206); c207: change-color(black,$green:207); c208: change-color(black,$green:208); c209: change-color(black,$green:209); c210: change-color(black,$green:210); c211: change-color(black,$green:211); c212: change-color(black,$green:212); c213: change-color(black,$green:213); c214: change-color(black,$green:214); c215: change-color(black,$green:215); c216: change-color(black,$green:216); c217: change-color(black,$green:217); c218: change-color(black,$green:218); c219: change-color(black,$green:219); c220: change-color(black,$green:220); c221: change-color(black,$green:221); c222: change-color(black,$green:222); c223: change-color(black,$green:223); c224: change-color(black,$green:224); c225: change-color(black,$green:225); c226: change-color(black,$green:226); c227: change-color(black,$green:227); c228: change-color(black,$green:228); c229: change-color(black,$green:229); c230: change-color(black,$green:230); c231: change-color(black,$green:231); c232: change-color(black,$green:232); c233: change-color(black,$green:233); c234: change-color(black,$green:234); c235: change-color(black,$green:235); c236: change-color(black,$green:236); c237: change-color(black,$green:237); c238: change-color(black,$green:238); c239: change-color(black,$green:239); c240: change-color(black,$green:240); c241: change-color(black,$green:241); c242: change-color(black,$green:242); c243: change-color(black,$green:243); c244: change-color(black,$green:244); c245: change-color(black,$green:245); c246: change-color(black,$green:246); c247: change-color(black,$green:247); c248: change-color(black,$green:248); c249: change-color(black,$green:249); c250: change-color(black,$green:250); c251: change-color(black,$green:251); c252: change-color(black,$green:252); c253: change-color(black,$green:253); c254: change-color(black,$green:254); c255: change-color(black,$green:255); // c256: change-color(black,$green:256); } <===> output.css foo { c0: black; c1: #000100; c2: #000200; c3: #000300; c4: #000400; c5: #000500; c6: #000600; c7: #000700; c8: #000800; c9: #000900; c10: #000a00; c11: #000b00; c12: #000c00; c13: #000d00; c14: #000e00; c15: #000f00; c16: #001000; c17: #001100; c18: #001200; c19: #001300; c20: #001400; c21: #001500; c22: #001600; c23: #001700; c24: #001800; c25: #001900; c26: #001a00; c27: #001b00; c28: #001c00; c29: #001d00; c30: #001e00; c31: #001f00; c32: #002000; c33: #002100; c34: #002200; c35: #002300; c36: #002400; c37: #002500; c38: #002600; c39: #002700; c40: #002800; c41: #002900; c42: #002a00; c43: #002b00; c44: #002c00; c45: #002d00; c46: #002e00; c47: #002f00; c48: #003000; c49: #003100; c50: #003200; c51: #003300; c52: #003400; c53: #003500; c54: #003600; c55: #003700; c56: #003800; c57: #003900; c58: #003a00; c59: #003b00; c60: #003c00; c61: #003d00; c62: #003e00; c63: #003f00; c64: #004000; c65: #004100; c66: #004200; c67: #004300; c68: #004400; c69: #004500; c70: #004600; c71: #004700; c72: #004800; c73: #004900; c74: #004a00; c75: #004b00; c76: #004c00; c77: #004d00; c78: #004e00; c79: #004f00; c80: #005000; c81: #005100; c82: #005200; c83: #005300; c84: #005400; c85: #005500; c86: #005600; c87: #005700; c88: #005800; c89: #005900; c90: #005a00; c91: #005b00; c92: #005c00; c93: #005d00; c94: #005e00; c95: #005f00; c96: #006000; c97: #006100; c98: #006200; c99: #006300; c100: darkgreen; c101: #006500; c102: #006600; c103: #006700; c104: #006800; c105: #006900; c106: #006a00; c107: #006b00; c108: #006c00; c109: #006d00; c110: #006e00; c111: #006f00; c112: #007000; c113: #007100; c114: #007200; c115: #007300; c116: #007400; c117: #007500; c118: #007600; c119: #007700; c120: #007800; c121: #007900; c122: #007a00; c123: #007b00; c124: #007c00; c125: #007d00; c126: #007e00; c127: #007f00; c128: green; c129: #008100; c130: #008200; c131: #008300; c132: #008400; c133: #008500; c134: #008600; c135: #008700; c136: #008800; c137: #008900; c138: #008a00; c139: #008b00; c140: #008c00; c141: #008d00; c142: #008e00; c143: #008f00; c144: #009000; c145: #009100; c146: #009200; c147: #009300; c148: #009400; c149: #009500; c150: #009600; c151: #009700; c152: #009800; c153: #009900; c154: #009a00; c155: #009b00; c156: #009c00; c157: #009d00; c158: #009e00; c159: #009f00; c160: #00a000; c161: #00a100; c162: #00a200; c163: #00a300; c164: #00a400; c165: #00a500; c166: #00a600; c167: #00a700; c168: #00a800; c169: #00a900; c170: #00aa00; c171: #00ab00; c172: #00ac00; c173: #00ad00; c174: #00ae00; c175: #00af00; c176: #00b000; c177: #00b100; c178: #00b200; c179: #00b300; c180: #00b400; c181: #00b500; c182: #00b600; c183: #00b700; c184: #00b800; c185: #00b900; c186: #00ba00; c187: #00bb00; c188: #00bc00; c189: #00bd00; c190: #00be00; c191: #00bf00; c192: #00c000; c193: #00c100; c194: #00c200; c195: #00c300; c196: #00c400; c197: #00c500; c198: #00c600; c199: #00c700; c200: #00c800; c201: #00c900; c202: #00ca00; c203: #00cb00; c204: #00cc00; c205: #00cd00; c206: #00ce00; c207: #00cf00; c208: #00d000; c209: #00d100; c210: #00d200; c211: #00d300; c212: #00d400; c213: #00d500; c214: #00d600; c215: #00d700; c216: #00d800; c217: #00d900; c218: #00da00; c219: #00db00; c220: #00dc00; c221: #00dd00; c222: #00de00; c223: #00df00; c224: #00e000; c225: #00e100; c226: #00e200; c227: #00e300; c228: #00e400; c229: #00e500; c230: #00e600; c231: #00e700; c232: #00e800; c233: #00e900; c234: #00ea00; c235: #00eb00; c236: #00ec00; c237: #00ed00; c238: #00ee00; c239: #00ef00; c240: #00f000; c241: #00f100; c242: #00f200; c243: #00f300; c244: #00f400; c245: #00f500; c246: #00f600; c247: #00f700; c248: #00f800; c249: #00f900; c250: #00fa00; c251: #00fb00; c252: #00fc00; c253: #00fd00; c254: #00fe00; c255: lime; } sass-spec-libsass-3.6.3/spec/libsass/color-functions/other/change-color/h.hrx000066400000000000000000000606011355712145100272430ustar00rootroot00000000000000<===> input.scss foo { c-1: change-color(red,$hue:-1); c0: change-color(red,$hue:0); c1: change-color(red,$hue:1); c2: change-color(red,$hue:2); c3: change-color(red,$hue:3); c4: change-color(red,$hue:4); c5: change-color(red,$hue:5); c6: change-color(red,$hue:6); c7: change-color(red,$hue:7); c8: change-color(red,$hue:8); c9: change-color(red,$hue:9); c10: change-color(red,$hue:10); c11: change-color(red,$hue:11); c12: change-color(red,$hue:12); c13: change-color(red,$hue:13); c14: change-color(red,$hue:14); c15: change-color(red,$hue:15); c16: change-color(red,$hue:16); c17: change-color(red,$hue:17); c18: change-color(red,$hue:18); c19: change-color(red,$hue:19); c20: change-color(red,$hue:20); c21: change-color(red,$hue:21); c22: change-color(red,$hue:22); c23: change-color(red,$hue:23); c24: change-color(red,$hue:24); c25: change-color(red,$hue:25); c26: change-color(red,$hue:26); c27: change-color(red,$hue:27); c28: change-color(red,$hue:28); c29: change-color(red,$hue:29); c30: change-color(red,$hue:30); c31: change-color(red,$hue:31); c32: change-color(red,$hue:32); c33: change-color(red,$hue:33); c34: change-color(red,$hue:34); c35: change-color(red,$hue:35); c36: change-color(red,$hue:36); c37: change-color(red,$hue:37); c38: change-color(red,$hue:38); c39: change-color(red,$hue:39); c40: change-color(red,$hue:40); c41: change-color(red,$hue:41); c42: change-color(red,$hue:42); c43: change-color(red,$hue:43); c44: change-color(red,$hue:44); c45: change-color(red,$hue:45); c46: change-color(red,$hue:46); c47: change-color(red,$hue:47); c48: change-color(red,$hue:48); c49: change-color(red,$hue:49); c50: change-color(red,$hue:50); c51: change-color(red,$hue:51); c52: change-color(red,$hue:52); c53: change-color(red,$hue:53); c54: change-color(red,$hue:54); c55: change-color(red,$hue:55); c56: change-color(red,$hue:56); c57: change-color(red,$hue:57); c58: change-color(red,$hue:58); c59: change-color(red,$hue:59); c60: change-color(red,$hue:60); c61: change-color(red,$hue:61); c62: change-color(red,$hue:62); c63: change-color(red,$hue:63); c64: change-color(red,$hue:64); c65: change-color(red,$hue:65); c66: change-color(red,$hue:66); c67: change-color(red,$hue:67); c68: change-color(red,$hue:68); c69: change-color(red,$hue:69); c70: change-color(red,$hue:70); c71: change-color(red,$hue:71); c72: change-color(red,$hue:72); c73: change-color(red,$hue:73); c74: change-color(red,$hue:74); c75: change-color(red,$hue:75); c76: change-color(red,$hue:76); c77: change-color(red,$hue:77); c78: change-color(red,$hue:78); c79: change-color(red,$hue:79); c80: change-color(red,$hue:80); c81: change-color(red,$hue:81); c82: change-color(red,$hue:82); c83: change-color(red,$hue:83); c84: change-color(red,$hue:84); c85: change-color(red,$hue:85); c86: change-color(red,$hue:86); c87: change-color(red,$hue:87); c88: change-color(red,$hue:88); c89: change-color(red,$hue:89); c90: change-color(red,$hue:90); c91: change-color(red,$hue:91); c92: change-color(red,$hue:92); c93: change-color(red,$hue:93); c94: change-color(red,$hue:94); c95: change-color(red,$hue:95); c96: change-color(red,$hue:96); c97: change-color(red,$hue:97); c98: change-color(red,$hue:98); c99: change-color(red,$hue:99); c100: change-color(red,$hue:100); c101: change-color(red,$hue:101); c102: change-color(red,$hue:102); c103: change-color(red,$hue:103); c104: change-color(red,$hue:104); c105: change-color(red,$hue:105); c106: change-color(red,$hue:106); c107: change-color(red,$hue:107); c108: change-color(red,$hue:108); c109: change-color(red,$hue:109); c110: change-color(red,$hue:110); c111: change-color(red,$hue:111); c112: change-color(red,$hue:112); c113: change-color(red,$hue:113); c114: change-color(red,$hue:114); c115: change-color(red,$hue:115); c116: change-color(red,$hue:116); c117: change-color(red,$hue:117); c118: change-color(red,$hue:118); c119: change-color(red,$hue:119); c120: change-color(red,$hue:120); c121: change-color(red,$hue:121); c122: change-color(red,$hue:122); c123: change-color(red,$hue:123); c124: change-color(red,$hue:124); c125: change-color(red,$hue:125); c126: change-color(red,$hue:126); c127: change-color(red,$hue:127); c128: change-color(red,$hue:128); c129: change-color(red,$hue:129); c130: change-color(red,$hue:130); c131: change-color(red,$hue:131); c132: change-color(red,$hue:132); c133: change-color(red,$hue:133); c134: change-color(red,$hue:134); c135: change-color(red,$hue:135); c136: change-color(red,$hue:136); c137: change-color(red,$hue:137); c138: change-color(red,$hue:138); c139: change-color(red,$hue:139); c140: change-color(red,$hue:140); c141: change-color(red,$hue:141); c142: change-color(red,$hue:142); c143: change-color(red,$hue:143); c144: change-color(red,$hue:144); c145: change-color(red,$hue:145); c146: change-color(red,$hue:146); c147: change-color(red,$hue:147); c148: change-color(red,$hue:148); c149: change-color(red,$hue:149); c150: change-color(red,$hue:150); c151: change-color(red,$hue:151); c152: change-color(red,$hue:152); c153: change-color(red,$hue:153); c154: change-color(red,$hue:154); c155: change-color(red,$hue:155); c156: change-color(red,$hue:156); c157: change-color(red,$hue:157); c158: change-color(red,$hue:158); c159: change-color(red,$hue:159); c160: change-color(red,$hue:160); c161: change-color(red,$hue:161); c162: change-color(red,$hue:162); c163: change-color(red,$hue:163); c164: change-color(red,$hue:164); c165: change-color(red,$hue:165); c166: change-color(red,$hue:166); c167: change-color(red,$hue:167); c168: change-color(red,$hue:168); c169: change-color(red,$hue:169); c170: change-color(red,$hue:170); c171: change-color(red,$hue:171); c172: change-color(red,$hue:172); c173: change-color(red,$hue:173); c174: change-color(red,$hue:174); c175: change-color(red,$hue:175); c176: change-color(red,$hue:176); c177: change-color(red,$hue:177); c178: change-color(red,$hue:178); c179: change-color(red,$hue:179); c180: change-color(red,$hue:180); c181: change-color(red,$hue:181); c182: change-color(red,$hue:182); c183: change-color(red,$hue:183); c184: change-color(red,$hue:184); c185: change-color(red,$hue:185); c186: change-color(red,$hue:186); c187: change-color(red,$hue:187); c188: change-color(red,$hue:188); c189: change-color(red,$hue:189); c190: change-color(red,$hue:190); c191: change-color(red,$hue:191); c192: change-color(red,$hue:192); c193: change-color(red,$hue:193); c194: change-color(red,$hue:194); c195: change-color(red,$hue:195); c196: change-color(red,$hue:196); c197: change-color(red,$hue:197); c198: change-color(red,$hue:198); c199: change-color(red,$hue:199); c200: change-color(red,$hue:200); c201: change-color(red,$hue:201); c202: change-color(red,$hue:202); c203: change-color(red,$hue:203); c204: change-color(red,$hue:204); c205: change-color(red,$hue:205); c206: change-color(red,$hue:206); c207: change-color(red,$hue:207); c208: change-color(red,$hue:208); c209: change-color(red,$hue:209); c210: change-color(red,$hue:210); c211: change-color(red,$hue:211); c212: change-color(red,$hue:212); c213: change-color(red,$hue:213); c214: change-color(red,$hue:214); c215: change-color(red,$hue:215); c216: change-color(red,$hue:216); c217: change-color(red,$hue:217); c218: change-color(red,$hue:218); c219: change-color(red,$hue:219); c220: change-color(red,$hue:220); c221: change-color(red,$hue:221); c222: change-color(red,$hue:222); c223: change-color(red,$hue:223); c224: change-color(red,$hue:224); c225: change-color(red,$hue:225); c226: change-color(red,$hue:226); c227: change-color(red,$hue:227); c228: change-color(red,$hue:228); c229: change-color(red,$hue:229); c230: change-color(red,$hue:230); c231: change-color(red,$hue:231); c232: change-color(red,$hue:232); c233: change-color(red,$hue:233); c234: change-color(red,$hue:234); c235: change-color(red,$hue:235); c236: change-color(red,$hue:236); c237: change-color(red,$hue:237); c238: change-color(red,$hue:238); c239: change-color(red,$hue:239); c240: change-color(red,$hue:240); c241: change-color(red,$hue:241); c242: change-color(red,$hue:242); c243: change-color(red,$hue:243); c244: change-color(red,$hue:244); c245: change-color(red,$hue:245); c246: change-color(red,$hue:246); c247: change-color(red,$hue:247); c248: change-color(red,$hue:248); c249: change-color(red,$hue:249); c250: change-color(red,$hue:250); c251: change-color(red,$hue:251); c252: change-color(red,$hue:252); c253: change-color(red,$hue:253); c254: change-color(red,$hue:254); c255: change-color(red,$hue:255); c256: change-color(red,$hue:256); c257: change-color(red,$hue:257); c258: change-color(red,$hue:258); c259: change-color(red,$hue:259); c260: change-color(red,$hue:260); c261: change-color(red,$hue:261); c262: change-color(red,$hue:262); c263: change-color(red,$hue:263); c264: change-color(red,$hue:264); c265: change-color(red,$hue:265); c266: change-color(red,$hue:266); c267: change-color(red,$hue:267); c268: change-color(red,$hue:268); c269: change-color(red,$hue:269); c270: change-color(red,$hue:270); c271: change-color(red,$hue:271); c272: change-color(red,$hue:272); c273: change-color(red,$hue:273); c274: change-color(red,$hue:274); c275: change-color(red,$hue:275); c276: change-color(red,$hue:276); c277: change-color(red,$hue:277); c278: change-color(red,$hue:278); c279: change-color(red,$hue:279); c280: change-color(red,$hue:280); c281: change-color(red,$hue:281); c282: change-color(red,$hue:282); c283: change-color(red,$hue:283); c284: change-color(red,$hue:284); c285: change-color(red,$hue:285); c286: change-color(red,$hue:286); c287: change-color(red,$hue:287); c288: change-color(red,$hue:288); c289: change-color(red,$hue:289); c290: change-color(red,$hue:290); c291: change-color(red,$hue:291); c292: change-color(red,$hue:292); c293: change-color(red,$hue:293); c294: change-color(red,$hue:294); c295: change-color(red,$hue:295); c296: change-color(red,$hue:296); c297: change-color(red,$hue:297); c298: change-color(red,$hue:298); c299: change-color(red,$hue:299); c300: change-color(red,$hue:300); c301: change-color(red,$hue:301); c302: change-color(red,$hue:302); c303: change-color(red,$hue:303); c304: change-color(red,$hue:304); c305: change-color(red,$hue:305); c306: change-color(red,$hue:306); c307: change-color(red,$hue:307); c308: change-color(red,$hue:308); c309: change-color(red,$hue:309); c310: change-color(red,$hue:310); c311: change-color(red,$hue:311); c312: change-color(red,$hue:312); c313: change-color(red,$hue:313); c314: change-color(red,$hue:314); c315: change-color(red,$hue:315); c316: change-color(red,$hue:316); c317: change-color(red,$hue:317); c318: change-color(red,$hue:318); c319: change-color(red,$hue:319); c320: change-color(red,$hue:320); c321: change-color(red,$hue:321); c322: change-color(red,$hue:322); c323: change-color(red,$hue:323); c324: change-color(red,$hue:324); c325: change-color(red,$hue:325); c326: change-color(red,$hue:326); c327: change-color(red,$hue:327); c328: change-color(red,$hue:328); c329: change-color(red,$hue:329); c330: change-color(red,$hue:330); c331: change-color(red,$hue:331); c332: change-color(red,$hue:332); c333: change-color(red,$hue:333); c334: change-color(red,$hue:334); c335: change-color(red,$hue:335); c336: change-color(red,$hue:336); c337: change-color(red,$hue:337); c338: change-color(red,$hue:338); c339: change-color(red,$hue:339); c340: change-color(red,$hue:340); c341: change-color(red,$hue:341); c342: change-color(red,$hue:342); c343: change-color(red,$hue:343); c344: change-color(red,$hue:344); c345: change-color(red,$hue:345); c346: change-color(red,$hue:346); c347: change-color(red,$hue:347); c348: change-color(red,$hue:348); c349: change-color(red,$hue:349); c350: change-color(red,$hue:350); c351: change-color(red,$hue:351); c352: change-color(red,$hue:352); c353: change-color(red,$hue:353); c354: change-color(red,$hue:354); c355: change-color(red,$hue:355); c356: change-color(red,$hue:356); c357: change-color(red,$hue:357); c358: change-color(red,$hue:358); c359: change-color(red,$hue:359); c360: change-color(red,$hue:360); } <===> output.css foo { c-1: #ff0004; c0: red; c1: #ff0400; c2: #ff0900; c3: #ff0d00; c4: #ff1100; c5: #ff1500; c6: #ff1a00; c7: #ff1e00; c8: #ff2200; c9: #ff2600; c10: #ff2b00; c11: #ff2f00; c12: #ff3300; c13: #ff3700; c14: #ff3c00; c15: #ff4000; c16: #ff4400; c17: #ff4800; c18: #ff4d00; c19: #ff5100; c20: #ff5500; c21: #ff5900; c22: #ff5e00; c23: #ff6200; c24: #ff6600; c25: #ff6a00; c26: #ff6f00; c27: #ff7300; c28: #ff7700; c29: #ff7b00; c30: #ff8000; c31: #ff8400; c32: #ff8800; c33: darkorange; c34: #ff9100; c35: #ff9500; c36: #ff9900; c37: #ff9d00; c38: #ffa200; c39: #ffa600; c40: #ffaa00; c41: #ffae00; c42: #ffb300; c43: #ffb700; c44: #ffbb00; c45: #ffbf00; c46: #ffc400; c47: #ffc800; c48: #ffcc00; c49: #ffd000; c50: #ffd500; c51: #ffd900; c52: #ffdd00; c53: #ffe100; c54: #ffe600; c55: #ffea00; c56: #ffee00; c57: #fff200; c58: #fff700; c59: #fffb00; c60: yellow; c61: #fbff00; c62: #f7ff00; c63: #f2ff00; c64: #eeff00; c65: #eaff00; c66: #e6ff00; c67: #e1ff00; c68: #ddff00; c69: #d9ff00; c70: #d5ff00; c71: #d0ff00; c72: #ccff00; c73: #c8ff00; c74: #c4ff00; c75: #bfff00; c76: #bbff00; c77: #b7ff00; c78: #b3ff00; c79: #aeff00; c80: #aaff00; c81: #a6ff00; c82: #a2ff00; c83: #9dff00; c84: #99ff00; c85: #95ff00; c86: #91ff00; c87: #8cff00; c88: #88ff00; c89: #84ff00; c90: #80ff00; c91: #7bff00; c92: #77ff00; c93: #73ff00; c94: #6fff00; c95: #6aff00; c96: #66ff00; c97: #62ff00; c98: #5eff00; c99: #59ff00; c100: #55ff00; c101: #51ff00; c102: #4dff00; c103: #48ff00; c104: #44ff00; c105: #40ff00; c106: #3cff00; c107: #37ff00; c108: #33ff00; c109: #2fff00; c110: #2bff00; c111: #26ff00; c112: #22ff00; c113: #1eff00; c114: #1aff00; c115: #15ff00; c116: #11ff00; c117: #0dff00; c118: #09ff00; c119: #04ff00; c120: lime; c121: #00ff04; c122: #00ff09; c123: #00ff0d; c124: #00ff11; c125: #00ff15; c126: #00ff1a; c127: #00ff1e; c128: #00ff22; c129: #00ff26; c130: #00ff2b; c131: #00ff2f; c132: #00ff33; c133: #00ff37; c134: #00ff3c; c135: #00ff40; c136: #00ff44; c137: #00ff48; c138: #00ff4d; c139: #00ff51; c140: #00ff55; c141: #00ff59; c142: #00ff5e; c143: #00ff62; c144: #00ff66; c145: #00ff6a; c146: #00ff6f; c147: #00ff73; c148: #00ff77; c149: #00ff7b; c150: #00ff80; c151: #00ff84; c152: #00ff88; c153: #00ff8c; c154: #00ff91; c155: #00ff95; c156: #00ff99; c157: #00ff9d; c158: #00ffa2; c159: #00ffa6; c160: #00ffaa; c161: #00ffae; c162: #00ffb3; c163: #00ffb7; c164: #00ffbb; c165: #00ffbf; c166: #00ffc4; c167: #00ffc8; c168: #00ffcc; c169: #00ffd0; c170: #00ffd5; c171: #00ffd9; c172: #00ffdd; c173: #00ffe1; c174: #00ffe6; c175: #00ffea; c176: #00ffee; c177: #00fff2; c178: #00fff7; c179: #00fffb; c180: cyan; c181: #00fbff; c182: #00f7ff; c183: #00f2ff; c184: #00eeff; c185: #00eaff; c186: #00e6ff; c187: #00e1ff; c188: #00ddff; c189: #00d9ff; c190: #00d5ff; c191: #00d0ff; c192: #00ccff; c193: #00c8ff; c194: #00c4ff; c195: deepskyblue; c196: #00bbff; c197: #00b7ff; c198: #00b3ff; c199: #00aeff; c200: #00aaff; c201: #00a6ff; c202: #00a2ff; c203: #009dff; c204: #0099ff; c205: #0095ff; c206: #0091ff; c207: #008cff; c208: #0088ff; c209: #0084ff; c210: #0080ff; c211: #007bff; c212: #0077ff; c213: #0073ff; c214: #006fff; c215: #006aff; c216: #0066ff; c217: #0062ff; c218: #005eff; c219: #0059ff; c220: #0055ff; c221: #0051ff; c222: #004dff; c223: #0048ff; c224: #0044ff; c225: #0040ff; c226: #003cff; c227: #0037ff; c228: #0033ff; c229: #002fff; c230: #002bff; c231: #0026ff; c232: #0022ff; c233: #001eff; c234: #001aff; c235: #0015ff; c236: #0011ff; c237: #000dff; c238: #0009ff; c239: #0004ff; c240: blue; c241: #0400ff; c242: #0900ff; c243: #0d00ff; c244: #1100ff; c245: #1500ff; c246: #1a00ff; c247: #1e00ff; c248: #2200ff; c249: #2600ff; c250: #2b00ff; c251: #2f00ff; c252: #3300ff; c253: #3700ff; c254: #3c00ff; c255: #4000ff; c256: #4400ff; c257: #4800ff; c258: #4d00ff; c259: #5100ff; c260: #5500ff; c261: #5900ff; c262: #5e00ff; c263: #6200ff; c264: #6600ff; c265: #6a00ff; c266: #6f00ff; c267: #7300ff; c268: #7700ff; c269: #7b00ff; c270: #8000ff; c271: #8400ff; c272: #8800ff; c273: #8c00ff; c274: #9100ff; c275: #9500ff; c276: #9900ff; c277: #9d00ff; c278: #a200ff; c279: #a600ff; c280: #aa00ff; c281: #ae00ff; c282: #b300ff; c283: #b700ff; c284: #bb00ff; c285: #bf00ff; c286: #c400ff; c287: #c800ff; c288: #cc00ff; c289: #d000ff; c290: #d500ff; c291: #d900ff; c292: #dd00ff; c293: #e100ff; c294: #e600ff; c295: #ea00ff; c296: #ee00ff; c297: #f200ff; c298: #f700ff; c299: #fb00ff; c300: magenta; c301: #ff00fb; c302: #ff00f7; c303: #ff00f2; c304: #ff00ee; c305: #ff00ea; c306: #ff00e6; c307: #ff00e1; c308: #ff00dd; c309: #ff00d9; c310: #ff00d5; c311: #ff00d0; c312: #ff00cc; c313: #ff00c8; c314: #ff00c4; c315: #ff00bf; c316: #ff00bb; c317: #ff00b7; c318: #ff00b3; c319: #ff00ae; c320: #ff00aa; c321: #ff00a6; c322: #ff00a2; c323: #ff009d; c324: #ff0099; c325: #ff0095; c326: #ff0091; c327: #ff008c; c328: #ff0088; c329: #ff0084; c330: #ff0080; c331: #ff007b; c332: #ff0077; c333: #ff0073; c334: #ff006f; c335: #ff006a; c336: #ff0066; c337: #ff0062; c338: #ff005e; c339: #ff0059; c340: #ff0055; c341: #ff0051; c342: #ff004d; c343: #ff0048; c344: #ff0044; c345: #ff0040; c346: #ff003c; c347: #ff0037; c348: #ff0033; c349: #ff002f; c350: #ff002b; c351: #ff0026; c352: #ff0022; c353: #ff001e; c354: #ff001a; c355: #ff0015; c356: #ff0011; c357: #ff000d; c358: #ff0009; c359: #ff0004; c360: red; } <===> output-dart-sass.css foo { c-1: #ff0004; c0: red; c1: #ff0400; c2: #ff0900; c3: #ff0d00; c4: #ff1100; c5: #ff1500; c6: #ff1a00; c7: #ff1e00; c8: #ff2200; c9: #ff2600; c10: #ff2b00; c11: #ff2f00; c12: #ff3300; c13: #ff3700; c14: #ff3c00; c15: #ff4000; c16: #ff4400; c17: #ff4800; c18: #ff4d00; c19: #ff5100; c20: #ff5500; c21: #ff5900; c22: #ff5e00; c23: #ff6200; c24: #ff6600; c25: #ff6a00; c26: #ff6f00; c27: #ff7300; c28: #ff7700; c29: #ff7b00; c30: #ff8000; c31: #ff8400; c32: #ff8800; c33: darkorange; c34: #ff9100; c35: #ff9500; c36: #ff9900; c37: #ff9d00; c38: #ffa200; c39: #ffa600; c40: #ffaa00; c41: #ffae00; c42: #ffb300; c43: #ffb700; c44: #ffbb00; c45: #ffbf00; c46: #ffc400; c47: #ffc800; c48: #ffcc00; c49: #ffd000; c50: #ffd500; c51: #ffd900; c52: #ffdd00; c53: #ffe100; c54: #ffe600; c55: #ffea00; c56: #ffee00; c57: #fff200; c58: #fff700; c59: #fffb00; c60: yellow; c61: #fbff00; c62: #f7ff00; c63: #f2ff00; c64: #eeff00; c65: #eaff00; c66: #e6ff00; c67: #e1ff00; c68: #ddff00; c69: #d9ff00; c70: #d5ff00; c71: #d0ff00; c72: #ccff00; c73: #c8ff00; c74: #c4ff00; c75: #bfff00; c76: #bbff00; c77: #b7ff00; c78: #b3ff00; c79: #aeff00; c80: #aaff00; c81: #a6ff00; c82: #a2ff00; c83: #9dff00; c84: #99ff00; c85: #95ff00; c86: #91ff00; c87: #8cff00; c88: #88ff00; c89: #84ff00; c90: #80ff00; c91: #7bff00; c92: #77ff00; c93: #73ff00; c94: #6fff00; c95: #6aff00; c96: #66ff00; c97: #62ff00; c98: #5eff00; c99: #59ff00; c100: #55ff00; c101: #51ff00; c102: #4dff00; c103: #48ff00; c104: #44ff00; c105: #40ff00; c106: #3cff00; c107: #37ff00; c108: #33ff00; c109: #2fff00; c110: #2bff00; c111: #26ff00; c112: #22ff00; c113: #1eff00; c114: #1aff00; c115: #15ff00; c116: #11ff00; c117: #0dff00; c118: #09ff00; c119: #04ff00; c120: lime; c121: #00ff04; c122: #00ff09; c123: #00ff0d; c124: #00ff11; c125: #00ff15; c126: #00ff1a; c127: #00ff1e; c128: #00ff22; c129: #00ff26; c130: #00ff2b; c131: #00ff2f; c132: #00ff33; c133: #00ff37; c134: #00ff3c; c135: #00ff40; c136: #00ff44; c137: #00ff48; c138: #00ff4d; c139: #00ff51; c140: #00ff55; c141: #00ff59; c142: #00ff5e; c143: #00ff62; c144: #00ff66; c145: #00ff6a; c146: #00ff6f; c147: #00ff73; c148: #00ff77; c149: #00ff7b; c150: #00ff80; c151: #00ff84; c152: #00ff88; c153: #00ff8c; c154: #00ff91; c155: #00ff95; c156: #00ff99; c157: #00ff9d; c158: #00ffa2; c159: #00ffa6; c160: #00ffaa; c161: #00ffae; c162: #00ffb3; c163: #00ffb7; c164: #00ffbb; c165: #00ffbf; c166: #00ffc4; c167: #00ffc8; c168: #00ffcc; c169: #00ffd0; c170: #00ffd5; c171: #00ffd9; c172: #00ffdd; c173: #00ffe1; c174: #00ffe6; c175: #00ffea; c176: #00ffee; c177: #00fff2; c178: #00fff7; c179: #00fffb; c180: aqua; c181: #00fbff; c182: #00f7ff; c183: #00f2ff; c184: #00eeff; c185: #00eaff; c186: #00e6ff; c187: #00e1ff; c188: #00ddff; c189: #00d9ff; c190: #00d5ff; c191: #00d0ff; c192: #00ccff; c193: #00c8ff; c194: #00c4ff; c195: deepskyblue; c196: #00bbff; c197: #00b7ff; c198: #00b3ff; c199: #00aeff; c200: #00aaff; c201: #00a6ff; c202: #00a2ff; c203: #009dff; c204: #0099ff; c205: #0095ff; c206: #0091ff; c207: #008cff; c208: #0088ff; c209: #0084ff; c210: #0080ff; c211: #007bff; c212: #0077ff; c213: #0073ff; c214: #006fff; c215: #006aff; c216: #0066ff; c217: #0062ff; c218: #005eff; c219: #0059ff; c220: #0055ff; c221: #0051ff; c222: #004dff; c223: #0048ff; c224: #0044ff; c225: #0040ff; c226: #003cff; c227: #0037ff; c228: #0033ff; c229: #002fff; c230: #002bff; c231: #0026ff; c232: #0022ff; c233: #001eff; c234: #001aff; c235: #0015ff; c236: #0011ff; c237: #000dff; c238: #0009ff; c239: #0004ff; c240: blue; c241: #0400ff; c242: #0900ff; c243: #0d00ff; c244: #1100ff; c245: #1500ff; c246: #1a00ff; c247: #1e00ff; c248: #2200ff; c249: #2600ff; c250: #2b00ff; c251: #2f00ff; c252: #3300ff; c253: #3700ff; c254: #3c00ff; c255: #4000ff; c256: #4400ff; c257: #4800ff; c258: #4d00ff; c259: #5100ff; c260: #5500ff; c261: #5900ff; c262: #5e00ff; c263: #6200ff; c264: #6600ff; c265: #6a00ff; c266: #6f00ff; c267: #7300ff; c268: #7700ff; c269: #7b00ff; c270: #8000ff; c271: #8400ff; c272: #8800ff; c273: #8c00ff; c274: #9100ff; c275: #9500ff; c276: #9900ff; c277: #9d00ff; c278: #a200ff; c279: #a600ff; c280: #aa00ff; c281: #ae00ff; c282: #b300ff; c283: #b700ff; c284: #bb00ff; c285: #bf00ff; c286: #c400ff; c287: #c800ff; c288: #cc00ff; c289: #d000ff; c290: #d500ff; c291: #d900ff; c292: #dd00ff; c293: #e100ff; c294: #e600ff; c295: #ea00ff; c296: #ee00ff; c297: #f200ff; c298: #f700ff; c299: #fb00ff; c300: fuchsia; c301: #ff00fb; c302: #ff00f7; c303: #ff00f2; c304: #ff00ee; c305: #ff00ea; c306: #ff00e6; c307: #ff00e1; c308: #ff00dd; c309: #ff00d9; c310: #ff00d5; c311: #ff00d0; c312: #ff00cc; c313: #ff00c8; c314: #ff00c4; c315: #ff00bf; c316: #ff00bb; c317: #ff00b7; c318: #ff00b3; c319: #ff00ae; c320: #ff00aa; c321: #ff00a6; c322: #ff00a2; c323: #ff009d; c324: #ff0099; c325: #ff0095; c326: #ff0091; c327: #ff008c; c328: #ff0088; c329: #ff0084; c330: #ff0080; c331: #ff007b; c332: #ff0077; c333: #ff0073; c334: #ff006f; c335: #ff006a; c336: #ff0066; c337: #ff0062; c338: #ff005e; c339: #ff0059; c340: #ff0055; c341: #ff0051; c342: #ff004d; c343: #ff0048; c344: #ff0044; c345: #ff0040; c346: #ff003c; c347: #ff0037; c348: #ff0033; c349: #ff002f; c350: #ff002b; c351: #ff0026; c352: #ff0022; c353: #ff001e; c354: #ff001a; c355: #ff0015; c356: #ff0011; c357: #ff000d; c358: #ff0009; c359: #ff0004; c360: red; } sass-spec-libsass-3.6.3/spec/libsass/color-functions/other/change-color/l.hrx000066400000000000000000000131031355712145100272420ustar00rootroot00000000000000<===> input.scss foo { // c-1: change-color(red,$lightness:-1); c0: change-color(red,$lightness:0); c1: change-color(red,$lightness:1); c2: change-color(red,$lightness:2); c3: change-color(red,$lightness:3); c4: change-color(red,$lightness:4); c5: change-color(red,$lightness:5); c6: change-color(red,$lightness:6); c7: change-color(red,$lightness:7); c8: change-color(red,$lightness:8); c9: change-color(red,$lightness:9); c10: change-color(red,$lightness:10); c11: change-color(red,$lightness:11); c12: change-color(red,$lightness:12); c13: change-color(red,$lightness:13); c14: change-color(red,$lightness:14); c15: change-color(red,$lightness:15); c16: change-color(red,$lightness:16); c17: change-color(red,$lightness:17); c18: change-color(red,$lightness:18); c19: change-color(red,$lightness:19); c20: change-color(red,$lightness:20); c21: change-color(red,$lightness:21); c22: change-color(red,$lightness:22); c23: change-color(red,$lightness:23); c24: change-color(red,$lightness:24); c25: change-color(red,$lightness:25); c26: change-color(red,$lightness:26); c27: change-color(red,$lightness:27); c28: change-color(red,$lightness:28); c29: change-color(red,$lightness:29); c30: change-color(red,$lightness:30); c31: change-color(red,$lightness:31); c32: change-color(red,$lightness:32); c33: change-color(red,$lightness:33); c34: change-color(red,$lightness:34); c35: change-color(red,$lightness:35); c36: change-color(red,$lightness:36); c37: change-color(red,$lightness:37); c38: change-color(red,$lightness:38); c39: change-color(red,$lightness:39); c40: change-color(red,$lightness:40); c41: change-color(red,$lightness:41); c42: change-color(red,$lightness:42); c43: change-color(red,$lightness:43); c44: change-color(red,$lightness:44); c45: change-color(red,$lightness:45); c46: change-color(red,$lightness:46); c47: change-color(red,$lightness:47); c48: change-color(red,$lightness:48); c49: change-color(red,$lightness:49); c50: change-color(red,$lightness:50); c51: change-color(red,$lightness:51); c52: change-color(red,$lightness:52); c53: change-color(red,$lightness:53); c54: change-color(red,$lightness:54); c55: change-color(red,$lightness:55); c56: change-color(red,$lightness:56); c57: change-color(red,$lightness:57); c58: change-color(red,$lightness:58); c59: change-color(red,$lightness:59); c60: change-color(red,$lightness:60); c61: change-color(red,$lightness:61); c62: change-color(red,$lightness:62); c63: change-color(red,$lightness:63); c64: change-color(red,$lightness:64); c65: change-color(red,$lightness:65); c66: change-color(red,$lightness:66); c67: change-color(red,$lightness:67); c68: change-color(red,$lightness:68); c69: change-color(red,$lightness:69); c70: change-color(red,$lightness:70); c71: change-color(red,$lightness:71); c72: change-color(red,$lightness:72); c73: change-color(red,$lightness:73); c74: change-color(red,$lightness:74); c75: change-color(red,$lightness:75); c76: change-color(red,$lightness:76); c77: change-color(red,$lightness:77); c78: change-color(red,$lightness:78); c79: change-color(red,$lightness:79); c80: change-color(red,$lightness:80); c81: change-color(red,$lightness:81); c82: change-color(red,$lightness:82); c83: change-color(red,$lightness:83); c84: change-color(red,$lightness:84); c85: change-color(red,$lightness:85); c86: change-color(red,$lightness:86); c87: change-color(red,$lightness:87); c88: change-color(red,$lightness:88); c89: change-color(red,$lightness:89); c90: change-color(red,$lightness:90); c91: change-color(red,$lightness:91); c92: change-color(red,$lightness:92); c93: change-color(red,$lightness:93); c94: change-color(red,$lightness:94); c95: change-color(red,$lightness:95); c96: change-color(red,$lightness:96); c97: change-color(red,$lightness:97); c98: change-color(red,$lightness:98); c99: change-color(red,$lightness:99); // c100: change-color(red,$lightness:100); } <===> output.css foo { c0: black; c1: #050000; c2: #0a0000; c3: #0f0000; c4: #140000; c5: #1a0000; c6: #1f0000; c7: #240000; c8: #290000; c9: #2e0000; c10: #330000; c11: #380000; c12: #3d0000; c13: #420000; c14: #470000; c15: #4d0000; c16: #520000; c17: #570000; c18: #5c0000; c19: #610000; c20: #660000; c21: #6b0000; c22: #700000; c23: #750000; c24: #7a0000; c25: maroon; c26: #850000; c27: #8a0000; c28: #8f0000; c29: #940000; c30: #990000; c31: #9e0000; c32: #a30000; c33: #a80000; c34: #ad0000; c35: #b30000; c36: #b80000; c37: #bd0000; c38: #c20000; c39: #c70000; c40: #cc0000; c41: #d10000; c42: #d60000; c43: #db0000; c44: #e00000; c45: #e60000; c46: #eb0000; c47: #f00000; c48: #f50000; c49: #fa0000; c50: red; c51: #ff0505; c52: #ff0a0a; c53: #ff0f0f; c54: #ff1414; c55: #ff1a1a; c56: #ff1f1f; c57: #ff2424; c58: #ff2929; c59: #ff2e2e; c60: #ff3333; c61: #ff3838; c62: #ff3d3d; c63: #ff4242; c64: #ff4747; c65: #ff4d4d; c66: #ff5252; c67: #ff5757; c68: #ff5c5c; c69: #ff6161; c70: #ff6666; c71: #ff6b6b; c72: #ff7070; c73: #ff7575; c74: #ff7a7a; c75: #ff8080; c76: #ff8585; c77: #ff8a8a; c78: #ff8f8f; c79: #ff9494; c80: #ff9999; c81: #ff9e9e; c82: #ffa3a3; c83: #ffa8a8; c84: #ffadad; c85: #ffb3b3; c86: #ffb8b8; c87: #ffbdbd; c88: #ffc2c2; c89: #ffc7c7; c90: #ffcccc; c91: #ffd1d1; c92: #ffd6d6; c93: #ffdbdb; c94: #ffe0e0; c95: #ffe6e6; c96: #ffebeb; c97: #fff0f0; c98: #fff5f5; c99: snow; } sass-spec-libsass-3.6.3/spec/libsass/color-functions/other/change-color/r.hrx000066400000000000000000000330621355712145100272560ustar00rootroot00000000000000<===> input.scss foo { // c-1: change-color(black,$red:-1); c0: change-color(black,$red:0); c1: change-color(black,$red:1); c2: change-color(black,$red:2); c3: change-color(black,$red:3); c4: change-color(black,$red:4); c5: change-color(black,$red:5); c6: change-color(black,$red:6); c7: change-color(black,$red:7); c8: change-color(black,$red:8); c9: change-color(black,$red:9); c10: change-color(black,$red:10); c11: change-color(black,$red:11); c12: change-color(black,$red:12); c13: change-color(black,$red:13); c14: change-color(black,$red:14); c15: change-color(black,$red:15); c16: change-color(black,$red:16); c17: change-color(black,$red:17); c18: change-color(black,$red:18); c19: change-color(black,$red:19); c20: change-color(black,$red:20); c21: change-color(black,$red:21); c22: change-color(black,$red:22); c23: change-color(black,$red:23); c24: change-color(black,$red:24); c25: change-color(black,$red:25); c26: change-color(black,$red:26); c27: change-color(black,$red:27); c28: change-color(black,$red:28); c29: change-color(black,$red:29); c30: change-color(black,$red:30); c31: change-color(black,$red:31); c32: change-color(black,$red:32); c33: change-color(black,$red:33); c34: change-color(black,$red:34); c35: change-color(black,$red:35); c36: change-color(black,$red:36); c37: change-color(black,$red:37); c38: change-color(black,$red:38); c39: change-color(black,$red:39); c40: change-color(black,$red:40); c41: change-color(black,$red:41); c42: change-color(black,$red:42); c43: change-color(black,$red:43); c44: change-color(black,$red:44); c45: change-color(black,$red:45); c46: change-color(black,$red:46); c47: change-color(black,$red:47); c48: change-color(black,$red:48); c49: change-color(black,$red:49); c50: change-color(black,$red:50); c51: change-color(black,$red:51); c52: change-color(black,$red:52); c53: change-color(black,$red:53); c54: change-color(black,$red:54); c55: change-color(black,$red:55); c56: change-color(black,$red:56); c57: change-color(black,$red:57); c58: change-color(black,$red:58); c59: change-color(black,$red:59); c60: change-color(black,$red:60); c61: change-color(black,$red:61); c62: change-color(black,$red:62); c63: change-color(black,$red:63); c64: change-color(black,$red:64); c65: change-color(black,$red:65); c66: change-color(black,$red:66); c67: change-color(black,$red:67); c68: change-color(black,$red:68); c69: change-color(black,$red:69); c70: change-color(black,$red:70); c71: change-color(black,$red:71); c72: change-color(black,$red:72); c73: change-color(black,$red:73); c74: change-color(black,$red:74); c75: change-color(black,$red:75); c76: change-color(black,$red:76); c77: change-color(black,$red:77); c78: change-color(black,$red:78); c79: change-color(black,$red:79); c80: change-color(black,$red:80); c81: change-color(black,$red:81); c82: change-color(black,$red:82); c83: change-color(black,$red:83); c84: change-color(black,$red:84); c85: change-color(black,$red:85); c86: change-color(black,$red:86); c87: change-color(black,$red:87); c88: change-color(black,$red:88); c89: change-color(black,$red:89); c90: change-color(black,$red:90); c91: change-color(black,$red:91); c92: change-color(black,$red:92); c93: change-color(black,$red:93); c94: change-color(black,$red:94); c95: change-color(black,$red:95); c96: change-color(black,$red:96); c97: change-color(black,$red:97); c98: change-color(black,$red:98); c99: change-color(black,$red:99); c100: change-color(black,$red:100); c101: change-color(black,$red:101); c102: change-color(black,$red:102); c103: change-color(black,$red:103); c104: change-color(black,$red:104); c105: change-color(black,$red:105); c106: change-color(black,$red:106); c107: change-color(black,$red:107); c108: change-color(black,$red:108); c109: change-color(black,$red:109); c110: change-color(black,$red:110); c111: change-color(black,$red:111); c112: change-color(black,$red:112); c113: change-color(black,$red:113); c114: change-color(black,$red:114); c115: change-color(black,$red:115); c116: change-color(black,$red:116); c117: change-color(black,$red:117); c118: change-color(black,$red:118); c119: change-color(black,$red:119); c120: change-color(black,$red:120); c121: change-color(black,$red:121); c122: change-color(black,$red:122); c123: change-color(black,$red:123); c124: change-color(black,$red:124); c125: change-color(black,$red:125); c126: change-color(black,$red:126); c127: change-color(black,$red:127); c128: change-color(black,$red:128); c129: change-color(black,$red:129); c130: change-color(black,$red:130); c131: change-color(black,$red:131); c132: change-color(black,$red:132); c133: change-color(black,$red:133); c134: change-color(black,$red:134); c135: change-color(black,$red:135); c136: change-color(black,$red:136); c137: change-color(black,$red:137); c138: change-color(black,$red:138); c139: change-color(black,$red:139); c140: change-color(black,$red:140); c141: change-color(black,$red:141); c142: change-color(black,$red:142); c143: change-color(black,$red:143); c144: change-color(black,$red:144); c145: change-color(black,$red:145); c146: change-color(black,$red:146); c147: change-color(black,$red:147); c148: change-color(black,$red:148); c149: change-color(black,$red:149); c150: change-color(black,$red:150); c151: change-color(black,$red:151); c152: change-color(black,$red:152); c153: change-color(black,$red:153); c154: change-color(black,$red:154); c155: change-color(black,$red:155); c156: change-color(black,$red:156); c157: change-color(black,$red:157); c158: change-color(black,$red:158); c159: change-color(black,$red:159); c160: change-color(black,$red:160); c161: change-color(black,$red:161); c162: change-color(black,$red:162); c163: change-color(black,$red:163); c164: change-color(black,$red:164); c165: change-color(black,$red:165); c166: change-color(black,$red:166); c167: change-color(black,$red:167); c168: change-color(black,$red:168); c169: change-color(black,$red:169); c170: change-color(black,$red:170); c171: change-color(black,$red:171); c172: change-color(black,$red:172); c173: change-color(black,$red:173); c174: change-color(black,$red:174); c175: change-color(black,$red:175); c176: change-color(black,$red:176); c177: change-color(black,$red:177); c178: change-color(black,$red:178); c179: change-color(black,$red:179); c180: change-color(black,$red:180); c181: change-color(black,$red:181); c182: change-color(black,$red:182); c183: change-color(black,$red:183); c184: change-color(black,$red:184); c185: change-color(black,$red:185); c186: change-color(black,$red:186); c187: change-color(black,$red:187); c188: change-color(black,$red:188); c189: change-color(black,$red:189); c190: change-color(black,$red:190); c191: change-color(black,$red:191); c192: change-color(black,$red:192); c193: change-color(black,$red:193); c194: change-color(black,$red:194); c195: change-color(black,$red:195); c196: change-color(black,$red:196); c197: change-color(black,$red:197); c198: change-color(black,$red:198); c199: change-color(black,$red:199); c200: change-color(black,$red:200); c201: change-color(black,$red:201); c202: change-color(black,$red:202); c203: change-color(black,$red:203); c204: change-color(black,$red:204); c205: change-color(black,$red:205); c206: change-color(black,$red:206); c207: change-color(black,$red:207); c208: change-color(black,$red:208); c209: change-color(black,$red:209); c210: change-color(black,$red:210); c211: change-color(black,$red:211); c212: change-color(black,$red:212); c213: change-color(black,$red:213); c214: change-color(black,$red:214); c215: change-color(black,$red:215); c216: change-color(black,$red:216); c217: change-color(black,$red:217); c218: change-color(black,$red:218); c219: change-color(black,$red:219); c220: change-color(black,$red:220); c221: change-color(black,$red:221); c222: change-color(black,$red:222); c223: change-color(black,$red:223); c224: change-color(black,$red:224); c225: change-color(black,$red:225); c226: change-color(black,$red:226); c227: change-color(black,$red:227); c228: change-color(black,$red:228); c229: change-color(black,$red:229); c230: change-color(black,$red:230); c231: change-color(black,$red:231); c232: change-color(black,$red:232); c233: change-color(black,$red:233); c234: change-color(black,$red:234); c235: change-color(black,$red:235); c236: change-color(black,$red:236); c237: change-color(black,$red:237); c238: change-color(black,$red:238); c239: change-color(black,$red:239); c240: change-color(black,$red:240); c241: change-color(black,$red:241); c242: change-color(black,$red:242); c243: change-color(black,$red:243); c244: change-color(black,$red:244); c245: change-color(black,$red:245); c246: change-color(black,$red:246); c247: change-color(black,$red:247); c248: change-color(black,$red:248); c249: change-color(black,$red:249); c250: change-color(black,$red:250); c251: change-color(black,$red:251); c252: change-color(black,$red:252); c253: change-color(black,$red:253); c254: change-color(black,$red:254); c255: change-color(black,$red:255); // c256: change-color(black,$red:256); } <===> output.css foo { c0: black; c1: #010000; c2: #020000; c3: #030000; c4: #040000; c5: #050000; c6: #060000; c7: #070000; c8: #080000; c9: #090000; c10: #0a0000; c11: #0b0000; c12: #0c0000; c13: #0d0000; c14: #0e0000; c15: #0f0000; c16: #100000; c17: #110000; c18: #120000; c19: #130000; c20: #140000; c21: #150000; c22: #160000; c23: #170000; c24: #180000; c25: #190000; c26: #1a0000; c27: #1b0000; c28: #1c0000; c29: #1d0000; c30: #1e0000; c31: #1f0000; c32: #200000; c33: #210000; c34: #220000; c35: #230000; c36: #240000; c37: #250000; c38: #260000; c39: #270000; c40: #280000; c41: #290000; c42: #2a0000; c43: #2b0000; c44: #2c0000; c45: #2d0000; c46: #2e0000; c47: #2f0000; c48: #300000; c49: #310000; c50: #320000; c51: #330000; c52: #340000; c53: #350000; c54: #360000; c55: #370000; c56: #380000; c57: #390000; c58: #3a0000; c59: #3b0000; c60: #3c0000; c61: #3d0000; c62: #3e0000; c63: #3f0000; c64: #400000; c65: #410000; c66: #420000; c67: #430000; c68: #440000; c69: #450000; c70: #460000; c71: #470000; c72: #480000; c73: #490000; c74: #4a0000; c75: #4b0000; c76: #4c0000; c77: #4d0000; c78: #4e0000; c79: #4f0000; c80: #500000; c81: #510000; c82: #520000; c83: #530000; c84: #540000; c85: #550000; c86: #560000; c87: #570000; c88: #580000; c89: #590000; c90: #5a0000; c91: #5b0000; c92: #5c0000; c93: #5d0000; c94: #5e0000; c95: #5f0000; c96: #600000; c97: #610000; c98: #620000; c99: #630000; c100: #640000; c101: #650000; c102: #660000; c103: #670000; c104: #680000; c105: #690000; c106: #6a0000; c107: #6b0000; c108: #6c0000; c109: #6d0000; c110: #6e0000; c111: #6f0000; c112: #700000; c113: #710000; c114: #720000; c115: #730000; c116: #740000; c117: #750000; c118: #760000; c119: #770000; c120: #780000; c121: #790000; c122: #7a0000; c123: #7b0000; c124: #7c0000; c125: #7d0000; c126: #7e0000; c127: #7f0000; c128: maroon; c129: #810000; c130: #820000; c131: #830000; c132: #840000; c133: #850000; c134: #860000; c135: #870000; c136: #880000; c137: #890000; c138: #8a0000; c139: darkred; c140: #8c0000; c141: #8d0000; c142: #8e0000; c143: #8f0000; c144: #900000; c145: #910000; c146: #920000; c147: #930000; c148: #940000; c149: #950000; c150: #960000; c151: #970000; c152: #980000; c153: #990000; c154: #9a0000; c155: #9b0000; c156: #9c0000; c157: #9d0000; c158: #9e0000; c159: #9f0000; c160: #a00000; c161: #a10000; c162: #a20000; c163: #a30000; c164: #a40000; c165: #a50000; c166: #a60000; c167: #a70000; c168: #a80000; c169: #a90000; c170: #aa0000; c171: #ab0000; c172: #ac0000; c173: #ad0000; c174: #ae0000; c175: #af0000; c176: #b00000; c177: #b10000; c178: #b20000; c179: #b30000; c180: #b40000; c181: #b50000; c182: #b60000; c183: #b70000; c184: #b80000; c185: #b90000; c186: #ba0000; c187: #bb0000; c188: #bc0000; c189: #bd0000; c190: #be0000; c191: #bf0000; c192: #c00000; c193: #c10000; c194: #c20000; c195: #c30000; c196: #c40000; c197: #c50000; c198: #c60000; c199: #c70000; c200: #c80000; c201: #c90000; c202: #ca0000; c203: #cb0000; c204: #cc0000; c205: #cd0000; c206: #ce0000; c207: #cf0000; c208: #d00000; c209: #d10000; c210: #d20000; c211: #d30000; c212: #d40000; c213: #d50000; c214: #d60000; c215: #d70000; c216: #d80000; c217: #d90000; c218: #da0000; c219: #db0000; c220: #dc0000; c221: #dd0000; c222: #de0000; c223: #df0000; c224: #e00000; c225: #e10000; c226: #e20000; c227: #e30000; c228: #e40000; c229: #e50000; c230: #e60000; c231: #e70000; c232: #e80000; c233: #e90000; c234: #ea0000; c235: #eb0000; c236: #ec0000; c237: #ed0000; c238: #ee0000; c239: #ef0000; c240: #f00000; c241: #f10000; c242: #f20000; c243: #f30000; c244: #f40000; c245: #f50000; c246: #f60000; c247: #f70000; c248: #f80000; c249: #f90000; c250: #fa0000; c251: #fb0000; c252: #fc0000; c253: #fd0000; c254: #fe0000; c255: red; } sass-spec-libsass-3.6.3/spec/libsass/color-functions/other/change-color/s.hrx000066400000000000000000000133501355712145100272550ustar00rootroot00000000000000<===> input.scss foo { // c-1: change-color(red,$saturation:-1); c0: change-color(red,$saturation:0); c1: change-color(red,$saturation:1); c2: change-color(red,$saturation:2); c3: change-color(red,$saturation:3); c4: change-color(red,$saturation:4); c5: change-color(red,$saturation:5); c6: change-color(red,$saturation:6); c7: change-color(red,$saturation:7); c8: change-color(red,$saturation:8); c9: change-color(red,$saturation:9); c10: change-color(red,$saturation:10); c11: change-color(red,$saturation:11); c12: change-color(red,$saturation:12); c13: change-color(red,$saturation:13); c14: change-color(red,$saturation:14); c15: change-color(red,$saturation:15); c16: change-color(red,$saturation:16); c17: change-color(red,$saturation:17); c18: change-color(red,$saturation:18); c19: change-color(red,$saturation:19); c20: change-color(red,$saturation:20); c21: change-color(red,$saturation:21); c22: change-color(red,$saturation:22); c23: change-color(red,$saturation:23); c24: change-color(red,$saturation:24); c25: change-color(red,$saturation:25); c26: change-color(red,$saturation:26); c27: change-color(red,$saturation:27); c28: change-color(red,$saturation:28); c29: change-color(red,$saturation:29); c30: change-color(red,$saturation:30); c31: change-color(red,$saturation:31); c32: change-color(red,$saturation:32); c33: change-color(red,$saturation:33); c34: change-color(red,$saturation:34); c35: change-color(red,$saturation:35); c36: change-color(red,$saturation:36); c37: change-color(red,$saturation:37); c38: change-color(red,$saturation:38); c39: change-color(red,$saturation:39); c40: change-color(red,$saturation:40); c41: change-color(red,$saturation:41); c42: change-color(red,$saturation:42); c43: change-color(red,$saturation:43); c44: change-color(red,$saturation:44); c45: change-color(red,$saturation:45); c46: change-color(red,$saturation:46); c47: change-color(red,$saturation:47); c48: change-color(red,$saturation:48); c49: change-color(red,$saturation:49); c50: change-color(red,$saturation:50); c51: change-color(red,$saturation:51); c52: change-color(red,$saturation:52); c53: change-color(red,$saturation:53); c54: change-color(red,$saturation:54); c55: change-color(red,$saturation:55); c56: change-color(red,$saturation:56); c57: change-color(red,$saturation:57); c58: change-color(red,$saturation:58); c59: change-color(red,$saturation:59); c60: change-color(red,$saturation:60); c61: change-color(red,$saturation:61); c62: change-color(red,$saturation:62); c63: change-color(red,$saturation:63); c64: change-color(red,$saturation:64); c65: change-color(red,$saturation:65); c66: change-color(red,$saturation:66); c67: change-color(red,$saturation:67); c68: change-color(red,$saturation:68); c69: change-color(red,$saturation:69); c70: change-color(red,$saturation:70); c71: change-color(red,$saturation:71); c72: change-color(red,$saturation:72); c73: change-color(red,$saturation:73); c74: change-color(red,$saturation:74); c75: change-color(red,$saturation:75); c76: change-color(red,$saturation:76); c77: change-color(red,$saturation:77); c78: change-color(red,$saturation:78); c79: change-color(red,$saturation:79); c80: change-color(red,$saturation:80); c81: change-color(red,$saturation:81); c82: change-color(red,$saturation:82); c83: change-color(red,$saturation:83); c84: change-color(red,$saturation:84); c85: change-color(red,$saturation:85); c86: change-color(red,$saturation:86); c87: change-color(red,$saturation:87); c88: change-color(red,$saturation:88); c89: change-color(red,$saturation:89); c90: change-color(red,$saturation:90); c91: change-color(red,$saturation:91); c92: change-color(red,$saturation:92); c93: change-color(red,$saturation:93); c94: change-color(red,$saturation:94); c95: change-color(red,$saturation:95); c96: change-color(red,$saturation:96); c97: change-color(red,$saturation:97); c98: change-color(red,$saturation:98); c99: change-color(red,$saturation:99); c100: change-color(red,$saturation:100); // c101: change-color(red,$saturation:101); } <===> output.css foo { c0: gray; c1: #817e7e; c2: #827d7d; c3: #837c7c; c4: #857a7a; c5: #867979; c6: #877878; c7: #887777; c8: #8a7575; c9: #8b7474; c10: #8c7373; c11: #8e7171; c12: #8f7070; c13: #906f6f; c14: #916e6e; c15: #936c6c; c16: #946b6b; c17: #956a6a; c18: #966969; c19: #986767; c20: #996666; c21: #9a6565; c22: #9c6363; c23: #9d6262; c24: #9e6161; c25: #9f6060; c26: #a15e5e; c27: #a25d5d; c28: #a35c5c; c29: #a45b5b; c30: #a65959; c31: #a75858; c32: #a85757; c33: #aa5555; c34: #ab5454; c35: #ac5353; c36: #ad5252; c37: #af5050; c38: #b04f4f; c39: #b14e4e; c40: #b34d4d; c41: #b44b4b; c42: #b54a4a; c43: #b64949; c44: #b84747; c45: #b94646; c46: #ba4545; c47: #bb4444; c48: #bd4242; c49: #be4141; c50: #bf4040; c51: #c13e3e; c52: #c23d3d; c53: #c33c3c; c54: #c43b3b; c55: #c63939; c56: #c73838; c57: #c83737; c58: #c93636; c59: #cb3434; c60: #cc3333; c61: #cd3232; c62: #cf3030; c63: #d02f2f; c64: #d12e2e; c65: #d22d2d; c66: #d42b2b; c67: #d52a2a; c68: #d62929; c69: #d72828; c70: #d92626; c71: #da2525; c72: #db2424; c73: #dd2222; c74: #de2121; c75: #df2020; c76: #e01f1f; c77: #e21d1d; c78: #e31c1c; c79: #e41b1b; c80: #e61a1a; c81: #e71818; c82: #e81717; c83: #e91616; c84: #eb1414; c85: #ec1313; c86: #ed1212; c87: #ee1111; c88: #f00f0f; c89: #f10e0e; c90: #f20d0d; c91: #f40b0b; c92: #f50a0a; c93: #f60909; c94: #f70808; c95: #f90606; c96: #fa0505; c97: #fb0404; c98: #fc0303; c99: #fe0101; c100: red; } sass-spec-libsass-3.6.3/spec/libsass/color-functions/rgb/000077500000000000000000000000001355712145100233565ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/libsass/color-functions/rgb/rgb/000077500000000000000000000000001355712145100241305ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/libsass/color-functions/rgb/rgb/b.hrx000066400000000000000000000323731355712145100251040ustar00rootroot00000000000000<===> input.scss foo { c-1: rgb(0,0,-1); c0: rgb(0,0,0); c1: rgb(0,0,1); c2: rgb(0,0,2); c3: rgb(0,0,3); c4: rgb(0,0,4); c5: rgb(0,0,5); c6: rgb(0,0,6); c7: rgb(0,0,7); c8: rgb(0,0,8); c9: rgb(0,0,9); c10: rgb(0,0,10); c11: rgb(0,0,11); c12: rgb(0,0,12); c13: rgb(0,0,13); c14: rgb(0,0,14); c15: rgb(0,0,15); c16: rgb(0,0,16); c17: rgb(0,0,17); c18: rgb(0,0,18); c19: rgb(0,0,19); c20: rgb(0,0,20); c21: rgb(0,0,21); c22: rgb(0,0,22); c23: rgb(0,0,23); c24: rgb(0,0,24); c25: rgb(0,0,25); c26: rgb(0,0,26); c27: rgb(0,0,27); c28: rgb(0,0,28); c29: rgb(0,0,29); c30: rgb(0,0,30); c31: rgb(0,0,31); c32: rgb(0,0,32); c33: rgb(0,0,33); c34: rgb(0,0,34); c35: rgb(0,0,35); c36: rgb(0,0,36); c37: rgb(0,0,37); c38: rgb(0,0,38); c39: rgb(0,0,39); c40: rgb(0,0,40); c41: rgb(0,0,41); c42: rgb(0,0,42); c43: rgb(0,0,43); c44: rgb(0,0,44); c45: rgb(0,0,45); c46: rgb(0,0,46); c47: rgb(0,0,47); c48: rgb(0,0,48); c49: rgb(0,0,49); c50: rgb(0,0,50); c51: rgb(0,0,51); c52: rgb(0,0,52); c53: rgb(0,0,53); c54: rgb(0,0,54); c55: rgb(0,0,55); c56: rgb(0,0,56); c57: rgb(0,0,57); c58: rgb(0,0,58); c59: rgb(0,0,59); c60: rgb(0,0,60); c61: rgb(0,0,61); c62: rgb(0,0,62); c63: rgb(0,0,63); c64: rgb(0,0,64); c65: rgb(0,0,65); c66: rgb(0,0,66); c67: rgb(0,0,67); c68: rgb(0,0,68); c69: rgb(0,0,69); c70: rgb(0,0,70); c71: rgb(0,0,71); c72: rgb(0,0,72); c73: rgb(0,0,73); c74: rgb(0,0,74); c75: rgb(0,0,75); c76: rgb(0,0,76); c77: rgb(0,0,77); c78: rgb(0,0,78); c79: rgb(0,0,79); c80: rgb(0,0,80); c81: rgb(0,0,81); c82: rgb(0,0,82); c83: rgb(0,0,83); c84: rgb(0,0,84); c85: rgb(0,0,85); c86: rgb(0,0,86); c87: rgb(0,0,87); c88: rgb(0,0,88); c89: rgb(0,0,89); c90: rgb(0,0,90); c91: rgb(0,0,91); c92: rgb(0,0,92); c93: rgb(0,0,93); c94: rgb(0,0,94); c95: rgb(0,0,95); c96: rgb(0,0,96); c97: rgb(0,0,97); c98: rgb(0,0,98); c99: rgb(0,0,99); c100: rgb(0,0,100); c101: rgb(0,0,101); c102: rgb(0,0,102); c103: rgb(0,0,103); c104: rgb(0,0,104); c105: rgb(0,0,105); c106: rgb(0,0,106); c107: rgb(0,0,107); c108: rgb(0,0,108); c109: rgb(0,0,109); c110: rgb(0,0,110); c111: rgb(0,0,111); c112: rgb(0,0,112); c113: rgb(0,0,113); c114: rgb(0,0,114); c115: rgb(0,0,115); c116: rgb(0,0,116); c117: rgb(0,0,117); c118: rgb(0,0,118); c119: rgb(0,0,119); c120: rgb(0,0,120); c121: rgb(0,0,121); c122: rgb(0,0,122); c123: rgb(0,0,123); c124: rgb(0,0,124); c125: rgb(0,0,125); c126: rgb(0,0,126); c127: rgb(0,0,127); c128: rgb(0,0,128); c129: rgb(0,0,129); c130: rgb(0,0,130); c131: rgb(0,0,131); c132: rgb(0,0,132); c133: rgb(0,0,133); c134: rgb(0,0,134); c135: rgb(0,0,135); c136: rgb(0,0,136); c137: rgb(0,0,137); c138: rgb(0,0,138); c139: rgb(0,0,139); c140: rgb(0,0,140); c141: rgb(0,0,141); c142: rgb(0,0,142); c143: rgb(0,0,143); c144: rgb(0,0,144); c145: rgb(0,0,145); c146: rgb(0,0,146); c147: rgb(0,0,147); c148: rgb(0,0,148); c149: rgb(0,0,149); c150: rgb(0,0,150); c151: rgb(0,0,151); c152: rgb(0,0,152); c153: rgb(0,0,153); c154: rgb(0,0,154); c155: rgb(0,0,155); c156: rgb(0,0,156); c157: rgb(0,0,157); c158: rgb(0,0,158); c159: rgb(0,0,159); c160: rgb(0,0,160); c161: rgb(0,0,161); c162: rgb(0,0,162); c163: rgb(0,0,163); c164: rgb(0,0,164); c165: rgb(0,0,165); c166: rgb(0,0,166); c167: rgb(0,0,167); c168: rgb(0,0,168); c169: rgb(0,0,169); c170: rgb(0,0,170); c171: rgb(0,0,171); c172: rgb(0,0,172); c173: rgb(0,0,173); c174: rgb(0,0,174); c175: rgb(0,0,175); c176: rgb(0,0,176); c177: rgb(0,0,177); c178: rgb(0,0,178); c179: rgb(0,0,179); c180: rgb(0,0,180); c181: rgb(0,0,181); c182: rgb(0,0,182); c183: rgb(0,0,183); c184: rgb(0,0,184); c185: rgb(0,0,185); c186: rgb(0,0,186); c187: rgb(0,0,187); c188: rgb(0,0,188); c189: rgb(0,0,189); c190: rgb(0,0,190); c191: rgb(0,0,191); c192: rgb(0,0,192); c193: rgb(0,0,193); c194: rgb(0,0,194); c195: rgb(0,0,195); c196: rgb(0,0,196); c197: rgb(0,0,197); c198: rgb(0,0,198); c199: rgb(0,0,199); c200: rgb(0,0,200); c201: rgb(0,0,201); c202: rgb(0,0,202); c203: rgb(0,0,203); c204: rgb(0,0,204); c205: rgb(0,0,205); c206: rgb(0,0,206); c207: rgb(0,0,207); c208: rgb(0,0,208); c209: rgb(0,0,209); c210: rgb(0,0,210); c211: rgb(0,0,211); c212: rgb(0,0,212); c213: rgb(0,0,213); c214: rgb(0,0,214); c215: rgb(0,0,215); c216: rgb(0,0,216); c217: rgb(0,0,217); c218: rgb(0,0,218); c219: rgb(0,0,219); c220: rgb(0,0,220); c221: rgb(0,0,221); c222: rgb(0,0,222); c223: rgb(0,0,223); c224: rgb(0,0,224); c225: rgb(0,0,225); c226: rgb(0,0,226); c227: rgb(0,0,227); c228: rgb(0,0,228); c229: rgb(0,0,229); c230: rgb(0,0,230); c231: rgb(0,0,231); c232: rgb(0,0,232); c233: rgb(0,0,233); c234: rgb(0,0,234); c235: rgb(0,0,235); c236: rgb(0,0,236); c237: rgb(0,0,237); c238: rgb(0,0,238); c239: rgb(0,0,239); c240: rgb(0,0,240); c241: rgb(0,0,241); c242: rgb(0,0,242); c243: rgb(0,0,243); c244: rgb(0,0,244); c245: rgb(0,0,245); c246: rgb(0,0,246); c247: rgb(0,0,247); c248: rgb(0,0,248); c249: rgb(0,0,249); c250: rgb(0,0,250); c251: rgb(0,0,251); c252: rgb(0,0,252); c253: rgb(0,0,253); c254: rgb(0,0,254); c255: rgb(0,0,255); c256: rgb(0,0,256); } foo { c-1: rgb(0,0,-1%); c0: rgb(0,0,0%); c1: rgb(0,0,1%); c2: rgb(0,0,2%); c3: rgb(0,0,3%); c4: rgb(0,0,4%); c5: rgb(0,0,5%); c6: rgb(0,0,6%); c7: rgb(0,0,7%); c8: rgb(0,0,8%); c9: rgb(0,0,9%); c10: rgb(0,0,10%); c11: rgb(0,0,11%); c12: rgb(0,0,12%); c13: rgb(0,0,13%); c14: rgb(0,0,14%); c15: rgb(0,0,15%); c16: rgb(0,0,16%); c17: rgb(0,0,17%); c18: rgb(0,0,18%); c19: rgb(0,0,19%); c20: rgb(0,0,20%); c21: rgb(0,0,21%); c22: rgb(0,0,22%); c23: rgb(0,0,23%); c24: rgb(0,0,24%); c25: rgb(0,0,25%); c26: rgb(0,0,26%); c27: rgb(0,0,27%); c28: rgb(0,0,28%); c29: rgb(0,0,29%); c30: rgb(0,0,30%); c31: rgb(0,0,31%); c32: rgb(0,0,32%); c33: rgb(0,0,33%); c34: rgb(0,0,34%); c35: rgb(0,0,35%); c36: rgb(0,0,36%); c37: rgb(0,0,37%); c38: rgb(0,0,38%); c39: rgb(0,0,39%); c40: rgb(0,0,40%); c41: rgb(0,0,41%); c42: rgb(0,0,42%); c43: rgb(0,0,43%); c44: rgb(0,0,44%); c45: rgb(0,0,45%); c46: rgb(0,0,46%); c47: rgb(0,0,47%); c48: rgb(0,0,48%); c49: rgb(0,0,49%); c50: rgb(0,0,50%); c51: rgb(0,0,51%); c52: rgb(0,0,52%); c53: rgb(0,0,53%); c54: rgb(0,0,54%); c55: rgb(0,0,55%); c56: rgb(0,0,56%); c57: rgb(0,0,57%); c58: rgb(0,0,58%); c59: rgb(0,0,59%); c60: rgb(0,0,60%); c61: rgb(0,0,61%); c62: rgb(0,0,62%); c63: rgb(0,0,63%); c64: rgb(0,0,64%); c65: rgb(0,0,65%); c66: rgb(0,0,66%); c67: rgb(0,0,67%); c68: rgb(0,0,68%); c69: rgb(0,0,69%); c70: rgb(0,0,70%); c71: rgb(0,0,71%); c72: rgb(0,0,72%); c73: rgb(0,0,73%); c74: rgb(0,0,74%); c75: rgb(0,0,75%); c76: rgb(0,0,76%); c77: rgb(0,0,77%); c78: rgb(0,0,78%); c79: rgb(0,0,79%); c80: rgb(0,0,80%); c81: rgb(0,0,81%); c82: rgb(0,0,82%); c83: rgb(0,0,83%); c84: rgb(0,0,84%); c85: rgb(0,0,85%); c86: rgb(0,0,86%); c87: rgb(0,0,87%); c88: rgb(0,0,88%); c89: rgb(0,0,89%); c90: rgb(0,0,90%); c91: rgb(0,0,91%); c92: rgb(0,0,92%); c93: rgb(0,0,93%); c94: rgb(0,0,94%); c95: rgb(0,0,95%); c96: rgb(0,0,96%); c97: rgb(0,0,97%); c98: rgb(0,0,98%); c99: rgb(0,0,99%); c100: rgb(0,0,100%); c101: rgb(0,0,101%); } <===> output.css foo { c-1: black; c0: black; c1: #000001; c2: #000002; c3: #000003; c4: #000004; c5: #000005; c6: #000006; c7: #000007; c8: #000008; c9: #000009; c10: #00000a; c11: #00000b; c12: #00000c; c13: #00000d; c14: #00000e; c15: #00000f; c16: #000010; c17: #000011; c18: #000012; c19: #000013; c20: #000014; c21: #000015; c22: #000016; c23: #000017; c24: #000018; c25: #000019; c26: #00001a; c27: #00001b; c28: #00001c; c29: #00001d; c30: #00001e; c31: #00001f; c32: #000020; c33: #000021; c34: #000022; c35: #000023; c36: #000024; c37: #000025; c38: #000026; c39: #000027; c40: #000028; c41: #000029; c42: #00002a; c43: #00002b; c44: #00002c; c45: #00002d; c46: #00002e; c47: #00002f; c48: #000030; c49: #000031; c50: #000032; c51: #000033; c52: #000034; c53: #000035; c54: #000036; c55: #000037; c56: #000038; c57: #000039; c58: #00003a; c59: #00003b; c60: #00003c; c61: #00003d; c62: #00003e; c63: #00003f; c64: #000040; c65: #000041; c66: #000042; c67: #000043; c68: #000044; c69: #000045; c70: #000046; c71: #000047; c72: #000048; c73: #000049; c74: #00004a; c75: #00004b; c76: #00004c; c77: #00004d; c78: #00004e; c79: #00004f; c80: #000050; c81: #000051; c82: #000052; c83: #000053; c84: #000054; c85: #000055; c86: #000056; c87: #000057; c88: #000058; c89: #000059; c90: #00005a; c91: #00005b; c92: #00005c; c93: #00005d; c94: #00005e; c95: #00005f; c96: #000060; c97: #000061; c98: #000062; c99: #000063; c100: #000064; c101: #000065; c102: #000066; c103: #000067; c104: #000068; c105: #000069; c106: #00006a; c107: #00006b; c108: #00006c; c109: #00006d; c110: #00006e; c111: #00006f; c112: #000070; c113: #000071; c114: #000072; c115: #000073; c116: #000074; c117: #000075; c118: #000076; c119: #000077; c120: #000078; c121: #000079; c122: #00007a; c123: #00007b; c124: #00007c; c125: #00007d; c126: #00007e; c127: #00007f; c128: navy; c129: #000081; c130: #000082; c131: #000083; c132: #000084; c133: #000085; c134: #000086; c135: #000087; c136: #000088; c137: #000089; c138: #00008a; c139: darkblue; c140: #00008c; c141: #00008d; c142: #00008e; c143: #00008f; c144: #000090; c145: #000091; c146: #000092; c147: #000093; c148: #000094; c149: #000095; c150: #000096; c151: #000097; c152: #000098; c153: #000099; c154: #00009a; c155: #00009b; c156: #00009c; c157: #00009d; c158: #00009e; c159: #00009f; c160: #0000a0; c161: #0000a1; c162: #0000a2; c163: #0000a3; c164: #0000a4; c165: #0000a5; c166: #0000a6; c167: #0000a7; c168: #0000a8; c169: #0000a9; c170: #0000aa; c171: #0000ab; c172: #0000ac; c173: #0000ad; c174: #0000ae; c175: #0000af; c176: #0000b0; c177: #0000b1; c178: #0000b2; c179: #0000b3; c180: #0000b4; c181: #0000b5; c182: #0000b6; c183: #0000b7; c184: #0000b8; c185: #0000b9; c186: #0000ba; c187: #0000bb; c188: #0000bc; c189: #0000bd; c190: #0000be; c191: #0000bf; c192: #0000c0; c193: #0000c1; c194: #0000c2; c195: #0000c3; c196: #0000c4; c197: #0000c5; c198: #0000c6; c199: #0000c7; c200: #0000c8; c201: #0000c9; c202: #0000ca; c203: #0000cb; c204: #0000cc; c205: mediumblue; c206: #0000ce; c207: #0000cf; c208: #0000d0; c209: #0000d1; c210: #0000d2; c211: #0000d3; c212: #0000d4; c213: #0000d5; c214: #0000d6; c215: #0000d7; c216: #0000d8; c217: #0000d9; c218: #0000da; c219: #0000db; c220: #0000dc; c221: #0000dd; c222: #0000de; c223: #0000df; c224: #0000e0; c225: #0000e1; c226: #0000e2; c227: #0000e3; c228: #0000e4; c229: #0000e5; c230: #0000e6; c231: #0000e7; c232: #0000e8; c233: #0000e9; c234: #0000ea; c235: #0000eb; c236: #0000ec; c237: #0000ed; c238: #0000ee; c239: #0000ef; c240: #0000f0; c241: #0000f1; c242: #0000f2; c243: #0000f3; c244: #0000f4; c245: #0000f5; c246: #0000f6; c247: #0000f7; c248: #0000f8; c249: #0000f9; c250: #0000fa; c251: #0000fb; c252: #0000fc; c253: #0000fd; c254: #0000fe; c255: blue; c256: blue; } foo { c-1: black; c0: black; c1: #000003; c2: #000005; c3: #000008; c4: #00000a; c5: #00000d; c6: #00000f; c7: #000012; c8: #000014; c9: #000017; c10: #00001a; c11: #00001c; c12: #00001f; c13: #000021; c14: #000024; c15: #000026; c16: #000029; c17: #00002b; c18: #00002e; c19: #000030; c20: #000033; c21: #000036; c22: #000038; c23: #00003b; c24: #00003d; c25: #000040; c26: #000042; c27: #000045; c28: #000047; c29: #00004a; c30: #00004d; c31: #00004f; c32: #000052; c33: #000054; c34: #000057; c35: #000059; c36: #00005c; c37: #00005e; c38: #000061; c39: #000063; c40: #000066; c41: #000069; c42: #00006b; c43: #00006e; c44: #000070; c45: #000073; c46: #000075; c47: #000078; c48: #00007a; c49: #00007d; c50: navy; c51: #000082; c52: #000085; c53: #000087; c54: #00008a; c55: #00008c; c56: #00008f; c57: #000091; c58: #000094; c59: #000096; c60: #000099; c61: #00009c; c62: #00009e; c63: #0000a1; c64: #0000a3; c65: #0000a6; c66: #0000a8; c67: #0000ab; c68: #0000ad; c69: #0000b0; c70: #0000b3; c71: #0000b5; c72: #0000b8; c73: #0000ba; c74: #0000bd; c75: #0000bf; c76: #0000c2; c77: #0000c4; c78: #0000c7; c79: #0000c9; c80: #0000cc; c81: #0000cf; c82: #0000d1; c83: #0000d4; c84: #0000d6; c85: #0000d9; c86: #0000db; c87: #0000de; c88: #0000e0; c89: #0000e3; c90: #0000e6; c91: #0000e8; c92: #0000eb; c93: #0000ed; c94: #0000f0; c95: #0000f2; c96: #0000f5; c97: #0000f7; c98: #0000fa; c99: #0000fc; c100: blue; c101: blue; } sass-spec-libsass-3.6.3/spec/libsass/color-functions/rgb/rgb/g.hrx000066400000000000000000000323731355712145100251110ustar00rootroot00000000000000<===> input.scss foo { c-1: rgb(0,-1,0); c0: rgb(0,0,0); c1: rgb(0,1,0); c2: rgb(0,2,0); c3: rgb(0,3,0); c4: rgb(0,4,0); c5: rgb(0,5,0); c6: rgb(0,6,0); c7: rgb(0,7,0); c8: rgb(0,8,0); c9: rgb(0,9,0); c10: rgb(0,10,0); c11: rgb(0,11,0); c12: rgb(0,12,0); c13: rgb(0,13,0); c14: rgb(0,14,0); c15: rgb(0,15,0); c16: rgb(0,16,0); c17: rgb(0,17,0); c18: rgb(0,18,0); c19: rgb(0,19,0); c20: rgb(0,20,0); c21: rgb(0,21,0); c22: rgb(0,22,0); c23: rgb(0,23,0); c24: rgb(0,24,0); c25: rgb(0,25,0); c26: rgb(0,26,0); c27: rgb(0,27,0); c28: rgb(0,28,0); c29: rgb(0,29,0); c30: rgb(0,30,0); c31: rgb(0,31,0); c32: rgb(0,32,0); c33: rgb(0,33,0); c34: rgb(0,34,0); c35: rgb(0,35,0); c36: rgb(0,36,0); c37: rgb(0,37,0); c38: rgb(0,38,0); c39: rgb(0,39,0); c40: rgb(0,40,0); c41: rgb(0,41,0); c42: rgb(0,42,0); c43: rgb(0,43,0); c44: rgb(0,44,0); c45: rgb(0,45,0); c46: rgb(0,46,0); c47: rgb(0,47,0); c48: rgb(0,48,0); c49: rgb(0,49,0); c50: rgb(0,50,0); c51: rgb(0,51,0); c52: rgb(0,52,0); c53: rgb(0,53,0); c54: rgb(0,54,0); c55: rgb(0,55,0); c56: rgb(0,56,0); c57: rgb(0,57,0); c58: rgb(0,58,0); c59: rgb(0,59,0); c60: rgb(0,60,0); c61: rgb(0,61,0); c62: rgb(0,62,0); c63: rgb(0,63,0); c64: rgb(0,64,0); c65: rgb(0,65,0); c66: rgb(0,66,0); c67: rgb(0,67,0); c68: rgb(0,68,0); c69: rgb(0,69,0); c70: rgb(0,70,0); c71: rgb(0,71,0); c72: rgb(0,72,0); c73: rgb(0,73,0); c74: rgb(0,74,0); c75: rgb(0,75,0); c76: rgb(0,76,0); c77: rgb(0,77,0); c78: rgb(0,78,0); c79: rgb(0,79,0); c80: rgb(0,80,0); c81: rgb(0,81,0); c82: rgb(0,82,0); c83: rgb(0,83,0); c84: rgb(0,84,0); c85: rgb(0,85,0); c86: rgb(0,86,0); c87: rgb(0,87,0); c88: rgb(0,88,0); c89: rgb(0,89,0); c90: rgb(0,90,0); c91: rgb(0,91,0); c92: rgb(0,92,0); c93: rgb(0,93,0); c94: rgb(0,94,0); c95: rgb(0,95,0); c96: rgb(0,96,0); c97: rgb(0,97,0); c98: rgb(0,98,0); c99: rgb(0,99,0); c100: rgb(0,100,0); c101: rgb(0,101,0); c102: rgb(0,102,0); c103: rgb(0,103,0); c104: rgb(0,104,0); c105: rgb(0,105,0); c106: rgb(0,106,0); c107: rgb(0,107,0); c108: rgb(0,108,0); c109: rgb(0,109,0); c110: rgb(0,110,0); c111: rgb(0,111,0); c112: rgb(0,112,0); c113: rgb(0,113,0); c114: rgb(0,114,0); c115: rgb(0,115,0); c116: rgb(0,116,0); c117: rgb(0,117,0); c118: rgb(0,118,0); c119: rgb(0,119,0); c120: rgb(0,120,0); c121: rgb(0,121,0); c122: rgb(0,122,0); c123: rgb(0,123,0); c124: rgb(0,124,0); c125: rgb(0,125,0); c126: rgb(0,126,0); c127: rgb(0,127,0); c128: rgb(0,128,0); c129: rgb(0,129,0); c130: rgb(0,130,0); c131: rgb(0,131,0); c132: rgb(0,132,0); c133: rgb(0,133,0); c134: rgb(0,134,0); c135: rgb(0,135,0); c136: rgb(0,136,0); c137: rgb(0,137,0); c138: rgb(0,138,0); c139: rgb(0,139,0); c140: rgb(0,140,0); c141: rgb(0,141,0); c142: rgb(0,142,0); c143: rgb(0,143,0); c144: rgb(0,144,0); c145: rgb(0,145,0); c146: rgb(0,146,0); c147: rgb(0,147,0); c148: rgb(0,148,0); c149: rgb(0,149,0); c150: rgb(0,150,0); c151: rgb(0,151,0); c152: rgb(0,152,0); c153: rgb(0,153,0); c154: rgb(0,154,0); c155: rgb(0,155,0); c156: rgb(0,156,0); c157: rgb(0,157,0); c158: rgb(0,158,0); c159: rgb(0,159,0); c160: rgb(0,160,0); c161: rgb(0,161,0); c162: rgb(0,162,0); c163: rgb(0,163,0); c164: rgb(0,164,0); c165: rgb(0,165,0); c166: rgb(0,166,0); c167: rgb(0,167,0); c168: rgb(0,168,0); c169: rgb(0,169,0); c170: rgb(0,170,0); c171: rgb(0,171,0); c172: rgb(0,172,0); c173: rgb(0,173,0); c174: rgb(0,174,0); c175: rgb(0,175,0); c176: rgb(0,176,0); c177: rgb(0,177,0); c178: rgb(0,178,0); c179: rgb(0,179,0); c180: rgb(0,180,0); c181: rgb(0,181,0); c182: rgb(0,182,0); c183: rgb(0,183,0); c184: rgb(0,184,0); c185: rgb(0,185,0); c186: rgb(0,186,0); c187: rgb(0,187,0); c188: rgb(0,188,0); c189: rgb(0,189,0); c190: rgb(0,190,0); c191: rgb(0,191,0); c192: rgb(0,192,0); c193: rgb(0,193,0); c194: rgb(0,194,0); c195: rgb(0,195,0); c196: rgb(0,196,0); c197: rgb(0,197,0); c198: rgb(0,198,0); c199: rgb(0,199,0); c200: rgb(0,200,0); c201: rgb(0,201,0); c202: rgb(0,202,0); c203: rgb(0,203,0); c204: rgb(0,204,0); c205: rgb(0,205,0); c206: rgb(0,206,0); c207: rgb(0,207,0); c208: rgb(0,208,0); c209: rgb(0,209,0); c210: rgb(0,210,0); c211: rgb(0,211,0); c212: rgb(0,212,0); c213: rgb(0,213,0); c214: rgb(0,214,0); c215: rgb(0,215,0); c216: rgb(0,216,0); c217: rgb(0,217,0); c218: rgb(0,218,0); c219: rgb(0,219,0); c220: rgb(0,220,0); c221: rgb(0,221,0); c222: rgb(0,222,0); c223: rgb(0,223,0); c224: rgb(0,224,0); c225: rgb(0,225,0); c226: rgb(0,226,0); c227: rgb(0,227,0); c228: rgb(0,228,0); c229: rgb(0,229,0); c230: rgb(0,230,0); c231: rgb(0,231,0); c232: rgb(0,232,0); c233: rgb(0,233,0); c234: rgb(0,234,0); c235: rgb(0,235,0); c236: rgb(0,236,0); c237: rgb(0,237,0); c238: rgb(0,238,0); c239: rgb(0,239,0); c240: rgb(0,240,0); c241: rgb(0,241,0); c242: rgb(0,242,0); c243: rgb(0,243,0); c244: rgb(0,244,0); c245: rgb(0,245,0); c246: rgb(0,246,0); c247: rgb(0,247,0); c248: rgb(0,248,0); c249: rgb(0,249,0); c250: rgb(0,250,0); c251: rgb(0,251,0); c252: rgb(0,252,0); c253: rgb(0,253,0); c254: rgb(0,254,0); c255: rgb(0,255,0); c256: rgb(0,256,0); } foo { c-1: rgb(0,-1%,0); c0: rgb(0,0%,0); c1: rgb(0,1%,0); c2: rgb(0,2%,0); c3: rgb(0,3%,0); c4: rgb(0,4%,0); c5: rgb(0,5%,0); c6: rgb(0,6%,0); c7: rgb(0,7%,0); c8: rgb(0,8%,0); c9: rgb(0,9%,0); c10: rgb(0,10%,0); c11: rgb(0,11%,0); c12: rgb(0,12%,0); c13: rgb(0,13%,0); c14: rgb(0,14%,0); c15: rgb(0,15%,0); c16: rgb(0,16%,0); c17: rgb(0,17%,0); c18: rgb(0,18%,0); c19: rgb(0,19%,0); c20: rgb(0,20%,0); c21: rgb(0,21%,0); c22: rgb(0,22%,0); c23: rgb(0,23%,0); c24: rgb(0,24%,0); c25: rgb(0,25%,0); c26: rgb(0,26%,0); c27: rgb(0,27%,0); c28: rgb(0,28%,0); c29: rgb(0,29%,0); c30: rgb(0,30%,0); c31: rgb(0,31%,0); c32: rgb(0,32%,0); c33: rgb(0,33%,0); c34: rgb(0,34%,0); c35: rgb(0,35%,0); c36: rgb(0,36%,0); c37: rgb(0,37%,0); c38: rgb(0,38%,0); c39: rgb(0,39%,0); c40: rgb(0,40%,0); c41: rgb(0,41%,0); c42: rgb(0,42%,0); c43: rgb(0,43%,0); c44: rgb(0,44%,0); c45: rgb(0,45%,0); c46: rgb(0,46%,0); c47: rgb(0,47%,0); c48: rgb(0,48%,0); c49: rgb(0,49%,0); c50: rgb(0,50%,0); c51: rgb(0,51%,0); c52: rgb(0,52%,0); c53: rgb(0,53%,0); c54: rgb(0,54%,0); c55: rgb(0,55%,0); c56: rgb(0,56%,0); c57: rgb(0,57%,0); c58: rgb(0,58%,0); c59: rgb(0,59%,0); c60: rgb(0,60%,0); c61: rgb(0,61%,0); c62: rgb(0,62%,0); c63: rgb(0,63%,0); c64: rgb(0,64%,0); c65: rgb(0,65%,0); c66: rgb(0,66%,0); c67: rgb(0,67%,0); c68: rgb(0,68%,0); c69: rgb(0,69%,0); c70: rgb(0,70%,0); c71: rgb(0,71%,0); c72: rgb(0,72%,0); c73: rgb(0,73%,0); c74: rgb(0,74%,0); c75: rgb(0,75%,0); c76: rgb(0,76%,0); c77: rgb(0,77%,0); c78: rgb(0,78%,0); c79: rgb(0,79%,0); c80: rgb(0,80%,0); c81: rgb(0,81%,0); c82: rgb(0,82%,0); c83: rgb(0,83%,0); c84: rgb(0,84%,0); c85: rgb(0,85%,0); c86: rgb(0,86%,0); c87: rgb(0,87%,0); c88: rgb(0,88%,0); c89: rgb(0,89%,0); c90: rgb(0,90%,0); c91: rgb(0,91%,0); c92: rgb(0,92%,0); c93: rgb(0,93%,0); c94: rgb(0,94%,0); c95: rgb(0,95%,0); c96: rgb(0,96%,0); c97: rgb(0,97%,0); c98: rgb(0,98%,0); c99: rgb(0,99%,0); c100: rgb(0,100%,0); c101: rgb(0,101%,0); } <===> output.css foo { c-1: black; c0: black; c1: #000100; c2: #000200; c3: #000300; c4: #000400; c5: #000500; c6: #000600; c7: #000700; c8: #000800; c9: #000900; c10: #000a00; c11: #000b00; c12: #000c00; c13: #000d00; c14: #000e00; c15: #000f00; c16: #001000; c17: #001100; c18: #001200; c19: #001300; c20: #001400; c21: #001500; c22: #001600; c23: #001700; c24: #001800; c25: #001900; c26: #001a00; c27: #001b00; c28: #001c00; c29: #001d00; c30: #001e00; c31: #001f00; c32: #002000; c33: #002100; c34: #002200; c35: #002300; c36: #002400; c37: #002500; c38: #002600; c39: #002700; c40: #002800; c41: #002900; c42: #002a00; c43: #002b00; c44: #002c00; c45: #002d00; c46: #002e00; c47: #002f00; c48: #003000; c49: #003100; c50: #003200; c51: #003300; c52: #003400; c53: #003500; c54: #003600; c55: #003700; c56: #003800; c57: #003900; c58: #003a00; c59: #003b00; c60: #003c00; c61: #003d00; c62: #003e00; c63: #003f00; c64: #004000; c65: #004100; c66: #004200; c67: #004300; c68: #004400; c69: #004500; c70: #004600; c71: #004700; c72: #004800; c73: #004900; c74: #004a00; c75: #004b00; c76: #004c00; c77: #004d00; c78: #004e00; c79: #004f00; c80: #005000; c81: #005100; c82: #005200; c83: #005300; c84: #005400; c85: #005500; c86: #005600; c87: #005700; c88: #005800; c89: #005900; c90: #005a00; c91: #005b00; c92: #005c00; c93: #005d00; c94: #005e00; c95: #005f00; c96: #006000; c97: #006100; c98: #006200; c99: #006300; c100: darkgreen; c101: #006500; c102: #006600; c103: #006700; c104: #006800; c105: #006900; c106: #006a00; c107: #006b00; c108: #006c00; c109: #006d00; c110: #006e00; c111: #006f00; c112: #007000; c113: #007100; c114: #007200; c115: #007300; c116: #007400; c117: #007500; c118: #007600; c119: #007700; c120: #007800; c121: #007900; c122: #007a00; c123: #007b00; c124: #007c00; c125: #007d00; c126: #007e00; c127: #007f00; c128: green; c129: #008100; c130: #008200; c131: #008300; c132: #008400; c133: #008500; c134: #008600; c135: #008700; c136: #008800; c137: #008900; c138: #008a00; c139: #008b00; c140: #008c00; c141: #008d00; c142: #008e00; c143: #008f00; c144: #009000; c145: #009100; c146: #009200; c147: #009300; c148: #009400; c149: #009500; c150: #009600; c151: #009700; c152: #009800; c153: #009900; c154: #009a00; c155: #009b00; c156: #009c00; c157: #009d00; c158: #009e00; c159: #009f00; c160: #00a000; c161: #00a100; c162: #00a200; c163: #00a300; c164: #00a400; c165: #00a500; c166: #00a600; c167: #00a700; c168: #00a800; c169: #00a900; c170: #00aa00; c171: #00ab00; c172: #00ac00; c173: #00ad00; c174: #00ae00; c175: #00af00; c176: #00b000; c177: #00b100; c178: #00b200; c179: #00b300; c180: #00b400; c181: #00b500; c182: #00b600; c183: #00b700; c184: #00b800; c185: #00b900; c186: #00ba00; c187: #00bb00; c188: #00bc00; c189: #00bd00; c190: #00be00; c191: #00bf00; c192: #00c000; c193: #00c100; c194: #00c200; c195: #00c300; c196: #00c400; c197: #00c500; c198: #00c600; c199: #00c700; c200: #00c800; c201: #00c900; c202: #00ca00; c203: #00cb00; c204: #00cc00; c205: #00cd00; c206: #00ce00; c207: #00cf00; c208: #00d000; c209: #00d100; c210: #00d200; c211: #00d300; c212: #00d400; c213: #00d500; c214: #00d600; c215: #00d700; c216: #00d800; c217: #00d900; c218: #00da00; c219: #00db00; c220: #00dc00; c221: #00dd00; c222: #00de00; c223: #00df00; c224: #00e000; c225: #00e100; c226: #00e200; c227: #00e300; c228: #00e400; c229: #00e500; c230: #00e600; c231: #00e700; c232: #00e800; c233: #00e900; c234: #00ea00; c235: #00eb00; c236: #00ec00; c237: #00ed00; c238: #00ee00; c239: #00ef00; c240: #00f000; c241: #00f100; c242: #00f200; c243: #00f300; c244: #00f400; c245: #00f500; c246: #00f600; c247: #00f700; c248: #00f800; c249: #00f900; c250: #00fa00; c251: #00fb00; c252: #00fc00; c253: #00fd00; c254: #00fe00; c255: lime; c256: lime; } foo { c-1: black; c0: black; c1: #000300; c2: #000500; c3: #000800; c4: #000a00; c5: #000d00; c6: #000f00; c7: #001200; c8: #001400; c9: #001700; c10: #001a00; c11: #001c00; c12: #001f00; c13: #002100; c14: #002400; c15: #002600; c16: #002900; c17: #002b00; c18: #002e00; c19: #003000; c20: #003300; c21: #003600; c22: #003800; c23: #003b00; c24: #003d00; c25: #004000; c26: #004200; c27: #004500; c28: #004700; c29: #004a00; c30: #004d00; c31: #004f00; c32: #005200; c33: #005400; c34: #005700; c35: #005900; c36: #005c00; c37: #005e00; c38: #006100; c39: #006300; c40: #006600; c41: #006900; c42: #006b00; c43: #006e00; c44: #007000; c45: #007300; c46: #007500; c47: #007800; c48: #007a00; c49: #007d00; c50: green; c51: #008200; c52: #008500; c53: #008700; c54: #008a00; c55: #008c00; c56: #008f00; c57: #009100; c58: #009400; c59: #009600; c60: #009900; c61: #009c00; c62: #009e00; c63: #00a100; c64: #00a300; c65: #00a600; c66: #00a800; c67: #00ab00; c68: #00ad00; c69: #00b000; c70: #00b300; c71: #00b500; c72: #00b800; c73: #00ba00; c74: #00bd00; c75: #00bf00; c76: #00c200; c77: #00c400; c78: #00c700; c79: #00c900; c80: #00cc00; c81: #00cf00; c82: #00d100; c83: #00d400; c84: #00d600; c85: #00d900; c86: #00db00; c87: #00de00; c88: #00e000; c89: #00e300; c90: #00e600; c91: #00e800; c92: #00eb00; c93: #00ed00; c94: #00f000; c95: #00f200; c96: #00f500; c97: #00f700; c98: #00fa00; c99: #00fc00; c100: lime; c101: lime; } sass-spec-libsass-3.6.3/spec/libsass/color-functions/rgb/rgb/r.hrx000066400000000000000000000323721355712145100251230ustar00rootroot00000000000000<===> input.scss foo { c-1: rgb(0,-1,0); c0: rgb(0,0,0); c1: rgb(0,1,0); c2: rgb(0,2,0); c3: rgb(0,3,0); c4: rgb(0,4,0); c5: rgb(0,5,0); c6: rgb(0,6,0); c7: rgb(0,7,0); c8: rgb(0,8,0); c9: rgb(0,9,0); c10: rgb(0,10,0); c11: rgb(0,11,0); c12: rgb(0,12,0); c13: rgb(0,13,0); c14: rgb(0,14,0); c15: rgb(0,15,0); c16: rgb(0,16,0); c17: rgb(0,17,0); c18: rgb(0,18,0); c19: rgb(0,19,0); c20: rgb(0,20,0); c21: rgb(0,21,0); c22: rgb(0,22,0); c23: rgb(0,23,0); c24: rgb(0,24,0); c25: rgb(0,25,0); c26: rgb(0,26,0); c27: rgb(0,27,0); c28: rgb(0,28,0); c29: rgb(0,29,0); c30: rgb(0,30,0); c31: rgb(0,31,0); c32: rgb(0,32,0); c33: rgb(0,33,0); c34: rgb(0,34,0); c35: rgb(0,35,0); c36: rgb(0,36,0); c37: rgb(0,37,0); c38: rgb(0,38,0); c39: rgb(0,39,0); c40: rgb(0,40,0); c41: rgb(0,41,0); c42: rgb(0,42,0); c43: rgb(0,43,0); c44: rgb(0,44,0); c45: rgb(0,45,0); c46: rgb(0,46,0); c47: rgb(0,47,0); c48: rgb(0,48,0); c49: rgb(0,49,0); c50: rgb(0,50,0); c51: rgb(0,51,0); c52: rgb(0,52,0); c53: rgb(0,53,0); c54: rgb(0,54,0); c55: rgb(0,55,0); c56: rgb(0,56,0); c57: rgb(0,57,0); c58: rgb(0,58,0); c59: rgb(0,59,0); c60: rgb(0,60,0); c61: rgb(0,61,0); c62: rgb(0,62,0); c63: rgb(0,63,0); c64: rgb(0,64,0); c65: rgb(0,65,0); c66: rgb(0,66,0); c67: rgb(0,67,0); c68: rgb(0,68,0); c69: rgb(0,69,0); c70: rgb(0,70,0); c71: rgb(0,71,0); c72: rgb(0,72,0); c73: rgb(0,73,0); c74: rgb(0,74,0); c75: rgb(0,75,0); c76: rgb(0,76,0); c77: rgb(0,77,0); c78: rgb(0,78,0); c79: rgb(0,79,0); c80: rgb(0,80,0); c81: rgb(0,81,0); c82: rgb(0,82,0); c83: rgb(0,83,0); c84: rgb(0,84,0); c85: rgb(0,85,0); c86: rgb(0,86,0); c87: rgb(0,87,0); c88: rgb(0,88,0); c89: rgb(0,89,0); c90: rgb(0,90,0); c91: rgb(0,91,0); c92: rgb(0,92,0); c93: rgb(0,93,0); c94: rgb(0,94,0); c95: rgb(0,95,0); c96: rgb(0,96,0); c97: rgb(0,97,0); c98: rgb(0,98,0); c99: rgb(0,99,0); c100: rgb(0,100,0); c101: rgb(0,101,0); c102: rgb(0,102,0); c103: rgb(0,103,0); c104: rgb(0,104,0); c105: rgb(0,105,0); c106: rgb(0,106,0); c107: rgb(0,107,0); c108: rgb(0,108,0); c109: rgb(0,109,0); c110: rgb(0,110,0); c111: rgb(0,111,0); c112: rgb(0,112,0); c113: rgb(0,113,0); c114: rgb(0,114,0); c115: rgb(0,115,0); c116: rgb(0,116,0); c117: rgb(0,117,0); c118: rgb(0,118,0); c119: rgb(0,119,0); c120: rgb(0,120,0); c121: rgb(0,121,0); c122: rgb(0,122,0); c123: rgb(0,123,0); c124: rgb(0,124,0); c125: rgb(0,125,0); c126: rgb(0,126,0); c127: rgb(0,127,0); c128: rgb(0,128,0); c129: rgb(0,129,0); c130: rgb(0,130,0); c131: rgb(0,131,0); c132: rgb(0,132,0); c133: rgb(0,133,0); c134: rgb(0,134,0); c135: rgb(0,135,0); c136: rgb(0,136,0); c137: rgb(0,137,0); c138: rgb(0,138,0); c139: rgb(0,139,0); c140: rgb(0,140,0); c141: rgb(0,141,0); c142: rgb(0,142,0); c143: rgb(0,143,0); c144: rgb(0,144,0); c145: rgb(0,145,0); c146: rgb(0,146,0); c147: rgb(0,147,0); c148: rgb(0,148,0); c149: rgb(0,149,0); c150: rgb(0,150,0); c151: rgb(0,151,0); c152: rgb(0,152,0); c153: rgb(0,153,0); c154: rgb(0,154,0); c155: rgb(0,155,0); c156: rgb(0,156,0); c157: rgb(0,157,0); c158: rgb(0,158,0); c159: rgb(0,159,0); c160: rgb(0,160,0); c161: rgb(0,161,0); c162: rgb(0,162,0); c163: rgb(0,163,0); c164: rgb(0,164,0); c165: rgb(0,165,0); c166: rgb(0,166,0); c167: rgb(0,167,0); c168: rgb(0,168,0); c169: rgb(0,169,0); c170: rgb(0,170,0); c171: rgb(0,171,0); c172: rgb(0,172,0); c173: rgb(0,173,0); c174: rgb(0,174,0); c175: rgb(0,175,0); c176: rgb(0,176,0); c177: rgb(0,177,0); c178: rgb(0,178,0); c179: rgb(0,179,0); c180: rgb(0,180,0); c181: rgb(0,181,0); c182: rgb(0,182,0); c183: rgb(0,183,0); c184: rgb(0,184,0); c185: rgb(0,185,0); c186: rgb(0,186,0); c187: rgb(0,187,0); c188: rgb(0,188,0); c189: rgb(0,189,0); c190: rgb(0,190,0); c191: rgb(0,191,0); c192: rgb(0,192,0); c193: rgb(0,193,0); c194: rgb(0,194,0); c195: rgb(0,195,0); c196: rgb(0,196,0); c197: rgb(0,197,0); c198: rgb(0,198,0); c199: rgb(0,199,0); c200: rgb(0,200,0); c201: rgb(0,201,0); c202: rgb(0,202,0); c203: rgb(0,203,0); c204: rgb(0,204,0); c205: rgb(0,205,0); c206: rgb(0,206,0); c207: rgb(0,207,0); c208: rgb(0,208,0); c209: rgb(0,209,0); c210: rgb(0,210,0); c211: rgb(0,211,0); c212: rgb(0,212,0); c213: rgb(0,213,0); c214: rgb(0,214,0); c215: rgb(0,215,0); c216: rgb(0,216,0); c217: rgb(0,217,0); c218: rgb(0,218,0); c219: rgb(0,219,0); c220: rgb(0,220,0); c221: rgb(0,221,0); c222: rgb(0,222,0); c223: rgb(0,223,0); c224: rgb(0,224,0); c225: rgb(0,225,0); c226: rgb(0,226,0); c227: rgb(0,227,0); c228: rgb(0,228,0); c229: rgb(0,229,0); c230: rgb(0,230,0); c231: rgb(0,231,0); c232: rgb(0,232,0); c233: rgb(0,233,0); c234: rgb(0,234,0); c235: rgb(0,235,0); c236: rgb(0,236,0); c237: rgb(0,237,0); c238: rgb(0,238,0); c239: rgb(0,239,0); c240: rgb(0,240,0); c241: rgb(0,241,0); c242: rgb(0,242,0); c243: rgb(0,243,0); c244: rgb(0,244,0); c245: rgb(0,245,0); c246: rgb(0,246,0); c247: rgb(0,247,0); c248: rgb(0,248,0); c249: rgb(0,249,0); c250: rgb(0,250,0); c251: rgb(0,251,0); c252: rgb(0,252,0); c253: rgb(0,253,0); c254: rgb(0,254,0); c255: rgb(0,255,0); c256: rgb(0,256,0); } foo { c-1: rgb(-1%,0,0); c0: rgb(0%,0,0); c1: rgb(1%,0,0); c2: rgb(2%,0,0); c3: rgb(3%,0,0); c4: rgb(4%,0,0); c5: rgb(5%,0,0); c6: rgb(6%,0,0); c7: rgb(7%,0,0); c8: rgb(8%,0,0); c9: rgb(9%,0,0); c10: rgb(10%,0,0); c11: rgb(11%,0,0); c12: rgb(12%,0,0); c13: rgb(13%,0,0); c14: rgb(14%,0,0); c15: rgb(15%,0,0); c16: rgb(16%,0,0); c17: rgb(17%,0,0); c18: rgb(18%,0,0); c19: rgb(19%,0,0); c20: rgb(20%,0,0); c21: rgb(21%,0,0); c22: rgb(22%,0,0); c23: rgb(23%,0,0); c24: rgb(24%,0,0); c25: rgb(25%,0,0); c26: rgb(26%,0,0); c27: rgb(27%,0,0); c28: rgb(28%,0,0); c29: rgb(29%,0,0); c30: rgb(30%,0,0); c31: rgb(31%,0,0); c32: rgb(32%,0,0); c33: rgb(33%,0,0); c34: rgb(34%,0,0); c35: rgb(35%,0,0); c36: rgb(36%,0,0); c37: rgb(37%,0,0); c38: rgb(38%,0,0); c39: rgb(39%,0,0); c40: rgb(40%,0,0); c41: rgb(41%,0,0); c42: rgb(42%,0,0); c43: rgb(43%,0,0); c44: rgb(44%,0,0); c45: rgb(45%,0,0); c46: rgb(46%,0,0); c47: rgb(47%,0,0); c48: rgb(48%,0,0); c49: rgb(49%,0,0); c50: rgb(50%,0,0); c51: rgb(51%,0,0); c52: rgb(52%,0,0); c53: rgb(53%,0,0); c54: rgb(54%,0,0); c55: rgb(55%,0,0); c56: rgb(56%,0,0); c57: rgb(57%,0,0); c58: rgb(58%,0,0); c59: rgb(59%,0,0); c60: rgb(60%,0,0); c61: rgb(61%,0,0); c62: rgb(62%,0,0); c63: rgb(63%,0,0); c64: rgb(64%,0,0); c65: rgb(65%,0,0); c66: rgb(66%,0,0); c67: rgb(67%,0,0); c68: rgb(68%,0,0); c69: rgb(69%,0,0); c70: rgb(70%,0,0); c71: rgb(71%,0,0); c72: rgb(72%,0,0); c73: rgb(73%,0,0); c74: rgb(74%,0,0); c75: rgb(75%,0,0); c76: rgb(76%,0,0); c77: rgb(77%,0,0); c78: rgb(78%,0,0); c79: rgb(79%,0,0); c80: rgb(80%,0,0); c81: rgb(81%,0,0); c82: rgb(82%,0,0); c83: rgb(83%,0,0); c84: rgb(84%,0,0); c85: rgb(85%,0,0); c86: rgb(86%,0,0); c87: rgb(87%,0,0); c88: rgb(88%,0,0); c89: rgb(89%,0,0); c90: rgb(90%,0,0); c91: rgb(91%,0,0); c92: rgb(92%,0,0); c93: rgb(93%,0,0); c94: rgb(94%,0,0); c95: rgb(95%,0,0); c96: rgb(96%,0,0); c97: rgb(97%,0,0); c98: rgb(98%,0,0); c99: rgb(99%,0,0); c100: rgb(100%,0,0); c101: rgb(101%,0,0); } <===> output.css foo { c-1: black; c0: black; c1: #000100; c2: #000200; c3: #000300; c4: #000400; c5: #000500; c6: #000600; c7: #000700; c8: #000800; c9: #000900; c10: #000a00; c11: #000b00; c12: #000c00; c13: #000d00; c14: #000e00; c15: #000f00; c16: #001000; c17: #001100; c18: #001200; c19: #001300; c20: #001400; c21: #001500; c22: #001600; c23: #001700; c24: #001800; c25: #001900; c26: #001a00; c27: #001b00; c28: #001c00; c29: #001d00; c30: #001e00; c31: #001f00; c32: #002000; c33: #002100; c34: #002200; c35: #002300; c36: #002400; c37: #002500; c38: #002600; c39: #002700; c40: #002800; c41: #002900; c42: #002a00; c43: #002b00; c44: #002c00; c45: #002d00; c46: #002e00; c47: #002f00; c48: #003000; c49: #003100; c50: #003200; c51: #003300; c52: #003400; c53: #003500; c54: #003600; c55: #003700; c56: #003800; c57: #003900; c58: #003a00; c59: #003b00; c60: #003c00; c61: #003d00; c62: #003e00; c63: #003f00; c64: #004000; c65: #004100; c66: #004200; c67: #004300; c68: #004400; c69: #004500; c70: #004600; c71: #004700; c72: #004800; c73: #004900; c74: #004a00; c75: #004b00; c76: #004c00; c77: #004d00; c78: #004e00; c79: #004f00; c80: #005000; c81: #005100; c82: #005200; c83: #005300; c84: #005400; c85: #005500; c86: #005600; c87: #005700; c88: #005800; c89: #005900; c90: #005a00; c91: #005b00; c92: #005c00; c93: #005d00; c94: #005e00; c95: #005f00; c96: #006000; c97: #006100; c98: #006200; c99: #006300; c100: darkgreen; c101: #006500; c102: #006600; c103: #006700; c104: #006800; c105: #006900; c106: #006a00; c107: #006b00; c108: #006c00; c109: #006d00; c110: #006e00; c111: #006f00; c112: #007000; c113: #007100; c114: #007200; c115: #007300; c116: #007400; c117: #007500; c118: #007600; c119: #007700; c120: #007800; c121: #007900; c122: #007a00; c123: #007b00; c124: #007c00; c125: #007d00; c126: #007e00; c127: #007f00; c128: green; c129: #008100; c130: #008200; c131: #008300; c132: #008400; c133: #008500; c134: #008600; c135: #008700; c136: #008800; c137: #008900; c138: #008a00; c139: #008b00; c140: #008c00; c141: #008d00; c142: #008e00; c143: #008f00; c144: #009000; c145: #009100; c146: #009200; c147: #009300; c148: #009400; c149: #009500; c150: #009600; c151: #009700; c152: #009800; c153: #009900; c154: #009a00; c155: #009b00; c156: #009c00; c157: #009d00; c158: #009e00; c159: #009f00; c160: #00a000; c161: #00a100; c162: #00a200; c163: #00a300; c164: #00a400; c165: #00a500; c166: #00a600; c167: #00a700; c168: #00a800; c169: #00a900; c170: #00aa00; c171: #00ab00; c172: #00ac00; c173: #00ad00; c174: #00ae00; c175: #00af00; c176: #00b000; c177: #00b100; c178: #00b200; c179: #00b300; c180: #00b400; c181: #00b500; c182: #00b600; c183: #00b700; c184: #00b800; c185: #00b900; c186: #00ba00; c187: #00bb00; c188: #00bc00; c189: #00bd00; c190: #00be00; c191: #00bf00; c192: #00c000; c193: #00c100; c194: #00c200; c195: #00c300; c196: #00c400; c197: #00c500; c198: #00c600; c199: #00c700; c200: #00c800; c201: #00c900; c202: #00ca00; c203: #00cb00; c204: #00cc00; c205: #00cd00; c206: #00ce00; c207: #00cf00; c208: #00d000; c209: #00d100; c210: #00d200; c211: #00d300; c212: #00d400; c213: #00d500; c214: #00d600; c215: #00d700; c216: #00d800; c217: #00d900; c218: #00da00; c219: #00db00; c220: #00dc00; c221: #00dd00; c222: #00de00; c223: #00df00; c224: #00e000; c225: #00e100; c226: #00e200; c227: #00e300; c228: #00e400; c229: #00e500; c230: #00e600; c231: #00e700; c232: #00e800; c233: #00e900; c234: #00ea00; c235: #00eb00; c236: #00ec00; c237: #00ed00; c238: #00ee00; c239: #00ef00; c240: #00f000; c241: #00f100; c242: #00f200; c243: #00f300; c244: #00f400; c245: #00f500; c246: #00f600; c247: #00f700; c248: #00f800; c249: #00f900; c250: #00fa00; c251: #00fb00; c252: #00fc00; c253: #00fd00; c254: #00fe00; c255: lime; c256: lime; } foo { c-1: black; c0: black; c1: #030000; c2: #050000; c3: #080000; c4: #0a0000; c5: #0d0000; c6: #0f0000; c7: #120000; c8: #140000; c9: #170000; c10: #1a0000; c11: #1c0000; c12: #1f0000; c13: #210000; c14: #240000; c15: #260000; c16: #290000; c17: #2b0000; c18: #2e0000; c19: #300000; c20: #330000; c21: #360000; c22: #380000; c23: #3b0000; c24: #3d0000; c25: #400000; c26: #420000; c27: #450000; c28: #470000; c29: #4a0000; c30: #4d0000; c31: #4f0000; c32: #520000; c33: #540000; c34: #570000; c35: #590000; c36: #5c0000; c37: #5e0000; c38: #610000; c39: #630000; c40: #660000; c41: #690000; c42: #6b0000; c43: #6e0000; c44: #700000; c45: #730000; c46: #750000; c47: #780000; c48: #7a0000; c49: #7d0000; c50: maroon; c51: #820000; c52: #850000; c53: #870000; c54: #8a0000; c55: #8c0000; c56: #8f0000; c57: #910000; c58: #940000; c59: #960000; c60: #990000; c61: #9c0000; c62: #9e0000; c63: #a10000; c64: #a30000; c65: #a60000; c66: #a80000; c67: #ab0000; c68: #ad0000; c69: #b00000; c70: #b30000; c71: #b50000; c72: #b80000; c73: #ba0000; c74: #bd0000; c75: #bf0000; c76: #c20000; c77: #c40000; c78: #c70000; c79: #c90000; c80: #cc0000; c81: #cf0000; c82: #d10000; c83: #d40000; c84: #d60000; c85: #d90000; c86: #db0000; c87: #de0000; c88: #e00000; c89: #e30000; c90: #e60000; c91: #e80000; c92: #eb0000; c93: #ed0000; c94: #f00000; c95: #f20000; c96: #f50000; c97: #f70000; c98: #fa0000; c99: #fc0000; c100: red; c101: red; } sass-spec-libsass-3.6.3/spec/libsass/color-functions/rgb/rgba/000077500000000000000000000000001355712145100242715ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/libsass/color-functions/rgb/rgba/a.hrx000066400000000000000000000025211355712145100252340ustar00rootroot00000000000000<===> input.scss foo { c-1: rgba(0,0,0,-1); c0: rgba(0,0,0,0.0); c1: rgba(0,0,0,0.1); c2: rgba(0,0,0,0.2); c3: rgba(0,0,0,0.3); c4: rgba(0,0,0,0.4); c5: rgba(0,0,0,0.5); c6: rgba(0,0,0,0.6); c7: rgba(0,0,0,0.7); c8: rgba(0,0,0,0.8); c9: rgba(0,0,0,0.9); c10: rgba(0,0,0,1); c11: rgba(0,0,0,1.1); c12: rgba(0,0,0,2); } foo { c-1: rgba(black,-1); c0: rgba(black,0.0); c1: rgba(black,0.1); c2: rgba(black,0.2); c3: rgba(black,0.3); c4: rgba(black,0.4); c5: rgba(black,0.5); c6: rgba(black,0.6); c7: rgba(black,0.7); c8: rgba(black,0.8); c9: rgba(black,0.9); c10: rgba(black,1); c11: rgba(black,1.1); c12: rgba(black,2); } <===> output.css foo { c-1: rgba(0, 0, 0, 0); c0: rgba(0, 0, 0, 0); c1: rgba(0, 0, 0, 0.1); c2: rgba(0, 0, 0, 0.2); c3: rgba(0, 0, 0, 0.3); c4: rgba(0, 0, 0, 0.4); c5: rgba(0, 0, 0, 0.5); c6: rgba(0, 0, 0, 0.6); c7: rgba(0, 0, 0, 0.7); c8: rgba(0, 0, 0, 0.8); c9: rgba(0, 0, 0, 0.9); c10: black; c11: black; c12: black; } foo { c-1: rgba(0, 0, 0, 0); c0: rgba(0, 0, 0, 0); c1: rgba(0, 0, 0, 0.1); c2: rgba(0, 0, 0, 0.2); c3: rgba(0, 0, 0, 0.3); c4: rgba(0, 0, 0, 0.4); c5: rgba(0, 0, 0, 0.5); c6: rgba(0, 0, 0, 0.6); c7: rgba(0, 0, 0, 0.7); c8: rgba(0, 0, 0, 0.8); c9: rgba(0, 0, 0, 0.9); c10: black; c11: black; c12: black; } sass-spec-libsass-3.6.3/spec/libsass/color-functions/rgb/rgba/b.hrx000066400000000000000000000344661355712145100252520ustar00rootroot00000000000000<===> input.scss foo { c-1: rgba(0,0,-1,1); c0: rgba(0,0,0,1); c1: rgba(0,0,1,1); c2: rgba(0,0,2,1); c3: rgba(0,0,3,1); c4: rgba(0,0,4,1); c5: rgba(0,0,5,1); c6: rgba(0,0,6,1); c7: rgba(0,0,7,1); c8: rgba(0,0,8,1); c9: rgba(0,0,9,1); c10: rgba(0,0,10,1); c11: rgba(0,0,11,1); c12: rgba(0,0,12,1); c13: rgba(0,0,13,1); c14: rgba(0,0,14,1); c15: rgba(0,0,15,1); c16: rgba(0,0,16,1); c17: rgba(0,0,17,1); c18: rgba(0,0,18,1); c19: rgba(0,0,19,1); c20: rgba(0,0,20,1); c21: rgba(0,0,21,1); c22: rgba(0,0,22,1); c23: rgba(0,0,23,1); c24: rgba(0,0,24,1); c25: rgba(0,0,25,1); c26: rgba(0,0,26,1); c27: rgba(0,0,27,1); c28: rgba(0,0,28,1); c29: rgba(0,0,29,1); c30: rgba(0,0,30,1); c31: rgba(0,0,31,1); c32: rgba(0,0,32,1); c33: rgba(0,0,33,1); c34: rgba(0,0,34,1); c35: rgba(0,0,35,1); c36: rgba(0,0,36,1); c37: rgba(0,0,37,1); c38: rgba(0,0,38,1); c39: rgba(0,0,39,1); c40: rgba(0,0,40,1); c41: rgba(0,0,41,1); c42: rgba(0,0,42,1); c43: rgba(0,0,43,1); c44: rgba(0,0,44,1); c45: rgba(0,0,45,1); c46: rgba(0,0,46,1); c47: rgba(0,0,47,1); c48: rgba(0,0,48,1); c49: rgba(0,0,49,1); c50: rgba(0,0,50,1); c51: rgba(0,0,51,1); c52: rgba(0,0,52,1); c53: rgba(0,0,53,1); c54: rgba(0,0,54,1); c55: rgba(0,0,55,1); c56: rgba(0,0,56,1); c57: rgba(0,0,57,1); c58: rgba(0,0,58,1); c59: rgba(0,0,59,1); c60: rgba(0,0,60,1); c61: rgba(0,0,61,1); c62: rgba(0,0,62,1); c63: rgba(0,0,63,1); c64: rgba(0,0,64,1); c65: rgba(0,0,65,1); c66: rgba(0,0,66,1); c67: rgba(0,0,67,1); c68: rgba(0,0,68,1); c69: rgba(0,0,69,1); c70: rgba(0,0,70,1); c71: rgba(0,0,71,1); c72: rgba(0,0,72,1); c73: rgba(0,0,73,1); c74: rgba(0,0,74,1); c75: rgba(0,0,75,1); c76: rgba(0,0,76,1); c77: rgba(0,0,77,1); c78: rgba(0,0,78,1); c79: rgba(0,0,79,1); c80: rgba(0,0,80,1); c81: rgba(0,0,81,1); c82: rgba(0,0,82,1); c83: rgba(0,0,83,1); c84: rgba(0,0,84,1); c85: rgba(0,0,85,1); c86: rgba(0,0,86,1); c87: rgba(0,0,87,1); c88: rgba(0,0,88,1); c89: rgba(0,0,89,1); c90: rgba(0,0,90,1); c91: rgba(0,0,91,1); c92: rgba(0,0,92,1); c93: rgba(0,0,93,1); c94: rgba(0,0,94,1); c95: rgba(0,0,95,1); c96: rgba(0,0,96,1); c97: rgba(0,0,97,1); c98: rgba(0,0,98,1); c99: rgba(0,0,99,1); c100: rgba(0,0,100,1); c101: rgba(0,0,101,1); c102: rgba(0,0,102,1); c103: rgba(0,0,103,1); c104: rgba(0,0,104,1); c105: rgba(0,0,105,1); c106: rgba(0,0,106,1); c107: rgba(0,0,107,1); c108: rgba(0,0,108,1); c109: rgba(0,0,109,1); c110: rgba(0,0,110,1); c111: rgba(0,0,111,1); c112: rgba(0,0,112,1); c113: rgba(0,0,113,1); c114: rgba(0,0,114,1); c115: rgba(0,0,115,1); c116: rgba(0,0,116,1); c117: rgba(0,0,117,1); c118: rgba(0,0,118,1); c119: rgba(0,0,119,1); c120: rgba(0,0,120,1); c121: rgba(0,0,121,1); c122: rgba(0,0,122,1); c123: rgba(0,0,123,1); c124: rgba(0,0,124,1); c125: rgba(0,0,125,1); c126: rgba(0,0,126,1); c127: rgba(0,0,127,1); c128: rgba(0,0,128,1); c129: rgba(0,0,129,1); c130: rgba(0,0,130,1); c131: rgba(0,0,131,1); c132: rgba(0,0,132,1); c133: rgba(0,0,133,1); c134: rgba(0,0,134,1); c135: rgba(0,0,135,1); c136: rgba(0,0,136,1); c137: rgba(0,0,137,1); c138: rgba(0,0,138,1); c139: rgba(0,0,139,1); c140: rgba(0,0,140,1); c141: rgba(0,0,141,1); c142: rgba(0,0,142,1); c143: rgba(0,0,143,1); c144: rgba(0,0,144,1); c145: rgba(0,0,145,1); c146: rgba(0,0,146,1); c147: rgba(0,0,147,1); c148: rgba(0,0,148,1); c149: rgba(0,0,149,1); c150: rgba(0,0,150,1); c151: rgba(0,0,151,1); c152: rgba(0,0,152,1); c153: rgba(0,0,153,1); c154: rgba(0,0,154,1); c155: rgba(0,0,155,1); c156: rgba(0,0,156,1); c157: rgba(0,0,157,1); c158: rgba(0,0,158,1); c159: rgba(0,0,159,1); c160: rgba(0,0,160,1); c161: rgba(0,0,161,1); c162: rgba(0,0,162,1); c163: rgba(0,0,163,1); c164: rgba(0,0,164,1); c165: rgba(0,0,165,1); c166: rgba(0,0,166,1); c167: rgba(0,0,167,1); c168: rgba(0,0,168,1); c169: rgba(0,0,169,1); c170: rgba(0,0,170,1); c171: rgba(0,0,171,1); c172: rgba(0,0,172,1); c173: rgba(0,0,173,1); c174: rgba(0,0,174,1); c175: rgba(0,0,175,1); c176: rgba(0,0,176,1); c177: rgba(0,0,177,1); c178: rgba(0,0,178,1); c179: rgba(0,0,179,1); c180: rgba(0,0,180,1); c181: rgba(0,0,181,1); c182: rgba(0,0,182,1); c183: rgba(0,0,183,1); c184: rgba(0,0,184,1); c185: rgba(0,0,185,1); c186: rgba(0,0,186,1); c187: rgba(0,0,187,1); c188: rgba(0,0,188,1); c189: rgba(0,0,189,1); c190: rgba(0,0,190,1); c191: rgba(0,0,191,1); c192: rgba(0,0,192,1); c193: rgba(0,0,193,1); c194: rgba(0,0,194,1); c195: rgba(0,0,195,1); c196: rgba(0,0,196,1); c197: rgba(0,0,197,1); c198: rgba(0,0,198,1); c199: rgba(0,0,199,1); c200: rgba(0,0,200,1); c201: rgba(0,0,201,1); c202: rgba(0,0,202,1); c203: rgba(0,0,203,1); c204: rgba(0,0,204,1); c205: rgba(0,0,205,1); c206: rgba(0,0,206,1); c207: rgba(0,0,207,1); c208: rgba(0,0,208,1); c209: rgba(0,0,209,1); c210: rgba(0,0,210,1); c211: rgba(0,0,211,1); c212: rgba(0,0,212,1); c213: rgba(0,0,213,1); c214: rgba(0,0,214,1); c215: rgba(0,0,215,1); c216: rgba(0,0,216,1); c217: rgba(0,0,217,1); c218: rgba(0,0,218,1); c219: rgba(0,0,219,1); c220: rgba(0,0,220,1); c221: rgba(0,0,221,1); c222: rgba(0,0,222,1); c223: rgba(0,0,223,1); c224: rgba(0,0,224,1); c225: rgba(0,0,225,1); c226: rgba(0,0,226,1); c227: rgba(0,0,227,1); c228: rgba(0,0,228,1); c229: rgba(0,0,229,1); c230: rgba(0,0,230,1); c231: rgba(0,0,231,1); c232: rgba(0,0,232,1); c233: rgba(0,0,233,1); c234: rgba(0,0,234,1); c235: rgba(0,0,235,1); c236: rgba(0,0,236,1); c237: rgba(0,0,237,1); c238: rgba(0,0,238,1); c239: rgba(0,0,239,1); c240: rgba(0,0,240,1); c241: rgba(0,0,241,1); c242: rgba(0,0,242,1); c243: rgba(0,0,243,1); c244: rgba(0,0,244,1); c245: rgba(0,0,245,1); c246: rgba(0,0,246,1); c247: rgba(0,0,247,1); c248: rgba(0,0,248,1); c249: rgba(0,0,249,1); c250: rgba(0,0,250,1); c251: rgba(0,0,251,1); c252: rgba(0,0,252,1); c253: rgba(0,0,253,1); c254: rgba(0,0,254,1); c255: rgba(0,0,255,1); c256: rgba(0,0,256,1); } foo { c-1: rgba(0,0,-1%,1); c0: rgba(0,0,0%,1); c1: rgba(0,0,1%,1); c2: rgba(0,0,2%,1); c3: rgba(0,0,3%,1); c4: rgba(0,0,4%,1); c5: rgba(0,0,5%,1); c6: rgba(0,0,6%,1); c7: rgba(0,0,7%,1); c8: rgba(0,0,8%,1); c9: rgba(0,0,9%,1); c10: rgba(0,0,10%,1); c11: rgba(0,0,11%,1); c12: rgba(0,0,12%,1); c13: rgba(0,0,13%,1); c14: rgba(0,0,14%,1); c15: rgba(0,0,15%,1); c16: rgba(0,0,16%,1); c17: rgba(0,0,17%,1); c18: rgba(0,0,18%,1); c19: rgba(0,0,19%,1); c20: rgba(0,0,20%,1); c21: rgba(0,0,21%,1); c22: rgba(0,0,22%,1); c23: rgba(0,0,23%,1); c24: rgba(0,0,24%,1); c25: rgba(0,0,25%,1); c26: rgba(0,0,26%,1); c27: rgba(0,0,27%,1); c28: rgba(0,0,28%,1); c29: rgba(0,0,29%,1); c30: rgba(0,0,30%,1); c31: rgba(0,0,31%,1); c32: rgba(0,0,32%,1); c33: rgba(0,0,33%,1); c34: rgba(0,0,34%,1); c35: rgba(0,0,35%,1); c36: rgba(0,0,36%,1); c37: rgba(0,0,37%,1); c38: rgba(0,0,38%,1); c39: rgba(0,0,39%,1); c40: rgba(0,0,40%,1); c41: rgba(0,0,41%,1); c42: rgba(0,0,42%,1); c43: rgba(0,0,43%,1); c44: rgba(0,0,44%,1); c45: rgba(0,0,45%,1); c46: rgba(0,0,46%,1); c47: rgba(0,0,47%,1); c48: rgba(0,0,48%,1); c49: rgba(0,0,49%,1); c50: rgba(0,0,50%,1); c51: rgba(0,0,51%,1); c52: rgba(0,0,52%,1); c53: rgba(0,0,53%,1); c54: rgba(0,0,54%,1); c55: rgba(0,0,55%,1); c56: rgba(0,0,56%,1); c57: rgba(0,0,57%,1); c58: rgba(0,0,58%,1); c59: rgba(0,0,59%,1); c60: rgba(0,0,60%,1); c61: rgba(0,0,61%,1); c62: rgba(0,0,62%,1); c63: rgba(0,0,63%,1); c64: rgba(0,0,64%,1); c65: rgba(0,0,65%,1); c66: rgba(0,0,66%,1); c67: rgba(0,0,67%,1); c68: rgba(0,0,68%,1); c69: rgba(0,0,69%,1); c70: rgba(0,0,70%,1); c71: rgba(0,0,71%,1); c72: rgba(0,0,72%,1); c73: rgba(0,0,73%,1); c74: rgba(0,0,74%,1); c75: rgba(0,0,75%,1); c76: rgba(0,0,76%,1); c77: rgba(0,0,77%,1); c78: rgba(0,0,78%,1); c79: rgba(0,0,79%,1); c80: rgba(0,0,80%,1); c81: rgba(0,0,81%,1); c82: rgba(0,0,82%,1); c83: rgba(0,0,83%,1); c84: rgba(0,0,84%,1); c85: rgba(0,0,85%,1); c86: rgba(0,0,86%,1); c87: rgba(0,0,87%,1); c88: rgba(0,0,88%,1); c89: rgba(0,0,89%,1); c90: rgba(0,0,90%,1); c91: rgba(0,0,91%,1); c92: rgba(0,0,92%,1); c93: rgba(0,0,93%,1); c94: rgba(0,0,94%,1); c95: rgba(0,0,95%,1); c96: rgba(0,0,96%,1); c97: rgba(0,0,97%,1); c98: rgba(0,0,98%,1); c99: rgba(0,0,99%,1); c100: rgba(0,0,100%,1); c101: rgba(0,0,101%,1); } <===> output.css foo { c-1: black; c0: black; c1: #000001; c2: #000002; c3: #000003; c4: #000004; c5: #000005; c6: #000006; c7: #000007; c8: #000008; c9: #000009; c10: #00000a; c11: #00000b; c12: #00000c; c13: #00000d; c14: #00000e; c15: #00000f; c16: #000010; c17: #000011; c18: #000012; c19: #000013; c20: #000014; c21: #000015; c22: #000016; c23: #000017; c24: #000018; c25: #000019; c26: #00001a; c27: #00001b; c28: #00001c; c29: #00001d; c30: #00001e; c31: #00001f; c32: #000020; c33: #000021; c34: #000022; c35: #000023; c36: #000024; c37: #000025; c38: #000026; c39: #000027; c40: #000028; c41: #000029; c42: #00002a; c43: #00002b; c44: #00002c; c45: #00002d; c46: #00002e; c47: #00002f; c48: #000030; c49: #000031; c50: #000032; c51: #000033; c52: #000034; c53: #000035; c54: #000036; c55: #000037; c56: #000038; c57: #000039; c58: #00003a; c59: #00003b; c60: #00003c; c61: #00003d; c62: #00003e; c63: #00003f; c64: #000040; c65: #000041; c66: #000042; c67: #000043; c68: #000044; c69: #000045; c70: #000046; c71: #000047; c72: #000048; c73: #000049; c74: #00004a; c75: #00004b; c76: #00004c; c77: #00004d; c78: #00004e; c79: #00004f; c80: #000050; c81: #000051; c82: #000052; c83: #000053; c84: #000054; c85: #000055; c86: #000056; c87: #000057; c88: #000058; c89: #000059; c90: #00005a; c91: #00005b; c92: #00005c; c93: #00005d; c94: #00005e; c95: #00005f; c96: #000060; c97: #000061; c98: #000062; c99: #000063; c100: #000064; c101: #000065; c102: #000066; c103: #000067; c104: #000068; c105: #000069; c106: #00006a; c107: #00006b; c108: #00006c; c109: #00006d; c110: #00006e; c111: #00006f; c112: #000070; c113: #000071; c114: #000072; c115: #000073; c116: #000074; c117: #000075; c118: #000076; c119: #000077; c120: #000078; c121: #000079; c122: #00007a; c123: #00007b; c124: #00007c; c125: #00007d; c126: #00007e; c127: #00007f; c128: navy; c129: #000081; c130: #000082; c131: #000083; c132: #000084; c133: #000085; c134: #000086; c135: #000087; c136: #000088; c137: #000089; c138: #00008a; c139: darkblue; c140: #00008c; c141: #00008d; c142: #00008e; c143: #00008f; c144: #000090; c145: #000091; c146: #000092; c147: #000093; c148: #000094; c149: #000095; c150: #000096; c151: #000097; c152: #000098; c153: #000099; c154: #00009a; c155: #00009b; c156: #00009c; c157: #00009d; c158: #00009e; c159: #00009f; c160: #0000a0; c161: #0000a1; c162: #0000a2; c163: #0000a3; c164: #0000a4; c165: #0000a5; c166: #0000a6; c167: #0000a7; c168: #0000a8; c169: #0000a9; c170: #0000aa; c171: #0000ab; c172: #0000ac; c173: #0000ad; c174: #0000ae; c175: #0000af; c176: #0000b0; c177: #0000b1; c178: #0000b2; c179: #0000b3; c180: #0000b4; c181: #0000b5; c182: #0000b6; c183: #0000b7; c184: #0000b8; c185: #0000b9; c186: #0000ba; c187: #0000bb; c188: #0000bc; c189: #0000bd; c190: #0000be; c191: #0000bf; c192: #0000c0; c193: #0000c1; c194: #0000c2; c195: #0000c3; c196: #0000c4; c197: #0000c5; c198: #0000c6; c199: #0000c7; c200: #0000c8; c201: #0000c9; c202: #0000ca; c203: #0000cb; c204: #0000cc; c205: mediumblue; c206: #0000ce; c207: #0000cf; c208: #0000d0; c209: #0000d1; c210: #0000d2; c211: #0000d3; c212: #0000d4; c213: #0000d5; c214: #0000d6; c215: #0000d7; c216: #0000d8; c217: #0000d9; c218: #0000da; c219: #0000db; c220: #0000dc; c221: #0000dd; c222: #0000de; c223: #0000df; c224: #0000e0; c225: #0000e1; c226: #0000e2; c227: #0000e3; c228: #0000e4; c229: #0000e5; c230: #0000e6; c231: #0000e7; c232: #0000e8; c233: #0000e9; c234: #0000ea; c235: #0000eb; c236: #0000ec; c237: #0000ed; c238: #0000ee; c239: #0000ef; c240: #0000f0; c241: #0000f1; c242: #0000f2; c243: #0000f3; c244: #0000f4; c245: #0000f5; c246: #0000f6; c247: #0000f7; c248: #0000f8; c249: #0000f9; c250: #0000fa; c251: #0000fb; c252: #0000fc; c253: #0000fd; c254: #0000fe; c255: blue; c256: blue; } foo { c-1: black; c0: black; c1: #000003; c2: #000005; c3: #000008; c4: #00000a; c5: #00000d; c6: #00000f; c7: #000012; c8: #000014; c9: #000017; c10: #00001a; c11: #00001c; c12: #00001f; c13: #000021; c14: #000024; c15: #000026; c16: #000029; c17: #00002b; c18: #00002e; c19: #000030; c20: #000033; c21: #000036; c22: #000038; c23: #00003b; c24: #00003d; c25: #000040; c26: #000042; c27: #000045; c28: #000047; c29: #00004a; c30: #00004d; c31: #00004f; c32: #000052; c33: #000054; c34: #000057; c35: #000059; c36: #00005c; c37: #00005e; c38: #000061; c39: #000063; c40: #000066; c41: #000069; c42: #00006b; c43: #00006e; c44: #000070; c45: #000073; c46: #000075; c47: #000078; c48: #00007a; c49: #00007d; c50: navy; c51: #000082; c52: #000085; c53: #000087; c54: #00008a; c55: #00008c; c56: #00008f; c57: #000091; c58: #000094; c59: #000096; c60: #000099; c61: #00009c; c62: #00009e; c63: #0000a1; c64: #0000a3; c65: #0000a6; c66: #0000a8; c67: #0000ab; c68: #0000ad; c69: #0000b0; c70: #0000b3; c71: #0000b5; c72: #0000b8; c73: #0000ba; c74: #0000bd; c75: #0000bf; c76: #0000c2; c77: #0000c4; c78: #0000c7; c79: #0000c9; c80: #0000cc; c81: #0000cf; c82: #0000d1; c83: #0000d4; c84: #0000d6; c85: #0000d9; c86: #0000db; c87: #0000de; c88: #0000e0; c89: #0000e3; c90: #0000e6; c91: #0000e8; c92: #0000eb; c93: #0000ed; c94: #0000f0; c95: #0000f2; c96: #0000f5; c97: #0000f7; c98: #0000fa; c99: #0000fc; c100: blue; c101: blue; } sass-spec-libsass-3.6.3/spec/libsass/color-functions/rgb/rgba/g.hrx000066400000000000000000000344661355712145100252570ustar00rootroot00000000000000<===> input.scss foo { c-1: rgba(0,-1,0,1); c0: rgba(0,0,0,1); c1: rgba(0,1,0,1); c2: rgba(0,2,0,1); c3: rgba(0,3,0,1); c4: rgba(0,4,0,1); c5: rgba(0,5,0,1); c6: rgba(0,6,0,1); c7: rgba(0,7,0,1); c8: rgba(0,8,0,1); c9: rgba(0,9,0,1); c10: rgba(0,10,0,1); c11: rgba(0,11,0,1); c12: rgba(0,12,0,1); c13: rgba(0,13,0,1); c14: rgba(0,14,0,1); c15: rgba(0,15,0,1); c16: rgba(0,16,0,1); c17: rgba(0,17,0,1); c18: rgba(0,18,0,1); c19: rgba(0,19,0,1); c20: rgba(0,20,0,1); c21: rgba(0,21,0,1); c22: rgba(0,22,0,1); c23: rgba(0,23,0,1); c24: rgba(0,24,0,1); c25: rgba(0,25,0,1); c26: rgba(0,26,0,1); c27: rgba(0,27,0,1); c28: rgba(0,28,0,1); c29: rgba(0,29,0,1); c30: rgba(0,30,0,1); c31: rgba(0,31,0,1); c32: rgba(0,32,0,1); c33: rgba(0,33,0,1); c34: rgba(0,34,0,1); c35: rgba(0,35,0,1); c36: rgba(0,36,0,1); c37: rgba(0,37,0,1); c38: rgba(0,38,0,1); c39: rgba(0,39,0,1); c40: rgba(0,40,0,1); c41: rgba(0,41,0,1); c42: rgba(0,42,0,1); c43: rgba(0,43,0,1); c44: rgba(0,44,0,1); c45: rgba(0,45,0,1); c46: rgba(0,46,0,1); c47: rgba(0,47,0,1); c48: rgba(0,48,0,1); c49: rgba(0,49,0,1); c50: rgba(0,50,0,1); c51: rgba(0,51,0,1); c52: rgba(0,52,0,1); c53: rgba(0,53,0,1); c54: rgba(0,54,0,1); c55: rgba(0,55,0,1); c56: rgba(0,56,0,1); c57: rgba(0,57,0,1); c58: rgba(0,58,0,1); c59: rgba(0,59,0,1); c60: rgba(0,60,0,1); c61: rgba(0,61,0,1); c62: rgba(0,62,0,1); c63: rgba(0,63,0,1); c64: rgba(0,64,0,1); c65: rgba(0,65,0,1); c66: rgba(0,66,0,1); c67: rgba(0,67,0,1); c68: rgba(0,68,0,1); c69: rgba(0,69,0,1); c70: rgba(0,70,0,1); c71: rgba(0,71,0,1); c72: rgba(0,72,0,1); c73: rgba(0,73,0,1); c74: rgba(0,74,0,1); c75: rgba(0,75,0,1); c76: rgba(0,76,0,1); c77: rgba(0,77,0,1); c78: rgba(0,78,0,1); c79: rgba(0,79,0,1); c80: rgba(0,80,0,1); c81: rgba(0,81,0,1); c82: rgba(0,82,0,1); c83: rgba(0,83,0,1); c84: rgba(0,84,0,1); c85: rgba(0,85,0,1); c86: rgba(0,86,0,1); c87: rgba(0,87,0,1); c88: rgba(0,88,0,1); c89: rgba(0,89,0,1); c90: rgba(0,90,0,1); c91: rgba(0,91,0,1); c92: rgba(0,92,0,1); c93: rgba(0,93,0,1); c94: rgba(0,94,0,1); c95: rgba(0,95,0,1); c96: rgba(0,96,0,1); c97: rgba(0,97,0,1); c98: rgba(0,98,0,1); c99: rgba(0,99,0,1); c100: rgba(0,100,0,1); c101: rgba(0,101,0,1); c102: rgba(0,102,0,1); c103: rgba(0,103,0,1); c104: rgba(0,104,0,1); c105: rgba(0,105,0,1); c106: rgba(0,106,0,1); c107: rgba(0,107,0,1); c108: rgba(0,108,0,1); c109: rgba(0,109,0,1); c110: rgba(0,110,0,1); c111: rgba(0,111,0,1); c112: rgba(0,112,0,1); c113: rgba(0,113,0,1); c114: rgba(0,114,0,1); c115: rgba(0,115,0,1); c116: rgba(0,116,0,1); c117: rgba(0,117,0,1); c118: rgba(0,118,0,1); c119: rgba(0,119,0,1); c120: rgba(0,120,0,1); c121: rgba(0,121,0,1); c122: rgba(0,122,0,1); c123: rgba(0,123,0,1); c124: rgba(0,124,0,1); c125: rgba(0,125,0,1); c126: rgba(0,126,0,1); c127: rgba(0,127,0,1); c128: rgba(0,128,0,1); c129: rgba(0,129,0,1); c130: rgba(0,130,0,1); c131: rgba(0,131,0,1); c132: rgba(0,132,0,1); c133: rgba(0,133,0,1); c134: rgba(0,134,0,1); c135: rgba(0,135,0,1); c136: rgba(0,136,0,1); c137: rgba(0,137,0,1); c138: rgba(0,138,0,1); c139: rgba(0,139,0,1); c140: rgba(0,140,0,1); c141: rgba(0,141,0,1); c142: rgba(0,142,0,1); c143: rgba(0,143,0,1); c144: rgba(0,144,0,1); c145: rgba(0,145,0,1); c146: rgba(0,146,0,1); c147: rgba(0,147,0,1); c148: rgba(0,148,0,1); c149: rgba(0,149,0,1); c150: rgba(0,150,0,1); c151: rgba(0,151,0,1); c152: rgba(0,152,0,1); c153: rgba(0,153,0,1); c154: rgba(0,154,0,1); c155: rgba(0,155,0,1); c156: rgba(0,156,0,1); c157: rgba(0,157,0,1); c158: rgba(0,158,0,1); c159: rgba(0,159,0,1); c160: rgba(0,160,0,1); c161: rgba(0,161,0,1); c162: rgba(0,162,0,1); c163: rgba(0,163,0,1); c164: rgba(0,164,0,1); c165: rgba(0,165,0,1); c166: rgba(0,166,0,1); c167: rgba(0,167,0,1); c168: rgba(0,168,0,1); c169: rgba(0,169,0,1); c170: rgba(0,170,0,1); c171: rgba(0,171,0,1); c172: rgba(0,172,0,1); c173: rgba(0,173,0,1); c174: rgba(0,174,0,1); c175: rgba(0,175,0,1); c176: rgba(0,176,0,1); c177: rgba(0,177,0,1); c178: rgba(0,178,0,1); c179: rgba(0,179,0,1); c180: rgba(0,180,0,1); c181: rgba(0,181,0,1); c182: rgba(0,182,0,1); c183: rgba(0,183,0,1); c184: rgba(0,184,0,1); c185: rgba(0,185,0,1); c186: rgba(0,186,0,1); c187: rgba(0,187,0,1); c188: rgba(0,188,0,1); c189: rgba(0,189,0,1); c190: rgba(0,190,0,1); c191: rgba(0,191,0,1); c192: rgba(0,192,0,1); c193: rgba(0,193,0,1); c194: rgba(0,194,0,1); c195: rgba(0,195,0,1); c196: rgba(0,196,0,1); c197: rgba(0,197,0,1); c198: rgba(0,198,0,1); c199: rgba(0,199,0,1); c200: rgba(0,200,0,1); c201: rgba(0,201,0,1); c202: rgba(0,202,0,1); c203: rgba(0,203,0,1); c204: rgba(0,204,0,1); c205: rgba(0,205,0,1); c206: rgba(0,206,0,1); c207: rgba(0,207,0,1); c208: rgba(0,208,0,1); c209: rgba(0,209,0,1); c210: rgba(0,210,0,1); c211: rgba(0,211,0,1); c212: rgba(0,212,0,1); c213: rgba(0,213,0,1); c214: rgba(0,214,0,1); c215: rgba(0,215,0,1); c216: rgba(0,216,0,1); c217: rgba(0,217,0,1); c218: rgba(0,218,0,1); c219: rgba(0,219,0,1); c220: rgba(0,220,0,1); c221: rgba(0,221,0,1); c222: rgba(0,222,0,1); c223: rgba(0,223,0,1); c224: rgba(0,224,0,1); c225: rgba(0,225,0,1); c226: rgba(0,226,0,1); c227: rgba(0,227,0,1); c228: rgba(0,228,0,1); c229: rgba(0,229,0,1); c230: rgba(0,230,0,1); c231: rgba(0,231,0,1); c232: rgba(0,232,0,1); c233: rgba(0,233,0,1); c234: rgba(0,234,0,1); c235: rgba(0,235,0,1); c236: rgba(0,236,0,1); c237: rgba(0,237,0,1); c238: rgba(0,238,0,1); c239: rgba(0,239,0,1); c240: rgba(0,240,0,1); c241: rgba(0,241,0,1); c242: rgba(0,242,0,1); c243: rgba(0,243,0,1); c244: rgba(0,244,0,1); c245: rgba(0,245,0,1); c246: rgba(0,246,0,1); c247: rgba(0,247,0,1); c248: rgba(0,248,0,1); c249: rgba(0,249,0,1); c250: rgba(0,250,0,1); c251: rgba(0,251,0,1); c252: rgba(0,252,0,1); c253: rgba(0,253,0,1); c254: rgba(0,254,0,1); c255: rgba(0,255,0,1); c256: rgba(0,256,0,1); } foo { c-1: rgba(0,-1%,0,1); c0: rgba(0,0%,0,1); c1: rgba(0,1%,0,1); c2: rgba(0,2%,0,1); c3: rgba(0,3%,0,1); c4: rgba(0,4%,0,1); c5: rgba(0,5%,0,1); c6: rgba(0,6%,0,1); c7: rgba(0,7%,0,1); c8: rgba(0,8%,0,1); c9: rgba(0,9%,0,1); c10: rgba(0,10%,0,1); c11: rgba(0,11%,0,1); c12: rgba(0,12%,0,1); c13: rgba(0,13%,0,1); c14: rgba(0,14%,0,1); c15: rgba(0,15%,0,1); c16: rgba(0,16%,0,1); c17: rgba(0,17%,0,1); c18: rgba(0,18%,0,1); c19: rgba(0,19%,0,1); c20: rgba(0,20%,0,1); c21: rgba(0,21%,0,1); c22: rgba(0,22%,0,1); c23: rgba(0,23%,0,1); c24: rgba(0,24%,0,1); c25: rgba(0,25%,0,1); c26: rgba(0,26%,0,1); c27: rgba(0,27%,0,1); c28: rgba(0,28%,0,1); c29: rgba(0,29%,0,1); c30: rgba(0,30%,0,1); c31: rgba(0,31%,0,1); c32: rgba(0,32%,0,1); c33: rgba(0,33%,0,1); c34: rgba(0,34%,0,1); c35: rgba(0,35%,0,1); c36: rgba(0,36%,0,1); c37: rgba(0,37%,0,1); c38: rgba(0,38%,0,1); c39: rgba(0,39%,0,1); c40: rgba(0,40%,0,1); c41: rgba(0,41%,0,1); c42: rgba(0,42%,0,1); c43: rgba(0,43%,0,1); c44: rgba(0,44%,0,1); c45: rgba(0,45%,0,1); c46: rgba(0,46%,0,1); c47: rgba(0,47%,0,1); c48: rgba(0,48%,0,1); c49: rgba(0,49%,0,1); c50: rgba(0,50%,0,1); c51: rgba(0,51%,0,1); c52: rgba(0,52%,0,1); c53: rgba(0,53%,0,1); c54: rgba(0,54%,0,1); c55: rgba(0,55%,0,1); c56: rgba(0,56%,0,1); c57: rgba(0,57%,0,1); c58: rgba(0,58%,0,1); c59: rgba(0,59%,0,1); c60: rgba(0,60%,0,1); c61: rgba(0,61%,0,1); c62: rgba(0,62%,0,1); c63: rgba(0,63%,0,1); c64: rgba(0,64%,0,1); c65: rgba(0,65%,0,1); c66: rgba(0,66%,0,1); c67: rgba(0,67%,0,1); c68: rgba(0,68%,0,1); c69: rgba(0,69%,0,1); c70: rgba(0,70%,0,1); c71: rgba(0,71%,0,1); c72: rgba(0,72%,0,1); c73: rgba(0,73%,0,1); c74: rgba(0,74%,0,1); c75: rgba(0,75%,0,1); c76: rgba(0,76%,0,1); c77: rgba(0,77%,0,1); c78: rgba(0,78%,0,1); c79: rgba(0,79%,0,1); c80: rgba(0,80%,0,1); c81: rgba(0,81%,0,1); c82: rgba(0,82%,0,1); c83: rgba(0,83%,0,1); c84: rgba(0,84%,0,1); c85: rgba(0,85%,0,1); c86: rgba(0,86%,0,1); c87: rgba(0,87%,0,1); c88: rgba(0,88%,0,1); c89: rgba(0,89%,0,1); c90: rgba(0,90%,0,1); c91: rgba(0,91%,0,1); c92: rgba(0,92%,0,1); c93: rgba(0,93%,0,1); c94: rgba(0,94%,0,1); c95: rgba(0,95%,0,1); c96: rgba(0,96%,0,1); c97: rgba(0,97%,0,1); c98: rgba(0,98%,0,1); c99: rgba(0,99%,0,1); c100: rgba(0,100%,0,1); c101: rgba(0,101%,0,1); } <===> output.css foo { c-1: black; c0: black; c1: #000100; c2: #000200; c3: #000300; c4: #000400; c5: #000500; c6: #000600; c7: #000700; c8: #000800; c9: #000900; c10: #000a00; c11: #000b00; c12: #000c00; c13: #000d00; c14: #000e00; c15: #000f00; c16: #001000; c17: #001100; c18: #001200; c19: #001300; c20: #001400; c21: #001500; c22: #001600; c23: #001700; c24: #001800; c25: #001900; c26: #001a00; c27: #001b00; c28: #001c00; c29: #001d00; c30: #001e00; c31: #001f00; c32: #002000; c33: #002100; c34: #002200; c35: #002300; c36: #002400; c37: #002500; c38: #002600; c39: #002700; c40: #002800; c41: #002900; c42: #002a00; c43: #002b00; c44: #002c00; c45: #002d00; c46: #002e00; c47: #002f00; c48: #003000; c49: #003100; c50: #003200; c51: #003300; c52: #003400; c53: #003500; c54: #003600; c55: #003700; c56: #003800; c57: #003900; c58: #003a00; c59: #003b00; c60: #003c00; c61: #003d00; c62: #003e00; c63: #003f00; c64: #004000; c65: #004100; c66: #004200; c67: #004300; c68: #004400; c69: #004500; c70: #004600; c71: #004700; c72: #004800; c73: #004900; c74: #004a00; c75: #004b00; c76: #004c00; c77: #004d00; c78: #004e00; c79: #004f00; c80: #005000; c81: #005100; c82: #005200; c83: #005300; c84: #005400; c85: #005500; c86: #005600; c87: #005700; c88: #005800; c89: #005900; c90: #005a00; c91: #005b00; c92: #005c00; c93: #005d00; c94: #005e00; c95: #005f00; c96: #006000; c97: #006100; c98: #006200; c99: #006300; c100: darkgreen; c101: #006500; c102: #006600; c103: #006700; c104: #006800; c105: #006900; c106: #006a00; c107: #006b00; c108: #006c00; c109: #006d00; c110: #006e00; c111: #006f00; c112: #007000; c113: #007100; c114: #007200; c115: #007300; c116: #007400; c117: #007500; c118: #007600; c119: #007700; c120: #007800; c121: #007900; c122: #007a00; c123: #007b00; c124: #007c00; c125: #007d00; c126: #007e00; c127: #007f00; c128: green; c129: #008100; c130: #008200; c131: #008300; c132: #008400; c133: #008500; c134: #008600; c135: #008700; c136: #008800; c137: #008900; c138: #008a00; c139: #008b00; c140: #008c00; c141: #008d00; c142: #008e00; c143: #008f00; c144: #009000; c145: #009100; c146: #009200; c147: #009300; c148: #009400; c149: #009500; c150: #009600; c151: #009700; c152: #009800; c153: #009900; c154: #009a00; c155: #009b00; c156: #009c00; c157: #009d00; c158: #009e00; c159: #009f00; c160: #00a000; c161: #00a100; c162: #00a200; c163: #00a300; c164: #00a400; c165: #00a500; c166: #00a600; c167: #00a700; c168: #00a800; c169: #00a900; c170: #00aa00; c171: #00ab00; c172: #00ac00; c173: #00ad00; c174: #00ae00; c175: #00af00; c176: #00b000; c177: #00b100; c178: #00b200; c179: #00b300; c180: #00b400; c181: #00b500; c182: #00b600; c183: #00b700; c184: #00b800; c185: #00b900; c186: #00ba00; c187: #00bb00; c188: #00bc00; c189: #00bd00; c190: #00be00; c191: #00bf00; c192: #00c000; c193: #00c100; c194: #00c200; c195: #00c300; c196: #00c400; c197: #00c500; c198: #00c600; c199: #00c700; c200: #00c800; c201: #00c900; c202: #00ca00; c203: #00cb00; c204: #00cc00; c205: #00cd00; c206: #00ce00; c207: #00cf00; c208: #00d000; c209: #00d100; c210: #00d200; c211: #00d300; c212: #00d400; c213: #00d500; c214: #00d600; c215: #00d700; c216: #00d800; c217: #00d900; c218: #00da00; c219: #00db00; c220: #00dc00; c221: #00dd00; c222: #00de00; c223: #00df00; c224: #00e000; c225: #00e100; c226: #00e200; c227: #00e300; c228: #00e400; c229: #00e500; c230: #00e600; c231: #00e700; c232: #00e800; c233: #00e900; c234: #00ea00; c235: #00eb00; c236: #00ec00; c237: #00ed00; c238: #00ee00; c239: #00ef00; c240: #00f000; c241: #00f100; c242: #00f200; c243: #00f300; c244: #00f400; c245: #00f500; c246: #00f600; c247: #00f700; c248: #00f800; c249: #00f900; c250: #00fa00; c251: #00fb00; c252: #00fc00; c253: #00fd00; c254: #00fe00; c255: lime; c256: lime; } foo { c-1: black; c0: black; c1: #000300; c2: #000500; c3: #000800; c4: #000a00; c5: #000d00; c6: #000f00; c7: #001200; c8: #001400; c9: #001700; c10: #001a00; c11: #001c00; c12: #001f00; c13: #002100; c14: #002400; c15: #002600; c16: #002900; c17: #002b00; c18: #002e00; c19: #003000; c20: #003300; c21: #003600; c22: #003800; c23: #003b00; c24: #003d00; c25: #004000; c26: #004200; c27: #004500; c28: #004700; c29: #004a00; c30: #004d00; c31: #004f00; c32: #005200; c33: #005400; c34: #005700; c35: #005900; c36: #005c00; c37: #005e00; c38: #006100; c39: #006300; c40: #006600; c41: #006900; c42: #006b00; c43: #006e00; c44: #007000; c45: #007300; c46: #007500; c47: #007800; c48: #007a00; c49: #007d00; c50: green; c51: #008200; c52: #008500; c53: #008700; c54: #008a00; c55: #008c00; c56: #008f00; c57: #009100; c58: #009400; c59: #009600; c60: #009900; c61: #009c00; c62: #009e00; c63: #00a100; c64: #00a300; c65: #00a600; c66: #00a800; c67: #00ab00; c68: #00ad00; c69: #00b000; c70: #00b300; c71: #00b500; c72: #00b800; c73: #00ba00; c74: #00bd00; c75: #00bf00; c76: #00c200; c77: #00c400; c78: #00c700; c79: #00c900; c80: #00cc00; c81: #00cf00; c82: #00d100; c83: #00d400; c84: #00d600; c85: #00d900; c86: #00db00; c87: #00de00; c88: #00e000; c89: #00e300; c90: #00e600; c91: #00e800; c92: #00eb00; c93: #00ed00; c94: #00f000; c95: #00f200; c96: #00f500; c97: #00f700; c98: #00fa00; c99: #00fc00; c100: lime; c101: lime; } sass-spec-libsass-3.6.3/spec/libsass/color-functions/rgb/rgba/r.hrx000066400000000000000000000344651355712145100252710ustar00rootroot00000000000000<===> input.scss foo { c-1: rgba(0,-1,0,1); c0: rgba(0,0,0,1); c1: rgba(0,1,0,1); c2: rgba(0,2,0,1); c3: rgba(0,3,0,1); c4: rgba(0,4,0,1); c5: rgba(0,5,0,1); c6: rgba(0,6,0,1); c7: rgba(0,7,0,1); c8: rgba(0,8,0,1); c9: rgba(0,9,0,1); c10: rgba(0,10,0,1); c11: rgba(0,11,0,1); c12: rgba(0,12,0,1); c13: rgba(0,13,0,1); c14: rgba(0,14,0,1); c15: rgba(0,15,0,1); c16: rgba(0,16,0,1); c17: rgba(0,17,0,1); c18: rgba(0,18,0,1); c19: rgba(0,19,0,1); c20: rgba(0,20,0,1); c21: rgba(0,21,0,1); c22: rgba(0,22,0,1); c23: rgba(0,23,0,1); c24: rgba(0,24,0,1); c25: rgba(0,25,0,1); c26: rgba(0,26,0,1); c27: rgba(0,27,0,1); c28: rgba(0,28,0,1); c29: rgba(0,29,0,1); c30: rgba(0,30,0,1); c31: rgba(0,31,0,1); c32: rgba(0,32,0,1); c33: rgba(0,33,0,1); c34: rgba(0,34,0,1); c35: rgba(0,35,0,1); c36: rgba(0,36,0,1); c37: rgba(0,37,0,1); c38: rgba(0,38,0,1); c39: rgba(0,39,0,1); c40: rgba(0,40,0,1); c41: rgba(0,41,0,1); c42: rgba(0,42,0,1); c43: rgba(0,43,0,1); c44: rgba(0,44,0,1); c45: rgba(0,45,0,1); c46: rgba(0,46,0,1); c47: rgba(0,47,0,1); c48: rgba(0,48,0,1); c49: rgba(0,49,0,1); c50: rgba(0,50,0,1); c51: rgba(0,51,0,1); c52: rgba(0,52,0,1); c53: rgba(0,53,0,1); c54: rgba(0,54,0,1); c55: rgba(0,55,0,1); c56: rgba(0,56,0,1); c57: rgba(0,57,0,1); c58: rgba(0,58,0,1); c59: rgba(0,59,0,1); c60: rgba(0,60,0,1); c61: rgba(0,61,0,1); c62: rgba(0,62,0,1); c63: rgba(0,63,0,1); c64: rgba(0,64,0,1); c65: rgba(0,65,0,1); c66: rgba(0,66,0,1); c67: rgba(0,67,0,1); c68: rgba(0,68,0,1); c69: rgba(0,69,0,1); c70: rgba(0,70,0,1); c71: rgba(0,71,0,1); c72: rgba(0,72,0,1); c73: rgba(0,73,0,1); c74: rgba(0,74,0,1); c75: rgba(0,75,0,1); c76: rgba(0,76,0,1); c77: rgba(0,77,0,1); c78: rgba(0,78,0,1); c79: rgba(0,79,0,1); c80: rgba(0,80,0,1); c81: rgba(0,81,0,1); c82: rgba(0,82,0,1); c83: rgba(0,83,0,1); c84: rgba(0,84,0,1); c85: rgba(0,85,0,1); c86: rgba(0,86,0,1); c87: rgba(0,87,0,1); c88: rgba(0,88,0,1); c89: rgba(0,89,0,1); c90: rgba(0,90,0,1); c91: rgba(0,91,0,1); c92: rgba(0,92,0,1); c93: rgba(0,93,0,1); c94: rgba(0,94,0,1); c95: rgba(0,95,0,1); c96: rgba(0,96,0,1); c97: rgba(0,97,0,1); c98: rgba(0,98,0,1); c99: rgba(0,99,0,1); c100: rgba(0,100,0,1); c101: rgba(0,101,0,1); c102: rgba(0,102,0,1); c103: rgba(0,103,0,1); c104: rgba(0,104,0,1); c105: rgba(0,105,0,1); c106: rgba(0,106,0,1); c107: rgba(0,107,0,1); c108: rgba(0,108,0,1); c109: rgba(0,109,0,1); c110: rgba(0,110,0,1); c111: rgba(0,111,0,1); c112: rgba(0,112,0,1); c113: rgba(0,113,0,1); c114: rgba(0,114,0,1); c115: rgba(0,115,0,1); c116: rgba(0,116,0,1); c117: rgba(0,117,0,1); c118: rgba(0,118,0,1); c119: rgba(0,119,0,1); c120: rgba(0,120,0,1); c121: rgba(0,121,0,1); c122: rgba(0,122,0,1); c123: rgba(0,123,0,1); c124: rgba(0,124,0,1); c125: rgba(0,125,0,1); c126: rgba(0,126,0,1); c127: rgba(0,127,0,1); c128: rgba(0,128,0,1); c129: rgba(0,129,0,1); c130: rgba(0,130,0,1); c131: rgba(0,131,0,1); c132: rgba(0,132,0,1); c133: rgba(0,133,0,1); c134: rgba(0,134,0,1); c135: rgba(0,135,0,1); c136: rgba(0,136,0,1); c137: rgba(0,137,0,1); c138: rgba(0,138,0,1); c139: rgba(0,139,0,1); c140: rgba(0,140,0,1); c141: rgba(0,141,0,1); c142: rgba(0,142,0,1); c143: rgba(0,143,0,1); c144: rgba(0,144,0,1); c145: rgba(0,145,0,1); c146: rgba(0,146,0,1); c147: rgba(0,147,0,1); c148: rgba(0,148,0,1); c149: rgba(0,149,0,1); c150: rgba(0,150,0,1); c151: rgba(0,151,0,1); c152: rgba(0,152,0,1); c153: rgba(0,153,0,1); c154: rgba(0,154,0,1); c155: rgba(0,155,0,1); c156: rgba(0,156,0,1); c157: rgba(0,157,0,1); c158: rgba(0,158,0,1); c159: rgba(0,159,0,1); c160: rgba(0,160,0,1); c161: rgba(0,161,0,1); c162: rgba(0,162,0,1); c163: rgba(0,163,0,1); c164: rgba(0,164,0,1); c165: rgba(0,165,0,1); c166: rgba(0,166,0,1); c167: rgba(0,167,0,1); c168: rgba(0,168,0,1); c169: rgba(0,169,0,1); c170: rgba(0,170,0,1); c171: rgba(0,171,0,1); c172: rgba(0,172,0,1); c173: rgba(0,173,0,1); c174: rgba(0,174,0,1); c175: rgba(0,175,0,1); c176: rgba(0,176,0,1); c177: rgba(0,177,0,1); c178: rgba(0,178,0,1); c179: rgba(0,179,0,1); c180: rgba(0,180,0,1); c181: rgba(0,181,0,1); c182: rgba(0,182,0,1); c183: rgba(0,183,0,1); c184: rgba(0,184,0,1); c185: rgba(0,185,0,1); c186: rgba(0,186,0,1); c187: rgba(0,187,0,1); c188: rgba(0,188,0,1); c189: rgba(0,189,0,1); c190: rgba(0,190,0,1); c191: rgba(0,191,0,1); c192: rgba(0,192,0,1); c193: rgba(0,193,0,1); c194: rgba(0,194,0,1); c195: rgba(0,195,0,1); c196: rgba(0,196,0,1); c197: rgba(0,197,0,1); c198: rgba(0,198,0,1); c199: rgba(0,199,0,1); c200: rgba(0,200,0,1); c201: rgba(0,201,0,1); c202: rgba(0,202,0,1); c203: rgba(0,203,0,1); c204: rgba(0,204,0,1); c205: rgba(0,205,0,1); c206: rgba(0,206,0,1); c207: rgba(0,207,0,1); c208: rgba(0,208,0,1); c209: rgba(0,209,0,1); c210: rgba(0,210,0,1); c211: rgba(0,211,0,1); c212: rgba(0,212,0,1); c213: rgba(0,213,0,1); c214: rgba(0,214,0,1); c215: rgba(0,215,0,1); c216: rgba(0,216,0,1); c217: rgba(0,217,0,1); c218: rgba(0,218,0,1); c219: rgba(0,219,0,1); c220: rgba(0,220,0,1); c221: rgba(0,221,0,1); c222: rgba(0,222,0,1); c223: rgba(0,223,0,1); c224: rgba(0,224,0,1); c225: rgba(0,225,0,1); c226: rgba(0,226,0,1); c227: rgba(0,227,0,1); c228: rgba(0,228,0,1); c229: rgba(0,229,0,1); c230: rgba(0,230,0,1); c231: rgba(0,231,0,1); c232: rgba(0,232,0,1); c233: rgba(0,233,0,1); c234: rgba(0,234,0,1); c235: rgba(0,235,0,1); c236: rgba(0,236,0,1); c237: rgba(0,237,0,1); c238: rgba(0,238,0,1); c239: rgba(0,239,0,1); c240: rgba(0,240,0,1); c241: rgba(0,241,0,1); c242: rgba(0,242,0,1); c243: rgba(0,243,0,1); c244: rgba(0,244,0,1); c245: rgba(0,245,0,1); c246: rgba(0,246,0,1); c247: rgba(0,247,0,1); c248: rgba(0,248,0,1); c249: rgba(0,249,0,1); c250: rgba(0,250,0,1); c251: rgba(0,251,0,1); c252: rgba(0,252,0,1); c253: rgba(0,253,0,1); c254: rgba(0,254,0,1); c255: rgba(0,255,0,1); c256: rgba(0,256,0,1); } foo { c-1: rgba(-1%,0,0,1); c0: rgba(0%,0,0,1); c1: rgba(1%,0,0,1); c2: rgba(2%,0,0,1); c3: rgba(3%,0,0,1); c4: rgba(4%,0,0,1); c5: rgba(5%,0,0,1); c6: rgba(6%,0,0,1); c7: rgba(7%,0,0,1); c8: rgba(8%,0,0,1); c9: rgba(9%,0,0,1); c10: rgba(10%,0,0,1); c11: rgba(11%,0,0,1); c12: rgba(12%,0,0,1); c13: rgba(13%,0,0,1); c14: rgba(14%,0,0,1); c15: rgba(15%,0,0,1); c16: rgba(16%,0,0,1); c17: rgba(17%,0,0,1); c18: rgba(18%,0,0,1); c19: rgba(19%,0,0,1); c20: rgba(20%,0,0,1); c21: rgba(21%,0,0,1); c22: rgba(22%,0,0,1); c23: rgba(23%,0,0,1); c24: rgba(24%,0,0,1); c25: rgba(25%,0,0,1); c26: rgba(26%,0,0,1); c27: rgba(27%,0,0,1); c28: rgba(28%,0,0,1); c29: rgba(29%,0,0,1); c30: rgba(30%,0,0,1); c31: rgba(31%,0,0,1); c32: rgba(32%,0,0,1); c33: rgba(33%,0,0,1); c34: rgba(34%,0,0,1); c35: rgba(35%,0,0,1); c36: rgba(36%,0,0,1); c37: rgba(37%,0,0,1); c38: rgba(38%,0,0,1); c39: rgba(39%,0,0,1); c40: rgba(40%,0,0,1); c41: rgba(41%,0,0,1); c42: rgba(42%,0,0,1); c43: rgba(43%,0,0,1); c44: rgba(44%,0,0,1); c45: rgba(45%,0,0,1); c46: rgba(46%,0,0,1); c47: rgba(47%,0,0,1); c48: rgba(48%,0,0,1); c49: rgba(49%,0,0,1); c50: rgba(50%,0,0,1); c51: rgba(51%,0,0,1); c52: rgba(52%,0,0,1); c53: rgba(53%,0,0,1); c54: rgba(54%,0,0,1); c55: rgba(55%,0,0,1); c56: rgba(56%,0,0,1); c57: rgba(57%,0,0,1); c58: rgba(58%,0,0,1); c59: rgba(59%,0,0,1); c60: rgba(60%,0,0,1); c61: rgba(61%,0,0,1); c62: rgba(62%,0,0,1); c63: rgba(63%,0,0,1); c64: rgba(64%,0,0,1); c65: rgba(65%,0,0,1); c66: rgba(66%,0,0,1); c67: rgba(67%,0,0,1); c68: rgba(68%,0,0,1); c69: rgba(69%,0,0,1); c70: rgba(70%,0,0,1); c71: rgba(71%,0,0,1); c72: rgba(72%,0,0,1); c73: rgba(73%,0,0,1); c74: rgba(74%,0,0,1); c75: rgba(75%,0,0,1); c76: rgba(76%,0,0,1); c77: rgba(77%,0,0,1); c78: rgba(78%,0,0,1); c79: rgba(79%,0,0,1); c80: rgba(80%,0,0,1); c81: rgba(81%,0,0,1); c82: rgba(82%,0,0,1); c83: rgba(83%,0,0,1); c84: rgba(84%,0,0,1); c85: rgba(85%,0,0,1); c86: rgba(86%,0,0,1); c87: rgba(87%,0,0,1); c88: rgba(88%,0,0,1); c89: rgba(89%,0,0,1); c90: rgba(90%,0,0,1); c91: rgba(91%,0,0,1); c92: rgba(92%,0,0,1); c93: rgba(93%,0,0,1); c94: rgba(94%,0,0,1); c95: rgba(95%,0,0,1); c96: rgba(96%,0,0,1); c97: rgba(97%,0,0,1); c98: rgba(98%,0,0,1); c99: rgba(99%,0,0,1); c100: rgba(100%,0,0,1); c101: rgba(101%,0,0,1); } <===> output.css foo { c-1: black; c0: black; c1: #000100; c2: #000200; c3: #000300; c4: #000400; c5: #000500; c6: #000600; c7: #000700; c8: #000800; c9: #000900; c10: #000a00; c11: #000b00; c12: #000c00; c13: #000d00; c14: #000e00; c15: #000f00; c16: #001000; c17: #001100; c18: #001200; c19: #001300; c20: #001400; c21: #001500; c22: #001600; c23: #001700; c24: #001800; c25: #001900; c26: #001a00; c27: #001b00; c28: #001c00; c29: #001d00; c30: #001e00; c31: #001f00; c32: #002000; c33: #002100; c34: #002200; c35: #002300; c36: #002400; c37: #002500; c38: #002600; c39: #002700; c40: #002800; c41: #002900; c42: #002a00; c43: #002b00; c44: #002c00; c45: #002d00; c46: #002e00; c47: #002f00; c48: #003000; c49: #003100; c50: #003200; c51: #003300; c52: #003400; c53: #003500; c54: #003600; c55: #003700; c56: #003800; c57: #003900; c58: #003a00; c59: #003b00; c60: #003c00; c61: #003d00; c62: #003e00; c63: #003f00; c64: #004000; c65: #004100; c66: #004200; c67: #004300; c68: #004400; c69: #004500; c70: #004600; c71: #004700; c72: #004800; c73: #004900; c74: #004a00; c75: #004b00; c76: #004c00; c77: #004d00; c78: #004e00; c79: #004f00; c80: #005000; c81: #005100; c82: #005200; c83: #005300; c84: #005400; c85: #005500; c86: #005600; c87: #005700; c88: #005800; c89: #005900; c90: #005a00; c91: #005b00; c92: #005c00; c93: #005d00; c94: #005e00; c95: #005f00; c96: #006000; c97: #006100; c98: #006200; c99: #006300; c100: darkgreen; c101: #006500; c102: #006600; c103: #006700; c104: #006800; c105: #006900; c106: #006a00; c107: #006b00; c108: #006c00; c109: #006d00; c110: #006e00; c111: #006f00; c112: #007000; c113: #007100; c114: #007200; c115: #007300; c116: #007400; c117: #007500; c118: #007600; c119: #007700; c120: #007800; c121: #007900; c122: #007a00; c123: #007b00; c124: #007c00; c125: #007d00; c126: #007e00; c127: #007f00; c128: green; c129: #008100; c130: #008200; c131: #008300; c132: #008400; c133: #008500; c134: #008600; c135: #008700; c136: #008800; c137: #008900; c138: #008a00; c139: #008b00; c140: #008c00; c141: #008d00; c142: #008e00; c143: #008f00; c144: #009000; c145: #009100; c146: #009200; c147: #009300; c148: #009400; c149: #009500; c150: #009600; c151: #009700; c152: #009800; c153: #009900; c154: #009a00; c155: #009b00; c156: #009c00; c157: #009d00; c158: #009e00; c159: #009f00; c160: #00a000; c161: #00a100; c162: #00a200; c163: #00a300; c164: #00a400; c165: #00a500; c166: #00a600; c167: #00a700; c168: #00a800; c169: #00a900; c170: #00aa00; c171: #00ab00; c172: #00ac00; c173: #00ad00; c174: #00ae00; c175: #00af00; c176: #00b000; c177: #00b100; c178: #00b200; c179: #00b300; c180: #00b400; c181: #00b500; c182: #00b600; c183: #00b700; c184: #00b800; c185: #00b900; c186: #00ba00; c187: #00bb00; c188: #00bc00; c189: #00bd00; c190: #00be00; c191: #00bf00; c192: #00c000; c193: #00c100; c194: #00c200; c195: #00c300; c196: #00c400; c197: #00c500; c198: #00c600; c199: #00c700; c200: #00c800; c201: #00c900; c202: #00ca00; c203: #00cb00; c204: #00cc00; c205: #00cd00; c206: #00ce00; c207: #00cf00; c208: #00d000; c209: #00d100; c210: #00d200; c211: #00d300; c212: #00d400; c213: #00d500; c214: #00d600; c215: #00d700; c216: #00d800; c217: #00d900; c218: #00da00; c219: #00db00; c220: #00dc00; c221: #00dd00; c222: #00de00; c223: #00df00; c224: #00e000; c225: #00e100; c226: #00e200; c227: #00e300; c228: #00e400; c229: #00e500; c230: #00e600; c231: #00e700; c232: #00e800; c233: #00e900; c234: #00ea00; c235: #00eb00; c236: #00ec00; c237: #00ed00; c238: #00ee00; c239: #00ef00; c240: #00f000; c241: #00f100; c242: #00f200; c243: #00f300; c244: #00f400; c245: #00f500; c246: #00f600; c247: #00f700; c248: #00f800; c249: #00f900; c250: #00fa00; c251: #00fb00; c252: #00fc00; c253: #00fd00; c254: #00fe00; c255: lime; c256: lime; } foo { c-1: black; c0: black; c1: #030000; c2: #050000; c3: #080000; c4: #0a0000; c5: #0d0000; c6: #0f0000; c7: #120000; c8: #140000; c9: #170000; c10: #1a0000; c11: #1c0000; c12: #1f0000; c13: #210000; c14: #240000; c15: #260000; c16: #290000; c17: #2b0000; c18: #2e0000; c19: #300000; c20: #330000; c21: #360000; c22: #380000; c23: #3b0000; c24: #3d0000; c25: #400000; c26: #420000; c27: #450000; c28: #470000; c29: #4a0000; c30: #4d0000; c31: #4f0000; c32: #520000; c33: #540000; c34: #570000; c35: #590000; c36: #5c0000; c37: #5e0000; c38: #610000; c39: #630000; c40: #660000; c41: #690000; c42: #6b0000; c43: #6e0000; c44: #700000; c45: #730000; c46: #750000; c47: #780000; c48: #7a0000; c49: #7d0000; c50: maroon; c51: #820000; c52: #850000; c53: #870000; c54: #8a0000; c55: #8c0000; c56: #8f0000; c57: #910000; c58: #940000; c59: #960000; c60: #990000; c61: #9c0000; c62: #9e0000; c63: #a10000; c64: #a30000; c65: #a60000; c66: #a80000; c67: #ab0000; c68: #ad0000; c69: #b00000; c70: #b30000; c71: #b50000; c72: #b80000; c73: #ba0000; c74: #bd0000; c75: #bf0000; c76: #c20000; c77: #c40000; c78: #c70000; c79: #c90000; c80: #cc0000; c81: #cf0000; c82: #d10000; c83: #d40000; c84: #d60000; c85: #d90000; c86: #db0000; c87: #de0000; c88: #e00000; c89: #e30000; c90: #e60000; c91: #e80000; c92: #eb0000; c93: #ed0000; c94: #f00000; c95: #f20000; c96: #f50000; c97: #f70000; c98: #fa0000; c99: #fc0000; c100: red; c101: red; } sass-spec-libsass-3.6.3/spec/libsass/color-functions/saturate.hrx000066400000000000000000000131701355712145100251610ustar00rootroot00000000000000<===> input.scss foo { c0: saturate(hsl(100, 0%, 50%), 0%); c1: saturate(hsl(100, 0%, 50%), 1%); c2: saturate(hsl(100, 0%, 50%), 2%); c3: saturate(hsl(100, 0%, 50%), 3%); c4: saturate(hsl(100, 0%, 50%), 4%); c5: saturate(hsl(100, 0%, 50%), 5%); c6: saturate(hsl(100, 0%, 50%), 6%); c7: saturate(hsl(100, 0%, 50%), 7%); c8: saturate(hsl(100, 0%, 50%), 8%); c9: saturate(hsl(100, 0%, 50%), 9%); c10: saturate(hsl(100, 0%, 50%), 10%); c11: saturate(hsl(100, 0%, 50%), 11%); c12: saturate(hsl(100, 0%, 50%), 12%); c13: saturate(hsl(100, 0%, 50%), 13%); c14: saturate(hsl(100, 0%, 50%), 14%); c15: saturate(hsl(100, 0%, 50%), 15%); c16: saturate(hsl(100, 0%, 50%), 16%); c17: saturate(hsl(100, 0%, 50%), 17%); c18: saturate(hsl(100, 0%, 50%), 18%); c19: saturate(hsl(100, 0%, 50%), 19%); c20: saturate(hsl(100, 0%, 50%), 20%); c21: saturate(hsl(100, 0%, 50%), 21%); c22: saturate(hsl(100, 0%, 50%), 22%); c23: saturate(hsl(100, 0%, 50%), 23%); c24: saturate(hsl(100, 0%, 50%), 24%); c25: saturate(hsl(100, 0%, 50%), 25%); c26: saturate(hsl(100, 0%, 50%), 26%); c27: saturate(hsl(100, 0%, 50%), 27%); c28: saturate(hsl(100, 0%, 50%), 28%); c29: saturate(hsl(100, 0%, 50%), 29%); c30: saturate(hsl(100, 0%, 50%), 30%); c31: saturate(hsl(100, 0%, 50%), 31%); c32: saturate(hsl(100, 0%, 50%), 32%); c33: saturate(hsl(100, 0%, 50%), 33%); c34: saturate(hsl(100, 0%, 50%), 34%); c35: saturate(hsl(100, 0%, 50%), 35%); c36: saturate(hsl(100, 0%, 50%), 36%); c37: saturate(hsl(100, 0%, 50%), 37%); c38: saturate(hsl(100, 0%, 50%), 38%); c39: saturate(hsl(100, 0%, 50%), 39%); // c40: saturate(hsl(100, 0%, 50%), 40%); c41: saturate(hsl(100, 0%, 50%), 41%); c42: saturate(hsl(100, 0%, 50%), 42%); c43: saturate(hsl(100, 0%, 50%), 43%); c44: saturate(hsl(100, 0%, 50%), 44%); c45: saturate(hsl(100, 0%, 50%), 45%); c46: saturate(hsl(100, 0%, 50%), 46%); c47: saturate(hsl(100, 0%, 50%), 47%); c48: saturate(hsl(100, 0%, 50%), 48%); c49: saturate(hsl(100, 0%, 50%), 49%); c50: saturate(hsl(100, 0%, 50%), 50%); c51: saturate(hsl(100, 0%, 50%), 51%); c52: saturate(hsl(100, 0%, 50%), 52%); c53: saturate(hsl(100, 0%, 50%), 53%); c54: saturate(hsl(100, 0%, 50%), 54%); c55: saturate(hsl(100, 0%, 50%), 55%); c56: saturate(hsl(100, 0%, 50%), 56%); c57: saturate(hsl(100, 0%, 50%), 57%); c58: saturate(hsl(100, 0%, 50%), 58%); c59: saturate(hsl(100, 0%, 50%), 59%); c60: saturate(hsl(100, 0%, 50%), 60%); c61: saturate(hsl(100, 0%, 50%), 61%); c62: saturate(hsl(100, 0%, 50%), 62%); c63: saturate(hsl(100, 0%, 50%), 63%); c64: saturate(hsl(100, 0%, 50%), 64%); c65: saturate(hsl(100, 0%, 50%), 65%); c66: saturate(hsl(100, 0%, 50%), 66%); c67: saturate(hsl(100, 0%, 50%), 67%); c68: saturate(hsl(100, 0%, 50%), 68%); c69: saturate(hsl(100, 0%, 50%), 69%); c70: saturate(hsl(100, 0%, 50%), 70%); c71: saturate(hsl(100, 0%, 50%), 71%); c72: saturate(hsl(100, 0%, 50%), 72%); c73: saturate(hsl(100, 0%, 50%), 73%); c74: saturate(hsl(100, 0%, 50%), 74%); c75: saturate(hsl(100, 0%, 50%), 75%); c76: saturate(hsl(100, 0%, 50%), 76%); c77: saturate(hsl(100, 0%, 50%), 77%); c78: saturate(hsl(100, 0%, 50%), 78%); c79: saturate(hsl(100, 0%, 50%), 79%); // c80: saturate(hsl(100, 0%, 50%), 80%); c81: saturate(hsl(100, 0%, 50%), 81%); c82: saturate(hsl(100, 0%, 50%), 82%); c83: saturate(hsl(100, 0%, 50%), 83%); c84: saturate(hsl(100, 0%, 50%), 84%); c85: saturate(hsl(100, 0%, 50%), 85%); c86: saturate(hsl(100, 0%, 50%), 86%); c87: saturate(hsl(100, 0%, 50%), 87%); c88: saturate(hsl(100, 0%, 50%), 88%); c89: saturate(hsl(100, 0%, 50%), 89%); c90: saturate(hsl(100, 0%, 50%), 90%); c91: saturate(hsl(100, 0%, 50%), 91%); c92: saturate(hsl(100, 0%, 50%), 92%); c93: saturate(hsl(100, 0%, 50%), 93%); c94: saturate(hsl(100, 0%, 50%), 94%); c95: saturate(hsl(100, 0%, 50%), 95%); c96: saturate(hsl(100, 0%, 50%), 96%); c97: saturate(hsl(100, 0%, 50%), 97%); c98: saturate(hsl(100, 0%, 50%), 98%); c99: saturate(hsl(100, 0%, 50%), 99%); c100: saturate(hsl(100, 0%, 50%), 100%); } <===> output.css foo { c0: gray; c1: #7f817e; c2: #7f827d; c3: #7e837c; c4: #7e857a; c5: #7d8679; c6: #7d8778; c7: #7d8877; c8: #7c8a75; c9: #7c8b74; c10: #7b8c73; c11: #7b8e71; c12: #7a8f70; c13: #7a906f; c14: #7a916e; c15: #79936c; c16: #79946b; c17: #78956a; c18: #789669; c19: #779867; c20: #779966; c21: #779a65; c22: #769c63; c23: #769d62; c24: #759e61; c25: #759f60; c26: #74a15e; c27: #74a25d; c28: #74a35c; c29: #73a45b; c30: #73a659; c31: #72a758; c32: #72a857; c33: #71aa55; c34: #71ab54; c35: #71ac53; c36: #70ad52; c37: #70af50; c38: #6fb04f; c39: #6fb14e; c41: #6eb44b; c42: #6eb54a; c43: #6db649; c44: #6db847; c45: #6cb946; c46: #6cba45; c47: #6cbb44; c48: #6bbd42; c49: #6bbe41; c50: #6abf40; c51: #6ac13e; c52: #69c23d; c53: #69c33c; c54: #69c43b; c55: #68c639; c56: #68c738; c57: #67c837; c58: #67c936; c59: #66cb34; c60: #66cc33; c61: #66cd32; c62: #65cf30; c63: #65d02f; c64: #64d12e; c65: #64d22d; c66: #63d42b; c67: #63d52a; c68: #63d629; c69: #62d728; c70: #62d926; c71: #61da25; c72: #61db24; c73: #60dd22; c74: #60de21; c75: #60df20; c76: #5fe01f; c77: #5fe21d; c78: #5ee31c; c79: #5ee41b; c81: #5de718; c82: #5de817; c83: #5ce916; c84: #5ceb14; c85: #5bec13; c86: #5bed12; c87: #5bee11; c88: #5af00f; c89: #5af10e; c90: #59f20d; c91: #59f40b; c92: #58f50a; c93: #58f609; c94: #58f708; c95: #57f906; c96: #57fa05; c97: #56fb04; c98: #56fc03; c99: #55fe01; c100: #55ff00; } sass-spec-libsass-3.6.3/spec/libsass/conversions.hrx000066400000000000000000000002761355712145100225600ustar00rootroot00000000000000<===> input.scss div { width: 3cm * 2in * 2in / 1cm / 1cm; width: 3cm * 2in / 1cm; width: 4cm * (12in / 3in); } <===> output.css div { width: 30.48in; width: 6in; width: 16cm; } sass-spec-libsass-3.6.3/spec/libsass/css-import.hrx000066400000000000000000000003611355712145100223030ustar00rootroot00000000000000<===> input.scss @import 'foo.css', "bar.css"; div { color: red; } <===> output.css @import url(foo.css); @import url(bar.css); div { color: red; } <===> output-dart-sass.css @import 'foo.css'; @import "bar.css"; div { color: red; } sass-spec-libsass-3.6.3/spec/libsass/css_nth_selectors.hrx000066400000000000000000000006241355712145100237310ustar00rootroot00000000000000<===> input.scss :nth-child(2n + 3) { outer-whitespace: false; } // Regression test for sass/dart-sass#465. :nth-child( 2n + 3 ) { outer-whitespace: true; } <===> output.css :nth-child(2n + 3) { outer-whitespace: false; } :nth-child(2n + 3) { outer-whitespace: true; } <===> output-dart-sass.css :nth-child(2n+3) { outer-whitespace: false; } :nth-child(2n+3) { outer-whitespace: true; } sass-spec-libsass-3.6.3/spec/libsass/css_unicode/000077500000000000000000000000001355712145100217565ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/libsass/css_unicode/input.scss000066400000000000000000000000551355712145100240120ustar00rootroot00000000000000@charset "UTF-8"; foo { bar: föö bâr; } sass-spec-libsass-3.6.3/spec/libsass/css_unicode/output.css000066400000000000000000000000551355712145100240300ustar00rootroot00000000000000@charset "UTF-8"; foo { bar: föö bâr; } sass-spec-libsass-3.6.3/spec/libsass/debug-directive-nested/000077500000000000000000000000001355712145100240025ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/libsass/debug-directive-nested/function.hrx000066400000000000000000000004371355712145100263560ustar00rootroot00000000000000<===> input.scss @function c() { @warn test; @return d; } a { b: { c: c(); } } <===> output.css a { b-c: d; } <===> warning WARNING: test on line 2 of input.scss <===> warning-dart-sass WARNING: test input.scss 2:3 c() input.scss 8:8 root stylesheet sass-spec-libsass-3.6.3/spec/libsass/debug-directive-nested/inline.hrx000066400000000000000000000005441355712145100260060ustar00rootroot00000000000000<===> input.scss a { b: { @debug test; c: d; } } <===> error Error: Illegal nesting: Only properties may be nested beneath properties. on line 3 of input.scss Use --trace for backtrace. <===> output-dart-sass.css a { b-c: d; } <===> warning-dart-sass spec/libsass/debug-directive-nested/inline-dart-sass/input.scss:3 DEBUG: test sass-spec-libsass-3.6.3/spec/libsass/debug-directive-nested/mixin.hrx000066400000000000000000000005101355712145100256450ustar00rootroot00000000000000<===> input.scss @mixin c() { @warn test; c: d; } a { b: { @include c(); } } <===> output.css a { b-c: d; } <===> warning WARNING: test on line 2 of input.scss, in `c' from line 8 of input.scss <===> warning-dart-sass WARNING: test input.scss 2:3 c() input.scss 8:5 root stylesheet sass-spec-libsass-3.6.3/spec/libsass/delayed.hrx000066400000000000000000000026311355712145100216140ustar00rootroot00000000000000<===> input.scss $x: a 3/4 b; $y: hey; @function foo() { @return 3/4; } div { hoo: 3/4; goo: nth($x, 2); foo: 15 / nth($x, 2); foo: .25 + nth($x, 2); coo: 2/3 / nth($x, 2); bar: $y and true; bar: false and true; bar: (false) and true; @each $elem in $x { blah: $elem; } bloo: foo(); @warn 2/3; blix: "hey #{nth($x, 2)} ho"; } @media screen and (hux: 3/4) { div { color: red; } } @warn "blah blah"; div { blah: "ho #{nth($x, 2) } ho"; } span { fludge: (true and 3/4); } <===> output.css div { hoo: 3/4; goo: 0.75; foo: 20; foo: 1; coo: 0.8888888889; bar: true; bar: false; bar: false; blah: a; blah: 0.75; blah: b; bloo: 0.75; blix: "hey 0.75 ho"; } @media screen and (hux: 3/4) { div { color: red; } } div { blah: "ho 0.75 ho"; } span { fludge: 0.75; } <===> output-libsass.css div { hoo: 3/4; goo: 0.75; foo: 20; foo: 1; coo: 0.8888888889; bar: true; bar: false and true; bar: false; blah: a; blah: 0.75; blah: b; bloo: 0.75; blix: "hey 0.75 ho"; } @media screen and (hux: 3/4) { div { color: red; } } div { blah: "ho 0.75 ho"; } span { fludge: 0.75; } <===> warning WARNING: 2/3 on line 21 of input.scss WARNING: blah blah on line 31 of input.scss <===> warning-dart-sass WARNING: 2/3 input.scss 21:3 root stylesheet WARNING: blah blah input.scss 31:1 root stylesheet sass-spec-libsass-3.6.3/spec/libsass/div.hrx000066400000000000000000000005301355712145100207630ustar00rootroot00000000000000<===> input.scss $x: 3/4; $xs: hey 3/4 ho; div { /* $x: 3/4 */ a: $x; b: hey $x ho; /* $xs: hey 3/4 ho */ c: $xs; d: nth($xs, 2); e: nth($xs, 2) == 0.75; f: type-of(nth($xs, 2)); } <===> output.css div { /* $x: 3/4 */ a: 0.75; b: hey 0.75 ho; /* $xs: hey 3/4 ho */ c: hey 3/4 ho; d: 0.75; e: true; f: number; } sass-spec-libsass-3.6.3/spec/libsass/env.hrx000066400000000000000000000013441355712145100207750ustar00rootroot00000000000000<===> input.scss $x: 0; div { /* 0 */ font: $x; $x: 1 !global; /* 1 */ font: $x; span { $x: 2 !global; /* 2 */ font: $x; } /* 2 */ font: $x; p { /* 2 */ font: $x; } } div { @foo { $y: 2; font: $y; } @bar { $y: 3; font: $y; } } @mixin foo() { content: "foo"; @content; } div { $z: "whatever"; @include foo() { $z: "block for foo!"; font: fudge; } width: $z; } <===> output.css div { /* 0 */ font: 0; /* 1 */ font: 1; /* 2 */ font: 2; } div span { /* 2 */ font: 2; } div p { /* 2 */ font: 2; } @foo { div { font: 2; } } @bar { div { font: 3; } } div { content: "foo"; font: fudge; width: "block for foo!"; } sass-spec-libsass-3.6.3/spec/libsass/eq.hrx000066400000000000000000000002601355712145100206060ustar00rootroot00000000000000<===> input.scss div { foo: center == "center"; foo: (a b c) == (a b c); foo: a b c == a b c; } <===> output.css div { foo: true; foo: true; foo: a b false b c; } sass-spec-libsass-3.6.3/spec/libsass/error-directive-nested/000077500000000000000000000000001355712145100240455ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/libsass/error-directive-nested/function.hrx000066400000000000000000000004731355712145100264210ustar00rootroot00000000000000<===> input.scss @function c() { @error test; @return d; } a { b: { c: c(); } } <===> error Error: test on line 2 of input.scss Use --trace for backtrace. <===> error-dart-sass Error: test , 2 | @error test; | ^^^^^^^^^^^ ' input.scss 2:3 c() input.scss 8:8 root stylesheet sass-spec-libsass-3.6.3/spec/libsass/error-directive-nested/inline.hrx000066400000000000000000000005071355712145100260500ustar00rootroot00000000000000<===> input.scss a { b: { @error test; c: d; } } <===> error Error: Illegal nesting: Only properties may be nested beneath properties. on line 3 of input.scss Use --trace for backtrace. <===> error-dart-sass Error: test , 3 | @error test; | ^^^^^^^^^^^ ' input.scss 3:5 root stylesheet sass-spec-libsass-3.6.3/spec/libsass/error-directive-nested/mixin.hrx000066400000000000000000000005431355712145100257160ustar00rootroot00000000000000<===> input.scss @mixin c() { @error test; c: d; } a { b: { @include c(); } } <===> error Error: test on line 2 of input.scss, in `c' from line 8 of input.scss Use --trace for backtrace. <===> error-dart-sass Error: test , 2 | @error test; | ^^^^^^^^^^^ ' input.scss 2:3 c() input.scss 8:5 root stylesheet sass-spec-libsass-3.6.3/spec/libsass/features/000077500000000000000000000000001355712145100212765ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/libsass/features/at-error.hrx000066400000000000000000000001431355712145100235520ustar00rootroot00000000000000<===> input.scss foo { foo: feature-exists('at-error'); } <===> output.css foo { foo: true; } sass-spec-libsass-3.6.3/spec/libsass/features/extend-selector-pseudoclass.hrx000066400000000000000000000001661355712145100274540ustar00rootroot00000000000000<===> input.scss foo { foo: feature-exists('extend-selector-pseudoclass'); } <===> output.css foo { foo: true; } sass-spec-libsass-3.6.3/spec/libsass/features/global-variable-shadowing.hrx000066400000000000000000000001641355712145100270260ustar00rootroot00000000000000<===> input.scss foo { foo: feature-exists('global-variable-shadowing'); } <===> output.css foo { foo: true; } sass-spec-libsass-3.6.3/spec/libsass/features/units-level-3.hrx000066400000000000000000000001501355712145100244240ustar00rootroot00000000000000<===> input.scss foo { foo: feature-exists('units-level-3'); } <===> output.css foo { foo: true; } sass-spec-libsass-3.6.3/spec/libsass/http_import.hrx000066400000000000000000000002341355712145100225530ustar00rootroot00000000000000<===> input.scss @import "http://fonts.googleapis.com/css?family=Droid+Sans"; <===> output.css @import "http://fonts.googleapis.com/css?family=Droid+Sans"; sass-spec-libsass-3.6.3/spec/libsass/image-url.hrx000066400000000000000000000003141355712145100220630ustar00rootroot00000000000000<===> input.scss div { blah: image-url("hello.png", false); blah: image-url("hello.png", true); } <===> output.css div { blah: image-url("hello.png", false); blah: image-url("hello.png", true); } sass-spec-libsass-3.6.3/spec/libsass/import.hrx000066400000000000000000000007731355712145100215240ustar00rootroot00000000000000<===> input.scss @import "hey1.css", "cookie.css", url("hey2.css"), "fudge.css"; $foo:"goodbye"; div[name="hello"] { color: blue; } @import "bludge.css"; <===> output.css @import url(hey1.css); @import url(cookie.css); @import url("hey2.css"); @import url(fudge.css); @import url(bludge.css); div[name="hello"] { color: blue; } <===> output-dart-sass.css @import "hey1.css"; @import "cookie.css"; @import url("hey2.css"); @import "fudge.css"; @import "bludge.css"; div[name=hello] { color: blue; } sass-spec-libsass-3.6.3/spec/libsass/inh.hrx000066400000000000000000000002301355712145100207540ustar00rootroot00000000000000<===> input.scss foo.a { width: 10px; } bar { color: red; @extend foo; } <===> output.css foo.a, bar.a { width: 10px; } bar { color: red; } sass-spec-libsass-3.6.3/spec/libsass/interpolated-function-call.hrx000066400000000000000000000002261355712145100254310ustar00rootroot00000000000000<===> options.yml --- :todo: - libsass <===> input.scss $f: foo; div { color: #{$f}(a, 1+2, c); } <===> output.css div { color: foo(a, 3, c); } sass-spec-libsass-3.6.3/spec/libsass/interpolated-urls.hrx000066400000000000000000000007001355712145100236550ustar00rootroot00000000000000<===> options.yml --- :todo: - libsass <===> input.scss $base_url: "/static_loc/"; div { background-image: "url("#{$base_url}"img/beta.png)"; } span { background-image: url(#{$base_url}img/beta.png); } fudge { walnuts: blix"fludge"#{hey now}123; } <===> output.css div { background-image: "url(" /static_loc/ "img/beta.png)"; } span { background-image: url(/static_loc/img/beta.png); } fudge { walnuts: blix "fludge" hey now123; } sass-spec-libsass-3.6.3/spec/libsass/keyframes.hrx000066400000000000000000000020321355712145100221660ustar00rootroot00000000000000<===> input.scss div { color: #181818; } @-webkit-keyframes uiDelayedFadeIn { 0% { opacity: 0; } 50% { opacity: .5; } 100% { opacity: 1; } } @-webkit-keyframes bounce { from { left: 0px; } to { left: 200px; } } $name: bounce; @-webkit-keyframes #{$name} { blah: blee; } @mixin fudge() { @content; } foo { @include fudge() { div { color: red; } } } <===> output.css div { color: #181818; } @-webkit-keyframes uiDelayedFadeIn { 0% { opacity: 0; } 50% { opacity: .5; } 100% { opacity: 1; } } @-webkit-keyframes bounce { from { left: 0px; } to { left: 200px; } } @-webkit-keyframes bounce { blah: blee; } foo div { color: red; } <===> output-dart-sass.css div { color: #181818; } @-webkit-keyframes uiDelayedFadeIn { 0% { opacity: 0; } 50% { opacity: 0.5; } 100% { opacity: 1; } } @-webkit-keyframes bounce { from { left: 0px; } to { left: 200px; } } @-webkit-keyframes bounce { blah: blee; } foo div { color: red; } sass-spec-libsass-3.6.3/spec/libsass/list-evaluation.hrx000066400000000000000000000013111355712145100233170ustar00rootroot00000000000000<===> input.scss div { $things: red 2/3 blue; content: $things; content: nth($things, 2); content: type-of(nth($things, 2)); content: type-of(nth($things, 3)); /**** #{2+2} ****/ content: (1 / 2 3 / 4) + (5/6 7/8); content: (1/2 3/4), (5/6 7/8); /**** ****/ @each $x in 1 2 3/4 { foo: $x; bar: $x + 1; } /*** ***/ stuff: 1, (2 3/4 5), 6; stuff: ((1 + 2)/3/4); } <===> output.css div { content: red 2/3 blue; content: 0.6666666667; content: number; content: color; /**** 4 ****/ content: 1/2 3/45/6 7/8; content: 1/2 3/4, 5/6 7/8; /**** ****/ foo: 1; bar: 2; foo: 2; bar: 3; foo: 0.75; bar: 1.75; /*** ***/ stuff: 1, 2 3/4 5, 6; stuff: 0.25; } sass-spec-libsass-3.6.3/spec/libsass/lists.hrx000066400000000000000000000016751355712145100213520ustar00rootroot00000000000000<===> input.scss div { $list: append(1/2 3, 4); content: (1 2 3) == (1, 2, 3); content: (1 2 3) == (1 2 3); content: var $list; content: lit (1/2 3 4); content: (1/2 3 4) == $list; a: length((1/2 3 4)), length($list); b: nth((1/2 3 4), 1), nth($list, 1); content: (1/2 3 4) == (1/2 3 4); /***/ content: length($list); content: type-of(nth($list, 1)); content: nth($list, 1); content: nth(1/2 3 4, 1); $a: 1 2 3; $b: (1 2 3); content: $a == $b; content: 1 2 () 3; color: red == #ff0000; $color-list : fudge red blue; color: nth($color-list, 2) == #ff0000; color: nth($color-list, 2) == red; } <===> output.css div { content: false; content: true; content: var 1/2 3 4; content: lit 1/2 3 4; content: true; a: 3, 3; b: 0.5, 0.5; content: true; /***/ content: 3; content: number; content: 0.5; content: 0.5; content: true; content: 1 2 3; color: true; color: true; color: true; } sass-spec-libsass-3.6.3/spec/libsass/media-hoisting.hrx000066400000000000000000000011121355712145100230770ustar00rootroot00000000000000<===> input.scss @media screen { a { color: black; height: 8px; } } a { color: red; @media screen { color: blue; height: 10px; } } a { color: beige; b { color: teal; @media screen { color: orange; c { height: 12px; } } } } <===> output.css @media screen { a { color: black; height: 8px; } } a { color: red; } @media screen { a { color: blue; height: 10px; } } a { color: beige; } a b { color: teal; } @media screen { a b { color: orange; } a b c { height: 12px; } } sass-spec-libsass-3.6.3/spec/libsass/media.hrx000066400000000000000000000053271355712145100212710ustar00rootroot00000000000000<===> input.scss @media all and (min-width: 960px) { b { font-weight: normal; } } @media (min-width: 980px) { a { color: red; } } @media all { /* hey */ p { color: blue; a { color: green; &:after { content: ">>"; } } } span { display: inline-block; } } a b c { /* a */ blee: blee; /* b */ d e f { blah: blah; bloo: bloo; } /* c */ g h, i j { @media print and (foo: 1 2 3), (bar: 3px hux(muz)), not screen { /* aa */ hey: ho; /* bb */ k l m { hee: fee; } /* cc */ haa: hoo; /* dd */ } } /* d */ blah: blah; } @mixin simple-media-query($max-width, $min-width) { @media only screen and (max-width : $max-width) and (min-width : $min-width) { @content; } } @mixin test($value) { border-color: $value; } body { @include test("#ccc"); @include simple-media-query(900px, 400px) { border-color: black; } } $foo: 23; $bar: 45; @media only screen and (max-width: $foo) and (min-width: $bar) { hey { ho: hoo; } } @media (max-width: 200) and (min-width: 100) { div { color: red; } } @media not bl#{ah} and (width: 200px) { div { color: brown, blue, black; } } @mixin media($var1, $var2) { @media screen and ($var1: $var2) { @content; } } @include media(max-device-width, 500px) { foo { bar: "works"; } } div { color: red; span { color: blue; @media screen { p { color: green; } } } } <===> output.css @media all and (min-width: 960px) { b { font-weight: normal; } } @media (min-width: 980px) { a { color: red; } } @media all { /* hey */ p { color: blue; } p a { color: green; } p a:after { content: ">>"; } span { display: inline-block; } } a b c { /* a */ blee: blee; /* b */ /* c */ /* d */ blah: blah; } a b c d e f { blah: blah; bloo: bloo; } @media print and (foo: 1 2 3), (bar: 3px hux(muz)), not screen { a b c g h, a b c i j { /* aa */ hey: ho; /* bb */ /* cc */ haa: hoo; /* dd */ } a b c g h k l m, a b c i j k l m { hee: fee; } } body { border-color: "#ccc"; } @media only screen and (max-width: 900px) and (min-width: 400px) { body { border-color: black; } } @media only screen and (max-width: 23) and (min-width: 45) { hey { ho: hoo; } } @media (max-width: 200) and (min-width: 100) { div { color: red; } } @media not blah and (width: 200px) { div { color: brown, blue, black; } } @media screen and (max-device-width: 500px) { foo { bar: "works"; } } div { color: red; } div span { color: blue; } @media screen { div span p { color: green; } } sass-spec-libsass-3.6.3/spec/libsass/mixin.hrx000066400000000000000000000027271355712145100213370ustar00rootroot00000000000000<===> input.scss // @charset "UTF-8"; @mixin background-image-retina($file, $type, $width, $height) { background-image: unquote(image-url("#{$file}.#{$type}", true)); hey: length(a b c d); ho: unquote("hello"); hee: unquote(unit(10fudge)); @media (-webkit-min-device-pixel-ratio: 2), (-moz-min-device-pixel-ratio: 2) { & { background-image: image-url("#{$file}@2x.#{$type}"); -webkit-background-size: $width $height; } } } $x: foo; $y: bar; div { @include background-image-retina(test, png, 100px, 300px); fudge: walnut; } span { blah: "#{$x} #{$y}"; bleh: image-url("#{$x} #{$y}"); } @mixin foo($x, $y) { foo-x: $x; foo-y: $y; } div { @include foo(1, 2); @include foo($y: 2, $x: 1); } @mixin bar($x, $y: default) { bar-x: $x; bar-y: $y; } div { @include bar(1, 2); @include bar(1); @include bar($x: n1, $y: n2); @include bar($x: n1); blah: unquote("hello"); } <===> output.css div { background-image: image-url("test.png", true); hey: 4; ho: hello; hee: fudge; fudge: walnut; } @media (-webkit-min-device-pixel-ratio: 2), (-moz-min-device-pixel-ratio: 2) { div { background-image: image-url("test@2x.png"); -webkit-background-size: 100px 300px; } } span { blah: "foo bar"; bleh: image-url("foo bar"); } div { foo-x: 1; foo-y: 2; foo-x: 1; foo-y: 2; } div { bar-x: 1; bar-y: 2; bar-x: 1; bar-y: default; bar-x: n1; bar-y: n2; bar-x: n1; bar-y: default; blah: hello; } sass-spec-libsass-3.6.3/spec/libsass/mixins-and-media-queries.hrx000066400000000000000000000010551355712145100250030ustar00rootroot00000000000000<===> input.scss @media screen and (orientation:landscape) { span { background: blue; } /* fudge */ // @include foo; /* budge */ div { color: red; } } @mixin testComments { /* crash */ p { width: 100px; } } @media screen and (orientation:landscape) { @include testComments; } <===> output.css @media screen and (orientation: landscape) { span { background: blue; } /* fudge */ /* budge */ div { color: red; } } @media screen and (orientation: landscape) { /* crash */ p { width: 100px; } } sass-spec-libsass-3.6.3/spec/libsass/multi-blocks.hrx000066400000000000000000000027451355712145100226200ustar00rootroot00000000000000<===> input.scss a b { color: red; c d { height: 10; } e f { width: 12; } } @media all and (min-width: 960px) { b { font-weight: normal; } } @media (min-width: 980px) { a { color: red; } } @media screen and (all) { /* hey */ p { color: blue; a { color: green; &:after { content: ">>"; } } } span { display: inline-block; } } a b c { /* a */ blee: blee; /* b */ d e f { blah: blah; bloo: bloo; } /* c */ g h, i j { @media print and (foo: 1 2 3), (bar: 3px hux(muz)), not screen { /* aa */ hey: ho; /* bb */ k l m { hee: fee; } /* cc */ haa: hoo; /* dd */ } } /* d */ blah: blah; } <===> output.css a b { color: red; } a b c d { height: 10; } a b e f { width: 12; } @media all and (min-width: 960px) { b { font-weight: normal; } } @media (min-width: 980px) { a { color: red; } } @media screen and (all) { /* hey */ p { color: blue; } p a { color: green; } p a:after { content: ">>"; } span { display: inline-block; } } a b c { /* a */ blee: blee; /* b */ /* c */ /* d */ blah: blah; } a b c d e f { blah: blah; bloo: bloo; } @media print and (foo: 1 2 3), (bar: 3px hux(muz)), not screen { a b c g h, a b c i j { /* aa */ hey: ho; /* bb */ /* cc */ haa: hoo; /* dd */ } a b c g h k l m, a b c i j k l m { hee: fee; } } sass-spec-libsass-3.6.3/spec/libsass/parent-selector/000077500000000000000000000000001355712145100225675ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/libsass/parent-selector/basic.hrx000066400000000000000000000003011355712145100243650ustar00rootroot00000000000000<===> input.scss foo bar { baz & { bam: true; } } foo { bar baz & { bam: true; } } <===> output.css baz foo bar { bam: true; } bar baz foo { bam: true; } sass-spec-libsass-3.6.3/spec/libsass/parent-selector/inner-combinator.hrx000066400000000000000000000012211355712145100265540ustar00rootroot00000000000000<===> input.scss foo { & bar baz { bam: true; } bar baz & { bam: true; } } foo { & bar + baz { bam: true; } bar + baz & { bam: true; } } foo { & bar > baz { bam: true; } bar > baz & { bam: true; } } foo { & bar ~ baz { bam: true; } bar ~ baz & { bam: true; } } <===> output.css foo bar baz { bam: true; } bar baz foo { bam: true; } foo bar + baz { bam: true; } bar + baz foo { bam: true; } foo bar > baz { bam: true; } bar > baz foo { bam: true; } foo bar ~ baz { bam: true; } bar ~ baz foo { bam: true; } sass-spec-libsass-3.6.3/spec/libsass/parent-selector/inner-pseudo.hrx000066400000000000000000000005551355712145100257270ustar00rootroot00000000000000<===> input.scss foo { &:bar baz { bam: true; } } foo { &:bar + baz { bam: true; } } foo { &:bar > baz { bam: true; } } foo { &:bar ~ baz { bam: true; } } <===> output.css foo:bar baz { bam: true; } foo:bar + baz { bam: true; } foo:bar > baz { bam: true; } foo:bar ~ baz { bam: true; } sass-spec-libsass-3.6.3/spec/libsass/parent-selector/missing.hrx000066400000000000000000000037441355712145100247730ustar00rootroot00000000000000<===> input.scss $tablet-portrait: 768px; $tablet-landscape: 980px; $desk-normal: 1120px; $desk-big: 1280px; $grid-breakpoints-immobile: ( 'tablet-portrait': '(min-width: ' + $tablet-portrait + ') and (max-width: ' + $tablet-landscape + ')', 'tablet-landscape': '(min-width: ' + $tablet-landscape + ') and (max-width: ' + $desk-normal + ')', 'desk-normal': '(min-width: ' + $desk-normal + ') and (max-width: ' + $desk-big + ')', 'desk-big': '(min-width: ' + $desk-big + ')' ); @mixin grid-media-query($media-query, $breakpointDefinitions) { $breakpoint-found: false; @each $breakpoint, $breakpointvalue in $breakpointDefinitions{ $name: $breakpoint; $declaration: $breakpointvalue; @if $media-query == $name and $declaration{ $breakpoint-found: true; @media only screen and #{$declaration} { @content; } } } } @each $name in map-keys($grid-breakpoints-immobile) { @include grid-media-query($name, $grid-breakpoints-immobile) { body.immobile & { margin-bottom: 0; } } } <===> error Error: Base-level rules cannot contain the parent-selector-referencing character '&'. on line 30 of /sass/spec/parent-selector/missing/input.scss, in `@content' from line 22 of /sass/spec/parent-selector/missing/input.scss, in `grid-media-query' from line 29 of /sass/spec/parent-selector/missing/input.scss Use --trace for backtrace. <===> error-libsass Error: Top-level selectors may not contain the parent selector "&". on line 22:9 of input.scss, in mixin `grid-media-query` from line 29:12 of input.scss >> body.immobile & { ----^ <===> error-dart-sass Error: Top-level selectors may not contain the parent selector "&". , 30 | body.immobile & { | ^^^^^^^^^^^^^^^^ ' input.scss 30:5 @content input.scss 22:9 grid-media-query() input.scss 29:3 root stylesheet sass-spec-libsass-3.6.3/spec/libsass/parent-selector/outer-combinator.hrx000066400000000000000000000011731355712145100266050ustar00rootroot00000000000000<===> input.scss foo bar { & baz { bam: true; } baz & { bam: true; } } foo + bar { & baz { bam: true; } baz & { bam: true; } } foo > bar { & baz { bam: true; } baz & { bam: true; } } foo ~ bar { & baz { bam: true; } baz & { bam: true; } } <===> output.css foo bar baz { bam: true; } baz foo bar { bam: true; } foo + bar baz { bam: true; } baz foo + bar { bam: true; } foo > bar baz { bam: true; } baz foo > bar { bam: true; } foo ~ bar baz { bam: true; } baz foo ~ bar { bam: true; } sass-spec-libsass-3.6.3/spec/libsass/parent-selector/outer-pseudo.hrx000066400000000000000000000005551355712145100257520ustar00rootroot00000000000000<===> input.scss foo bar { &:baz { bam: true; } } foo + bar { &:baz { bam: true; } } foo > bar { &:baz { bam: true; } } foo ~ bar { &:baz { bam: true; } } <===> output.css foo bar:baz { bam: true; } foo + bar:baz { bam: true; } foo > bar:baz { bam: true; } foo ~ bar:baz { bam: true; } sass-spec-libsass-3.6.3/spec/libsass/placeholder-mediaquery.hrx000066400000000000000000000003121355712145100246240ustar00rootroot00000000000000<===> input.scss %foo { @media screen and (min-width: 300px) { max-width: 80%; } } bar { @extend %foo; } <===> output.css @media screen and (min-width: 300px) { bar { max-width: 80%; } } sass-spec-libsass-3.6.3/spec/libsass/placeholder-nested.hrx000066400000000000000000000003001355712145100237360ustar00rootroot00000000000000<===> input.scss %x { width: 100px; %y { height: 100px; } } .foo { @extend %x; .bar { @extend %y } } <===> output.css .foo { width: 100px; } .foo .bar { height: 100px; } sass-spec-libsass-3.6.3/spec/libsass/precision/000077500000000000000000000000001355712145100214535ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/libsass/precision/default.hrx000066400000000000000000000004071355712145100236230ustar00rootroot00000000000000<===> input.scss test { foo: 0.4999 round(0.4999); bar: 0.49999 round(0.49999); baz: 0.499999 round(0.499999); baz: 0.49999999999 round(0.49999999999); } <===> output.css test { foo: 0.4999 0; bar: 0.49999 0; baz: 0.499999 0; baz: 0.5 0; } sass-spec-libsass-3.6.3/spec/libsass/precision/higher.hrx000066400000000000000000000003601355712145100234430ustar00rootroot00000000000000<===> options.yml --- :precision: 6 <===> input.scss test { foo: 0.4999 round(0.4999); bar: 0.49999 round(0.49999); baz: 0.499999 round(0.499999); } <===> output.css test { foo: 0.4999 0; bar: 0.49999 0; baz: 0.499999 0; } sass-spec-libsass-3.6.3/spec/libsass/precision/lower.hrx000066400000000000000000000005021355712145100233230ustar00rootroot00000000000000<===> options.yml --- :precision: 4 <===> input.scss test { foo: 0.4999 round(0.4999); bar: 0.49999 round(0.49999); baz: 0.499999 round(0.499999); } <===> output.css test { foo: 0.4999 0; bar: 0.5 0; baz: 0.5 1; } <===> output-dart-sass.css test { foo: 0.4999 0; bar: 0.49999 0; baz: 0.499999 0; } sass-spec-libsass-3.6.3/spec/libsass/properties-in-media.hrx000066400000000000000000000007661355712145100240710ustar00rootroot00000000000000<===> input.scss @media only screen { /* asd */ color: red; color: gray; /* asd */ color: green; foo { bar: baz; qwe: baz; } color: blue; color: yellow; } <===> error-dart-sass Error: expected "{". , 3 | color: red; | ^ ' input.scss 3:13 root stylesheet <===> output.css @media only screen { /* asd */ color: red; color: gray; /* asd */ color: green; foo { bar: baz; qwe: baz; } color: blue; color: yellow; } sass-spec-libsass-3.6.3/spec/libsass/propsets.hrx000066400000000000000000000023161355712145100220640ustar00rootroot00000000000000<===> options.yml --- :todo: - libsass <===> input.scss $x: ground; $y: e; $z: it; div { back#{$x}: { imag#{$y}: url(foo.png); pos#{$z}ion: 50%; } } span { background: { image: url(bar.png); position: 100%; } } p { border: { upper: { left: 2px; right: 3px; } } } @warn 2 + 3; /* 2 + 3 */ /* #{2 + 3} */ foo|div { color: red; } $-hey : hey; div sp\ ,#abcan { color: red; p, |q { background: blue; color: \hey; width: \10 + \20 \ ; a { height: 1; } } } d\ v, sp\ n { a { color: blue; } } <===> output.css div { background-image: url(foo.png); background-position: 50%; } span { background-image: url(bar.png); background-position: 100%; } p { border-upper-left: 2px; border-upper-right: 3px; } /* 2 + 3 */ /* 5 */ foo|div { color: red; } div sp\ , #abcan { color: red; } div sp\ p, div sp\ |q, #abcan p, #abcan |q { background: blue; color: hey; width: \10 \ \ ; } div sp\ p a, div sp\ |q a, #abcan p a, #abcan |q a { height: 1; } d\ v a, sp\ n a { color: blue; } <===> warning WARNING: 5 on line 28 of input.scss <===> warning-dart-sass WARNING: 5 input.scss 28:1 root stylesheet sass-spec-libsass-3.6.3/spec/libsass/rel.hrx000066400000000000000000000020171355712145100207650ustar00rootroot00000000000000<===> input.scss div { less: 3px < 3pt; less: (1px / 1pt); less: 23fu < 120; eq: hello == hello; eq: "hello" == hello; eq: (1 2 3) == (1 2 3); eq: (1 2 3) == (1, 2, 3); eq: 23px == 23fu; eq: 3.1in == 2.54cm; eq: 2.54cm == 3.1in; eq: (1in) == (1cm*1in/1cm); x: 1in, (1cm*1in/1cm); y: 1cm*1in/1in; eq: (2cm*1in/2cm) == (1in*2cm/2cm); blah: (1cm/1in); in: (1in*2.54cm/1in); lt: 1in < 2.54cm; lt: 2.54cm < 1in; lt: 5 < 4; } <===> output.css div { less: true; less: 0.75; less: true; eq: true; eq: true; eq: true; eq: false; eq: false; eq: false; eq: false; eq: true; x: 1in, 1in; y: 1cm; eq: true; blah: 0.3937007874; in: 2.54cm; lt: false; lt: false; lt: false; } <===> output-dart-sass.css div { less: true; less: 0.75; less: true; eq: true; eq: true; eq: true; eq: false; eq: false; eq: false; eq: false; eq: true; x: 1in, 1in; y: 0.3937007874in; eq: true; blah: 0.3937007874; in: 2.54cm; lt: false; lt: false; lt: false; } sass-spec-libsass-3.6.3/spec/libsass/selector-functions/000077500000000000000000000000001355712145100233065ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/libsass/selector-functions/selector-length.hrx000066400000000000000000000003541355712145100271320ustar00rootroot00000000000000<===> input.scss foo.bar.baz asd.qwe xyz, second { length: length(&); length: length(nth(&, 1)); length: length(nth(nth(&, 1), 1)); } <===> output.css foo.bar.baz asd.qwe xyz, second { length: 2; length: 3; length: 1; } sass-spec-libsass-3.6.3/spec/libsass/selector-functions/simple-selector.hrx000066400000000000000000000002771355712145100271460ustar00rootroot00000000000000<===> input.scss foo { test-01: simple-selectors(".foo.bar"); test-02: simple-selectors(".foo.bar.baz"); } <===> output.css foo { test-01: .foo, .bar; test-02: .foo, .bar, .baz; } sass-spec-libsass-3.6.3/spec/libsass/selector_interpolation_in_string.hrx000066400000000000000000000001661355712145100270510ustar00rootroot00000000000000<===> input.scss foo[val="bar #{"foo" + " bar"} baz"] {a: b} <===> output.css foo[val="bar foo bar baz"] { a: b; } sass-spec-libsass-3.6.3/spec/libsass/selectors/000077500000000000000000000000001355712145100214635ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/libsass/selectors/access.hrx000066400000000000000000000014331355712145100234500ustar00rootroot00000000000000<===> input.scss @mixin selector-access { mixin-sees: &; } @function function-access() { @return &; } .foo { @include selector-access; function-sees: function-access(); } .bar a { @include selector-access; function-sees: function-access(); } .bar, .baz { @include selector-access; function-sees: function-access(); } .qux { &.waldo { .where & { .final { @include selector-access; function-sees: function-access(); } } } } <===> output.css .foo { mixin-sees: .foo; function-sees: .foo; } .bar a { mixin-sees: .bar a; function-sees: .bar a; } .bar, .baz { mixin-sees: .bar, .baz; function-sees: .bar, .baz; } .where .qux.waldo .final { mixin-sees: .where .qux.waldo .final; function-sees: .where .qux.waldo .final; } sass-spec-libsass-3.6.3/spec/libsass/selectors/function-argument.hrx000066400000000000000000000017751355712145100256650ustar00rootroot00000000000000<===> input.scss $Selectors: (); ////////////////////////////// // Add selectors of various depths and makeups ////////////////////////////// .foo { $Selectors: append($Selectors, &) !global; } .bar a { $Selectors: append($Selectors, &) !global; } .bar, .baz { $Selectors: append($Selectors, &) !global; } .qux { &.waldo { .where & { .final { $Selectors: append($Selectors, &) !global; } } } } ////////////////////////////// // Display Results ////////////////////////////// .result { length: length($Selectors); content: $Selectors; @for $i from 1 through length($Selectors) { index: $i; length: length(nth($Selectors, $i)); content: nth($Selectors, $i); } } <===> output.css .result { length: 4; content: .foo .bar a .bar, .baz .where .qux.waldo .final; index: 1; length: 1; content: .foo; index: 2; length: 1; content: .bar a; index: 3; length: 2; content: .bar, .baz; index: 4; length: 1; content: .where .qux.waldo .final; } sass-spec-libsass-3.6.3/spec/libsass/selectors/interpolation.hrx000066400000000000000000000005721355712145100251010ustar00rootroot00000000000000<===> input.scss .foo { content: #{&}; } .bar a { content: #{&}; } .bar, .baz { content: #{&}; } .qux { &.waldo { .where & { .final { content: #{&}; } } } } <===> output.css .foo { content: .foo; } .bar a { content: .bar a; } .bar, .baz { content: .bar, .baz; } .where .qux.waldo .final { content: .where .qux.waldo .final; } sass-spec-libsass-3.6.3/spec/libsass/selectors/mixin-argument.hrx000066400000000000000000000021501355712145100251500ustar00rootroot00000000000000<===> input.scss @mixin selector-info($selector) { type: type-of($selector); length: length($selector); content: $selector; @for $i from 1 through length($selector) { index: $i; length: length(nth($selector, $i)); type: type-of(nth($selector, $i)); content: nth($selector, $i); } } .foo { @include selector-info(&); } .bar a { @include selector-info(&); } .bar, .baz { @include selector-info(&); } .qux { &.waldo { .where & { .final { @include selector-info(&); } } } } <===> output.css .foo { type: list; length: 1; content: .foo; index: 1; length: 1; type: list; content: .foo; } .bar a { type: list; length: 1; content: .bar a; index: 1; length: 2; type: list; content: .bar a; } .bar, .baz { type: list; length: 2; content: .bar, .baz; index: 1; length: 1; type: list; content: .bar; index: 2; length: 1; type: list; content: .baz; } .where .qux.waldo .final { type: list; length: 1; content: .where .qux.waldo .final; index: 1; length: 3; type: list; content: .where .qux.waldo .final; } sass-spec-libsass-3.6.3/spec/libsass/selectors/simple.hrx000066400000000000000000000015661355712145100235070ustar00rootroot00000000000000<===> input.scss div { span, p, span { color: red; } a.foo.bar.foo { color: green; } &:nth(-3) { color: blue; } } @-webkit-keyframes { from { left: 0px; 10% { whatever: hoo; } } to { left: 200px; } } div { @whatever { blah: blah; stuff { blah: bloh; } } } a, b { color: red; c, d { height: 10px; e, f { width: 12px; } } } <===> output.css div span, div p, div span { color: red; } div a.foo.bar.foo { color: green; } div:nth(-3) { color: blue; } @-webkit-keyframes { from { left: 0px; 10% { whatever: hoo; } } to { left: 200px; } } @whatever { div { blah: blah; } div stuff { blah: bloh; } } a, b { color: red; } a c, a d, b c, b d { height: 10px; } a c e, a c f, a d e, a d f, b c e, b c f, b d e, b d f { width: 12px; } sass-spec-libsass-3.6.3/spec/libsass/selectors/variables/000077500000000000000000000000001355712145100234335ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/libsass/selectors/variables/multiple/000077500000000000000000000000001355712145100252665ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/libsass/selectors/variables/multiple/bare.hrx000066400000000000000000000001771355712145100267270ustar00rootroot00000000000000<===> input.scss .foo a, .bar p { $bar: &; content: $bar; } <===> output.css .foo a, .bar p { content: .foo a, .bar p; } sass-spec-libsass-3.6.3/spec/libsass/selectors/variables/multiple/interpolated.hrx000066400000000000000000000002021355712145100304750ustar00rootroot00000000000000<===> input.scss .foo a, .bar p { $bar: &; content: #{$bar}; } <===> output.css .foo a, .bar p { content: .foo a, .bar p; } sass-spec-libsass-3.6.3/spec/libsass/selectors/variables/nested/000077500000000000000000000000001355712145100247155ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/libsass/selectors/variables/nested/bare.hrx000066400000000000000000000002461355712145100263530ustar00rootroot00000000000000<===> input.scss .foo a, .bar p { .baz { $bar: &; content: $bar; } } <===> output.css .foo a .baz, .bar p .baz { content: .foo a .baz, .bar p .baz; } sass-spec-libsass-3.6.3/spec/libsass/selectors/variables/nested/interpolated.hrx000066400000000000000000000002511355712145100301300ustar00rootroot00000000000000<===> input.scss .foo a, .bar p { .baz { $bar: &; content: #{$bar}; } } <===> output.css .foo a .baz, .bar p .baz { content: .foo a .baz, .bar p .baz; } sass-spec-libsass-3.6.3/spec/libsass/selectors/variables/single/000077500000000000000000000000001355712145100247145ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/libsass/selectors/variables/single/bare.hrx000066400000000000000000000001411355712145100263440ustar00rootroot00000000000000<===> input.scss .foo { $bar: &; content: $bar; } <===> output.css .foo { content: .foo; } sass-spec-libsass-3.6.3/spec/libsass/selectors/variables/single/interpolated.hrx000066400000000000000000000001441355712145100301300ustar00rootroot00000000000000<===> input.scss .foo { $bar: &; content: #{$bar}; } <===> output.css .foo { content: .foo; } sass-spec-libsass-3.6.3/spec/libsass/test.hrx000066400000000000000000000100541355712145100211620ustar00rootroot00000000000000<===> input.scss $x: 3; div { noo: not $x; poo: not 3; doo: not($x); goo: not(3); zoo: not 1 + 2; roo: not not not $x; hoo: not not not 3; } @mixin foo($x-1, $x-2) { goo: $x-1; poo: $x-2; } $hux: "blah.css"; span { a: rgba(100, 20, 0, 1); b: rgba(#abc, 1); c: compact(hello, my, false, name, is, false, aaron, false, false); d: join(1 2 3, 4 5 6, comma); e: join(a b c, d e f); f: change-color(#102030, $blue: 5); g: change-color(#102030, $red: 120, $blue: 5); h: hsl(25, 100%, 80%); h: change-color(#ffc499, $alpha: 0.8, $lightness: 40%); h: change-color(hsl(25, 100%, 80%), $alpha: 0.8, $lightness: 40%); i: hsla(25, 100%, 40%, 0.8); foo: url("http://blah/flah/grah"); foo: url(http://foo/bar/buzz.css); foo: url(hey#{1+3}ho.css); foo: url($hux); bug: compact(false 1 2 false 3 4 5 false); pug: compact(false, 1, 2, false, 3, 4, 5, false); mug: compact((flug, false, blug, false, krug, false)); } @mixin bg($file) { background: url($file) no-repeat; } div { flug: url(bug.mug); krug: nth(1 2 3, 2px); blug: nth(a b c d, 3); flig: comparable(34, 22px) comparable(1%, 3) comparable(2, 1) comparable(4cm, 1in); flug: comparable(1px, 2.3in) comparable(1%, 2pt); flib: comparable(3ex, 2px) comparable(3em, 2cm); glib: not(fudge) not(false) not(0) not(red); trib: if(red, yellow, not taken); trub: if(not(fudge), not taken, here we are); } $width: 10px; $height: 10px; @media (-webkit-min-device-pixel-ratio: 2), (-moz-min-device-pixel-ratio: 2) { div { background-image: url(fudge); -webkit-background-size: $width $height; } } span { @media foo { div { blah: blah; } @media bar { p { blah: bloo; } } } } gudge { fudge: 20 + "%"; mudge: 1 + blang; } h1:lang(en) { foo: bar; } <===> output.css div { noo: false; poo: not 3; doo: false; goo: false; zoo: false2; roo: false; hoo: not not not 3; } span { a: #641400; b: #aabbcc; c: compact(hello, my, false, name, is, false, aaron, false, false); d: 1, 2, 3, 4, 5, 6; e: a b c d e f; f: #102005; g: #782005; h: #ffc499; h: rgba(204, 86, 0, 0.8); h: rgba(204, 85, 0, 0.8); i: rgba(204, 85, 0, 0.8); foo: url("http://blah/flah/grah"); foo: url(http://foo/bar/buzz.css); foo: url(hey4ho.css); foo: url("blah.css"); bug: compact(false 1 2 false 3 4 5 false); pug: compact(false, 1, 2, false, 3, 4, 5, false); mug: compact(flug, false, blug, false, krug, false); } div { flug: url(bug.mug); krug: 2; blug: c; flig: true true true true; flug: true false; flib: false false; glib: false true false false; trib: yellow; trub: here we are; } @media (-webkit-min-device-pixel-ratio: 2), (-moz-min-device-pixel-ratio: 2) { div { background-image: url(fudge); -webkit-background-size: 10px 10px; } } @media foo { span div { blah: blah; } } gudge { fudge: "20%"; mudge: 1blang; } h1:lang(en) { foo: bar; } <===> output-dart-sass.css div { noo: false; poo: false; doo: false; goo: false; zoo: false2; roo: false; hoo: false; } span { a: #641400; b: #aabbcc; c: compact(hello, my, false, name, is, false, aaron, false, false); d: 1, 2, 3, 4, 5, 6; e: a b c d e f; f: #102005; g: #782005; h: #ffc499; h: rgba(204, 86, 0, 0.8); h: rgba(204, 85, 0, 0.8); i: rgba(204, 85, 0, 0.8); foo: url("http://blah/flah/grah"); foo: url(http://foo/bar/buzz.css); foo: url(hey4ho.css); foo: url("blah.css"); bug: compact(false 1 2 false 3 4 5 false); pug: compact(false, 1, 2, false, 3, 4, 5, false); mug: compact(flug, false, blug, false, krug, false); } div { flug: url(bug.mug); krug: 2; blug: c; flig: true true true true; flug: true false; flib: false false; glib: false true false false; trib: yellow; trub: here we are; } @media (-webkit-min-device-pixel-ratio: 2), (-moz-min-device-pixel-ratio: 2) { div { background-image: url(fudge); -webkit-background-size: 10px 10px; } } @media foo { span div { blah: blah; } } gudge { fudge: "20%"; mudge: 1blang; } h1:lang(en) { foo: bar; } sass-spec-libsass-3.6.3/spec/libsass/unary-ops.hrx000066400000000000000000000007171355712145100221450ustar00rootroot00000000000000<===> input.scss $x: 20%; div { a: -10; b: -10px + 10px; c: +10; d: +10px + -10px; e: -$x; f: +$x; g: -hello; h: +hello; i: + hello; j: type-of(+ hello); } <===> output.css div { a: -10; b: 0px; c: +10; d: 0px; e: -20%; f: 20%; g: -hello; h: +hello; i: +hello; j: string; } <===> output-dart-sass.css div { a: -10; b: 0px; c: 10; d: 0px; e: -20%; f: 20%; g: -hello; h: +hello; i: +hello; j: string; } sass-spec-libsass-3.6.3/spec/libsass/unicode-bom/000077500000000000000000000000001355712145100216615ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/libsass/unicode-bom/utf-16-big/000077500000000000000000000000001355712145100234425ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/libsass/unicode-bom/utf-16-big/input.scss000066400000000000000000000000441355712145100254740ustar00rootroot00000000000000foo { bar: baz; }sass-spec-libsass-3.6.3/spec/libsass/unicode-bom/utf-16-big/options.yml000066400000000000000000000000411355712145100256530ustar00rootroot00000000000000--- :todo: - libsass - dart-sass sass-spec-libsass-3.6.3/spec/libsass/unicode-bom/utf-16-big/output.css000066400000000000000000000000271355712145100255130ustar00rootroot00000000000000foo { bar: baz; } sass-spec-libsass-3.6.3/spec/libsass/unicode-bom/utf-16-little/000077500000000000000000000000001355712145100241765ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/libsass/unicode-bom/utf-16-little/input.scss000066400000000000000000000000441355712145100262300ustar00rootroot00000000000000foo { bar: baz; }sass-spec-libsass-3.6.3/spec/libsass/unicode-bom/utf-16-little/options.yml000066400000000000000000000000411355712145100264070ustar00rootroot00000000000000--- :todo: - libsass - dart-sass sass-spec-libsass-3.6.3/spec/libsass/unicode-bom/utf-16-little/output.css000066400000000000000000000000271355712145100262470ustar00rootroot00000000000000foo { bar: baz; } sass-spec-libsass-3.6.3/spec/libsass/unicode-bom/utf-8/000077500000000000000000000000001355712145100226245ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/libsass/unicode-bom/utf-8/input.scss000066400000000000000000000000241355712145100246540ustar00rootroot00000000000000foo { bar: baz; }sass-spec-libsass-3.6.3/spec/libsass/unicode-bom/utf-8/output.css000066400000000000000000000000271355712145100246750ustar00rootroot00000000000000foo { bar: baz; } sass-spec-libsass-3.6.3/spec/libsass/units/000077500000000000000000000000001355712145100206225ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/libsass/units/conversion-regen.pl000066400000000000000000000025561355712145100244520ustar00rootroot00000000000000use strict; use warnings; use File::chdir; my @input = (["conversion"]); my @names = ("size", "angle", "time", "frequency", "resolution"); my %units = ( "size" => ["px", "pt", "pc", "mm", "cm", "in"], "angle" => ["deg", "grad", "rad", "turn"], "time" => ["s", "ms"], "frequency" => ["Hz", "kHz"], "resolution" => ["dpi", "dpcm", "dppx"], ); my @template; foreach my $name (@names) { my @units = @{$units{$name}}; my $tmpl = ".result {\n"; for (my $i = 0; $i < scalar(@units); $i++) { for (my $n = 0; $n < scalar(@units); $n++) { $tmpl .= sprintf(' output: (0%s + 1%s)', $units[$i], $units[$n]) . ";\n"; $tmpl .= sprintf(' output: (4.2%s / 1%s)', $units[$i], $units[$n]) . ";\n"; $tmpl .= sprintf(' output: (4.2%s * 1%s / 1%s)', $units[$i], $units[$n], $units[$i]) . ";\n"; } } $tmpl .= "}\n"; push @template, $name; push @template, $tmpl; } sub render { use File::Slurp qw(write_file); my ($names, $template, @fields) = @_; $template =~ s/\%(\d+)\%/$fields[$1]/g; local $CWD = $CWD; foreach (@{$names}) { mkdir $_; $CWD = $_; } print "created ", join("/", @{$names}), "\n"; return write_file('input.scss', { binmode => ':raw' }, $template); } while (defined(my $name = shift @template)) { my $template = shift(@template); foreach my $input (@input) { render([$input->[0], $name], $template, @{$input}); } } # <>;sass-spec-libsass-3.6.3/spec/libsass/units/conversion/000077500000000000000000000000001355712145100230075ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/libsass/units/conversion/angle.hrx000066400000000000000000000046521355712145100246270ustar00rootroot00000000000000<===> input.scss .result { output: (0deg + 1deg); output: (4.2deg / 1deg); output: (4.2deg * 1deg / 1deg); output: (0deg + 1grad); output: (4.2deg / 1grad); output: (4.2deg * 1grad / 1deg); output: (0deg + 1rad); output: (4.2deg / 1rad); output: (4.2deg * 1rad / 1deg); output: (0deg + 1turn); output: (4.2deg / 1turn); output: (4.2deg * 1turn / 1deg); output: (0grad + 1deg); output: (4.2grad / 1deg); output: (4.2grad * 1deg / 1grad); output: (0grad + 1grad); output: (4.2grad / 1grad); output: (4.2grad * 1grad / 1grad); output: (0grad + 1rad); output: (4.2grad / 1rad); output: (4.2grad * 1rad / 1grad); output: (0grad + 1turn); output: (4.2grad / 1turn); output: (4.2grad * 1turn / 1grad); output: (0rad + 1deg); output: (4.2rad / 1deg); output: (4.2rad * 1deg / 1rad); output: (0rad + 1grad); output: (4.2rad / 1grad); output: (4.2rad * 1grad / 1rad); output: (0rad + 1rad); output: (4.2rad / 1rad); output: (4.2rad * 1rad / 1rad); output: (0rad + 1turn); output: (4.2rad / 1turn); output: (4.2rad * 1turn / 1rad); output: (0turn + 1deg); output: (4.2turn / 1deg); output: (4.2turn * 1deg / 1turn); output: (0turn + 1grad); output: (4.2turn / 1grad); output: (4.2turn * 1grad / 1turn); output: (0turn + 1rad); output: (4.2turn / 1rad); output: (4.2turn * 1rad / 1turn); output: (0turn + 1turn); output: (4.2turn / 1turn); output: (4.2turn * 1turn / 1turn); } <===> output.css .result { output: 1deg; output: 4.2; output: 4.2deg; output: 0.9deg; output: 4.6666666667; output: 4.2grad; output: 57.2957795131deg; output: 0.0733038286; output: 4.2rad; output: 360deg; output: 0.0116666667; output: 4.2turn; output: 1.1111111111grad; output: 3.78; output: 4.2deg; output: 1grad; output: 4.2; output: 4.2grad; output: 63.6619772368grad; output: 0.0659734457; output: 4.2rad; output: 400grad; output: 0.0105; output: 4.2turn; output: 0.0174532925rad; output: 240.6422739549; output: 4.2deg; output: 0.0157079633rad; output: 267.3803043944; output: 4.2grad; output: 1rad; output: 4.2; output: 4.2rad; output: 6.2831853072rad; output: 0.668450761; output: 4.2turn; output: 0.0027777778turn; output: 1512; output: 4.2deg; output: 0.0025turn; output: 1680; output: 4.2grad; output: 0.1591549431turn; output: 26.3893782902; output: 4.2rad; output: 1turn; output: 4.2; output: 4.2turn; } sass-spec-libsass-3.6.3/spec/libsass/units/conversion/frequency.hrx000066400000000000000000000011201355712145100255250ustar00rootroot00000000000000<===> input.scss .result { output: (0Hz + 1Hz); output: (4.2Hz / 1Hz); output: (4.2Hz * 1Hz / 1Hz); output: (0Hz + 1kHz); output: (4.2Hz / 1kHz); output: (4.2Hz * 1kHz / 1Hz); output: (0kHz + 1Hz); output: (4.2kHz / 1Hz); output: (4.2kHz * 1Hz / 1kHz); output: (0kHz + 1kHz); output: (4.2kHz / 1kHz); output: (4.2kHz * 1kHz / 1kHz); } <===> output.css .result { output: 1Hz; output: 4.2; output: 4.2Hz; output: 1000Hz; output: 0.0042; output: 4.2kHz; output: 0.001kHz; output: 4200; output: 4.2Hz; output: 1kHz; output: 4.2; output: 4.2kHz; } sass-spec-libsass-3.6.3/spec/libsass/units/conversion/resolution.hrx000066400000000000000000000026031355712145100257360ustar00rootroot00000000000000<===> input.scss .result { output: (0dpi + 1dpi); output: (4.2dpi / 1dpi); output: (4.2dpi * 1dpi / 1dpi); output: (0dpi + 1dpcm); output: (4.2dpi / 1dpcm); output: (4.2dpi * 1dpcm / 1dpi); output: (0dpi + 1dppx); output: (4.2dpi / 1dppx); output: (4.2dpi * 1dppx / 1dpi); output: (0dpcm + 1dpi); output: (4.2dpcm / 1dpi); output: (4.2dpcm * 1dpi / 1dpcm); output: (0dpcm + 1dpcm); output: (4.2dpcm / 1dpcm); output: (4.2dpcm * 1dpcm / 1dpcm); output: (0dpcm + 1dppx); output: (4.2dpcm / 1dppx); output: (4.2dpcm * 1dppx / 1dpcm); output: (0dppx + 1dpi); output: (4.2dppx / 1dpi); output: (4.2dppx * 1dpi / 1dppx); output: (0dppx + 1dpcm); output: (4.2dppx / 1dpcm); output: (4.2dppx * 1dpcm / 1dppx); output: (0dppx + 1dppx); output: (4.2dppx / 1dppx); output: (4.2dppx * 1dppx / 1dppx); } <===> output.css .result { output: 1dpi; output: 4.2; output: 4.2dpi; output: 2.54dpi; output: 1.6535433071; output: 4.2dpcm; output: 96dpi; output: 0.04375; output: 4.2dppx; output: 0.3937007874dpcm; output: 10.668; output: 4.2dpi; output: 1dpcm; output: 4.2; output: 4.2dpcm; output: 37.7952755906dpcm; output: 0.111125; output: 4.2dppx; output: 0.0104166667dppx; output: 403.2; output: 4.2dpi; output: 0.0264583333dppx; output: 158.7401574803; output: 4.2dpcm; output: 1dppx; output: 4.2; output: 4.2dppx; } sass-spec-libsass-3.6.3/spec/libsass/units/conversion/size.hrx000066400000000000000000000115451355712145100245120ustar00rootroot00000000000000<===> input.scss .result { output: (0px + 1px); output: (4.2px / 1px); output: (4.2px * 1px / 1px); output: (0px + 1pt); output: (4.2px / 1pt); output: (4.2px * 1pt / 1px); output: (0px + 1pc); output: (4.2px / 1pc); output: (4.2px * 1pc / 1px); output: (0px + 1mm); output: (4.2px / 1mm); output: (4.2px * 1mm / 1px); output: (0px + 1cm); output: (4.2px / 1cm); output: (4.2px * 1cm / 1px); output: (0px + 1in); output: (4.2px / 1in); output: (4.2px * 1in / 1px); output: (0pt + 1px); output: (4.2pt / 1px); output: (4.2pt * 1px / 1pt); output: (0pt + 1pt); output: (4.2pt / 1pt); output: (4.2pt * 1pt / 1pt); output: (0pt + 1pc); output: (4.2pt / 1pc); output: (4.2pt * 1pc / 1pt); output: (0pt + 1mm); output: (4.2pt / 1mm); output: (4.2pt * 1mm / 1pt); output: (0pt + 1cm); output: (4.2pt / 1cm); output: (4.2pt * 1cm / 1pt); output: (0pt + 1in); output: (4.2pt / 1in); output: (4.2pt * 1in / 1pt); output: (0pc + 1px); output: (4.2pc / 1px); output: (4.2pc * 1px / 1pc); output: (0pc + 1pt); output: (4.2pc / 1pt); output: (4.2pc * 1pt / 1pc); output: (0pc + 1pc); output: (4.2pc / 1pc); output: (4.2pc * 1pc / 1pc); output: (0pc + 1mm); output: (4.2pc / 1mm); output: (4.2pc * 1mm / 1pc); output: (0pc + 1cm); output: (4.2pc / 1cm); output: (4.2pc * 1cm / 1pc); output: (0pc + 1in); output: (4.2pc / 1in); output: (4.2pc * 1in / 1pc); output: (0mm + 1px); output: (4.2mm / 1px); output: (4.2mm * 1px / 1mm); output: (0mm + 1pt); output: (4.2mm / 1pt); output: (4.2mm * 1pt / 1mm); output: (0mm + 1pc); output: (4.2mm / 1pc); output: (4.2mm * 1pc / 1mm); output: (0mm + 1mm); output: (4.2mm / 1mm); output: (4.2mm * 1mm / 1mm); output: (0mm + 1cm); output: (4.2mm / 1cm); output: (4.2mm * 1cm / 1mm); output: (0mm + 1in); output: (4.2mm / 1in); output: (4.2mm * 1in / 1mm); output: (0cm + 1px); output: (4.2cm / 1px); output: (4.2cm * 1px / 1cm); output: (0cm + 1pt); output: (4.2cm / 1pt); output: (4.2cm * 1pt / 1cm); output: (0cm + 1pc); output: (4.2cm / 1pc); output: (4.2cm * 1pc / 1cm); output: (0cm + 1mm); output: (4.2cm / 1mm); output: (4.2cm * 1mm / 1cm); output: (0cm + 1cm); output: (4.2cm / 1cm); output: (4.2cm * 1cm / 1cm); output: (0cm + 1in); output: (4.2cm / 1in); output: (4.2cm * 1in / 1cm); output: (0in + 1px); output: (4.2in / 1px); output: (4.2in * 1px / 1in); output: (0in + 1pt); output: (4.2in / 1pt); output: (4.2in * 1pt / 1in); output: (0in + 1pc); output: (4.2in / 1pc); output: (4.2in * 1pc / 1in); output: (0in + 1mm); output: (4.2in / 1mm); output: (4.2in * 1mm / 1in); output: (0in + 1cm); output: (4.2in / 1cm); output: (4.2in * 1cm / 1in); output: (0in + 1in); output: (4.2in / 1in); output: (4.2in * 1in / 1in); } <===> output.css .result { output: 1px; output: 4.2; output: 4.2px; output: 1.3333333333px; output: 3.15; output: 4.2pt; output: 16px; output: 0.2625; output: 4.2pc; output: 3.7795275591px; output: 1.11125; output: 4.2mm; output: 37.7952755906px; output: 0.111125; output: 4.2cm; output: 96px; output: 0.04375; output: 4.2in; output: 0.75pt; output: 5.6; output: 4.2px; output: 1pt; output: 4.2; output: 4.2pt; output: 12pt; output: 0.35; output: 4.2pc; output: 2.8346456693pt; output: 1.4816666667; output: 4.2mm; output: 28.3464566929pt; output: 0.1481666667; output: 4.2cm; output: 72pt; output: 0.0583333333; output: 4.2in; output: 0.0625pc; output: 67.2; output: 4.2px; output: 0.0833333333pc; output: 50.4; output: 4.2pt; output: 1pc; output: 4.2; output: 4.2pc; output: 0.2362204724pc; output: 17.78; output: 4.2mm; output: 2.3622047244pc; output: 1.778; output: 4.2cm; output: 6pc; output: 0.7; output: 4.2in; output: 0.2645833333mm; output: 15.874015748; output: 4.2px; output: 0.3527777778mm; output: 11.905511811; output: 4.2pt; output: 4.2333333333mm; output: 0.9921259843; output: 4.2pc; output: 1mm; output: 4.2; output: 4.2mm; output: 10mm; output: 0.42; output: 4.2cm; output: 25.4mm; output: 0.1653543307; output: 4.2in; output: 0.0264583333cm; output: 158.7401574803; output: 4.2px; output: 0.0352777778cm; output: 119.0551181102; output: 4.2pt; output: 0.4233333333cm; output: 9.9212598425; output: 4.2pc; output: 0.1cm; output: 42; output: 4.2mm; output: 1cm; output: 4.2; output: 4.2cm; output: 2.54cm; output: 1.6535433071; output: 4.2in; output: 0.0104166667in; output: 403.2; output: 4.2px; output: 0.0138888889in; output: 302.4; output: 4.2pt; output: 0.1666666667in; output: 25.2; output: 4.2pc; output: 0.0393700787in; output: 106.68; output: 4.2mm; output: 0.3937007874in; output: 10.668; output: 4.2cm; output: 1in; output: 4.2; output: 4.2in; } sass-spec-libsass-3.6.3/spec/libsass/units/conversion/time.hrx000066400000000000000000000010541355712145100244700ustar00rootroot00000000000000<===> input.scss .result { output: (0s + 1s); output: (4.2s / 1s); output: (4.2s * 1s / 1s); output: (0s + 1ms); output: (4.2s / 1ms); output: (4.2s * 1ms / 1s); output: (0ms + 1s); output: (4.2ms / 1s); output: (4.2ms * 1s / 1ms); output: (0ms + 1ms); output: (4.2ms / 1ms); output: (4.2ms * 1ms / 1ms); } <===> output.css .result { output: 1s; output: 4.2; output: 4.2s; output: 0.001s; output: 4200; output: 4.2ms; output: 1000ms; output: 0.0042; output: 4.2s; output: 1ms; output: 4.2; output: 4.2ms; } sass-spec-libsass-3.6.3/spec/libsass/units/feature-test.hrx000066400000000000000000000002011355712145100237460ustar00rootroot00000000000000<===> input.scss @if feature-exists(units-level-3) { div { feature: true; } } <===> output.css div { feature: true; } sass-spec-libsass-3.6.3/spec/libsass/units/simple.hrx000066400000000000000000000006211355712145100226350ustar00rootroot00000000000000<===> input.scss div { hey: ((5in + 3cm) * 10px * 100pt * 10fu / 2px / 2fu / 3pt); ho: (23in/2fu) > (23cm/2fu); hoo: unit((23px/2fu/12emu/1.2gnu)); hee: unit((2in/3cm/4cm)); } <===> output.css div { hey: 5150.9186351706in; ho: true; hoo: "px/emu*fu*gnu"; hee: "/cm"; } <===> output-dart-sass.css div { hey: 370866.1417322835pt; ho: true; hoo: "px/fu*emu*gnu"; hee: "cm^-1"; } sass-spec-libsass-3.6.3/spec/libsass/url.hrx000066400000000000000000000137311355712145100210120ustar00rootroot00000000000000<===> input.scss $x: pop; $y: 123; div { foo: url(bloo/blah.css); bar: url(http://foo/bar/hux.css); foo: url(fudge#{$x}.css); bar: url("http://fudge#{$x}/styles.css"); hux: url(http://box_#{$y}////fudge#{$x}.css); @each $i in (1 2 3 4 5) { hux: url(http://box_#{$y}////fudge#{$x}.css); foo: url(http://blah.com/bar-#{$i}.css); } gloo: url("hey#{1+2}.css"); floo: url(hadoop-#{$y+321}.css); flum: image-url("fudge.png", hux); /*****/ $bg: "image.png"; background: url("#{$bg}"); //gudge: url(type-of(hello) + length(a b c)); mudge: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAACXBIWXMAAAsTAAALEwEAmpwYAAAABGdBTUEAALGOfPtRkwAAACBjSFJNAAB6JQAAgIMAAPn/AACA6QAAdTAAAOpgAAA6mAAAF2+SX8VGAAACeElEQVR42nySy29McRTHP/fOnTvT6bQNrdHKMGGhFkTSELGxwoJY8Q9YWFhYEUJsRSKCsJWikjYSJBIbinpVPJLSRlEkKK2WTnXmvl+/Y4F4tPVJPqtvzjcnJ0cTEQxdY/miFH6gcAJpaWrQl86t05rR9axSKD8UZ6KqJscm5bMdyDDgAYgIBoCORm2G1u0b6w8unJ/bmDG1QtpUmIYiZ8Zk0zEpYmW76tujV9J3/Ep04v0XdR2IDYAdWxYt27Sa8/l8btWIlaYSupgqpNaMUYbC0DUa8qKXWpLGNSvZEETpZO/Z4B5gGQCRMio1xdVfioUIa3AQJ/ZARWhJgkQJKq3wfJ3RwETGhRtPgx7ABtBEhCVNBqViU2tn5+5bLfXmgurIYwJrGFEJmqZh2T4jo2X0YIreZ+7dfeejrcCEiKADfCon3O4fHzp25Nx+8nnqF65lXnEphQUtNBYKaKkMcRgxVY29093JUWCCn+gAORMaTLh0dbCjo/1KO3X1kC6BGIR+QLVioSc+F+9HnW/G1DX+QAcw0j8c/QaHj3UfeN0/MMicEmSL+J5P6DkMDUcfLvZGJ4FwWoHl/lAEXo344zv3dO3ynXJIpg7XdnBtj46bwSnblwH+QQdQ8lsNeNg32nOm/fIh3CGS0OXOQHCv90XYwUyICM2NNX85f26WUnOu5smFzX0vu9qktZjeNtusAbB+XdvfAWDZnjeurX2XST1Y8X6s7zmzYABUrHBaYNshYRC4k340FcZU/1vg2JVpgeP4uJXypHK8soD134In/W+mb+AJvffvvC022It/ve1MaCJCXU6f4UCQy1CbNVONH7/Gw7Md8fsAtddMUh5fveYAAAAASUVORK5CYII=); nudge: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAAAAAA6mKC9AAAAGElEQVQYV2N4DwX/oYBhgARgDJjEAAkAAEC99wFuu0VFAAAAAElFTkSuQmCC); pudge: url(http://wiki.jbussdieker.name/skins/common/images/Checker-16x16.png?2012-05-02T13:40:00Z); } p:after { content:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAACXBIWXMAAAsTAAALEwEAmpwYAAAABGdBTUEAALGOfPtRkwAAACBjSFJNAAB6JQAAgIMAAPn/AACA6QAAdTAAAOpgAAA6mAAAF2+SX8VGAAACeElEQVR42nySy29McRTHP/fOnTvT6bQNrdHKMGGhFkTSELGxwoJY8Q9YWFhYEUJsRSKCsJWikjYSJBIbinpVPJLSRlEkKK2WTnXmvl+/Y4F4tPVJPqtvzjcnJ0cTEQxdY/miFH6gcAJpaWrQl86t05rR9axSKD8UZ6KqJscm5bMdyDDgAYgIBoCORm2G1u0b6w8unJ/bmDG1QtpUmIYiZ8Zk0zEpYmW76tujV9J3/Ep04v0XdR2IDYAdWxYt27Sa8/l8btWIlaYSupgqpNaMUYbC0DUa8qKXWpLGNSvZEETpZO/Z4B5gGQCRMio1xdVfioUIa3AQJ/ZARWhJgkQJKq3wfJ3RwETGhRtPgx7ABtBEhCVNBqViU2tn5+5bLfXmgurIYwJrGFEJmqZh2T4jo2X0YIreZ+7dfeejrcCEiKADfCon3O4fHzp25Nx+8nnqF65lXnEphQUtNBYKaKkMcRgxVY29093JUWCCn+gAORMaTLh0dbCjo/1KO3X1kC6BGIR+QLVioSc+F+9HnW/G1DX+QAcw0j8c/QaHj3UfeN0/MMicEmSL+J5P6DkMDUcfLvZGJ4FwWoHl/lAEXo344zv3dO3ynXJIpg7XdnBtj46bwSnblwH+QQdQ8lsNeNg32nOm/fIh3CGS0OXOQHCv90XYwUyICM2NNX85f26WUnOu5smFzX0vu9qktZjeNtusAbB+XdvfAWDZnjeurX2XST1Y8X6s7zmzYABUrHBaYNshYRC4k340FcZU/1vg2JVpgeP4uJXypHK8soD134In/W+mb+AJvffvvC022It/ve1MaCJCXU6f4UCQy1CbNVONH7/Gw7Md8fsAtddMUh5fveYAAAAASUVORK5CYII= ); } <===> output.css div { foo: url(bloo/blah.css); bar: url(http://foo/bar/hux.css); foo: url(fudgepop.css); bar: url("http://fudgepop/styles.css"); hux: url(http://box_123////fudgepop.css); hux: url(http://box_123////fudgepop.css); foo: url(http://blah.com/bar-1.css); hux: url(http://box_123////fudgepop.css); foo: url(http://blah.com/bar-2.css); hux: url(http://box_123////fudgepop.css); foo: url(http://blah.com/bar-3.css); hux: url(http://box_123////fudgepop.css); foo: url(http://blah.com/bar-4.css); hux: url(http://box_123////fudgepop.css); foo: url(http://blah.com/bar-5.css); gloo: url("hey3.css"); floo: url(hadoop-444.css); flum: image-url("fudge.png", hux); /*****/ background: url("image.png"); mudge: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAACXBIWXMAAAsTAAALEwEAmpwYAAAABGdBTUEAALGOfPtRkwAAACBjSFJNAAB6JQAAgIMAAPn/AACA6QAAdTAAAOpgAAA6mAAAF2+SX8VGAAACeElEQVR42nySy29McRTHP/fOnTvT6bQNrdHKMGGhFkTSELGxwoJY8Q9YWFhYEUJsRSKCsJWikjYSJBIbinpVPJLSRlEkKK2WTnXmvl+/Y4F4tPVJPqtvzjcnJ0cTEQxdY/miFH6gcAJpaWrQl86t05rR9axSKD8UZ6KqJscm5bMdyDDgAYgIBoCORm2G1u0b6w8unJ/bmDG1QtpUmIYiZ8Zk0zEpYmW76tujV9J3/Ep04v0XdR2IDYAdWxYt27Sa8/l8btWIlaYSupgqpNaMUYbC0DUa8qKXWpLGNSvZEETpZO/Z4B5gGQCRMio1xdVfioUIa3AQJ/ZARWhJgkQJKq3wfJ3RwETGhRtPgx7ABtBEhCVNBqViU2tn5+5bLfXmgurIYwJrGFEJmqZh2T4jo2X0YIreZ+7dfeejrcCEiKADfCon3O4fHzp25Nx+8nnqF65lXnEphQUtNBYKaKkMcRgxVY29093JUWCCn+gAORMaTLh0dbCjo/1KO3X1kC6BGIR+QLVioSc+F+9HnW/G1DX+QAcw0j8c/QaHj3UfeN0/MMicEmSL+J5P6DkMDUcfLvZGJ4FwWoHl/lAEXo344zv3dO3ynXJIpg7XdnBtj46bwSnblwH+QQdQ8lsNeNg32nOm/fIh3CGS0OXOQHCv90XYwUyICM2NNX85f26WUnOu5smFzX0vu9qktZjeNtusAbB+XdvfAWDZnjeurX2XST1Y8X6s7zmzYABUrHBaYNshYRC4k340FcZU/1vg2JVpgeP4uJXypHK8soD134In/W+mb+AJvffvvC022It/ve1MaCJCXU6f4UCQy1CbNVONH7/Gw7Md8fsAtddMUh5fveYAAAAASUVORK5CYII=); nudge: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAAAAAA6mKC9AAAAGElEQVQYV2N4DwX/oYBhgARgDJjEAAkAAEC99wFuu0VFAAAAAElFTkSuQmCC); pudge: url(http://wiki.jbussdieker.name/skins/common/images/Checker-16x16.png?2012-05-02T13:40:00Z); } p:after { content: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAACXBIWXMAAAsTAAALEwEAmpwYAAAABGdBTUEAALGOfPtRkwAAACBjSFJNAAB6JQAAgIMAAPn/AACA6QAAdTAAAOpgAAA6mAAAF2+SX8VGAAACeElEQVR42nySy29McRTHP/fOnTvT6bQNrdHKMGGhFkTSELGxwoJY8Q9YWFhYEUJsRSKCsJWikjYSJBIbinpVPJLSRlEkKK2WTnXmvl+/Y4F4tPVJPqtvzjcnJ0cTEQxdY/miFH6gcAJpaWrQl86t05rR9axSKD8UZ6KqJscm5bMdyDDgAYgIBoCORm2G1u0b6w8unJ/bmDG1QtpUmIYiZ8Zk0zEpYmW76tujV9J3/Ep04v0XdR2IDYAdWxYt27Sa8/l8btWIlaYSupgqpNaMUYbC0DUa8qKXWpLGNSvZEETpZO/Z4B5gGQCRMio1xdVfioUIa3AQJ/ZARWhJgkQJKq3wfJ3RwETGhRtPgx7ABtBEhCVNBqViU2tn5+5bLfXmgurIYwJrGFEJmqZh2T4jo2X0YIreZ+7dfeejrcCEiKADfCon3O4fHzp25Nx+8nnqF65lXnEphQUtNBYKaKkMcRgxVY29093JUWCCn+gAORMaTLh0dbCjo/1KO3X1kC6BGIR+QLVioSc+F+9HnW/G1DX+QAcw0j8c/QaHj3UfeN0/MMicEmSL+J5P6DkMDUcfLvZGJ4FwWoHl/lAEXo344zv3dO3ynXJIpg7XdnBtj46bwSnblwH+QQdQ8lsNeNg32nOm/fIh3CGS0OXOQHCv90XYwUyICM2NNX85f26WUnOu5smFzX0vu9qktZjeNtusAbB+XdvfAWDZnjeurX2XST1Y8X6s7zmzYABUrHBaYNshYRC4k340FcZU/1vg2JVpgeP4uJXypHK8soD134In/W+mb+AJvffvvC022It/ve1MaCJCXU6f4UCQy1CbNVONH7/Gw7Md8fsAtddMUh5fveYAAAAASUVORK5CYII=); } sass-spec-libsass-3.6.3/spec/libsass/variable-scoping/000077500000000000000000000000001355712145100227055ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/libsass/variable-scoping/blead-global/000077500000000000000000000000001355712145100252125ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/libsass/variable-scoping/blead-global/expanding/000077500000000000000000000000001355712145100271675ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/libsass/variable-scoping/blead-global/expanding/at-root.hrx000066400000000000000000000033041355712145100312770ustar00rootroot00000000000000<===> options.yml --- :warning_todo: - sass/libsass#2834 <===> input.scss $root_default: initial; $root_implicit: initial; $root_explicit: initial !global; @at-root { $root_implicit: outer; $root_explicit: outer !global; $root_default: outer !default; $local_implicit: outer; $local_explicit: outer !global; $local_default: outer !default; @at-root { $root_implicit: inner; $root_explicit: inner !global; $root_default: inner !default; $local_implicit: inner; $local_explicit: inner !global; $local_default: inner !default; } } result { root_default: $root_default; root_implicit: $root_implicit; root_explicit: $root_explicit; @if variable-exists(local_default) { local_default: $local_default; } @if variable-exists(local_implicit) { local_implicit: $local_implicit; } @if variable-exists(local_explicit) { local_explicit: $local_explicit; } } <===> output.css result { root_default: initial; root_implicit: initial; root_explicit: inner; local_explicit: inner; } <===> warning DEPRECATION WARNING: As of Dart Sass 2.0.0, !global assignments won't be able to declare new variables. Since this assignment is at the root of the stylesheet, the !global flag is unnecessary and can safely be removed. , 3 | $root_explicit: initial !global; | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 3:1 root stylesheet DEPRECATION WARNING: As of Dart Sass 2.0.0, !global assignments won't be able to declare new variables. Consider adding `$local_explicit: null` at the root of the stylesheet. , 10| $local_explicit: outer !global; | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 10:3 root stylesheet sass-spec-libsass-3.6.3/spec/libsass/variable-scoping/blead-global/expanding/each.hrx000066400000000000000000000035061355712145100306160ustar00rootroot00000000000000<===> options.yml --- :warning_todo: - sass/libsass#2834 <===> input.scss $root_default: initial; $root_implicit: initial; $root_explicit: initial !global; @each $outer in 1 { $root_implicit: outer; $root_explicit: outer !global; $root_default: outer !default; $local_implicit: outer; $local_explicit: outer !global; $local_default: outer !default; @each $inner in 2 { $root_implicit: inner; $root_explicit: inner !global; $root_default: inner !default; $local_implicit: inner; $local_explicit: inner !global; $local_default: inner !default; } } result { @if variable-exists(outer) { outer: $outer; } @if variable-exists(inner) { inner: $inner; } root_default: $root_default; root_implicit: $root_implicit; root_explicit: $root_explicit; @if variable-exists(local_default) { local_default: $local_default; } @if variable-exists(local_implicit) { local_implicit: $local_implicit; } @if variable-exists(local_explicit) { local_explicit: $local_explicit; } } <===> output.css result { root_default: initial; root_implicit: inner; root_explicit: inner; local_explicit: inner; } <===> warning DEPRECATION WARNING: As of Dart Sass 2.0.0, !global assignments won't be able to declare new variables. Since this assignment is at the root of the stylesheet, the !global flag is unnecessary and can safely be removed. , 3 | $root_explicit: initial !global; | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 3:1 root stylesheet DEPRECATION WARNING: As of Dart Sass 2.0.0, !global assignments won't be able to declare new variables. Consider adding `$local_explicit: null` at the root of the stylesheet. , 10| $local_explicit: outer !global; | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 10:3 root stylesheet sass-spec-libsass-3.6.3/spec/libsass/variable-scoping/blead-global/expanding/else.hrx000066400000000000000000000034021355712145100306410ustar00rootroot00000000000000<===> options.yml --- :warning_todo: - sass/libsass#2834 <===> input.scss $root_default: initial; $root_implicit: initial; $root_explicit: initial !global; @if false { // nothing } @else { $root_implicit: outer; $root_explicit: outer !global; $root_default: outer !default; $local_implicit: outer; $local_explicit: outer !global; $local_default: outer !default; @if false { // nothing } @else { $root_implicit: inner; $root_explicit: inner !global; $root_default: inner !default; $local_implicit: inner; $local_explicit: inner !global; $local_default: inner !default; } } result { root_default: $root_default; root_implicit: $root_implicit; root_explicit: $root_explicit; @if variable-exists(local_default) { local_default: $local_default; } @if variable-exists(local_implicit) { local_implicit: $local_implicit; } @if variable-exists(local_explicit) { local_explicit: $local_explicit; } } <===> output.css result { root_default: initial; root_implicit: inner; root_explicit: inner; local_explicit: inner; } <===> warning DEPRECATION WARNING: As of Dart Sass 2.0.0, !global assignments won't be able to declare new variables. Since this assignment is at the root of the stylesheet, the !global flag is unnecessary and can safely be removed. , 3 | $root_explicit: initial !global; | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 3:1 root stylesheet DEPRECATION WARNING: As of Dart Sass 2.0.0, !global assignments won't be able to declare new variables. Consider adding `$local_explicit: null` at the root of the stylesheet. , 13 | $local_explicit: outer !global; | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 13:3 root stylesheet sass-spec-libsass-3.6.3/spec/libsass/variable-scoping/blead-global/expanding/elseif.hrx000066400000000000000000000034221355712145100311620ustar00rootroot00000000000000<===> options.yml --- :warning_todo: - sass/libsass#2834 <===> input.scss $root_default: initial; $root_implicit: initial; $root_explicit: initial !global; @if false { // nothing } @else if true { $root_implicit: outer; $root_explicit: outer !global; $root_default: outer !default; $local_implicit: outer; $local_explicit: outer !global; $local_default: outer !default; @if false { // nothing } @else if true { $root_implicit: inner; $root_explicit: inner !global; $root_default: inner !default; $local_implicit: inner; $local_explicit: inner !global; $local_default: inner !default; } } result { root_default: $root_default; root_implicit: $root_implicit; root_explicit: $root_explicit; @if variable-exists(local_default) { local_default: $local_default; } @if variable-exists(local_implicit) { local_implicit: $local_implicit; } @if variable-exists(local_explicit) { local_explicit: $local_explicit; } } <===> output.css result { root_default: initial; root_implicit: inner; root_explicit: inner; local_explicit: inner; } <===> warning DEPRECATION WARNING: As of Dart Sass 2.0.0, !global assignments won't be able to declare new variables. Since this assignment is at the root of the stylesheet, the !global flag is unnecessary and can safely be removed. , 3 | $root_explicit: initial !global; | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 3:1 root stylesheet DEPRECATION WARNING: As of Dart Sass 2.0.0, !global assignments won't be able to declare new variables. Consider adding `$local_explicit: null` at the root of the stylesheet. , 13 | $local_explicit: outer !global; | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 13:3 root stylesheet sass-spec-libsass-3.6.3/spec/libsass/variable-scoping/blead-global/expanding/for.hrx000066400000000000000000000035501355712145100305030ustar00rootroot00000000000000<===> options.yml --- :warning_todo: - sass/libsass#2834 <===> input.scss $continue: true; $root_default: initial; $root_implicit: initial; $root_explicit: initial !global; @for $outer from 1 to 2 { $root_implicit: outer; $root_explicit: outer !global; $root_default: outer !default; $local_implicit: outer; $local_explicit: outer !global; $local_default: outer !default; @for $inner from 3 to 4 { $root_implicit: inner; $root_explicit: inner !global; $root_default: inner !default; $local_implicit: inner; $local_explicit: inner !global; $local_default: inner !default; } } result { @if variable-exists(outer) { outer: $outer; } @if variable-exists(inner) { inner: $inner; } root_default: $root_default; root_implicit: $root_implicit; root_explicit: $root_explicit; @if variable-exists(local_default) { local_default: $local_default; } @if variable-exists(local_implicit) { local_implicit: $local_implicit; } @if variable-exists(local_explicit) { local_explicit: $local_explicit; } } <===> output.css result { root_default: initial; root_implicit: inner; root_explicit: inner; local_explicit: inner; } <===> warning DEPRECATION WARNING: As of Dart Sass 2.0.0, !global assignments won't be able to declare new variables. Since this assignment is at the root of the stylesheet, the !global flag is unnecessary and can safely be removed. , 4 | $root_explicit: initial !global; | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 4:1 root stylesheet DEPRECATION WARNING: As of Dart Sass 2.0.0, !global assignments won't be able to declare new variables. Consider adding `$local_explicit: null` at the root of the stylesheet. , 11 | $local_explicit: outer !global; | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 11:3 root stylesheet sass-spec-libsass-3.6.3/spec/libsass/variable-scoping/blead-global/expanding/function.hrx000066400000000000000000000041241355712145100315400ustar00rootroot00000000000000<===> options.yml --- :warning_todo: - sass/libsass#2834 <===> input.scss $continue_inner: true; $continue_outer: true; $root_default: initial; $root_implicit: initial; $root_explicit: initial !global; @function fn() { $root_implicit: outer; $root_explicit: outer !global; $root_default: outer !default; $local_implicit: outer; $local_explicit: outer !global; $local_default: outer !default; @while $continue_inner { $root_implicit: inner; $root_explicit: inner !global; $root_default: inner !default; $local_implicit: inner; $local_explicit: inner !global; $local_default: inner !default; $continue_inner: false; } $continue_outer: false; @return null; } result { fn: fn(); @if variable-exists(continue_outer) { continue_outer: $continue_outer; } @if variable-exists(continue_inner) { continue_inner: $continue_inner; } root_default: $root_default; root_implicit: $root_implicit; root_explicit: $root_explicit; @if variable-exists(local_default) { local_default: $local_default; } @if variable-exists(local_implicit) { local_implicit: $local_implicit; } @if variable-exists(local_explicit) { local_explicit: $local_explicit; } } <===> output.css result { continue_outer: true; continue_inner: true; root_default: initial; root_implicit: initial; root_explicit: inner; local_explicit: inner; } <===> warning DEPRECATION WARNING: As of Dart Sass 2.0.0, !global assignments won't be able to declare new variables. Since this assignment is at the root of the stylesheet, the !global flag is unnecessary and can safely be removed. , 5 | $root_explicit: initial !global; | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 5:1 root stylesheet DEPRECATION WARNING: As of Dart Sass 2.0.0, !global assignments won't be able to declare new variables. Consider adding `$local_explicit: null` at the root of the stylesheet. , 12 | $local_explicit: outer !global; | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 12:3 fn() input.scss 28:7 root stylesheet sass-spec-libsass-3.6.3/spec/libsass/variable-scoping/blead-global/expanding/if.hrx000066400000000000000000000033021355712145100303060ustar00rootroot00000000000000<===> options.yml --- :warning_todo: - sass/libsass#2834 <===> input.scss $root_default: initial; $root_implicit: initial; $root_explicit: initial !global; @if true { $root_implicit: outer; $root_explicit: outer !global; $root_default: outer !default; $local_implicit: outer; $local_explicit: outer !global; $local_default: outer !default; @if true { $root_implicit: inner; $root_explicit: inner !global; $root_default: inner !default; $local_implicit: inner; $local_explicit: inner !global; $local_default: inner !default; } } result { root_default: $root_default; root_implicit: $root_implicit; root_explicit: $root_explicit; @if variable-exists(local_default) { local_default: $local_default; } @if variable-exists(local_implicit) { local_implicit: $local_implicit; } @if variable-exists(local_explicit) { local_explicit: $local_explicit; } } <===> output.css result { root_default: initial; root_implicit: inner; root_explicit: inner; local_explicit: inner; } <===> warning DEPRECATION WARNING: As of Dart Sass 2.0.0, !global assignments won't be able to declare new variables. Since this assignment is at the root of the stylesheet, the !global flag is unnecessary and can safely be removed. , 3 | $root_explicit: initial !global; | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 3:1 root stylesheet DEPRECATION WARNING: As of Dart Sass 2.0.0, !global assignments won't be able to declare new variables. Consider adding `$local_explicit: null` at the root of the stylesheet. , 10| $local_explicit: outer !global; | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 10:3 root stylesheet sass-spec-libsass-3.6.3/spec/libsass/variable-scoping/blead-global/expanding/mixin.hrx000066400000000000000000000035161355712145100310430ustar00rootroot00000000000000<===> options.yml --- :warning_todo: - sass/libsass#2834 <===> input.scss $root_default: initial; $root_implicit: initial; $root_explicit: initial !global; @mixin set_variable_inner() { $root_implicit: inner; $root_explicit: inner !global; $root_default: inner !default; $local_implicit: inner; $local_explicit: inner !global; $local_default: inner !default; } @mixin set_variable_outer() { $root_implicit: outer; $root_explicit: outer !global; $root_default: outer !default; $local_implicit: outer; $local_explicit: outer !global; $local_default: outer !default; @include set_variable_inner(); } @include set_variable_outer(); result { root_default: $root_default; root_implicit: $root_implicit; root_explicit: $root_explicit; @if variable-exists(local_default) { local_default: $local_default; } @if variable-exists(local_implicit) { local_implicit: $local_implicit; } @if variable-exists(local_explicit) { local_explicit: $local_explicit; } } <===> output.css result { root_default: initial; root_implicit: initial; root_explicit: inner; local_explicit: inner; } <===> warning DEPRECATION WARNING: As of Dart Sass 2.0.0, !global assignments won't be able to declare new variables. Since this assignment is at the root of the stylesheet, the !global flag is unnecessary and can safely be removed. , 3 | $root_explicit: initial !global; | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 3:1 root stylesheet DEPRECATION WARNING: As of Dart Sass 2.0.0, !global assignments won't be able to declare new variables. Consider adding `$local_explicit: null` at the root of the stylesheet. , 19 | $local_explicit: outer !global; | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 19:3 set-variable-outer() input.scss 24:1 root stylesheet sass-spec-libsass-3.6.3/spec/libsass/variable-scoping/blead-global/expanding/ruleset.hrx000066400000000000000000000033001355712145100313710ustar00rootroot00000000000000<===> options.yml --- :warning_todo: - sass/libsass#2834 <===> input.scss $root_default: initial; $root_implicit: initial; $root_explicit: initial !global; ruleset { $root_implicit: outer; $root_explicit: outer !global; $root_default: outer !default; $local_implicit: outer; $local_explicit: outer !global; $local_default: outer !default; inner { $root_implicit: inner; $root_explicit: inner !global; $root_default: inner !default; $local_implicit: inner; $local_explicit: inner !global; $local_default: inner !default; } } result { root_default: $root_default; root_implicit: $root_implicit; root_explicit: $root_explicit; @if variable-exists(local_default) { local_default: $local_default; } @if variable-exists(local_implicit) { local_implicit: $local_implicit; } @if variable-exists(local_explicit) { local_explicit: $local_explicit; } } <===> output.css result { root_default: initial; root_implicit: initial; root_explicit: inner; local_explicit: inner; } <===> warning DEPRECATION WARNING: As of Dart Sass 2.0.0, !global assignments won't be able to declare new variables. Since this assignment is at the root of the stylesheet, the !global flag is unnecessary and can safely be removed. , 3 | $root_explicit: initial !global; | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 3:1 root stylesheet DEPRECATION WARNING: As of Dart Sass 2.0.0, !global assignments won't be able to declare new variables. Consider adding `$local_explicit: null` at the root of the stylesheet. , 10| $local_explicit: outer !global; | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 10:3 root stylesheet sass-spec-libsass-3.6.3/spec/libsass/variable-scoping/blead-global/expanding/while.hrx000066400000000000000000000040441355712145100310240ustar00rootroot00000000000000<===> options.yml --- :warning_todo: - sass/libsass#2834 <===> input.scss $continue_inner: true; $continue_outer: true; $root_default: initial; $root_implicit: initial; $root_explicit: initial !global; @while $continue_outer { $root_implicit: outer; $root_explicit: outer !global; $root_default: outer !default; $local_implicit: outer; $local_explicit: outer !global; $local_default: outer !default; @while $continue_inner { $root_implicit: inner; $root_explicit: inner !global; $root_default: inner !default; $local_implicit: inner; $local_explicit: inner !global; $local_default: inner !default; $continue_inner: false; } $continue_outer: false; } result { @if variable-exists(continue_outer) { continue_outer: $continue_outer; } @if variable-exists(continue_inner) { continue_inner: $continue_inner; } root_default: $root_default; root_implicit: $root_implicit; root_explicit: $root_explicit; @if variable-exists(local_default) { local_default: $local_default; } @if variable-exists(local_implicit) { local_implicit: $local_implicit; } @if variable-exists(local_explicit) { local_explicit: $local_explicit; } } <===> output.css result { continue_outer: false; continue_inner: false; root_default: initial; root_implicit: inner; root_explicit: inner; local_explicit: inner; } <===> warning DEPRECATION WARNING: As of Dart Sass 2.0.0, !global assignments won't be able to declare new variables. Since this assignment is at the root of the stylesheet, the !global flag is unnecessary and can safely be removed. , 5 | $root_explicit: initial !global; | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 5:1 root stylesheet DEPRECATION WARNING: As of Dart Sass 2.0.0, !global assignments won't be able to declare new variables. Consider adding `$local_explicit: null` at the root of the stylesheet. , 12 | $local_explicit: outer !global; | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 12:3 root stylesheet sass-spec-libsass-3.6.3/spec/libsass/variable-scoping/blead-global/functional/000077500000000000000000000000001355712145100273545ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/libsass/variable-scoping/blead-global/functional/each.hrx000066400000000000000000000066141355712145100310060ustar00rootroot00000000000000<===> options.yml --- :warning_todo: - sass/libsass#2834 <===> input.scss $root_default: initial; $root_implicit: initial; $root_explicit: initial !global; @function fn() { @each $outer in 1 { $root_implicit: outer; $root_explicit: outer !global; $root_default: outer !default; $local_implicit: outer; $local_explicit: outer !global; $local_default: outer !default; @each $inner in 2 { $root_implicit: inner; $root_explicit: inner !global; $root_default: inner !default; $local_implicit: inner; $local_explicit: inner !global; $local_default: inner !default; } } $check_implicit: $root_implicit !global; $check_explicit: $root_explicit !global; $check_default: $root_default !global; @return null; } result { fn: fn(); @if variable-exists(outer) { outer: $outer; } @if variable-exists(inner) { inner: $inner; } @if variable-exists(check_implicit) { check_implicit: $check_implicit; } @if variable-exists(check_explicit) { check_explicit: $check_explicit; } @if variable-exists(check_default) { check_default: $check_default; } root_default: $root_default; root_implicit: $root_implicit; root_explicit: $root_explicit; @if variable-exists(local_default) { local_default: $local_default; } @if variable-exists(local_implicit) { local_implicit: $local_implicit; } @if variable-exists(local_explicit) { local_explicit: $local_explicit; } } <===> output.css result { check_implicit: initial; check_explicit: inner; check_default: initial; root_default: initial; root_implicit: initial; root_explicit: inner; local_explicit: inner; } <===> warning DEPRECATION WARNING: As of Dart Sass 2.0.0, !global assignments won't be able to declare new variables. Since this assignment is at the root of the stylesheet, the !global flag is unnecessary and can safely be removed. , 3 | $root_explicit: initial !global; | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 3:1 root stylesheet DEPRECATION WARNING: As of Dart Sass 2.0.0, !global assignments won't be able to declare new variables. Consider adding `$local_explicit: null` at the root of the stylesheet. , 11 | $local_explicit: outer !global; | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 11:5 fn() input.scss 29:7 root stylesheet DEPRECATION WARNING: As of Dart Sass 2.0.0, !global assignments won't be able to declare new variables. Consider adding `$check_implicit: null` at the root of the stylesheet. , 22 | $check_implicit: $root_implicit !global; | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 22:3 fn() input.scss 29:7 root stylesheet DEPRECATION WARNING: As of Dart Sass 2.0.0, !global assignments won't be able to declare new variables. Consider adding `$check_explicit: null` at the root of the stylesheet. , 23 | $check_explicit: $root_explicit !global; | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 23:3 fn() input.scss 29:7 root stylesheet DEPRECATION WARNING: As of Dart Sass 2.0.0, !global assignments won't be able to declare new variables. Consider adding `$check_default: null` at the root of the stylesheet. , 24 | $check_default: $root_default !global; | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 24:3 fn() input.scss 29:7 root stylesheet sass-spec-libsass-3.6.3/spec/libsass/variable-scoping/blead-global/functional/else.hrx000066400000000000000000000067021355712145100310340ustar00rootroot00000000000000<===> options.yml --- :warning_todo: - sass/libsass#2834 <===> input.scss $root_default: initial; $root_implicit: initial; $root_explicit: initial !global; @function fn() { @if false { // nothing } @else { $root_implicit: outer; $root_explicit: outer !global; $root_default: outer !default; $local_implicit: outer; $local_explicit: outer !global; $local_default: outer !default; @if false { // nothing } @else { $root_implicit: inner; $root_explicit: inner !global; $root_default: inner !default; $local_implicit: inner; $local_explicit: inner !global; $local_default: inner !default; } } $check_implicit: $root_implicit !global; $check_explicit: $root_explicit !global; $check_default: $root_default !global; @return null; } result { fn: fn(); @if variable-exists(outer) { outer: $outer; } @if variable-exists(inner) { inner: $inner; } @if variable-exists(check_implicit) { check_implicit: $check_implicit; } @if variable-exists(check_explicit) { check_explicit: $check_explicit; } @if variable-exists(check_default) { check_default: $check_default; } root_default: $root_default; root_implicit: $root_implicit; root_explicit: $root_explicit; @if variable-exists(local_default) { local_default: $local_default; } @if variable-exists(local_implicit) { local_implicit: $local_implicit; } @if variable-exists(local_explicit) { local_explicit: $local_explicit; } } <===> output.css result { check_implicit: initial; check_explicit: inner; check_default: initial; root_default: initial; root_implicit: initial; root_explicit: inner; local_explicit: inner; } <===> warning DEPRECATION WARNING: As of Dart Sass 2.0.0, !global assignments won't be able to declare new variables. Since this assignment is at the root of the stylesheet, the !global flag is unnecessary and can safely be removed. , 3 | $root_explicit: initial !global; | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 3:1 root stylesheet DEPRECATION WARNING: As of Dart Sass 2.0.0, !global assignments won't be able to declare new variables. Consider adding `$local_explicit: null` at the root of the stylesheet. , 14 | $local_explicit: outer !global; | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 14:5 fn() input.scss 35:7 root stylesheet DEPRECATION WARNING: As of Dart Sass 2.0.0, !global assignments won't be able to declare new variables. Consider adding `$check_implicit: null` at the root of the stylesheet. , 28 | $check_implicit: $root_implicit !global; | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 28:3 fn() input.scss 35:7 root stylesheet DEPRECATION WARNING: As of Dart Sass 2.0.0, !global assignments won't be able to declare new variables. Consider adding `$check_explicit: null` at the root of the stylesheet. , 29 | $check_explicit: $root_explicit !global; | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 29:3 fn() input.scss 35:7 root stylesheet DEPRECATION WARNING: As of Dart Sass 2.0.0, !global assignments won't be able to declare new variables. Consider adding `$check_default: null` at the root of the stylesheet. , 30 | $check_default: $root_default !global; | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 30:3 fn() input.scss 35:7 root stylesheet sass-spec-libsass-3.6.3/spec/libsass/variable-scoping/blead-global/functional/elseif.hrx000066400000000000000000000067221355712145100313550ustar00rootroot00000000000000<===> options.yml --- :warning_todo: - sass/libsass#2834 <===> input.scss $root_default: initial; $root_implicit: initial; $root_explicit: initial !global; @function fn() { @if false { // nothing } @else if true { $root_implicit: outer; $root_explicit: outer !global; $root_default: outer !default; $local_implicit: outer; $local_explicit: outer !global; $local_default: outer !default; @if false { // nothing } @else if true { $root_implicit: inner; $root_explicit: inner !global; $root_default: inner !default; $local_implicit: inner; $local_explicit: inner !global; $local_default: inner !default; } } $check_implicit: $root_implicit !global; $check_explicit: $root_explicit !global; $check_default: $root_default !global; @return null; } result { fn: fn(); @if variable-exists(outer) { outer: $outer; } @if variable-exists(inner) { inner: $inner; } @if variable-exists(check_implicit) { check_implicit: $check_implicit; } @if variable-exists(check_explicit) { check_explicit: $check_explicit; } @if variable-exists(check_default) { check_default: $check_default; } root_default: $root_default; root_implicit: $root_implicit; root_explicit: $root_explicit; @if variable-exists(local_default) { local_default: $local_default; } @if variable-exists(local_implicit) { local_implicit: $local_implicit; } @if variable-exists(local_explicit) { local_explicit: $local_explicit; } } <===> output.css result { check_implicit: initial; check_explicit: inner; check_default: initial; root_default: initial; root_implicit: initial; root_explicit: inner; local_explicit: inner; } <===> warning DEPRECATION WARNING: As of Dart Sass 2.0.0, !global assignments won't be able to declare new variables. Since this assignment is at the root of the stylesheet, the !global flag is unnecessary and can safely be removed. , 3 | $root_explicit: initial !global; | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 3:1 root stylesheet DEPRECATION WARNING: As of Dart Sass 2.0.0, !global assignments won't be able to declare new variables. Consider adding `$local_explicit: null` at the root of the stylesheet. , 14 | $local_explicit: outer !global; | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 14:5 fn() input.scss 35:7 root stylesheet DEPRECATION WARNING: As of Dart Sass 2.0.0, !global assignments won't be able to declare new variables. Consider adding `$check_implicit: null` at the root of the stylesheet. , 28 | $check_implicit: $root_implicit !global; | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 28:3 fn() input.scss 35:7 root stylesheet DEPRECATION WARNING: As of Dart Sass 2.0.0, !global assignments won't be able to declare new variables. Consider adding `$check_explicit: null` at the root of the stylesheet. , 29 | $check_explicit: $root_explicit !global; | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 29:3 fn() input.scss 35:7 root stylesheet DEPRECATION WARNING: As of Dart Sass 2.0.0, !global assignments won't be able to declare new variables. Consider adding `$check_default: null` at the root of the stylesheet. , 30 | $check_default: $root_default !global; | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 30:3 fn() input.scss 35:7 root stylesheet sass-spec-libsass-3.6.3/spec/libsass/variable-scoping/blead-global/functional/for.hrx000066400000000000000000000066301355712145100306720ustar00rootroot00000000000000<===> options.yml --- :warning_todo: - sass/libsass#2834 <===> input.scss $root_default: initial; $root_implicit: initial; $root_explicit: initial !global; @function fn() { @for $outer from 1 to 2 { $root_implicit: outer; $root_explicit: outer !global; $root_default: outer !default; $local_implicit: outer; $local_explicit: outer !global; $local_default: outer !default; @for $inner from 3 to 4 { $root_implicit: inner; $root_explicit: inner !global; $root_default: inner !default; $local_implicit: inner; $local_explicit: inner !global; $local_default: inner !default; } } $check_implicit: $root_implicit !global; $check_explicit: $root_explicit !global; $check_default: $root_default !global; @return null; } result { fn: fn(); @if variable-exists(outer) { outer: $outer; } @if variable-exists(inner) { inner: $inner; } @if variable-exists(check_implicit) { check_implicit: $check_implicit; } @if variable-exists(check_explicit) { check_explicit: $check_explicit; } @if variable-exists(check_default) { check_default: $check_default; } root_default: $root_default; root_implicit: $root_implicit; root_explicit: $root_explicit; @if variable-exists(local_default) { local_default: $local_default; } @if variable-exists(local_implicit) { local_implicit: $local_implicit; } @if variable-exists(local_explicit) { local_explicit: $local_explicit; } } <===> output.css result { check_implicit: initial; check_explicit: inner; check_default: initial; root_default: initial; root_implicit: initial; root_explicit: inner; local_explicit: inner; } <===> warning DEPRECATION WARNING: As of Dart Sass 2.0.0, !global assignments won't be able to declare new variables. Since this assignment is at the root of the stylesheet, the !global flag is unnecessary and can safely be removed. , 3 | $root_explicit: initial !global; | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 3:1 root stylesheet DEPRECATION WARNING: As of Dart Sass 2.0.0, !global assignments won't be able to declare new variables. Consider adding `$local_explicit: null` at the root of the stylesheet. , 11 | $local_explicit: outer !global; | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 11:5 fn() input.scss 29:7 root stylesheet DEPRECATION WARNING: As of Dart Sass 2.0.0, !global assignments won't be able to declare new variables. Consider adding `$check_implicit: null` at the root of the stylesheet. , 22 | $check_implicit: $root_implicit !global; | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 22:3 fn() input.scss 29:7 root stylesheet DEPRECATION WARNING: As of Dart Sass 2.0.0, !global assignments won't be able to declare new variables. Consider adding `$check_explicit: null` at the root of the stylesheet. , 23 | $check_explicit: $root_explicit !global; | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 23:3 fn() input.scss 29:7 root stylesheet DEPRECATION WARNING: As of Dart Sass 2.0.0, !global assignments won't be able to declare new variables. Consider adding `$check_default: null` at the root of the stylesheet. , 24 | $check_default: $root_default !global; | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 24:3 fn() input.scss 29:7 root stylesheet sass-spec-libsass-3.6.3/spec/libsass/variable-scoping/blead-global/functional/if.hrx000066400000000000000000000065721355712145100305070ustar00rootroot00000000000000<===> options.yml --- :warning_todo: - sass/libsass#2834 <===> input.scss $root_default: initial; $root_implicit: initial; $root_explicit: initial !global; @function fn() { @if true { $root_implicit: outer; $root_explicit: outer !global; $root_default: outer !default; $local_implicit: outer; $local_explicit: outer !global; $local_default: outer !default; @if true { $root_implicit: inner; $root_explicit: inner !global; $root_default: inner !default; $local_implicit: inner; $local_explicit: inner !global; $local_default: inner !default; } } $check_implicit: $root_implicit !global; $check_explicit: $root_explicit !global; $check_default: $root_default !global; @return null; } result { fn: fn(); @if variable-exists(outer) { outer: $outer; } @if variable-exists(inner) { inner: $inner; } @if variable-exists(check_implicit) { check_implicit: $check_implicit; } @if variable-exists(check_explicit) { check_explicit: $check_explicit; } @if variable-exists(check_default) { check_default: $check_default; } root_default: $root_default; root_implicit: $root_implicit; root_explicit: $root_explicit; @if variable-exists(local_default) { local_default: $local_default; } @if variable-exists(local_implicit) { local_implicit: $local_implicit; } @if variable-exists(local_explicit) { local_explicit: $local_explicit; } } <===> output.css result { check_implicit: initial; check_explicit: inner; check_default: initial; root_default: initial; root_implicit: initial; root_explicit: inner; local_explicit: inner; } <===> warning DEPRECATION WARNING: As of Dart Sass 2.0.0, !global assignments won't be able to declare new variables. Since this assignment is at the root of the stylesheet, the !global flag is unnecessary and can safely be removed. , 3 | $root_explicit: initial !global; | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 3:1 root stylesheet DEPRECATION WARNING: As of Dart Sass 2.0.0, !global assignments won't be able to declare new variables. Consider adding `$local_explicit: null` at the root of the stylesheet. , 11 | $local_explicit: outer !global; | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 11:5 fn() input.scss 29:7 root stylesheet DEPRECATION WARNING: As of Dart Sass 2.0.0, !global assignments won't be able to declare new variables. Consider adding `$check_implicit: null` at the root of the stylesheet. , 22 | $check_implicit: $root_implicit !global; | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 22:3 fn() input.scss 29:7 root stylesheet DEPRECATION WARNING: As of Dart Sass 2.0.0, !global assignments won't be able to declare new variables. Consider adding `$check_explicit: null` at the root of the stylesheet. , 23 | $check_explicit: $root_explicit !global; | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 23:3 fn() input.scss 29:7 root stylesheet DEPRECATION WARNING: As of Dart Sass 2.0.0, !global assignments won't be able to declare new variables. Consider adding `$check_default: null` at the root of the stylesheet. , 24 | $check_default: $root_default !global; | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 24:3 fn() input.scss 29:7 root stylesheet sass-spec-libsass-3.6.3/spec/libsass/variable-scoping/blead-global/functional/while.hrx000066400000000000000000000071501355712145100312120ustar00rootroot00000000000000<===> options.yml --- :warning_todo: - sass/libsass#2834 <===> input.scss $continue_inner: true; $continue_outer: true; $root_default: initial; $root_implicit: initial; $root_explicit: initial !global; @function fn() { @while $continue_outer { $root_implicit: outer; $root_explicit: outer !global; $root_default: outer !default; $local_implicit: outer; $local_explicit: outer !global; $local_default: outer !default; @while $continue_inner { $root_implicit: inner; $root_explicit: inner !global; $root_default: inner !default; $local_implicit: inner; $local_explicit: inner !global; $local_default: inner !default; $continue_inner: false; } $continue_outer: false; } $check_implicit: $root_implicit !global; $check_explicit: $root_explicit !global; $check_default: $root_default !global; @return null; } result { fn: fn(); @if variable-exists(continue_outer) { continue_outer: $continue_outer; } @if variable-exists(continue_inner) { continue_inner: $continue_inner; } @if variable-exists(check_implicit) { check_implicit: $check_implicit; } @if variable-exists(check_explicit) { check_explicit: $check_explicit; } @if variable-exists(check_default) { check_default: $check_default; } root_default: $root_default; root_implicit: $root_implicit; root_explicit: $root_explicit; @if variable-exists(local_default) { local_default: $local_default; } @if variable-exists(local_implicit) { local_implicit: $local_implicit; } @if variable-exists(local_explicit) { local_explicit: $local_explicit; } } <===> output.css result { continue_outer: true; continue_inner: true; check_implicit: initial; check_explicit: inner; check_default: initial; root_default: initial; root_implicit: initial; root_explicit: inner; local_explicit: inner; } <===> warning DEPRECATION WARNING: As of Dart Sass 2.0.0, !global assignments won't be able to declare new variables. Since this assignment is at the root of the stylesheet, the !global flag is unnecessary and can safely be removed. , 5 | $root_explicit: initial !global; | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 5:1 root stylesheet DEPRECATION WARNING: As of Dart Sass 2.0.0, !global assignments won't be able to declare new variables. Consider adding `$local_explicit: null` at the root of the stylesheet. , 13 | $local_explicit: outer !global; | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 13:5 fn() input.scss 33:7 root stylesheet DEPRECATION WARNING: As of Dart Sass 2.0.0, !global assignments won't be able to declare new variables. Consider adding `$check_implicit: null` at the root of the stylesheet. , 26 | $check_implicit: $root_implicit !global; | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 26:3 fn() input.scss 33:7 root stylesheet DEPRECATION WARNING: As of Dart Sass 2.0.0, !global assignments won't be able to declare new variables. Consider adding `$check_explicit: null` at the root of the stylesheet. , 27 | $check_explicit: $root_explicit !global; | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 27:3 fn() input.scss 33:7 root stylesheet DEPRECATION WARNING: As of Dart Sass 2.0.0, !global assignments won't be able to declare new variables. Consider adding `$check_default: null` at the root of the stylesheet. , 28 | $check_default: $root_default !global; | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 28:3 fn() input.scss 33:7 root stylesheet sass-spec-libsass-3.6.3/spec/libsass/variable-scoping/defaults-global-null.hrx000066400000000000000000000015441355712145100274510ustar00rootroot00000000000000<===> options.yml --- :warning_todo: - sass/libsass#2834 <===> input.scss div { $foo: null !default !global; $foo: inner !default !global; $foo: null !default !global; $foo: lexical; inner { foo: $foo; } } $foo: null !default !global; $foo: outer !default !global; $foo: null !default !global; outer { foo: $foo; } div { $foo: null !default !global; $foo: footer !default !global; $foo: null !default !global; $foo: lexical; inner { foo: $foo; } } <===> output.css div inner { foo: lexical; } outer { foo: inner; } div inner { foo: lexical; } <===> warning DEPRECATION WARNING: As of Dart Sass 2.0.0, !global assignments won't be able to declare new variables. Consider adding `$foo: null` at the root of the stylesheet. , 2 | $foo: null !default !global; | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 2:3 root stylesheet sass-spec-libsass-3.6.3/spec/libsass/variable-scoping/defaults-global.hrx000066400000000000000000000012601355712145100264740ustar00rootroot00000000000000<===> options.yml --- :warning_todo: - sass/libsass#2834 <===> input.scss div { $foo: inner !default !global; $foo: lexical; inner { foo: $foo; } } $foo: outer !default !global; outer { foo: $foo; } div { $foo: footer !default !global; $foo: lexical; inner { foo: $foo; } } <===> output.css div inner { foo: lexical; } outer { foo: inner; } div inner { foo: lexical; } <===> warning DEPRECATION WARNING: As of Dart Sass 2.0.0, !global assignments won't be able to declare new variables. Consider adding `$foo: null` at the root of the stylesheet. , 2 | $foo: inner !default !global; | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 2:3 root stylesheet sass-spec-libsass-3.6.3/spec/libsass/variable-scoping/defaults-null.hrx000066400000000000000000000007531355712145100262140ustar00rootroot00000000000000<===> input.scss div { $foo: null !default; $foo: inner !default; $foo: null !default; $foo: lexical; inner { foo: $foo; } } // this should error // empty { foo: $foo; } $foo: null !default; $foo: outer !default; $foo: null !default; outer { foo: $foo; } div { $foo: null !default; $foo: footer !default; $foo: null !default; $foo: lexical; inner { foo: $foo; } } <===> output.css div inner { foo: lexical; } outer { foo: outer; } div inner { foo: lexical; } sass-spec-libsass-3.6.3/spec/libsass/variable-scoping/defaults.hrx000066400000000000000000000015571355712145100252470ustar00rootroot00000000000000<===> options.yml --- :warning_todo: - sass/libsass#2834 <===> input.scss $i: 9; $z: 3 !default; div { asd: $i; $i: 99 !global; $n: 42 !global; qwe: $i; zapf: $z; $z: 84; ding: $z; } div { foo: $n; foo: $i; $i: 999; $n: 999; foo: $n; foo: $i; div { $i: 9999; $n: 9999 !default; bar: $i; bar: $n; } baz: $i; } div { asd: $i; qwe: $n; zap: $z; } <===> output.css div { asd: 9; qwe: 99; zapf: 3; ding: 84; } div { foo: 42; foo: 99; foo: 999; foo: 999; baz: 9999; } div div { bar: 9999; bar: 999; } div { asd: 99; qwe: 42; zap: 3; } <===> warning DEPRECATION WARNING: As of Dart Sass 2.0.0, !global assignments won't be able to declare new variables. Consider adding `$n: null` at the root of the stylesheet. , 6 | $n: 42 !global; | ^^^^^^^^^^^^^^ ' input.scss 6:3 root stylesheet sass-spec-libsass-3.6.3/spec/libsass/variable-scoping/feature-test.hrx000066400000000000000000000002141355712145100260350ustar00rootroot00000000000000<===> input.scss @if feature-exists(global-variable-shadowing) { div { feature: true; } } <===> output.css div { feature: true; } sass-spec-libsass-3.6.3/spec/libsass/variable-scoping/lexical-scope.hrx000066400000000000000000000006671355712145100261710ustar00rootroot00000000000000<===> input.scss $x: -42; $y: -84; div { $x: 42; $y: 84; for { @for $x from 1 through 5 { $y: $y + 5; y: $y; x: $x; $x: 999; x: $x; $y: -9 !global; $x: -9 !global; } } x: $x; y: $y; } <===> output.css div { x: 42; y: 109; } div for { y: 89; x: 1; x: 999; y: 94; x: 2; x: 999; y: 99; x: 3; x: 999; y: 104; x: 4; x: 999; y: 109; x: 5; x: 999; } sass-spec-libsass-3.6.3/spec/libsass/variable-scoping/root-scope.hrx000066400000000000000000000007361355712145100255300ustar00rootroot00000000000000<===> input.scss $x: -42; $y: -84; div { x: $x; y: $y; for { x: $x; y: $y; @for $x from 1 through 5 { $y: $y + 5; x: $x; y: $y; $x: 999; $y: -9 !global; $x: -9 !global; } x: $x; y: $y; } x: $x; y: $y; } <===> output.css div { x: -42; y: -84; x: -9; y: -9; } div for { x: -42; y: -84; x: 1; y: -79; x: 2; y: -74; x: 3; y: -69; x: 4; y: -64; x: 5; y: -59; x: -9; y: -9; } sass-spec-libsass-3.6.3/spec/libsass/variables_in_media.hrx000066400000000000000000000004161355712145100240010ustar00rootroot00000000000000<===> input.scss $media1: screen; $media2: print; $var: -webkit-min-device-pixel-ratio; $val: 20; @media #{$media1} and ($var: $val), only #{$media2} {a {b: c}} <===> output.css @media screen and (-webkit-min-device-pixel-ratio: 20), only print { a { b: c; } } sass-spec-libsass-3.6.3/spec/libsass/warn-directive-nested/000077500000000000000000000000001355712145100236635ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/libsass/warn-directive-nested/function.hrx000066400000000000000000000004371355712145100262370ustar00rootroot00000000000000<===> input.scss @function c() { @warn test; @return d; } a { b: { c: c(); } } <===> output.css a { b-c: d; } <===> warning WARNING: test on line 2 of input.scss <===> warning-dart-sass WARNING: test input.scss 2:3 c() input.scss 8:8 root stylesheet sass-spec-libsass-3.6.3/spec/libsass/warn-directive-nested/inline.hrx000066400000000000000000000005211355712145100256620ustar00rootroot00000000000000<===> input.scss a { b: { @warn test; c: d; } } <===> error Error: Illegal nesting: Only properties may be nested beneath properties. on line 3 of input.scss Use --trace for backtrace. <===> output-dart-sass.css a { b-c: d; } <===> warning-dart-sass WARNING: test input.scss 3:5 root stylesheet sass-spec-libsass-3.6.3/spec/libsass/warn-directive-nested/mixin.hrx000066400000000000000000000005101355712145100255260ustar00rootroot00000000000000<===> input.scss @mixin c() { @warn test; c: d; } a { b: { @include c(); } } <===> output.css a { b-c: d; } <===> warning WARNING: test on line 2 of input.scss, in `c' from line 8 of input.scss <===> warning-dart-sass WARNING: test input.scss 2:3 c() input.scss 8:5 root stylesheet sass-spec-libsass-3.6.3/spec/libsass/wrapped-selector-whitespace.hrx000066400000000000000000000003001355712145100256060ustar00rootroot00000000000000<===> input.scss div { :-moz-any(a , b) { foo: foo; } :foo(a , b) { bar: bar; } } <===> output.css div :-moz-any(a, b) { foo: foo; } div :foo(a , b) { bar: bar; } sass-spec-libsass-3.6.3/spec/media_import.hrx000066400000000000000000000001321355712145100212100ustar00rootroot00000000000000<===> input.scss @import "./fonts.sass" all; <===> output.css @import "./fonts.sass" all; sass-spec-libsass-3.6.3/spec/misc/000077500000000000000000000000001355712145100167535ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/misc/JMA-pseudo-test.hrx000066400000000000000000000003451355712145100223610ustar00rootroot00000000000000<===> input.scss .foo { h1 { color:red; } } .bar { &:hover h3, h3 { @extend h1; } } <===> output.css .foo h1, .foo .bar h3, .bar .foo h3 { color: red; } sass-spec-libsass-3.6.3/spec/misc/directive_interpolation.hrx000066400000000000000000000001431355712145100244210ustar00rootroot00000000000000<===> input.scss $baz: 12; @foo bar#{$baz} qux {a: b} <===> output.css @foo bar12 qux { a: b; } sass-spec-libsass-3.6.3/spec/misc/empty_content.hrx000066400000000000000000000001451355712145100223660ustar00rootroot00000000000000<===> input.scss @mixin foo { @content } a { b: c; @include foo {} } <===> output.css a { b: c; } sass-spec-libsass-3.6.3/spec/misc/error-directive.hrx000066400000000000000000000010001355712145100225720ustar00rootroot00000000000000<===> input.scss @error "Buckle your seatbelt Dorothy, 'cause Kansas is going bye-bye" <===> error Error: Buckle your seatbelt Dorothy, 'cause Kansas is going bye-bye on line 1 of input.scss Use --trace for backtrace. <===> error-dart-sass Error: "Buckle your seatbelt Dorothy, 'cause Kansas is going bye-bye" , 1 | @error "Buckle your seatbelt Dorothy, 'cause Kansas is going bye-bye" | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 1:1 root stylesheet sass-spec-libsass-3.6.3/spec/misc/import_in_mixin.hrx000066400000000000000000000004121355712145100226770ustar00rootroot00000000000000<===> input.scss @mixin import-google-fonts() { @import url("http://fonts.googleapis.com/css?family=#{$family}"); } $family: unquote("Droid+Sans"); @include import-google-fonts(); <===> output.css @import url("http://fonts.googleapis.com/css?family=Droid+Sans"); sass-spec-libsass-3.6.3/spec/misc/import_with_interpolation.hrx000066400000000000000000000003071355712145100250120ustar00rootroot00000000000000<===> input.scss $family: unquote("Droid+Sans"); @import url("http://fonts.googleapis.com/css?family=#{$family}"); <===> output.css @import url("http://fonts.googleapis.com/css?family=Droid+Sans"); sass-spec-libsass-3.6.3/spec/misc/lang-bug.hrx000066400000000000000000000001401355712145100211650ustar00rootroot00000000000000<===> input.scss div:lang(nb) { color: red; } <===> output.css div:lang(nb) { color: red; } sass-spec-libsass-3.6.3/spec/misc/media_interpolation.hrx000066400000000000000000000001571355712145100235270ustar00rootroot00000000000000<===> input.scss $baz: 12; @media bar#{$baz} {a {b: c}} <===> output.css @media bar12 { a { b: c; } } sass-spec-libsass-3.6.3/spec/misc/mixin_content.hrx000066400000000000000000000006421355712145100223560ustar00rootroot00000000000000<===> input.scss $color: blue; @mixin context($class, $color: red) { .#{$class} { background-color: $color; @content; border-color: $color; } } @include context(parent) { @include context(child, $color: yellow) { color: $color; } } <===> output.css .parent { background-color: red; border-color: red; } .parent .child { background-color: yellow; color: blue; border-color: yellow; } sass-spec-libsass-3.6.3/spec/misc/namespace_properties_with_script_value.hrx000066400000000000000000000002261355712145100275210ustar00rootroot00000000000000<===> input.scss foo { bar: baz + bang { bip: bop; bing: bop; }} <===> output.css foo { bar: bazbang; bar-bip: bop; bar-bing: bop; } sass-spec-libsass-3.6.3/spec/misc/negative_numbers.hrx000066400000000000000000000003211355712145100230270ustar00rootroot00000000000000<===> input.scss $zero: 0; a { zero: -$zero; zero: $zero * -1; } $near: 0.000000000001; a { near: -$near; near: $near * -1; } <===> output.css a { zero: 0; zero: 0; } a { near: 0; near: 0; } sass-spec-libsass-3.6.3/spec/misc/selector_interpolation_before_element_name.hrx000066400000000000000000000001261355712145100303170ustar00rootroot00000000000000<===> input.scss #{"foo" + " bar"}baz {a: b} <===> output.css foo barbaz { a: b; } sass-spec-libsass-3.6.3/spec/misc/selector_only_interpolation.hrx000066400000000000000000000001201355712145100253170ustar00rootroot00000000000000<===> input.scss #{"foo" + " bar"} {a: b} <===> output.css foo bar { a: b; } sass-spec-libsass-3.6.3/spec/misc/trailing_comma_in_selector.hrx000066400000000000000000000002221355712145100250450ustar00rootroot00000000000000<===> input.scss #foo #bar,, ,#baz #boom, {a: b} #bip #bop, ,, {c: d} <===> output.css #foo #bar, #baz #boom { a: b; } #bip #bop { c: d; } sass-spec-libsass-3.6.3/spec/misc/unicode_variables/000077500000000000000000000000001355712145100224315ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/misc/unicode_variables/input.scss000066400000000000000000000000351355712145100244630ustar00rootroot00000000000000$vär: foo; blat {a: $vär} sass-spec-libsass-3.6.3/spec/misc/unicode_variables/output.css000066400000000000000000000000231355712145100244760ustar00rootroot00000000000000blat { a: foo; } sass-spec-libsass-3.6.3/spec/misc/warn-directive.hrx000066400000000000000000000005261355712145100224240ustar00rootroot00000000000000<===> input.scss h1 { color: blue; } @warn "Don't crash the ambulance, whatever you do" <===> output.css h1 { color: blue; } <===> warning WARNING: Don't crash the ambulance, whatever you do on line 2 of input.scss <===> warning-dart-sass WARNING: Don't crash the ambulance, whatever you do input.scss 2:1 root stylesheet sass-spec-libsass-3.6.3/spec/mixin/000077500000000000000000000000001355712145100171445ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/mixin/content/000077500000000000000000000000001355712145100206165ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/mixin/content/arguments/000077500000000000000000000000001355712145100226235ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/mixin/content/arguments/error/000077500000000000000000000000001355712145100237545ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/mixin/content/arguments/error/args.hrx000066400000000000000000000065161355712145100254430ustar00rootroot00000000000000<===> none_passed/input.scss // It's an error to pass no arguments to a content block that requires them. @mixin mixin { @content; } @include mixin using ($arg1, $arg2) {} <===> none_passed/error Error: Missing argument $arg1. , 3 | @content; | ^^^^^^^^ ' input.scss 3:3 @content input.scss 3:3 mixin() input.scss 6:1 root stylesheet <===> none_passed/error-libsass Error: Mixin @content is missing argument $arg1. on line 2:3 of test.scss, in mixin `mixin` from line 5:10 of test.scss >> @content; --^ <===> ================================================================================ <===> none_expected/input.scss // It's an error to pass argments to a content block that doesn't take them. @mixin mixin { @content(value); } @include mixin {} <===> none_expected/error Error: Only 0 arguments allowed, but 1 was passed. , 3 | @content(value); | ^^^^^^^^^^^^^^^ ' input.scss 3:3 @content input.scss 3:3 mixin() input.scss 6:1 root stylesheet <===> none_expected/error-libsass Error: wrong number of arguments (1 for 0) for `@content' on line 2:3 of test.scss, in mixin `@content` from line 2:3 of test.scss, in mixin `mixin` from line 5:10 of test.scss >> @content(value); --^ <===> ================================================================================ <===> named/input.scss // It's an error to pass a named argument that doesn't exist. @mixin mixin { @content($invalid: value); } @include mixin using ($valid: value) {} <===> named/error Error: No argument named $invalid. , 3 | @content($invalid: value); | ^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 3:3 @content input.scss 3:3 mixin() input.scss 6:1 root stylesheet <===> named/error-libsass Error: Mixin @content has no parameter named $invalid on line 2:12 of test.scss, in mixin `@content` from line 2:3 of test.scss, in mixin `mixin` from line 5:10 of test.scss >> @content($invalid: value); -----------^ <===> ================================================================================ <===> too_few/input.scss // It's an error to pass fewer positional arguments than are required. @mixin mixin { @content(1); } @include mixin using ($arg1, $arg2) {} <===> too_few/error Error: Missing argument $arg2. , 3 | @content(1); | ^^^^^^^^^^^ ' input.scss 3:3 @content input.scss 3:3 mixin() input.scss 6:1 root stylesheet <===> too_few/error-libsass Error: Mixin @content is missing argument $arg2. on line 2:3 of test.scss, in mixin `mixin` from line 5:10 of test.scss >> @content(1); --^ <===> ================================================================================ <===> too_many/input.scss // It's an error to pass more positional arguments than are required. @mixin mixin { @content(1, 2, 3); } @include mixin using ($arg1, $arg2) {} <===> too_many/error Error: Only 2 arguments allowed, but 3 were passed. , 3 | @content(1, 2, 3); | ^^^^^^^^^^^^^^^^^ ' input.scss 3:3 @content input.scss 3:3 mixin() input.scss 6:1 root stylesheet <===> too_many/error-libsass Error: wrong number of arguments (3 for 2) for `@content' on line 2:3 of test.scss, in mixin `@content` from line 2:3 of test.scss, in mixin `mixin` from line 5:10 of test.scss >> @content(1, 2, 3); --^ sass-spec-libsass-3.6.3/spec/mixin/content/arguments/error/syntax.hrx000066400000000000000000000050551355712145100260320ustar00rootroot00000000000000<===> arglist/invalid/input.scss @mixin mixin { @content; } @include mixin() using ($arg1: ) {} <===> arglist/invalid/error Error: Expected expression. , 5 | @include mixin() using ($arg1: ) {} | ^ ' input.scss 5:32 root stylesheet <===> arglist/invalid/error-libsass Error: Invalid CSS after "...) using ($arg1:": expected expression (e.g. 1px, bold), was ") {}" on line 5:32 of test.scss >> @include mixin() using ($arg1: ) {} -------------------------------^ <===> ================================================================================ <===> arglist/missing/input.scss @mixin mixin { @content; } @include mixin using {} <===> arglist/missing/error Error: expected "(". , 5 | @include mixin using {} | ^ ' input.scss 5:22 root stylesheet <===> arglist/missing/error-libsass Error: Invalid CSS after "...ude mixin using": expected "(", was "{}" on line 5:16 of test.scss >> @include mixin using {} ---------------^ <===> ================================================================================ <===> arglist/missing_parens/input.scss @mixin mixin { @content; } @include mixin using $arg1 {} <===> arglist/missing_parens/error Error: expected "(". , 5 | @include mixin using $arg1 {} | ^ ' input.scss 5:22 root stylesheet <===> arglist/missing_parens/error-libsass Error: Invalid CSS after "...ude mixin using": expected "(", was "$arg1 {}" on line 5:16 of test.scss >> @include mixin using $arg1 {} ---------------^ <===> ================================================================================ <===> missing_using/input.scss @mixin mixin { @content; } @include mixin() () {} <===> missing_using/error Error: expected ";". , 5 | @include mixin() () {} | ^ ' input.scss 5:18 root stylesheet <===> missing_using/error-libsass Error: Invalid CSS after "@include mixin()": expected ";", was "() {}" on line 5:16 of test.scss >> @include mixin() () {} ---------------^ <===> ================================================================================ <===> missing_block/input.scss @mixin mixin { @content; } @include mixin using (); <===> missing_block/error Error: expected "{". , 5 | @include mixin using (); | ^ ' input.scss 5:24 root stylesheet <===> missing_block/error-libsass Error: Invalid CSS after "... mixin using ()": expected "{", was ";" on line 5:23 of test.scss >> @include mixin using (); ----------------------^ sass-spec-libsass-3.6.3/spec/mixin/content/arguments/none.hrx000066400000000000000000000015651355712145100243140ustar00rootroot00000000000000<===> input.scss // `@content()` and `@content` should behave identically, as should // `@include foo` and `@include foo using ()`. no-parens { @mixin mixin { @content; } empty-using { @include mixin using () { x: y; } } defaults { @include mixin using ($arg1: value1, $arg2: value2) { arg1: $arg1; arg2: $arg2; } } } parens { @mixin mixin { @content(); } no-using { @include mixin { x: y; } } empty-using { @include mixin using () { x: y; } } defaults { @include mixin using ($arg1: value1, $arg2: value2) { arg1: $arg1; arg2: $arg2; } } } <===> output.css no-parens empty-using { x: y; } no-parens defaults { arg1: value1; arg2: value2; } parens no-using { x: y; } parens empty-using { x: y; } parens defaults { arg1: value1; arg2: value2; } sass-spec-libsass-3.6.3/spec/mixin/content/arguments/passing.hrx000066400000000000000000000022171355712145100250140ustar00rootroot00000000000000<===> input.scss // Arguments can be passed to content blocks in all the same ways as they're // passed to any other argument list. by-position { @mixin mixin { @content(value1, value2); } @include mixin using ($arg1, $arg2) { arg1: $arg1; arg2: $arg2; } } by-name { @mixin mixin { @content($arg1: value1, $arg2: value2); } @include mixin using ($arg1, $arg2) { arg1: $arg1; arg2: $arg2; } } list-splat { @mixin mixin { @content((value1 value2)...); } @include mixin using ($arg1, $arg2) { arg1: $arg1; arg2: $arg2; } } map-splat { @mixin mixin { @content((arg1: value1, arg2: value2)...); } @include mixin using ($arg1, $arg2) { arg1: $arg1; arg2: $arg2; } } mixed-splat { @mixin mixin { @content((value1,)..., (arg2: value2)...); } @include mixin using ($arg1, $arg2) { arg1: $arg1; arg2: $arg2; } } <===> output.css by-position { arg1: value1; arg2: value2; } by-name { arg1: value1; arg2: value2; } list-splat { arg1: value1; arg2: value2; } map-splat { arg1: value1; arg2: value2; } mixed-splat { arg1: value1; arg2: value2; } sass-spec-libsass-3.6.3/spec/mixin/content/arguments/receiving.hrx000066400000000000000000000050401355712145100253200ustar00rootroot00000000000000<===> input.scss // Content blocks' argument lists can define arguments in in all the same ways // as they're defined in any other argument list. with-defaults { nothing-passed { @mixin mixin { @content; } @include mixin using ($arg1: value1, $arg2: value2) { arg1: $arg1; arg2: $arg2; } } partial-override { @mixin mixin { @content($arg2: other2); } @include mixin using ($arg1: value1, $arg2: value2) { arg1: $arg1; arg2: $arg2; } } total-override { @mixin mixin { @content(other1, other2); } @include mixin using ($arg1: value1, $arg2: value2) { arg1: $arg1; arg2: $arg2; } } } with-splat { nothing-passed { @mixin mixin { @content; } @include mixin using ($args...) { positional: inspect($args); keywords: inspect(keywords($args)); } } positional-passed { @mixin mixin { @content(value1, value2, value3); } @include mixin using ($args...) { positional: inspect($args); keywords: inspect(keywords($args)); } } named-passed { @mixin mixin { @content($arg1: value1, $arg2: value2); } @include mixin using ($args...) { positional: inspect($args); keywords: inspect(keywords($args)); } } both-passed { @mixin mixin { @content(value1, $arg2: value2); } @include mixin using ($args...) { positional: inspect($args); keywords: inspect(keywords($args)); } } } <===> output.css with-defaults nothing-passed { arg1: value1; arg2: value2; } with-defaults partial-override { arg1: value1; arg2: other2; } with-defaults total-override { arg1: other1; arg2: other2; } with-splat nothing-passed { positional: (); keywords: (); } with-splat positional-passed { positional: value1, value2, value3; keywords: (); } with-splat named-passed { positional: (); keywords: (arg1: value1, arg2: value2); } with-splat both-passed { positional: (value1,); keywords: (arg2: value2); } <===> output-libsass.css with-defaults nothing-passed { arg1: value1; arg2: value2; } with-defaults partial-override { arg1: value1; arg2: other2; } with-defaults total-override { arg1: other1; arg2: other2; } with-splat nothing-passed { positional: (); keywords: (); } with-splat positional-passed { positional: value1, value2, value3; keywords: (); } with-splat named-passed { keywords: (arg1: value1, arg2: value2); } with-splat both-passed { positional: value1; keywords: (arg2: value2); } sass-spec-libsass-3.6.3/spec/mixin/content/arguments/scope.hrx000066400000000000000000000012701355712145100244570ustar00rootroot00000000000000<===> input.scss // Arguments passed to @content blocks are lexically-scoped within those blocks. $var: top-level; @mixin mixin($var) { mixin-var-before: $var; @content(content-argument); mixin-var-after: $var; } @mixin inner { var-in-inner: $var; } scope { var-before: $var; @include mixin(mixin-argument) using ($var) { content-var-before: $var; @include inner; content-var-after: $var; } var-after: $var; } <===> output.css scope { var-before: top-level; mixin-var-before: mixin-argument; content-var-before: content-argument; var-in-inner: top-level; content-var-after: content-argument; mixin-var-after: mixin-argument; var-after: top-level; } sass-spec-libsass-3.6.3/spec/mixin/content/arguments/weird_syntax.hrx000066400000000000000000000021261355712145100260670ustar00rootroot00000000000000<===> input.scss no-space-before-using { @mixin mixin { @content(value1, value2); } @include mixin()using ($arg1, $arg2) { arg1: $arg1; arg2: $arg2; } } no-space-after-using { @mixin mixin { @content(value1, value2); } @include mixin using($arg1, $arg2) { arg1: $arg1; arg2: $arg2; } } no-space-after-arglist { @mixin mixin { @content(value1, value2); } @include mixin using($arg1, $arg2){ arg1: $arg1; arg2: $arg2; } } space-after-content { @mixin mixin { @content (value1, value2); } @include mixin using ($arg1, $arg2) { arg1: $arg1; arg2: $arg2; } } case-insensitive-using { @mixin mixin { @content(value1, value2); } @include mixin UsInG ($arg1, $arg2) { arg1: $arg1; arg2: $arg2; } } <===> output.css no-space-before-using { arg1: value1; arg2: value2; } no-space-after-using { arg1: value1; arg2: value2; } no-space-after-arglist { arg1: value1; arg2: value2; } space-after-content { arg1: value1; arg2: value2; } case-insensitive-using { arg1: value1; arg2: value2; } sass-spec-libsass-3.6.3/spec/mixin/content/before_if.hrx000066400000000000000000000003111355712145100232540ustar00rootroot00000000000000<===> input.scss // Regression test for sass/dart-sass#482. @mixin outer { a {@content} } @mixin inner { @content; } @include outer { @include inner {} x: y; } <===> output.css a { x: y; } sass-spec-libsass-3.6.3/spec/mixin/content/recursive.hrx000066400000000000000000000002621355712145100233500ustar00rootroot00000000000000<===> input.scss @mixin span($i) { x: y; @content; } .a { @include span(5) { .inner { @include span(2); } } } <===> output.css .a { x: y; } .a .inner { x: y; } sass-spec-libsass-3.6.3/spec/mixin/environment_locality.hrx000066400000000000000000000006501355712145100241340ustar00rootroot00000000000000<===> input.scss // The "$var" variable should only be set locally, despite being in the same // mixin each time. @mixin with-local-variable($recurse) { $var: before; @if ($recurse) { @include with-local-variable($recurse: false); } var: $var; $var: after; } .environment-locality { @include with-local-variable($recurse: true); } <===> output.css .environment-locality { var: before; var: before; } sass-spec-libsass-3.6.3/spec/mixin/error/000077500000000000000000000000001355712145100202755ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/mixin/error/no_content.hrx000066400000000000000000000007461355712145100231750ustar00rootroot00000000000000<===> input.scss // A content block may not be passed to a mixin that doesn't include `@content`. @mixin no-content {} @include no-content {} <===> error Error: Mixin doesn't accept a content block. , 3 | @include no-content {} | ^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 3:1 root stylesheet <===> error-libsass Error: Mixin "no-content" does not accept a content block. on line 3:10 of /sass/spec/mixin/error/no_content/input.scss >> @include no-content {} ---------^ sass-spec-libsass-3.6.3/spec/nesting/000077500000000000000000000000001355712145100174675ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/nesting/not.hrx000066400000000000000000000003431355712145100210120ustar00rootroot00000000000000<===> multiple_parent_selectors_with_trailing_ident/input.scss // Regression test for sass/libsass#2630 .a, .b { :not(&-c) {d: e} } <===> multiple_parent_selectors_with_trailing_ident/output.css :not(.a-c, .b-c) { d: e; } sass-spec-libsass-3.6.3/spec/nesting/parent_with_newline.hrx000066400000000000000000000002401355712145100242530ustar00rootroot00000000000000<===> options.yml --- :todo: - libsass <===> input.scss .foo, .bar { .baz & { color: red; } } <===> output.css .baz .foo, .baz .bar { color: red; } sass-spec-libsass-3.6.3/spec/operations/000077500000000000000000000000001355712145100202035ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/operations/division.hrx000066400000000000000000000022511355712145100225520ustar00rootroot00000000000000<===> slash/with_string/slash_plus_string/input.scss a {b: 1 / 2 + foo()} <===> slash/with_string/slash_plus_string/output.css a { b: 0.5foo(); } <===> ================================================================================ <===> slash/with_string/slash_minus_string/input.scss a {b: 1 / 2 - foo()} <===> slash/with_string/slash_minus_string/output.css a { b: 0.5-foo(); } <===> ================================================================================ <===> slash/with_string/slash_slash_string/options.yml --- :todo: - sass/libsass#2840 <===> slash/with_string/slash_slash_string/input.scss a {b: 1 / 2 / foo()} <===> slash/with_string/slash_slash_string/output.css a { b: 1/2/foo(); } <===> ================================================================================ <===> slash/with_string/string_plus_slash/input.scss a {b: foo() + 1 / 2} <===> slash/with_string/string_plus_slash/output.css a { b: foo()0.5; } <===> ================================================================================ <===> slash/with_string/string_minus_slash/input.scss a {b: foo() - 1 / 2} <===> slash/with_string/string_minus_slash/output.css a { b: foo()-0.5; } sass-spec-libsass-3.6.3/spec/parser/000077500000000000000000000000001355712145100173145ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/parser/and_and.hrx000066400000000000000000000010141355712145100214170ustar00rootroot00000000000000<===> input.scss .and-and { value: true && false; } <===> output.css .and-and { value: true .and-and .and-and false; } <===> warning WARNING on line 2, column 15 of input.scss: In Sass, "&&" means two copies of the parent selector. You probably want to use "and" instead. , 2 | value: true && false; | ^^ ' <===> warning-libsass WARNING on line 2, column 15 of /sass/spec/parser/and_and/input.scss: In Sass, "&&" means two copies of the parent selector. You probably want to use "and" instead. sass-spec-libsass-3.6.3/spec/parser/arglists/000077500000000000000000000000001355712145100211445ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/parser/arglists/can-end-with-comma/000077500000000000000000000000001355712145100245145ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/parser/arglists/can-end-with-comma/error-call-1.hrx000066400000000000000000000006221355712145100274370ustar00rootroot00000000000000<===> input.scss // double comma in middle of arglist .error { e: double-comma-error($a,,$b); } <===> error Error: Invalid CSS after "...comma-error($a,": expected ")", was ",$b);" on line 3 of input.scss Use --trace for backtrace. <===> error-dart-sass Error: expected ")". , 3 | e: double-comma-error($a,,$b); | ^ ' input.scss 3:28 root stylesheet sass-spec-libsass-3.6.3/spec/parser/arglists/can-end-with-comma/error-call-2.hrx000066400000000000000000000006221355712145100274400ustar00rootroot00000000000000<===> input.scss // double comma at end of arglist .error { a: double-comma-error($a,$b,,); } <===> error Error: Invalid CSS after "...ma-error($a,$b,": expected ")", was ",);" on line 3 of input.scss Use --trace for backtrace. <===> error-dart-sass Error: expected ")". , 3 | a: double-comma-error($a,$b,,); | ^ ' input.scss 3:31 root stylesheet sass-spec-libsass-3.6.3/spec/parser/arglists/can-end-with-comma/error-call-3.hrx000066400000000000000000000006171355712145100274450ustar00rootroot00000000000000<===> input.scss // incorectly terminated .error { a: incorrectly-terminated($a,$b,; } <===> error Error: Invalid CSS after "...rminated($a,$b,": expected ")", was ";" on line 3 of input.scss Use --trace for backtrace. <===> error-dart-sass Error: expected ")". , 3 | a: incorrectly-terminated($a,$b,; | ^ ' input.scss 3:35 root stylesheet sass-spec-libsass-3.6.3/spec/parser/arglists/can-end-with-comma/error-function-1.hrx000066400000000000000000000006541355712145100303560ustar00rootroot00000000000000<===> input.scss // double comma in middle of arglist @function double-comma-error($a,,$b) { } <===> error Error: Invalid CSS after "...comma-error($a,": expected variable (e.g. $foo), was ",$b) {" on line 2 of input.scss Use --trace for backtrace. <===> error-dart-sass Error: expected ")". , 2 | @function double-comma-error($a,,$b) { | ^ ' input.scss 2:33 root stylesheet sass-spec-libsass-3.6.3/spec/parser/arglists/can-end-with-comma/error-function-2.hrx000066400000000000000000000006541355712145100303570ustar00rootroot00000000000000<===> input.scss // double comma at end of arglist @function double-comma-error($a,$b,,) { } <===> error Error: Invalid CSS after "...ma-error($a,$b,": expected variable (e.g. $foo), was ",) {" on line 2 of input.scss Use --trace for backtrace. <===> error-dart-sass Error: expected ")". , 2 | @function double-comma-error($a,$b,,) { | ^ ' input.scss 2:36 root stylesheet sass-spec-libsass-3.6.3/spec/parser/arglists/can-end-with-comma/error-function-3.hrx000066400000000000000000000011751355712145100303570ustar00rootroot00000000000000<===> input.scss // incorectly terminated @function missing-paren-error($a,$b, { } <===> error Error: Invalid CSS after "...n-error($a,$b, ": expected variable (e.g. $foo), was "{" on line 2 of input.scss Use --trace for backtrace. <===> error-dart-sass Error: expected ")". , 2 | @function missing-paren-error($a,$b, { | ^ ' input.scss 2:38 root stylesheet <===> error-libsass Error: Invalid CSS after "...en-error($a,$b,": expected variable (e.g. $foo), was "{" on line 2 of input.scss >> @function missing-paren-error($a,$b, { -----------------------------------^ sass-spec-libsass-3.6.3/spec/parser/arglists/can-end-with-comma/error-include-1.hrx000066400000000000000000000006441355712145100301530ustar00rootroot00000000000000<===> input.scss // double comma in middle of arglist .error { @include double-comma-error($a,,$b); } <===> error Error: Invalid CSS after "...comma-error($a,": expected ")", was ",$b);" on line 3 of input.scss Use --trace for backtrace. <===> error-dart-sass Error: expected ")". , 3 | @include double-comma-error($a,,$b); | ^ ' input.scss 3:34 root stylesheet sass-spec-libsass-3.6.3/spec/parser/arglists/can-end-with-comma/error-include-2.hrx000066400000000000000000000006441355712145100301540ustar00rootroot00000000000000<===> input.scss // double comma at end of arglist .error { @include double-comma-error($a,$b,,); } <===> error Error: Invalid CSS after "...ma-error($a,$b,": expected ")", was ",);" on line 3 of input.scss Use --trace for backtrace. <===> error-dart-sass Error: expected ")". , 3 | @include double-comma-error($a,$b,,); | ^ ' input.scss 3:37 root stylesheet sass-spec-libsass-3.6.3/spec/parser/arglists/can-end-with-comma/error-include-3.hrx000066400000000000000000000006411355712145100301520ustar00rootroot00000000000000<===> input.scss // incorectly terminated .error { @include incorrectly-terminated($a,$b,; } <===> error Error: Invalid CSS after "...rminated($a,$b,": expected ")", was ";" on line 3 of input.scss Use --trace for backtrace. <===> error-dart-sass Error: expected ")". , 3 | @include incorrectly-terminated($a,$b,; | ^ ' input.scss 3:41 root stylesheet sass-spec-libsass-3.6.3/spec/parser/arglists/can-end-with-comma/error-mixin-1.hrx000066400000000000000000000006431355712145100276530ustar00rootroot00000000000000<===> input.scss // double comma in middle of arglist @mixin double-comma-error($a,,$b) { } <===> error Error: Invalid CSS after "...comma-error($a,": expected variable (e.g. $foo), was ",$b) {" on line 2 of input.scss Use --trace for backtrace. <===> error-dart-sass Error: expected ")". , 2 | @mixin double-comma-error($a,,$b) { | ^ ' input.scss 2:30 root stylesheet sass-spec-libsass-3.6.3/spec/parser/arglists/can-end-with-comma/error-mixin-2.hrx000066400000000000000000000006431355712145100276540ustar00rootroot00000000000000<===> input.scss // double comma at end of arglist @mixin double-comma-error($a,$b,,) { } <===> error Error: Invalid CSS after "...ma-error($a,$b,": expected variable (e.g. $foo), was ",) {" on line 2 of input.scss Use --trace for backtrace. <===> error-dart-sass Error: expected ")". , 2 | @mixin double-comma-error($a,$b,,) { | ^ ' input.scss 2:33 root stylesheet sass-spec-libsass-3.6.3/spec/parser/arglists/can-end-with-comma/error-mixin-3.hrx000066400000000000000000000011561355712145100276550ustar00rootroot00000000000000<===> input.scss // incorectly terminated @mixin missing-paren-error($a,$b, { } <===> error Error: Invalid CSS after "...n-error($a,$b, ": expected variable (e.g. $foo), was "{" on line 2 of input.scss Use --trace for backtrace. <===> error-dart-sass Error: expected ")". , 2 | @mixin missing-paren-error($a,$b, { | ^ ' input.scss 2:35 root stylesheet <===> error-libsass Error: Invalid CSS after "...en-error($a,$b,": expected variable (e.g. $foo), was "{" on line 2 of input.scss >> @mixin missing-paren-error($a,$b, { --------------------------------^ sass-spec-libsass-3.6.3/spec/parser/arglists/can-end-with-comma/functions.hrx000066400000000000000000000014431355712145100272510ustar00rootroot00000000000000<===> input.scss @function one-positional-arg($a,) { @return positional 1 $a; } @function two-positional-args($a, $b,) { @return positional 2 $a $b; } @function one-keyword-arg($a: a,) { @return keyword 1 $a; } @function two-keyword-args($a: a, $b: b,) { @return keyword 2 $a $b; } @function mixed-args($a, $b: b,) { @return keyword 2 $a $b; } .calls { one-positional-arg: one-positional-arg(a,); two-positional-args: two-positional-args(a,b,); one-keyword-arg: one-keyword-arg($a: z,); two-keyword-args: two-keyword-args($a: y,$b: z,); mixed-args: mixed-args(y, $b: z,); } <===> output.css .calls { one-positional-arg: positional 1 a; two-positional-args: positional 2 a b; one-keyword-arg: keyword 1 z; two-keyword-args: keyword 2 y z; mixed-args: keyword 2 y z; } sass-spec-libsass-3.6.3/spec/parser/arglists/can-end-with-comma/mixins.hrx000066400000000000000000000014401355712145100265450ustar00rootroot00000000000000<===> input.scss @mixin one-positional-arg($a,) { one-positional-arg: positional 1 $a; } @mixin two-positional-args($a, $b,) { two-positional-args: positional 2 $a $b; } @mixin one-keyword-arg($a: a,) { one-keyword-arg: keyword 1 $a; } @mixin two-keyword-args($a: a, $b: b,) { two-keyword-args: keyword 2 $a $b; } @mixin mixed-args($a, $b: b,) { mixed-args: keyword 2 $a $b; } .includes { @include one-positional-arg(a,); @include two-positional-args(a,b,); @include one-keyword-arg($a: z,); @include two-keyword-args($a: y,$b: z,); @include mixed-args(y, $b: z,); } <===> output.css .includes { one-positional-arg: positional 1 a; two-positional-args: positional 2 a b; one-keyword-arg: keyword 1 z; two-keyword-args: keyword 2 y z; mixed-args: keyword 2 y z; } sass-spec-libsass-3.6.3/spec/parser/interpolate/000077500000000000000000000000001355712145100216425ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/parser/interpolate/00_concatenation/000077500000000000000000000000001355712145100247665ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/parser/interpolate/00_concatenation/spaced.hrx000066400000000000000000000045531355712145100267570ustar00rootroot00000000000000<===> input.scss $input: literal; .result { output: literal $input; output: literal #{$input}; output: literal #{literal}; output: literal #{"literal"}; output: $input $input; output: $input #{$input}; output: $input #{literal}; output: $input #{"literal"}; output: #{$input} literal; output: #{$input} $input; output: #{$input} #{$input}; output: #{$input} #{literal}; output: #{$input} #{"literal"}; output: #{literal} literal; output: #{literal} $input; output: #{literal} #{$input}; output: #{literal} #{literal}; output: #{literal} #{"literal"}; output: #{"literal"} literal; output: #{"literal"} $input; output: #{"literal"} #{$input}; output: #{"literal"} #{literal}; output: #{"literal"} #{"literal"}; output: "literal #{$input}"; output: "literal #{literal}"; output: "literal #{"literal"}"; output: "#{$input} literal"; output: "#{$input} #{$input}"; output: "#{$input} #{literal}"; output: "#{$input} #{"literal"}"; output: "#{literal} literal"; output: "#{literal} #{$input}"; output: "#{literal} #{literal}"; output: "#{literal} #{"literal"}"; output: "#{"literal"} literal"; output: "#{"literal"} #{$input}"; output: "#{"literal"} #{literal}"; output: "#{"literal"} #{"literal"}"; } <===> output.css .result { output: literal literal; output: literal literal; output: literal literal; output: literal literal; output: literal literal; output: literal literal; output: literal literal; output: literal literal; output: literal literal; output: literal literal; output: literal literal; output: literal literal; output: literal literal; output: literal literal; output: literal literal; output: literal literal; output: literal literal; output: literal literal; output: literal literal; output: literal literal; output: literal literal; output: literal literal; output: literal literal; output: "literal literal"; output: "literal literal"; output: "literal literal"; output: "literal literal"; output: "literal literal"; output: "literal literal"; output: "literal literal"; output: "literal literal"; output: "literal literal"; output: "literal literal"; output: "literal literal"; output: "literal literal"; output: "literal literal"; output: "literal literal"; output: "literal literal"; } sass-spec-libsass-3.6.3/spec/parser/interpolate/00_concatenation/unspaced.hrx000066400000000000000000000044321355712145100273160ustar00rootroot00000000000000<===> options.yml --- :todo: - libsass <===> input.scss $input: literal; .result { output: literal$input; output: literal#{$input}; output: literal#{literal}; output: literal#{"literal"}; output: $input$input; output: $input#{$input}; output: $input#{literal}; output: $input#{"literal"}; output: #{$input}literal; output: #{$input}$input; output: #{$input}#{$input}; output: #{$input}#{literal}; output: #{$input}#{"literal"}; output: #{literal}literal; output: #{literal}$input; output: #{literal}#{$input}; output: #{literal}#{literal}; output: #{literal}#{"literal"}; output: #{"literal"}literal; output: #{"literal"}$input; output: #{"literal"}#{$input}; output: #{"literal"}#{literal}; output: #{"literal"}#{"literal"}; output: "literal#{$input}"; output: "literal#{literal}"; output: "literal#{"literal"}"; output: "#{$input}literal"; output: "#{$input}#{$input}"; output: "#{$input}#{literal}"; output: "#{$input}#{"literal"}"; output: "#{literal}literal"; output: "#{literal}#{$input}"; output: "#{literal}#{literal}"; output: "#{literal}#{"literal"}"; output: "#{"literal"}literal"; output: "#{"literal"}#{$input}"; output: "#{"literal"}#{literal}"; output: "#{"literal"}#{"literal"}"; } <===> output.css .result { output: literal literal; output: literalliteral; output: literalliteral; output: literalliteral; output: literal literal; output: literal literal; output: literal literal; output: literal literal; output: literalliteral; output: literal literal; output: literalliteral; output: literalliteral; output: literalliteral; output: literalliteral; output: literal literal; output: literalliteral; output: literalliteral; output: literalliteral; output: literalliteral; output: literal literal; output: literalliteral; output: literalliteral; output: literalliteral; output: "literalliteral"; output: "literalliteral"; output: "literalliteral"; output: "literalliteral"; output: "literalliteral"; output: "literalliteral"; output: "literalliteral"; output: "literalliteral"; output: "literalliteral"; output: "literalliteral"; output: "literalliteral"; output: "literalliteral"; output: "literalliteral"; output: "literalliteral"; output: "literalliteral"; } sass-spec-libsass-3.6.3/spec/parser/interpolate/01_literal/000077500000000000000000000000001355712145100235765ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/parser/interpolate/01_literal/01_inline.hrx000066400000000000000000000005121355712145100260750ustar00rootroot00000000000000<===> input.scss .result { output: literal; output: #{literal}; output: "[#{literal}]"; output: "#{literal}"; output: '#{literal}'; output: "['#{literal}']"; } <===> output.css .result { output: literal; output: literal; output: "[literal]"; output: "literal"; output: "literal"; output: "['literal']"; } sass-spec-libsass-3.6.3/spec/parser/interpolate/01_literal/02_variable.hrx000066400000000000000000000005251355712145100264110ustar00rootroot00000000000000<===> input.scss $input: literal; .result { output: $input; output: #{$input}; output: "[#{$input}]"; output: "#{$input}"; output: '#{$input}'; output: "['#{$input}']"; } <===> output.css .result { output: literal; output: literal; output: "[literal]"; output: "literal"; output: "literal"; output: "['literal']"; } sass-spec-libsass-3.6.3/spec/parser/interpolate/01_literal/03_inline_double.hrx000066400000000000000000000004531355712145100274350ustar00rootroot00000000000000<===> input.scss .result { output: #{#{literal}}; output: #{"[#{literal}]"}; output: #{"#{literal}"}; output: #{'#{literal}'}; output: #{"['#{literal}']"}; } <===> output.css .result { output: literal; output: [literal]; output: literal; output: literal; output: ['literal']; } sass-spec-libsass-3.6.3/spec/parser/interpolate/01_literal/04_variable_double.hrx000066400000000000000000000004671355712145100277520ustar00rootroot00000000000000<===> input.scss $input: literal; .result { output: #{#{$input}}; output: #{"[#{$input}]"}; output: #{"#{$input}"}; output: #{'#{$input}'}; output: #{"['#{$input}']"}; } <===> output.css .result { output: literal; output: [literal]; output: literal; output: literal; output: ['literal']; } sass-spec-libsass-3.6.3/spec/parser/interpolate/01_literal/05_variable_quoted_double.hrx000066400000000000000000000011361355712145100313260ustar00rootroot00000000000000<===> input.scss $input: literal; .result { dquoted: "#{#{$input}}"; dquoted: "#{"[#{$input}]"}"; dquoted: "#{"#{$input}"}"; dquoted: "#{'#{$input}'}"; dquoted: "#{"['#{$input}']"}"; squoted: '#{#{$input}}'; squoted: '#{"[#{$input}]"}'; squoted: '#{"#{$input}"}'; squoted: '#{'#{$input}'}'; squoted: '#{"['#{$input}']"}'; } <===> output.css .result { dquoted: "literal"; dquoted: "[literal]"; dquoted: "literal"; dquoted: "literal"; dquoted: "['literal']"; squoted: "literal"; squoted: "[literal]"; squoted: "literal"; squoted: "literal"; squoted: "['literal']"; } sass-spec-libsass-3.6.3/spec/parser/interpolate/01_literal/06_escape_interpolation.hrx000066400000000000000000000006561355712145100310440ustar00rootroot00000000000000<===> input.scss $input: literal; .result { output: "[\#{literal}]"; output: "\#{literal}"; output: '\#{literal}'; output: "['\#{literal}']"; } <===> output.css .result { output: "[\#{literal}]"; output: "\#{literal}"; output: '\#{literal}'; output: "['\#{literal}']"; } <===> output-dart-sass.css .result { output: "[#{literal}]"; output: "#{literal}"; output: "#{literal}"; output: "['#{literal}']"; } sass-spec-libsass-3.6.3/spec/parser/interpolate/02_double_quoted/000077500000000000000000000000001355712145100247765ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/parser/interpolate/02_double_quoted/01_inline.hrx000066400000000000000000000005301355712145100272750ustar00rootroot00000000000000<===> input.scss .result { output: "dquoted"; output: #{"dquoted"}; output: "[#{"dquoted"}]"; output: "#{"dquoted"}"; output: '#{"dquoted"}'; output: "['#{"dquoted"}']"; } <===> output.css .result { output: "dquoted"; output: dquoted; output: "[dquoted]"; output: "dquoted"; output: "dquoted"; output: "['dquoted']"; } sass-spec-libsass-3.6.3/spec/parser/interpolate/02_double_quoted/02_variable.hrx000066400000000000000000000005311355712145100276060ustar00rootroot00000000000000<===> input.scss $input: "dquoted"; .result { output: $input; output: #{$input}; output: "[#{$input}]"; output: "#{$input}"; output: '#{$input}'; output: "['#{$input}']"; } <===> output.css .result { output: "dquoted"; output: dquoted; output: "[dquoted]"; output: "dquoted"; output: "dquoted"; output: "['dquoted']"; } sass-spec-libsass-3.6.3/spec/parser/interpolate/02_double_quoted/03_inline_double.hrx000066400000000000000000000004651355712145100306400ustar00rootroot00000000000000<===> input.scss .result { output: #{#{"dquoted"}}; output: #{"[#{"dquoted"}]"}; output: #{"#{"dquoted"}"}; output: #{'#{"dquoted"}'}; output: #{"['#{"dquoted"}']"}; } <===> output.css .result { output: dquoted; output: [dquoted]; output: dquoted; output: dquoted; output: ['dquoted']; } sass-spec-libsass-3.6.3/spec/parser/interpolate/02_double_quoted/04_variable_double.hrx000066400000000000000000000004711355712145100311450ustar00rootroot00000000000000<===> input.scss $input: "dquoted"; .result { output: #{#{$input}}; output: #{"[#{$input}]"}; output: #{"#{$input}"}; output: #{'#{$input}'}; output: #{"['#{$input}']"}; } <===> output.css .result { output: dquoted; output: [dquoted]; output: dquoted; output: dquoted; output: ['dquoted']; } sass-spec-libsass-3.6.3/spec/parser/interpolate/02_double_quoted/05_variable_quoted_double.hrx000066400000000000000000000011401355712145100325210ustar00rootroot00000000000000<===> input.scss $input: "dquoted"; .result { dquoted: "#{#{$input}}"; dquoted: "#{"[#{$input}]"}"; dquoted: "#{"#{$input}"}"; dquoted: "#{'#{$input}'}"; dquoted: "#{"['#{$input}']"}"; squoted: '#{#{$input}}'; squoted: '#{"[#{$input}]"}'; squoted: '#{"#{$input}"}'; squoted: '#{'#{$input}'}'; squoted: '#{"['#{$input}']"}'; } <===> output.css .result { dquoted: "dquoted"; dquoted: "[dquoted]"; dquoted: "dquoted"; dquoted: "dquoted"; dquoted: "['dquoted']"; squoted: "dquoted"; squoted: "[dquoted]"; squoted: "dquoted"; squoted: "dquoted"; squoted: "['dquoted']"; } sass-spec-libsass-3.6.3/spec/parser/interpolate/02_double_quoted/06_escape_interpolation.hrx000066400000000000000000000007211355712145100322350ustar00rootroot00000000000000<===> input.scss $input: "dquoted"; .result { output: "[\#{"dquoted"}]"; output: "\#{"dquoted"}"; output: '\#{"dquoted"}'; output: "['\#{"dquoted"}']"; } <===> output.css .result { output: "[#{" dquoted "}]"; output: "#{" dquoted "}"; output: '\#{"dquoted"}'; output: "['#{" dquoted "}']"; } <===> output-dart-sass.css .result { output: "[#{" dquoted "}]"; output: "#{" dquoted "}"; output: '#{"dquoted"}'; output: "['#{" dquoted "}']"; } sass-spec-libsass-3.6.3/spec/parser/interpolate/03_single_quoted/000077500000000000000000000000001355712145100250065ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/parser/interpolate/03_single_quoted/01_inline.hrx000066400000000000000000000010021355712145100273000ustar00rootroot00000000000000<===> input.scss .result { output: 'squoted'; output: #{'squoted'}; output: "[#{'squoted'}]"; output: "#{'squoted'}"; output: '#{'squoted'}'; output: "['#{'squoted'}']"; } <===> output.css .result { output: 'squoted'; output: squoted; output: "[squoted]"; output: "squoted"; output: "squoted"; output: "['squoted']"; } <===> output-dart-sass.css .result { output: "squoted"; output: squoted; output: "[squoted]"; output: "squoted"; output: "squoted"; output: "['squoted']"; } sass-spec-libsass-3.6.3/spec/parser/interpolate/03_single_quoted/02_variable.hrx000066400000000000000000000005311355712145100276160ustar00rootroot00000000000000<===> input.scss $input: 'squoted'; .result { output: $input; output: #{$input}; output: "[#{$input}]"; output: "#{$input}"; output: '#{$input}'; output: "['#{$input}']"; } <===> output.css .result { output: "squoted"; output: squoted; output: "[squoted]"; output: "squoted"; output: "squoted"; output: "['squoted']"; } sass-spec-libsass-3.6.3/spec/parser/interpolate/03_single_quoted/03_inline_double.hrx000066400000000000000000000004651355712145100306500ustar00rootroot00000000000000<===> input.scss .result { output: #{#{'squoted'}}; output: #{"[#{'squoted'}]"}; output: #{"#{'squoted'}"}; output: #{'#{'squoted'}'}; output: #{"['#{'squoted'}']"}; } <===> output.css .result { output: squoted; output: [squoted]; output: squoted; output: squoted; output: ['squoted']; } sass-spec-libsass-3.6.3/spec/parser/interpolate/03_single_quoted/04_variable_double.hrx000066400000000000000000000004711355712145100311550ustar00rootroot00000000000000<===> input.scss $input: 'squoted'; .result { output: #{#{$input}}; output: #{"[#{$input}]"}; output: #{"#{$input}"}; output: #{'#{$input}'}; output: #{"['#{$input}']"}; } <===> output.css .result { output: squoted; output: [squoted]; output: squoted; output: squoted; output: ['squoted']; } sass-spec-libsass-3.6.3/spec/parser/interpolate/03_single_quoted/05_variable_quoted_double.hrx000066400000000000000000000011401355712145100325310ustar00rootroot00000000000000<===> input.scss $input: 'squoted'; .result { dquoted: "#{#{$input}}"; dquoted: "#{"[#{$input}]"}"; dquoted: "#{"#{$input}"}"; dquoted: "#{'#{$input}'}"; dquoted: "#{"['#{$input}']"}"; squoted: '#{#{$input}}'; squoted: '#{"[#{$input}]"}'; squoted: '#{"#{$input}"}'; squoted: '#{'#{$input}'}'; squoted: '#{"['#{$input}']"}'; } <===> output.css .result { dquoted: "squoted"; dquoted: "[squoted]"; dquoted: "squoted"; dquoted: "squoted"; dquoted: "['squoted']"; squoted: "squoted"; squoted: "[squoted]"; squoted: "squoted"; squoted: "squoted"; squoted: "['squoted']"; } sass-spec-libsass-3.6.3/spec/parser/interpolate/03_single_quoted/06_escape_interpolation.hrx000066400000000000000000000007131355712145100322460ustar00rootroot00000000000000<===> input.scss $input: 'squoted'; .result { output: "[\#{'squoted'}]"; output: "\#{'squoted'}"; output: '\#{'squoted'}'; output: "['\#{'squoted'}']"; } <===> output.css .result { output: "[\#{'squoted'}]"; output: "\#{'squoted'}"; output: "#{" squoted "}"; output: "['\#{'squoted'}']"; } <===> output-dart-sass.css .result { output: "[#{'squoted'}]"; output: "#{'squoted'}"; output: "#{" squoted "}"; output: "['#{'squoted'}']"; } sass-spec-libsass-3.6.3/spec/parser/interpolate/04_space_list_quoted/000077500000000000000000000000001355712145100256545ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/parser/interpolate/04_space_list_quoted/01_inline.hrx000066400000000000000000000011101355712145100301460ustar00rootroot00000000000000<===> input.scss .result { output: "alpha" 'beta'; output: #{"alpha" 'beta'}; output: "[#{"alpha" 'beta'}]"; output: "#{"alpha" 'beta'}"; output: '#{"alpha" 'beta'}'; output: "['#{"alpha" 'beta'}']"; } <===> output.css .result { output: "alpha" 'beta'; output: alpha beta; output: "[alpha beta]"; output: "alpha beta"; output: "alpha beta"; output: "['alpha beta']"; } <===> output-dart-sass.css .result { output: "alpha" "beta"; output: alpha beta; output: "[alpha beta]"; output: "alpha beta"; output: "alpha beta"; output: "['alpha beta']"; } sass-spec-libsass-3.6.3/spec/parser/interpolate/04_space_list_quoted/02_variable.hrx000066400000000000000000000005621355712145100304700ustar00rootroot00000000000000<===> input.scss $input: "alpha" 'beta'; .result { output: $input; output: #{$input}; output: "[#{$input}]"; output: "#{$input}"; output: '#{$input}'; output: "['#{$input}']"; } <===> output.css .result { output: "alpha" "beta"; output: alpha beta; output: "[alpha beta]"; output: "alpha beta"; output: "alpha beta"; output: "['alpha beta']"; } sass-spec-libsass-3.6.3/spec/parser/interpolate/04_space_list_quoted/03_inline_double.hrx000066400000000000000000000005351355712145100315140ustar00rootroot00000000000000<===> input.scss .result { output: #{#{"alpha" 'beta'}}; output: #{"[#{"alpha" 'beta'}]"}; output: #{"#{"alpha" 'beta'}"}; output: #{'#{"alpha" 'beta'}'}; output: #{"['#{"alpha" 'beta'}']"}; } <===> output.css .result { output: alpha beta; output: [alpha beta]; output: alpha beta; output: alpha beta; output: ['alpha beta']; } sass-spec-libsass-3.6.3/spec/parser/interpolate/04_space_list_quoted/04_variable_double.hrx000066400000000000000000000005151355712145100320220ustar00rootroot00000000000000<===> input.scss $input: "alpha" 'beta'; .result { output: #{#{$input}}; output: #{"[#{$input}]"}; output: #{"#{$input}"}; output: #{'#{$input}'}; output: #{"['#{$input}']"}; } <===> output.css .result { output: alpha beta; output: [alpha beta]; output: alpha beta; output: alpha beta; output: ['alpha beta']; } sass-spec-libsass-3.6.3/spec/parser/interpolate/04_space_list_quoted/05_variable_quoted_double.hrx000066400000000000000000000012031355712145100333770ustar00rootroot00000000000000<===> input.scss $input: "alpha" 'beta'; .result { dquoted: "#{#{$input}}"; dquoted: "#{"[#{$input}]"}"; dquoted: "#{"#{$input}"}"; dquoted: "#{'#{$input}'}"; dquoted: "#{"['#{$input}']"}"; squoted: '#{#{$input}}'; squoted: '#{"[#{$input}]"}'; squoted: '#{"#{$input}"}'; squoted: '#{'#{$input}'}'; squoted: '#{"['#{$input}']"}'; } <===> output.css .result { dquoted: "alpha beta"; dquoted: "[alpha beta]"; dquoted: "alpha beta"; dquoted: "alpha beta"; dquoted: "['alpha beta']"; squoted: "alpha beta"; squoted: "[alpha beta]"; squoted: "alpha beta"; squoted: "alpha beta"; squoted: "['alpha beta']"; } sass-spec-libsass-3.6.3/spec/parser/interpolate/04_space_list_quoted/06_escape_interpolation.hrx000066400000000000000000000005431355712145100331150ustar00rootroot00000000000000<===> input.scss $input: "alpha" 'beta'; .result { output: "[\#{"alpha" 'beta'}]"; output: "\#{"alpha" 'beta'}"; output: '\#{"alpha" 'beta'}'; output: "['\#{"alpha" 'beta'}']"; } <===> output.css .result { output: "[#{" alpha " 'beta'}]"; output: "#{" alpha " 'beta'}"; output: '#{"alpha" ' beta "}"; output: "['#{" alpha " 'beta'}']"; } sass-spec-libsass-3.6.3/spec/parser/interpolate/05_comma_list_quoted/000077500000000000000000000000001355712145100256565ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/parser/interpolate/05_comma_list_quoted/01_inline.hrx000066400000000000000000000011321355712145100301540ustar00rootroot00000000000000<===> input.scss .result { output: "alpha", 'beta'; output: #{"alpha", 'beta'}; output: "[#{"alpha", 'beta'}]"; output: "#{"alpha", 'beta'}"; output: '#{"alpha", 'beta'}'; output: "['#{"alpha", 'beta'}']"; } <===> output.css .result { output: "alpha", 'beta'; output: alpha, beta; output: "[alpha, beta]"; output: "alpha, beta"; output: "alpha, beta"; output: "['alpha, beta']"; } <===> output-dart-sass.css .result { output: "alpha", "beta"; output: alpha, beta; output: "[alpha, beta]"; output: "alpha, beta"; output: "alpha, beta"; output: "['alpha, beta']"; } sass-spec-libsass-3.6.3/spec/parser/interpolate/05_comma_list_quoted/02_variable.hrx000066400000000000000000000005711355712145100304720ustar00rootroot00000000000000<===> input.scss $input: "alpha", 'beta'; .result { output: $input; output: #{$input}; output: "[#{$input}]"; output: "#{$input}"; output: '#{$input}'; output: "['#{$input}']"; } <===> output.css .result { output: "alpha", "beta"; output: alpha, beta; output: "[alpha, beta]"; output: "alpha, beta"; output: "alpha, beta"; output: "['alpha, beta']"; } sass-spec-libsass-3.6.3/spec/parser/interpolate/05_comma_list_quoted/03_inline_double.hrx000066400000000000000000000005471355712145100315210ustar00rootroot00000000000000<===> input.scss .result { output: #{#{"alpha", 'beta'}}; output: #{"[#{"alpha", 'beta'}]"}; output: #{"#{"alpha", 'beta'}"}; output: #{'#{"alpha", 'beta'}'}; output: #{"['#{"alpha", 'beta'}']"}; } <===> output.css .result { output: alpha, beta; output: [alpha, beta]; output: alpha, beta; output: alpha, beta; output: ['alpha, beta']; } sass-spec-libsass-3.6.3/spec/parser/interpolate/05_comma_list_quoted/04_variable_double.hrx000066400000000000000000000005231355712145100320230ustar00rootroot00000000000000<===> input.scss $input: "alpha", 'beta'; .result { output: #{#{$input}}; output: #{"[#{$input}]"}; output: #{"#{$input}"}; output: #{'#{$input}'}; output: #{"['#{$input}']"}; } <===> output.css .result { output: alpha, beta; output: [alpha, beta]; output: alpha, beta; output: alpha, beta; output: ['alpha, beta']; } sass-spec-libsass-3.6.3/spec/parser/interpolate/05_comma_list_quoted/05_variable_quoted_double.hrx000066400000000000000000000012161355712145100334050ustar00rootroot00000000000000<===> input.scss $input: "alpha", 'beta'; .result { dquoted: "#{#{$input}}"; dquoted: "#{"[#{$input}]"}"; dquoted: "#{"#{$input}"}"; dquoted: "#{'#{$input}'}"; dquoted: "#{"['#{$input}']"}"; squoted: '#{#{$input}}'; squoted: '#{"[#{$input}]"}'; squoted: '#{"#{$input}"}'; squoted: '#{'#{$input}'}'; squoted: '#{"['#{$input}']"}'; } <===> output.css .result { dquoted: "alpha, beta"; dquoted: "[alpha, beta]"; dquoted: "alpha, beta"; dquoted: "alpha, beta"; dquoted: "['alpha, beta']"; squoted: "alpha, beta"; squoted: "[alpha, beta]"; squoted: "alpha, beta"; squoted: "alpha, beta"; squoted: "['alpha, beta']"; } sass-spec-libsass-3.6.3/spec/parser/interpolate/05_comma_list_quoted/06_escape_interpolation.hrx000066400000000000000000000005541355712145100331210ustar00rootroot00000000000000<===> input.scss $input: "alpha", 'beta'; .result { output: "[\#{"alpha", 'beta'}]"; output: "\#{"alpha", 'beta'}"; output: '\#{"alpha", 'beta'}'; output: "['\#{"alpha", 'beta'}']"; } <===> output.css .result { output: "[#{" alpha ", 'beta'}]"; output: "#{" alpha ", 'beta'}"; output: '#{"alpha", ' beta "}"; output: "['#{" alpha ", 'beta'}']"; } sass-spec-libsass-3.6.3/spec/parser/interpolate/06_space_list_complex/000077500000000000000000000000001355712145100260245ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/parser/interpolate/06_space_list_complex/01_inline.hrx000066400000000000000000000006721355712145100303320ustar00rootroot00000000000000<===> input.scss .result { output: gamme "'"delta"'"; output: #{gamme "'"delta"'"}; output: "[#{gamme "'"delta"'"}]"; output: "#{gamme "'"delta"'"}"; output: '#{gamme "'"delta"'"}'; output: "['#{gamme "'"delta"'"}']"; } <===> output.css .result { output: gamme "'" delta "'"; output: gamme ' delta '; output: "[gamme ' delta ']"; output: "gamme ' delta '"; output: "gamme ' delta '"; output: "['gamme ' delta '']"; } sass-spec-libsass-3.6.3/spec/parser/interpolate/06_space_list_complex/02_variable.hrx000066400000000000000000000006231355712145100306360ustar00rootroot00000000000000<===> input.scss $input: gamme "'"delta"'"; .result { output: $input; output: #{$input}; output: "[#{$input}]"; output: "#{$input}"; output: '#{$input}'; output: "['#{$input}']"; } <===> output.css .result { output: gamme "'" delta "'"; output: gamme ' delta '; output: "[gamme ' delta ']"; output: "gamme ' delta '"; output: "gamme ' delta '"; output: "['gamme ' delta '']"; } sass-spec-libsass-3.6.3/spec/parser/interpolate/06_space_list_complex/03_inline_double.hrx000066400000000000000000000006051355712145100316620ustar00rootroot00000000000000<===> input.scss .result { output: #{#{gamme "'"delta"'"}}; output: #{"[#{gamme "'"delta"'"}]"}; output: #{"#{gamme "'"delta"'"}"}; output: #{'#{gamme "'"delta"'"}'}; output: #{"['#{gamme "'"delta"'"}']"}; } <===> output.css .result { output: gamme ' delta '; output: [gamme ' delta ']; output: gamme ' delta '; output: gamme ' delta '; output: ['gamme ' delta '']; } sass-spec-libsass-3.6.3/spec/parser/interpolate/06_space_list_complex/04_variable_double.hrx000066400000000000000000000005511355712145100321720ustar00rootroot00000000000000<===> input.scss $input: gamme "'"delta"'"; .result { output: #{#{$input}}; output: #{"[#{$input}]"}; output: #{"#{$input}"}; output: #{'#{$input}'}; output: #{"['#{$input}']"}; } <===> output.css .result { output: gamme ' delta '; output: [gamme ' delta ']; output: gamme ' delta '; output: gamme ' delta '; output: ['gamme ' delta '']; } sass-spec-libsass-3.6.3/spec/parser/interpolate/06_space_list_complex/05_variable_quoted_double.hrx000066400000000000000000000012701355712145100335530ustar00rootroot00000000000000<===> input.scss $input: gamme "'"delta"'"; .result { dquoted: "#{#{$input}}"; dquoted: "#{"[#{$input}]"}"; dquoted: "#{"#{$input}"}"; dquoted: "#{'#{$input}'}"; dquoted: "#{"['#{$input}']"}"; squoted: '#{#{$input}}'; squoted: '#{"[#{$input}]"}'; squoted: '#{"#{$input}"}'; squoted: '#{'#{$input}'}'; squoted: '#{"['#{$input}']"}'; } <===> output.css .result { dquoted: "gamme ' delta '"; dquoted: "[gamme ' delta ']"; dquoted: "gamme ' delta '"; dquoted: "gamme ' delta '"; dquoted: "['gamme ' delta '']"; squoted: "gamme ' delta '"; squoted: "[gamme ' delta ']"; squoted: "gamme ' delta '"; squoted: "gamme ' delta '"; squoted: "['gamme ' delta '']"; } sass-spec-libsass-3.6.3/spec/parser/interpolate/06_space_list_complex/06_escape_interpolation.hrx000066400000000000000000000005761355712145100332730ustar00rootroot00000000000000<===> input.scss $input: gamme "'"delta"'"; .result { output: "[\#{gamme "'"delta"'"}]"; output: "\#{gamme "'"delta"'"}"; output: '\#{gamme "'"delta"'"}'; output: "['\#{gamme "'"delta"'"}']"; } <===> output.css .result { output: "[#{gamme " '"delta"' "}]"; output: "#{gamme " '"delta"' "}"; output: '#{gamme "' "delta" '"}'; output: "['#{gamme " '"delta"' "}']"; } sass-spec-libsass-3.6.3/spec/parser/interpolate/07_comma_list_complex/000077500000000000000000000000001355712145100260265ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/parser/interpolate/07_comma_list_complex/01_inline.hrx000066400000000000000000000007061355712145100303320ustar00rootroot00000000000000<===> input.scss .result { output: gamma, "'"delta"'"; output: #{gamma, "'"delta"'"}; output: "[#{gamma, "'"delta"'"}]"; output: "#{gamma, "'"delta"'"}"; output: '#{gamma, "'"delta"'"}'; output: "['#{gamma, "'"delta"'"}']"; } <===> output.css .result { output: gamma, "'" delta "'"; output: gamma, ' delta '; output: "[gamma, ' delta ']"; output: "gamma, ' delta '"; output: "gamma, ' delta '"; output: "['gamma, ' delta '']"; } sass-spec-libsass-3.6.3/spec/parser/interpolate/07_comma_list_complex/02_variable.hrx000066400000000000000000000006321355712145100306400ustar00rootroot00000000000000<===> input.scss $input: gamma, "'"delta"'"; .result { output: $input; output: #{$input}; output: "[#{$input}]"; output: "#{$input}"; output: '#{$input}'; output: "['#{$input}']"; } <===> output.css .result { output: gamma, "'" delta "'"; output: gamma, ' delta '; output: "[gamma, ' delta ']"; output: "gamma, ' delta '"; output: "gamma, ' delta '"; output: "['gamma, ' delta '']"; } sass-spec-libsass-3.6.3/spec/parser/interpolate/07_comma_list_complex/03_inline_double.hrx000066400000000000000000000006171355712145100316670ustar00rootroot00000000000000<===> input.scss .result { output: #{#{gamma, "'"delta"'"}}; output: #{"[#{gamma, "'"delta"'"}]"}; output: #{"#{gamma, "'"delta"'"}"}; output: #{'#{gamma, "'"delta"'"}'}; output: #{"['#{gamma, "'"delta"'"}']"}; } <===> output.css .result { output: gamma, ' delta '; output: [gamma, ' delta ']; output: gamma, ' delta '; output: gamma, ' delta '; output: ['gamma, ' delta '']; } sass-spec-libsass-3.6.3/spec/parser/interpolate/07_comma_list_complex/04_variable_double.hrx000066400000000000000000000005571355712145100322020ustar00rootroot00000000000000<===> input.scss $input: gamma, "'"delta"'"; .result { output: #{#{$input}}; output: #{"[#{$input}]"}; output: #{"#{$input}"}; output: #{'#{$input}'}; output: #{"['#{$input}']"}; } <===> output.css .result { output: gamma, ' delta '; output: [gamma, ' delta ']; output: gamma, ' delta '; output: gamma, ' delta '; output: ['gamma, ' delta '']; } sass-spec-libsass-3.6.3/spec/parser/interpolate/07_comma_list_complex/05_variable_quoted_double.hrx000066400000000000000000000013031355712145100335520ustar00rootroot00000000000000<===> input.scss $input: gamma, "'"delta"'"; .result { dquoted: "#{#{$input}}"; dquoted: "#{"[#{$input}]"}"; dquoted: "#{"#{$input}"}"; dquoted: "#{'#{$input}'}"; dquoted: "#{"['#{$input}']"}"; squoted: '#{#{$input}}'; squoted: '#{"[#{$input}]"}'; squoted: '#{"#{$input}"}'; squoted: '#{'#{$input}'}'; squoted: '#{"['#{$input}']"}'; } <===> output.css .result { dquoted: "gamma, ' delta '"; dquoted: "[gamma, ' delta ']"; dquoted: "gamma, ' delta '"; dquoted: "gamma, ' delta '"; dquoted: "['gamma, ' delta '']"; squoted: "gamma, ' delta '"; squoted: "[gamma, ' delta ']"; squoted: "gamma, ' delta '"; squoted: "gamma, ' delta '"; squoted: "['gamma, ' delta '']"; } sass-spec-libsass-3.6.3/spec/parser/interpolate/07_comma_list_complex/06_escape_interpolation.hrx000066400000000000000000000006071355712145100332700ustar00rootroot00000000000000<===> input.scss $input: gamma, "'"delta"'"; .result { output: "[\#{gamma, "'"delta"'"}]"; output: "\#{gamma, "'"delta"'"}"; output: '\#{gamma, "'"delta"'"}'; output: "['\#{gamma, "'"delta"'"}']"; } <===> output.css .result { output: "[#{gamma, " '"delta"' "}]"; output: "#{gamma, " '"delta"' "}"; output: '#{gamma, "' "delta" '"}'; output: "['#{gamma, " '"delta"' "}']"; } sass-spec-libsass-3.6.3/spec/parser/interpolate/10_escaped_backslash/000077500000000000000000000000001355712145100255615ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/parser/interpolate/10_escaped_backslash/01_inline.hrx000066400000000000000000000004261355712145100300640ustar00rootroot00000000000000<===> input.scss .result { output: \\; output: #{\\}; output: "[#{\\}]"; output: "#{\\}"; output: '#{\\}'; output: "['#{\\}']"; } <===> output.css .result { output: \\; output: \\; output: "[\\\\]"; output: "\\\\"; output: "\\\\"; output: "['\\\\']"; } sass-spec-libsass-3.6.3/spec/parser/interpolate/10_escaped_backslash/02_variable.hrx000066400000000000000000000004721355712145100303750ustar00rootroot00000000000000<===> input.scss $input: \\; .result { output: $input; output: #{$input}; output: "[#{$input}]"; output: "#{$input}"; output: '#{$input}'; output: "['#{$input}']"; } <===> output.css .result { output: \\; output: \\; output: "[\\\\]"; output: "\\\\"; output: "\\\\"; output: "['\\\\']"; } sass-spec-libsass-3.6.3/spec/parser/interpolate/10_escaped_backslash/03_inline_double.hrx000066400000000000000000000003711355712145100314170ustar00rootroot00000000000000<===> input.scss .result { output: #{#{\\}}; output: #{"[#{\\}]"}; output: #{"#{\\}"}; output: #{'#{\\}'}; output: #{"['#{\\}']"}; } <===> output.css .result { output: \\; output: [\\]; output: \\; output: \\; output: ['\\']; } sass-spec-libsass-3.6.3/spec/parser/interpolate/10_escaped_backslash/04_variable_double.hrx000066400000000000000000000004311355712145100317240ustar00rootroot00000000000000<===> input.scss $input: \\; .result { output: #{#{$input}}; output: #{"[#{$input}]"}; output: #{"#{$input}"}; output: #{'#{$input}'}; output: #{"['#{$input}']"}; } <===> output.css .result { output: \\; output: [\\]; output: \\; output: \\; output: ['\\']; } sass-spec-libsass-3.6.3/spec/parser/interpolate/10_escaped_backslash/05_variable_quoted_double.hrx000066400000000000000000000010731355712145100333110ustar00rootroot00000000000000<===> input.scss $input: \\; .result { dquoted: "#{#{$input}}"; dquoted: "#{"[#{$input}]"}"; dquoted: "#{"#{$input}"}"; dquoted: "#{'#{$input}'}"; dquoted: "#{"['#{$input}']"}"; squoted: '#{#{$input}}'; squoted: '#{"[#{$input}]"}'; squoted: '#{"#{$input}"}'; squoted: '#{'#{$input}'}'; squoted: '#{"['#{$input}']"}'; } <===> output.css .result { dquoted: "\\\\"; dquoted: "[\\\\]"; dquoted: "\\\\"; dquoted: "\\\\"; dquoted: "['\\\\']"; squoted: "\\\\"; squoted: "[\\\\]"; squoted: "\\\\"; squoted: "\\\\"; squoted: "['\\\\']"; } sass-spec-libsass-3.6.3/spec/parser/interpolate/10_escaped_backslash/06_escape_interpolation.hrx000066400000000000000000000005551355712145100330250ustar00rootroot00000000000000<===> input.scss $input: \\; .result { output: "[\#{\\}]"; output: "\#{\\}"; output: '\#{\\}'; output: "['\#{\\}']"; } <===> output.css .result { output: "[\#{\\}]"; output: "\#{\\}"; output: '\#{\\}'; output: "['\#{\\}']"; } <===> output-dart-sass.css .result { output: "[#{\\}]"; output: "#{\\}"; output: "#{\\}"; output: "['#{\\}']"; } sass-spec-libsass-3.6.3/spec/parser/interpolate/11_escaped_literal/000077500000000000000000000000001355712145100252635ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/parser/interpolate/11_escaped_literal/01_inline.hrx000066400000000000000000000006301355712145100275630ustar00rootroot00000000000000<===> options.yml --- :todo: - libsass <===> input.scss .result { output: l\\ite\ral; output: #{l\\ite\ral}; output: "[#{l\\ite\ral}]"; output: "#{l\\ite\ral}"; output: '#{l\\ite\ral}'; output: "['#{l\\ite\ral}']"; } <===> output.css .result { output: l\\iteral; output: l\\iteral; output: "[l\\\\iteral]"; output: "l\\\\iteral"; output: "l\\\\iteral"; output: "['l\\\\iteral']"; } sass-spec-libsass-3.6.3/spec/parser/interpolate/11_escaped_literal/02_variable.hrx000066400000000000000000000006361355712145100301010ustar00rootroot00000000000000<===> options.yml --- :todo: - sass/libsass#2700 <===> input.scss $input: l\\ite\ral; .result { output: $input; output: #{$input}; output: "[#{$input}]"; output: "#{$input}"; output: '#{$input}'; output: "['#{$input}']"; } <===> output.css .result { output: l\\iteral; output: l\\iteral; output: "[l\\\\iteral]"; output: "l\\\\iteral"; output: "l\\\\iteral"; output: "['l\\\\iteral']"; } sass-spec-libsass-3.6.3/spec/parser/interpolate/11_escaped_literal/03_inline_double.hrx000066400000000000000000000005661355712145100311270ustar00rootroot00000000000000<===> options.yml --- :todo: - sass/libsass#2700 <===> input.scss .result { output: #{#{l\\ite\ral}}; output: #{"[#{l\\ite\ral}]"}; output: #{"#{l\\ite\ral}"}; output: #{'#{l\\ite\ral}'}; output: #{"['#{l\\ite\ral}']"}; } <===> output.css .result { output: l\\iteral; output: [l\\iteral]; output: l\\iteral; output: l\\iteral; output: ['l\\iteral']; } sass-spec-libsass-3.6.3/spec/parser/interpolate/11_escaped_literal/04_variable_double.hrx000066400000000000000000000005661355712145100314370ustar00rootroot00000000000000<===> options.yml --- :todo: - sass/libsass#2700 <===> input.scss $input: l\\ite\ral; .result { output: #{#{$input}}; output: #{"[#{$input}]"}; output: #{"#{$input}"}; output: #{'#{$input}'}; output: #{"['#{$input}']"}; } <===> output.css .result { output: l\\iteral; output: [l\\iteral]; output: l\\iteral; output: l\\iteral; output: ['l\\iteral']; } sass-spec-libsass-3.6.3/spec/parser/interpolate/11_escaped_literal/05_variable_quoted_double.hrx000066400000000000000000000012731355712145100330150ustar00rootroot00000000000000<===> options.yml --- :todo: - sass/libsass#2700 <===> input.scss $input: l\\ite\ral; .result { dquoted: "#{#{$input}}"; dquoted: "#{"[#{$input}]"}"; dquoted: "#{"#{$input}"}"; dquoted: "#{'#{$input}'}"; dquoted: "#{"['#{$input}']"}"; squoted: '#{#{$input}}'; squoted: '#{"[#{$input}]"}'; squoted: '#{"#{$input}"}'; squoted: '#{'#{$input}'}'; squoted: '#{"['#{$input}']"}'; } <===> output.css .result { dquoted: "l\\\\iteral"; dquoted: "[l\\\\iteral]"; dquoted: "l\\\\iteral"; dquoted: "l\\\\iteral"; dquoted: "['l\\\\iteral']"; squoted: "l\\\\iteral"; squoted: "[l\\\\iteral]"; squoted: "l\\\\iteral"; squoted: "l\\\\iteral"; squoted: "['l\\\\iteral']"; } sass-spec-libsass-3.6.3/spec/parser/interpolate/11_escaped_literal/06_escape_interpolation.hrx000066400000000000000000000007211355712145100325220ustar00rootroot00000000000000<===> input.scss $input: l\\ite\ral; .result { output: "[\#{l\\ite\ral}]"; output: "\#{l\\ite\ral}"; output: '\#{l\\ite\ral}'; output: "['\#{l\\ite\ral}']"; } <===> output.css .result { output: "[\#{l\\ite\ral}]"; output: "\#{l\\ite\ral}"; output: '\#{l\\ite\ral}'; output: "['\#{l\\ite\ral}']"; } <===> output-dart-sass.css .result { output: "[#{l\\iteral}]"; output: "#{l\\iteral}"; output: "#{l\\iteral}"; output: "['#{l\\iteral}']"; } sass-spec-libsass-3.6.3/spec/parser/interpolate/12_escaped_double_quoted/000077500000000000000000000000001355712145100264635ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/parser/interpolate/12_escaped_double_quoted/01_inline.hrx000066400000000000000000000010531355712145100307630ustar00rootroot00000000000000<===> input.scss .result { output: "l\\ite\ral"; output: #{"l\\ite\ral"}; output: "[#{"l\\ite\ral"}]"; output: "#{"l\\ite\ral"}"; output: '#{"l\\ite\ral"}'; output: "['#{"l\\ite\ral"}']"; } <===> output.css .result { output: "l\\ite\ral"; output: l\iteral; output: "[l\\iteral]"; output: "l\\iteral"; output: "l\\iteral"; output: "['l\\iteral']"; } <===> output-dart-sass.css .result { output: "l\\iteral"; output: l\iteral; output: "[l\\iteral]"; output: "l\\iteral"; output: "l\\iteral"; output: "['l\\iteral']"; } sass-spec-libsass-3.6.3/spec/parser/interpolate/12_escaped_double_quoted/02_variable.hrx000066400000000000000000000005471355712145100313020ustar00rootroot00000000000000<===> input.scss $input: "l\\ite\ral"; .result { output: $input; output: #{$input}; output: "[#{$input}]"; output: "#{$input}"; output: '#{$input}'; output: "['#{$input}']"; } <===> output.css .result { output: "l\\iteral"; output: l\iteral; output: "[l\\iteral]"; output: "l\\iteral"; output: "l\\iteral"; output: "['l\\iteral']"; } sass-spec-libsass-3.6.3/spec/parser/interpolate/12_escaped_double_quoted/03_inline_double.hrx000066400000000000000000000005111355712145100323150ustar00rootroot00000000000000<===> input.scss .result { output: #{#{"l\\ite\ral"}}; output: #{"[#{"l\\ite\ral"}]"}; output: #{"#{"l\\ite\ral"}"}; output: #{'#{"l\\ite\ral"}'}; output: #{"['#{"l\\ite\ral"}']"}; } <===> output.css .result { output: l\iteral; output: [l\iteral]; output: l\iteral; output: l\iteral; output: ['l\iteral']; } sass-spec-libsass-3.6.3/spec/parser/interpolate/12_escaped_double_quoted/04_variable_double.hrx000066400000000000000000000005011355712145100326240ustar00rootroot00000000000000<===> input.scss $input: "l\\ite\ral"; .result { output: #{#{$input}}; output: #{"[#{$input}]"}; output: #{"#{$input}"}; output: #{'#{$input}'}; output: #{"['#{$input}']"}; } <===> output.css .result { output: l\iteral; output: [l\iteral]; output: l\iteral; output: l\iteral; output: ['l\iteral']; } 05_variable_quoted_double.hrx000066400000000000000000000011671355712145100341400ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/parser/interpolate/12_escaped_double_quoted<===> input.scss $input: "l\\ite\ral"; .result { dquoted: "#{#{$input}}"; dquoted: "#{"[#{$input}]"}"; dquoted: "#{"#{$input}"}"; dquoted: "#{'#{$input}'}"; dquoted: "#{"['#{$input}']"}"; squoted: '#{#{$input}}'; squoted: '#{"[#{$input}]"}'; squoted: '#{"#{$input}"}'; squoted: '#{'#{$input}'}'; squoted: '#{"['#{$input}']"}'; } <===> output.css .result { dquoted: "l\\iteral"; dquoted: "[l\\iteral]"; dquoted: "l\\iteral"; dquoted: "l\\iteral"; dquoted: "['l\\iteral']"; squoted: "l\\iteral"; squoted: "[l\\iteral]"; squoted: "l\\iteral"; squoted: "l\\iteral"; squoted: "['l\\iteral']"; } sass-spec-libsass-3.6.3/spec/parser/interpolate/12_escaped_double_quoted/06_escape_interpolation.hrx000066400000000000000000000010311355712145100337150ustar00rootroot00000000000000<===> options.yml --- :todo: - libsass <===> input.scss $input: "l\\ite\ral"; .result { output: "[\#{"l\\ite\ral"}]"; output: "\#{"l\\ite\ral"}"; output: '\#{"l\\ite\ral"}'; output: "['\#{"l\\ite\ral"}']"; } <===> output.css .result { output: "[#{" l\\iteral "}]"; output: "#{" l\\iteral "}"; output: '\#{"l\\ite\ral"}'; output: "['#{" l\\iteral "}']"; } <===> output-dart-sass.css .result { output: "[#{" l\\iteral "}]"; output: "#{" l\\iteral "}"; output: '#{"l\\iteral"}'; output: "['#{" l\\iteral "}']"; } sass-spec-libsass-3.6.3/spec/parser/interpolate/13_escaped_single_quoted/000077500000000000000000000000001355712145100264735ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/parser/interpolate/13_escaped_single_quoted/01_inline.hrx000066400000000000000000000010531355712145100307730ustar00rootroot00000000000000<===> input.scss .result { output: 'l\\ite\ral'; output: #{'l\\ite\ral'}; output: "[#{'l\\ite\ral'}]"; output: "#{'l\\ite\ral'}"; output: '#{'l\\ite\ral'}'; output: "['#{'l\\ite\ral'}']"; } <===> output.css .result { output: 'l\\ite\ral'; output: l\iteral; output: "[l\\iteral]"; output: "l\\iteral"; output: "l\\iteral"; output: "['l\\iteral']"; } <===> output-dart-sass.css .result { output: "l\\iteral"; output: l\iteral; output: "[l\\iteral]"; output: "l\\iteral"; output: "l\\iteral"; output: "['l\\iteral']"; } sass-spec-libsass-3.6.3/spec/parser/interpolate/13_escaped_single_quoted/02_variable.hrx000066400000000000000000000005471355712145100313120ustar00rootroot00000000000000<===> input.scss $input: 'l\\ite\ral'; .result { output: $input; output: #{$input}; output: "[#{$input}]"; output: "#{$input}"; output: '#{$input}'; output: "['#{$input}']"; } <===> output.css .result { output: "l\\iteral"; output: l\iteral; output: "[l\\iteral]"; output: "l\\iteral"; output: "l\\iteral"; output: "['l\\iteral']"; } sass-spec-libsass-3.6.3/spec/parser/interpolate/13_escaped_single_quoted/03_inline_double.hrx000066400000000000000000000005111355712145100323250ustar00rootroot00000000000000<===> input.scss .result { output: #{#{'l\\ite\ral'}}; output: #{"[#{'l\\ite\ral'}]"}; output: #{"#{'l\\ite\ral'}"}; output: #{'#{'l\\ite\ral'}'}; output: #{"['#{'l\\ite\ral'}']"}; } <===> output.css .result { output: l\iteral; output: [l\iteral]; output: l\iteral; output: l\iteral; output: ['l\iteral']; } sass-spec-libsass-3.6.3/spec/parser/interpolate/13_escaped_single_quoted/04_variable_double.hrx000066400000000000000000000005011355712145100326340ustar00rootroot00000000000000<===> input.scss $input: 'l\\ite\ral'; .result { output: #{#{$input}}; output: #{"[#{$input}]"}; output: #{"#{$input}"}; output: #{'#{$input}'}; output: #{"['#{$input}']"}; } <===> output.css .result { output: l\iteral; output: [l\iteral]; output: l\iteral; output: l\iteral; output: ['l\iteral']; } 05_variable_quoted_double.hrx000066400000000000000000000011671355712145100341500ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/parser/interpolate/13_escaped_single_quoted<===> input.scss $input: 'l\\ite\ral'; .result { dquoted: "#{#{$input}}"; dquoted: "#{"[#{$input}]"}"; dquoted: "#{"#{$input}"}"; dquoted: "#{'#{$input}'}"; dquoted: "#{"['#{$input}']"}"; squoted: '#{#{$input}}'; squoted: '#{"[#{$input}]"}'; squoted: '#{"#{$input}"}'; squoted: '#{'#{$input}'}'; squoted: '#{"['#{$input}']"}'; } <===> output.css .result { dquoted: "l\\iteral"; dquoted: "[l\\iteral]"; dquoted: "l\\iteral"; dquoted: "l\\iteral"; dquoted: "['l\\iteral']"; squoted: "l\\iteral"; squoted: "[l\\iteral]"; squoted: "l\\iteral"; squoted: "l\\iteral"; squoted: "['l\\iteral']"; } sass-spec-libsass-3.6.3/spec/parser/interpolate/13_escaped_single_quoted/06_escape_interpolation.hrx000066400000000000000000000010251355712145100337300ustar00rootroot00000000000000<===> options.yml --- :todo: - libsass <===> input.scss $input: 'l\\ite\ral'; .result { output: "[\#{'l\\ite\ral'}]"; output: "\#{'l\\ite\ral'}"; output: '\#{'l\\ite\ral'}'; output: "['\#{'l\\ite\ral'}']"; } <===> output.css .result { output: "[\#{'l\\ite\ral'}]"; output: "\#{'l\\ite\ral'}"; output: "#{" l\\iteral "}"; output: "['\#{'l\\ite\ral'}']"; } <===> output-dart-sass.css .result { output: "[#{'l\\iteral'}]"; output: "#{'l\\iteral'}"; output: "#{" l\\iteral "}"; output: "['#{'l\\iteral'}']"; } sass-spec-libsass-3.6.3/spec/parser/interpolate/14_escapes_literal_numbers/000077500000000000000000000000001355712145100270405ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/parser/interpolate/14_escapes_literal_numbers/01_inline.hrx000066400000000000000000000011201355712145100313330ustar00rootroot00000000000000<===> options.yml --- :todo: - libsass <===> input.scss .result { output: \1\2\3\4\5\6\7\8\9; output: #{\1\2\3\4\5\6\7\8\9}; output: "[#{\1\2\3\4\5\6\7\8\9}]"; output: "#{\1\2\3\4\5\6\7\8\9}"; output: '#{\1\2\3\4\5\6\7\8\9}'; output: "['#{\1\2\3\4\5\6\7\8\9}']"; } <===> output.css .result { output: \1 \2 \3 \4 \5 \6 \7 \8 \9 ; output: \1 \2 \3 \4 \5 \6 \7 \8 \9 ; output: "[\\1 \\2 \\3 \\4 \\5 \\6 \\7 \\8 \\9 ]"; output: "\\1 \\2 \\3 \\4 \\5 \\6 \\7 \\8 \\9 "; output: "\\1 \\2 \\3 \\4 \\5 \\6 \\7 \\8 \\9 "; output: "['\\1 \\2 \\3 \\4 \\5 \\6 \\7 \\8 \\9 ']"; } sass-spec-libsass-3.6.3/spec/parser/interpolate/14_escapes_literal_numbers/02_variable.hrx000066400000000000000000000010441355712145100316500ustar00rootroot00000000000000<===> options.yml --- :todo: - libsass <===> input.scss $input: \1\2\3\4\5\6\7\8\9; .result { output: $input; output: #{$input}; output: "[#{$input}]"; output: "#{$input}"; output: '#{$input}'; output: "['#{$input}']"; } <===> output.css .result { output: \1 \2 \3 \4 \5 \6 \7 \8 \9 ; output: \1 \2 \3 \4 \5 \6 \7 \8 \9 ; output: "[\\1 \\2 \\3 \\4 \\5 \\6 \\7 \\8 \\9 ]"; output: "\\1 \\2 \\3 \\4 \\5 \\6 \\7 \\8 \\9 "; output: "\\1 \\2 \\3 \\4 \\5 \\6 \\7 \\8 \\9 "; output: "['\\1 \\2 \\3 \\4 \\5 \\6 \\7 \\8 \\9 ']"; } sass-spec-libsass-3.6.3/spec/parser/interpolate/14_escapes_literal_numbers/03_inline_double.hrx000066400000000000000000000007701355712145100327010ustar00rootroot00000000000000<===> options.yml --- :todo: - sass/libsass#2700 <===> input.scss .result { output: #{#{\1\2\3\4\5\6\7\8\9}}; output: #{"[#{\1\2\3\4\5\6\7\8\9}]"}; output: #{"#{\1\2\3\4\5\6\7\8\9}"}; output: #{'#{\1\2\3\4\5\6\7\8\9}'}; output: #{"['#{\1\2\3\4\5\6\7\8\9}']"}; } <===> output.css .result { output: \1 \2 \3 \4 \5 \6 \7 \8 \9 ; output: [\1 \2 \3 \4 \5 \6 \7 \8 \9 ]; output: \1 \2 \3 \4 \5 \6 \7 \8 \9 ; output: \1 \2 \3 \4 \5 \6 \7 \8 \9 ; output: ['\1 \2 \3 \4 \5 \6 \7 \8 \9 ']; } sass-spec-libsass-3.6.3/spec/parser/interpolate/14_escapes_literal_numbers/04_variable_double.hrx000066400000000000000000000007301355712145100332050ustar00rootroot00000000000000<===> options.yml --- :todo: - sass/libsass#2700 <===> input.scss $input: \1\2\3\4\5\6\7\8\9; .result { output: #{#{$input}}; output: #{"[#{$input}]"}; output: #{"#{$input}"}; output: #{'#{$input}'}; output: #{"['#{$input}']"}; } <===> output.css .result { output: \1 \2 \3 \4 \5 \6 \7 \8 \9 ; output: [\1 \2 \3 \4 \5 \6 \7 \8 \9 ]; output: \1 \2 \3 \4 \5 \6 \7 \8 \9 ; output: \1 \2 \3 \4 \5 \6 \7 \8 \9 ; output: ['\1 \2 \3 \4 \5 \6 \7 \8 \9 ']; } 05_variable_quoted_double.hrx000066400000000000000000000016631355712145100345160ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/parser/interpolate/14_escapes_literal_numbers<===> options.yml --- :todo: - libsass <===> input.scss $input: \1\2\3\4\5\6\7\8\9; .result { dquoted: "#{#{$input}}"; dquoted: "#{"[#{$input}]"}"; dquoted: "#{"#{$input}"}"; dquoted: "#{'#{$input}'}"; dquoted: "#{"['#{$input}']"}"; squoted: '#{#{$input}}'; squoted: '#{"[#{$input}]"}'; squoted: '#{"#{$input}"}'; squoted: '#{'#{$input}'}'; squoted: '#{"['#{$input}']"}'; } <===> output.css .result { dquoted: "\\1 \\2 \\3 \\4 \\5 \\6 \\7 \\8 \\9 "; dquoted: "[\\1 \\2 \\3 \\4 \\5 \\6 \\7 \\8 \\9 ]"; dquoted: "\\1 \\2 \\3 \\4 \\5 \\6 \\7 \\8 \\9 "; dquoted: "\\1 \\2 \\3 \\4 \\5 \\6 \\7 \\8 \\9 "; dquoted: "['\\1 \\2 \\3 \\4 \\5 \\6 \\7 \\8 \\9 ']"; squoted: "\\1 \\2 \\3 \\4 \\5 \\6 \\7 \\8 \\9 "; squoted: "[\\1 \\2 \\3 \\4 \\5 \\6 \\7 \\8 \\9 ]"; squoted: "\\1 \\2 \\3 \\4 \\5 \\6 \\7 \\8 \\9 "; squoted: "\\1 \\2 \\3 \\4 \\5 \\6 \\7 \\8 \\9 "; squoted: "['\\1 \\2 \\3 \\4 \\5 \\6 \\7 \\8 \\9 ']"; } 06_escape_interpolation.hrx000066400000000000000000000010751355712145100342230ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/parser/interpolate/14_escapes_literal_numbers<===> input.scss $input: \1\2\3\4\5\6\7\8\9; .result { output: "[\#{\1\2\3\4\5\6\7\8\9}]"; output: "\#{\1\2\3\4\5\6\7\8\9}"; output: '\#{\1\2\3\4\5\6\7\8\9}'; output: "['\#{\1\2\3\4\5\6\7\8\9}']"; } <===> output.css .result { output: "[\#{\1\2\3\4\5\6\7\8\9}]"; output: "\#{\1\2\3\4\5\6\7\8\9}"; output: '\#{\1\2\3\4\5\6\7\8\9}'; output: "['\#{\1\2\3\4\5\6\7\8\9}']"; } <===> output-dart-sass.css .result { output: "[#{\1\2\3\4\5\6\7\8 }]"; output: "#{\1\2\3\4\5\6\7\8 }"; output: "#{\1\2\3\4\5\6\7\8 }"; output: "['#{\1\2\3\4\5\6\7\8 }']"; } sass-spec-libsass-3.6.3/spec/parser/interpolate/15_escapes_double_quoted_numbers/000077500000000000000000000000001355712145100302405ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/parser/interpolate/15_escapes_double_quoted_numbers/01_inline.hrx000066400000000000000000000012221355712145100325360ustar00rootroot00000000000000<===> input.scss .result { output: "\1\2\3\4\5\6\7\8\9"; output: #{"\1\2\3\4\5\6\7\8\9"}; output: "[#{"\1\2\3\4\5\6\7\8\9"}]"; output: "#{"\1\2\3\4\5\6\7\8\9"}"; output: '#{"\1\2\3\4\5\6\7\8\9"}'; output: "['#{"\1\2\3\4\5\6\7\8\9"}']"; } <===> output.css .result { output: "\1\2\3\4\5\6\7\8\9"; output:  ; output: "[ ]"; output: " "; output: " "; output: "[' ']"; } <===> output-dart-sass.css .result { output: "\1\2\3\4\5\6\7\8 "; output:  ; output: "[\1\2\3\4\5\6\7\8 ]"; output: "\1\2\3\4\5\6\7\8 "; output: "\1\2\3\4\5\6\7\8 "; output: "['\1\2\3\4\5\6\7\8 ']"; } sass-spec-libsass-3.6.3/spec/parser/interpolate/15_escapes_double_quoted_numbers/02_variable.hrx000066400000000000000000000011231355712145100330460ustar00rootroot00000000000000<===> input.scss $input: "\1\2\3\4\5\6\7\8\9"; .result { output: $input; output: #{$input}; output: "[#{$input}]"; output: "#{$input}"; output: '#{$input}'; output: "['#{$input}']"; } <===> output.css .result { output: " "; output:  ; output: "[ ]"; output: " "; output: " "; output: "[' ']"; } <===> output-dart-sass.css .result { output: "\1\2\3\4\5\6\7\8 "; output:  ; output: "[\1\2\3\4\5\6\7\8 ]"; output: "\1\2\3\4\5\6\7\8 "; output: "\1\2\3\4\5\6\7\8 "; output: "['\1\2\3\4\5\6\7\8 ']"; } 03_inline_double.hrx000066400000000000000000000005661355712145100340250ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/parser/interpolate/15_escapes_double_quoted_numbers<===> input.scss .result { output: #{#{"\1\2\3\4\5\6\7\8\9"}}; output: #{"[#{"\1\2\3\4\5\6\7\8\9"}]"}; output: #{"#{"\1\2\3\4\5\6\7\8\9"}"}; output: #{'#{"\1\2\3\4\5\6\7\8\9"}'}; output: #{"['#{"\1\2\3\4\5\6\7\8\9"}']"}; } <===> output.css .result { output:  ; output: [ ]; output:  ; output:  ; output: [' ']; } 04_variable_double.hrx000066400000000000000000000005161355712145100343300ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/parser/interpolate/15_escapes_double_quoted_numbers<===> input.scss $input: "\1\2\3\4\5\6\7\8\9"; .result { output: #{#{$input}}; output: #{"[#{$input}]"}; output: #{"#{$input}"}; output: #{'#{$input}'}; output: #{"['#{$input}']"}; } <===> output.css .result { output:  ; output: [ ]; output:  ; output:  ; output: [' ']; } 05_variable_quoted_double.hrx000066400000000000000000000017751355712145100357220ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/parser/interpolate/15_escapes_double_quoted_numbers<===> input.scss $input: "\1\2\3\4\5\6\7\8\9"; .result { dquoted: "#{#{$input}}"; dquoted: "#{"[#{$input}]"}"; dquoted: "#{"#{$input}"}"; dquoted: "#{'#{$input}'}"; dquoted: "#{"['#{$input}']"}"; squoted: '#{#{$input}}'; squoted: '#{"[#{$input}]"}'; squoted: '#{"#{$input}"}'; squoted: '#{'#{$input}'}'; squoted: '#{"['#{$input}']"}'; } <===> output.css .result { dquoted: " "; dquoted: "[ ]"; dquoted: " "; dquoted: " "; dquoted: "[' ']"; squoted: " "; squoted: "[ ]"; squoted: " "; squoted: " "; squoted: "[' ']"; } <===> output-dart-sass.css .result { dquoted: "\1\2\3\4\5\6\7\8 "; dquoted: "[\1\2\3\4\5\6\7\8 ]"; dquoted: "\1\2\3\4\5\6\7\8 "; dquoted: "\1\2\3\4\5\6\7\8 "; dquoted: "['\1\2\3\4\5\6\7\8 ']"; squoted: "\1\2\3\4\5\6\7\8 "; squoted: "[\1\2\3\4\5\6\7\8 ]"; squoted: "\1\2\3\4\5\6\7\8 "; squoted: "\1\2\3\4\5\6\7\8 "; squoted: "['\1\2\3\4\5\6\7\8 ']"; } 06_escape_interpolation.hrx000066400000000000000000000012761355712145100354260ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/parser/interpolate/15_escapes_double_quoted_numbers<===> options.yml --- :todo: - libsass <===> input.scss $input: "\1\2\3\4\5\6\7\8\9"; .result { output: "[\#{"\1\2\3\4\5\6\7\8\9"}]"; output: "\#{"\1\2\3\4\5\6\7\8\9"}"; output: '\#{"\1\2\3\4\5\6\7\8\9"}'; output: "['\#{"\1\2\3\4\5\6\7\8\9"}']"; } <===> output.css .result { output: "[#{" \1 \2 \3 \4 \5 \6 \7 \8 \9 "}]"; output: "#{" \1 \2 \3 \4 \5 \6 \7 \8 \9 "}"; output: '\#{"\1\2\3\4\5\6\7\8\9"}'; output: "['#{" \1 \2 \3 \4 \5 \6 \7 \8 \9 "}']"; } <===> output-dart-sass.css .result { output: "[#{" \1 \2 \3 \4 \5 \6 \7 \8 \9 "}]"; output: "#{" \1 \2 \3 \4 \5 \6 \7 \8 \9 "}"; output: '#{"\1\2\3\4\5\6\7\8 "}'; output: "['#{" \1 \2 \3 \4 \5 \6 \7 \8 \9 "}']"; } sass-spec-libsass-3.6.3/spec/parser/interpolate/16_escapes_single_quoted_numbers/000077500000000000000000000000001355712145100302505ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/parser/interpolate/16_escapes_single_quoted_numbers/01_inline.hrx000066400000000000000000000012221355712145100325460ustar00rootroot00000000000000<===> input.scss .result { output: '\1\2\3\4\5\6\7\8\9'; output: #{'\1\2\3\4\5\6\7\8\9'}; output: "[#{'\1\2\3\4\5\6\7\8\9'}]"; output: "#{'\1\2\3\4\5\6\7\8\9'}"; output: '#{'\1\2\3\4\5\6\7\8\9'}'; output: "['#{'\1\2\3\4\5\6\7\8\9'}']"; } <===> output.css .result { output: '\1\2\3\4\5\6\7\8\9'; output:  ; output: "[ ]"; output: " "; output: " "; output: "[' ']"; } <===> output-dart-sass.css .result { output: "\1\2\3\4\5\6\7\8 "; output:  ; output: "[\1\2\3\4\5\6\7\8 ]"; output: "\1\2\3\4\5\6\7\8 "; output: "\1\2\3\4\5\6\7\8 "; output: "['\1\2\3\4\5\6\7\8 ']"; } sass-spec-libsass-3.6.3/spec/parser/interpolate/16_escapes_single_quoted_numbers/02_variable.hrx000066400000000000000000000011231355712145100330560ustar00rootroot00000000000000<===> input.scss $input: '\1\2\3\4\5\6\7\8\9'; .result { output: $input; output: #{$input}; output: "[#{$input}]"; output: "#{$input}"; output: '#{$input}'; output: "['#{$input}']"; } <===> output.css .result { output: " "; output:  ; output: "[ ]"; output: " "; output: " "; output: "[' ']"; } <===> output-dart-sass.css .result { output: "\1\2\3\4\5\6\7\8 "; output:  ; output: "[\1\2\3\4\5\6\7\8 ]"; output: "\1\2\3\4\5\6\7\8 "; output: "\1\2\3\4\5\6\7\8 "; output: "['\1\2\3\4\5\6\7\8 ']"; } 03_inline_double.hrx000066400000000000000000000005661355712145100340350ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/parser/interpolate/16_escapes_single_quoted_numbers<===> input.scss .result { output: #{#{'\1\2\3\4\5\6\7\8\9'}}; output: #{"[#{'\1\2\3\4\5\6\7\8\9'}]"}; output: #{"#{'\1\2\3\4\5\6\7\8\9'}"}; output: #{'#{'\1\2\3\4\5\6\7\8\9'}'}; output: #{"['#{'\1\2\3\4\5\6\7\8\9'}']"}; } <===> output.css .result { output:  ; output: [ ]; output:  ; output:  ; output: [' ']; } 04_variable_double.hrx000066400000000000000000000005161355712145100343400ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/parser/interpolate/16_escapes_single_quoted_numbers<===> input.scss $input: '\1\2\3\4\5\6\7\8\9'; .result { output: #{#{$input}}; output: #{"[#{$input}]"}; output: #{"#{$input}"}; output: #{'#{$input}'}; output: #{"['#{$input}']"}; } <===> output.css .result { output:  ; output: [ ]; output:  ; output:  ; output: [' ']; } 05_variable_quoted_double.hrx000066400000000000000000000017751355712145100357320ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/parser/interpolate/16_escapes_single_quoted_numbers<===> input.scss $input: '\1\2\3\4\5\6\7\8\9'; .result { dquoted: "#{#{$input}}"; dquoted: "#{"[#{$input}]"}"; dquoted: "#{"#{$input}"}"; dquoted: "#{'#{$input}'}"; dquoted: "#{"['#{$input}']"}"; squoted: '#{#{$input}}'; squoted: '#{"[#{$input}]"}'; squoted: '#{"#{$input}"}'; squoted: '#{'#{$input}'}'; squoted: '#{"['#{$input}']"}'; } <===> output.css .result { dquoted: " "; dquoted: "[ ]"; dquoted: " "; dquoted: " "; dquoted: "[' ']"; squoted: " "; squoted: "[ ]"; squoted: " "; squoted: " "; squoted: "[' ']"; } <===> output-dart-sass.css .result { dquoted: "\1\2\3\4\5\6\7\8 "; dquoted: "[\1\2\3\4\5\6\7\8 ]"; dquoted: "\1\2\3\4\5\6\7\8 "; dquoted: "\1\2\3\4\5\6\7\8 "; dquoted: "['\1\2\3\4\5\6\7\8 ']"; squoted: "\1\2\3\4\5\6\7\8 "; squoted: "[\1\2\3\4\5\6\7\8 ]"; squoted: "\1\2\3\4\5\6\7\8 "; squoted: "\1\2\3\4\5\6\7\8 "; squoted: "['\1\2\3\4\5\6\7\8 ']"; } 06_escape_interpolation.hrx000066400000000000000000000012241355712145100354270ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/parser/interpolate/16_escapes_single_quoted_numbers<===> options.yml --- :todo: - libsass <===> input.scss $input: '\1\2\3\4\5\6\7\8\9'; .result { output: "[\#{'\1\2\3\4\5\6\7\8\9'}]"; output: "\#{'\1\2\3\4\5\6\7\8\9'}"; output: '\#{'\1\2\3\4\5\6\7\8\9'}'; output: "['\#{'\1\2\3\4\5\6\7\8\9'}']"; } <===> output.css .result { output: "[\#{'\1\2\3\4\5\6\7\8\9'}]"; output: "\#{'\1\2\3\4\5\6\7\8\9'}"; output: "#{" \1 \2 \3 \4 \5 \6 \7 \8 \9 "}"; output: "['\#{'\1\2\3\4\5\6\7\8\9'}']"; } <===> output-dart-sass.css .result { output: "[#{'\1\2\3\4\5\6\7\8 '}]"; output: "#{'\1\2\3\4\5\6\7\8 '}"; output: "#{" \1 \2 \3 \4 \5 \6 \7 \8 \9 "}"; output: "['#{'\1\2\3\4\5\6\7\8 '}']"; } sass-spec-libsass-3.6.3/spec/parser/interpolate/17_escapes_literal_lowercase/000077500000000000000000000000001355712145100273545ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/parser/interpolate/17_escapes_literal_lowercase/01_inline.hrx000066400000000000000000000014601355712145100316560ustar00rootroot00000000000000<===> options.yml --- :todo: - libsass <===> input.scss .result { output: \b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z; output: #{\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z}; output: "[#{\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z}]"; output: "#{\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z}"; output: '#{\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z}'; output: "['#{\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z}']"; } <===> output.css .result { output: \b \c \d \e \f ghijklmnopqrstuvwxyz; output: \b \c \d \e \f ghijklmnopqrstuvwxyz; output: "[\\b \\c \\d \\e \\f ghijklmnopqrstuvwxyz]"; output: "\\b \\c \\d \\e \\f ghijklmnopqrstuvwxyz"; output: "\\b \\c \\d \\e \\f ghijklmnopqrstuvwxyz"; output: "['\\b \\c \\d \\e \\f ghijklmnopqrstuvwxyz']"; } sass-spec-libsass-3.6.3/spec/parser/interpolate/17_escapes_literal_lowercase/02_variable.hrx000066400000000000000000000011561355712145100321700ustar00rootroot00000000000000<===> options.yml --- :todo: - sass/libsass#2700 <===> input.scss $input: \b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z; .result { output: $input; output: #{$input}; output: "[#{$input}]"; output: "#{$input}"; output: '#{$input}'; output: "['#{$input}']"; } <===> output.css .result { output: \b \c \d \e \f ghijklmnopqrstuvwxyz; output: \b \c \d \e \f ghijklmnopqrstuvwxyz; output: "[\\b \\c \\d \\e \\f ghijklmnopqrstuvwxyz]"; output: "\\b \\c \\d \\e \\f ghijklmnopqrstuvwxyz"; output: "\\b \\c \\d \\e \\f ghijklmnopqrstuvwxyz"; output: "['\\b \\c \\d \\e \\f ghijklmnopqrstuvwxyz']"; } sass-spec-libsass-3.6.3/spec/parser/interpolate/17_escapes_literal_lowercase/03_inline_double.hrx000066400000000000000000000013001355712145100332030ustar00rootroot00000000000000<===> options.yml --- :todo: - sass/libsass#2700 <===> input.scss .result { output: #{#{\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z}}; output: #{"[#{\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z}]"}; output: #{"#{\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z}"}; output: #{'#{\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z}'}; output: #{"['#{\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z}']"}; } <===> output.css .result { output: \b \c \d \e \f ghijklmnopqrstuvwxyz; output: [\b \c \d \e \f ghijklmnopqrstuvwxyz]; output: \b \c \d \e \f ghijklmnopqrstuvwxyz; output: \b \c \d \e \f ghijklmnopqrstuvwxyz; output: ['\b \c \d \e \f ghijklmnopqrstuvwxyz']; } sass-spec-libsass-3.6.3/spec/parser/interpolate/17_escapes_literal_lowercase/04_variable_double.hrx000066400000000000000000000010401355712145100335140ustar00rootroot00000000000000<===> options.yml --- :todo: - sass/libsass#2700 <===> input.scss $input: \b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z; .result { output: #{#{$input}}; output: #{"[#{$input}]"}; output: #{"#{$input}"}; output: #{'#{$input}'}; output: #{"['#{$input}']"}; } <===> output.css .result { output: \b \c \d \e \f ghijklmnopqrstuvwxyz; output: [\b \c \d \e \f ghijklmnopqrstuvwxyz]; output: \b \c \d \e \f ghijklmnopqrstuvwxyz; output: \b \c \d \e \f ghijklmnopqrstuvwxyz; output: ['\b \c \d \e \f ghijklmnopqrstuvwxyz']; } 05_variable_quoted_double.hrx000066400000000000000000000020051355712145100350210ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/parser/interpolate/17_escapes_literal_lowercase<===> options.yml --- :todo: - sass/libsass#2700 <===> input.scss $input: \b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z; .result { dquoted: "#{#{$input}}"; dquoted: "#{"[#{$input}]"}"; dquoted: "#{"#{$input}"}"; dquoted: "#{'#{$input}'}"; dquoted: "#{"['#{$input}']"}"; squoted: '#{#{$input}}'; squoted: '#{"[#{$input}]"}'; squoted: '#{"#{$input}"}'; squoted: '#{'#{$input}'}'; squoted: '#{"['#{$input}']"}'; } <===> output.css .result { dquoted: "\\b \\c \\d \\e \\f ghijklmnopqrstuvwxyz"; dquoted: "[\\b \\c \\d \\e \\f ghijklmnopqrstuvwxyz]"; dquoted: "\\b \\c \\d \\e \\f ghijklmnopqrstuvwxyz"; dquoted: "\\b \\c \\d \\e \\f ghijklmnopqrstuvwxyz"; dquoted: "['\\b \\c \\d \\e \\f ghijklmnopqrstuvwxyz']"; squoted: "\\b \\c \\d \\e \\f ghijklmnopqrstuvwxyz"; squoted: "[\\b \\c \\d \\e \\f ghijklmnopqrstuvwxyz]"; squoted: "\\b \\c \\d \\e \\f ghijklmnopqrstuvwxyz"; squoted: "\\b \\c \\d \\e \\f ghijklmnopqrstuvwxyz"; squoted: "['\\b \\c \\d \\e \\f ghijklmnopqrstuvwxyz']"; } 06_escape_interpolation.hrx000066400000000000000000000016151355712145100345370ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/parser/interpolate/17_escapes_literal_lowercase<===> input.scss $input: \b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z; .result { output: "[\#{\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z}]"; output: "\#{\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z}"; output: '\#{\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z}'; output: "['\#{\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z}']"; } <===> output.css .result { output: "[\#{\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z}]"; output: "\#{\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z}"; output: '\#{\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z}'; output: "['\#{\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z}']"; } <===> output-dart-sass.css .result { output: "[#{\b\c\d\e\fghijklmnopqrstuvwxyz}]"; output: "#{\b\c\d\e\fghijklmnopqrstuvwxyz}"; output: "#{\b\c\d\e\fghijklmnopqrstuvwxyz}"; output: "['#{\b\c\d\e\fghijklmnopqrstuvwxyz}']"; } sass-spec-libsass-3.6.3/spec/parser/interpolate/18_escapes_double_quoted_lowercase/000077500000000000000000000000001355712145100305545ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/parser/interpolate/18_escapes_double_quoted_lowercase/01_inline.hrx000066400000000000000000000020161355712145100330540ustar00rootroot00000000000000<===> input.scss .result { output: "\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z"; output: #{"\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z"}; output: "[#{"\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z"}]"; output: "#{"\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z"}"; output: '#{"\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z"}'; output: "['#{"\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z"}']"; } <===> output.css .result { output: "\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z"; output: ghijklmnopqrstuvwxyz; output: "[ ghijklmnopqrstuvwxyz]"; output: " ghijklmnopqrstuvwxyz"; output: " ghijklmnopqrstuvwxyz"; output: "[' ghijklmnopqrstuvwxyz']"; } <===> output-dart-sass.css .result { output: "\b\c\d\e\fghijklmnopqrstuvwxyz"; output: ghijklmnopqrstuvwxyz; output: "[\b\c\d\e\fghijklmnopqrstuvwxyz]"; output: "\b\c\d\e\fghijklmnopqrstuvwxyz"; output: "\b\c\d\e\fghijklmnopqrstuvwxyz"; output: "['\b\c\d\e\fghijklmnopqrstuvwxyz']"; } sass-spec-libsass-3.6.3/spec/parser/interpolate/18_escapes_double_quoted_lowercase/02_variable.hrx000066400000000000000000000014371355712145100333720ustar00rootroot00000000000000<===> input.scss $input: "\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z"; .result { output: $input; output: #{$input}; output: "[#{$input}]"; output: "#{$input}"; output: '#{$input}'; output: "['#{$input}']"; } <===> output.css .result { output: " ghijklmnopqrstuvwxyz"; output: ghijklmnopqrstuvwxyz; output: "[ ghijklmnopqrstuvwxyz]"; output: " ghijklmnopqrstuvwxyz"; output: " ghijklmnopqrstuvwxyz"; output: "[' ghijklmnopqrstuvwxyz']"; } <===> output-dart-sass.css .result { output: "\b\c\d\e\fghijklmnopqrstuvwxyz"; output: ghijklmnopqrstuvwxyz; output: "[\b\c\d\e\fghijklmnopqrstuvwxyz]"; output: "\b\c\d\e\fghijklmnopqrstuvwxyz"; output: "\b\c\d\e\fghijklmnopqrstuvwxyz"; output: "['\b\c\d\e\fghijklmnopqrstuvwxyz']"; } 03_inline_double.hrx000066400000000000000000000011461355712145100343340ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/parser/interpolate/18_escapes_double_quoted_lowercase<===> input.scss .result { output: #{#{"\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z"}}; output: #{"[#{"\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z"}]"}; output: #{"#{"\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z"}"}; output: #{'#{"\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z"}'}; output: #{"['#{"\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z"}']"}; } <===> output.css .result { output: ghijklmnopqrstuvwxyz; output: [ ghijklmnopqrstuvwxyz]; output: ghijklmnopqrstuvwxyz; output: ghijklmnopqrstuvwxyz; output: [' ghijklmnopqrstuvwxyz']; } 04_variable_double.hrx000066400000000000000000000006761355712145100346530ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/parser/interpolate/18_escapes_double_quoted_lowercase<===> input.scss $input: "\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z"; .result { output: #{#{$input}}; output: #{"[#{$input}]"}; output: #{"#{$input}"}; output: #{'#{$input}'}; output: #{"['#{$input}']"}; } <===> output.css .result { output: ghijklmnopqrstuvwxyz; output: [ ghijklmnopqrstuvwxyz]; output: ghijklmnopqrstuvwxyz; output: ghijklmnopqrstuvwxyz; output: [' ghijklmnopqrstuvwxyz']; } 05_variable_quoted_double.hrx000066400000000000000000000024651355712145100362330ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/parser/interpolate/18_escapes_double_quoted_lowercase<===> input.scss $input: "\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z"; .result { dquoted: "#{#{$input}}"; dquoted: "#{"[#{$input}]"}"; dquoted: "#{"#{$input}"}"; dquoted: "#{'#{$input}'}"; dquoted: "#{"['#{$input}']"}"; squoted: '#{#{$input}}'; squoted: '#{"[#{$input}]"}'; squoted: '#{"#{$input}"}'; squoted: '#{'#{$input}'}'; squoted: '#{"['#{$input}']"}'; } <===> output.css .result { dquoted: " ghijklmnopqrstuvwxyz"; dquoted: "[ ghijklmnopqrstuvwxyz]"; dquoted: " ghijklmnopqrstuvwxyz"; dquoted: " ghijklmnopqrstuvwxyz"; dquoted: "[' ghijklmnopqrstuvwxyz']"; squoted: " ghijklmnopqrstuvwxyz"; squoted: "[ ghijklmnopqrstuvwxyz]"; squoted: " ghijklmnopqrstuvwxyz"; squoted: " ghijklmnopqrstuvwxyz"; squoted: "[' ghijklmnopqrstuvwxyz']"; } <===> output-dart-sass.css .result { dquoted: "\b\c\d\e\fghijklmnopqrstuvwxyz"; dquoted: "[\b\c\d\e\fghijklmnopqrstuvwxyz]"; dquoted: "\b\c\d\e\fghijklmnopqrstuvwxyz"; dquoted: "\b\c\d\e\fghijklmnopqrstuvwxyz"; dquoted: "['\b\c\d\e\fghijklmnopqrstuvwxyz']"; squoted: "\b\c\d\e\fghijklmnopqrstuvwxyz"; squoted: "[\b\c\d\e\fghijklmnopqrstuvwxyz]"; squoted: "\b\c\d\e\fghijklmnopqrstuvwxyz"; squoted: "\b\c\d\e\fghijklmnopqrstuvwxyz"; squoted: "['\b\c\d\e\fghijklmnopqrstuvwxyz']"; } 06_escape_interpolation.hrx000066400000000000000000000016721355712145100357420ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/parser/interpolate/18_escapes_double_quoted_lowercase<===> options.yml --- :todo: - libsass <===> input.scss $input: "\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z"; .result { output: "[\#{"\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z"}]"; output: "\#{"\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z"}"; output: '\#{"\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z"}'; output: "['\#{"\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z"}']"; } <===> output.css .result { output: "[#{" \b \c \d \e \f ghijklmnopqrstuvwxyz "}]"; output: "#{" \b \c \d \e \f ghijklmnopqrstuvwxyz "}"; output: '\#{"\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z"}'; output: "['#{" \b \c \d \e \f ghijklmnopqrstuvwxyz "}']"; } <===> output-dart-sass.css .result { output: "[#{" \b \c \d \e \f ghijklmnopqrstuvwxyz "}]"; output: "#{" \b \c \d \e \f ghijklmnopqrstuvwxyz "}"; output: '#{"\b\c\d\e\fghijklmnopqrstuvwxyz"}'; output: "['#{" \b \c \d \e \f ghijklmnopqrstuvwxyz "}']"; } sass-spec-libsass-3.6.3/spec/parser/interpolate/19_escapes_single_quoted_lowercase/000077500000000000000000000000001355712145100305645ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/parser/interpolate/19_escapes_single_quoted_lowercase/01_inline.hrx000066400000000000000000000020161355712145100330640ustar00rootroot00000000000000<===> input.scss .result { output: '\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z'; output: #{'\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z'}; output: "[#{'\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z'}]"; output: "#{'\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z'}"; output: '#{'\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z'}'; output: "['#{'\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z'}']"; } <===> output.css .result { output: '\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z'; output: ghijklmnopqrstuvwxyz; output: "[ ghijklmnopqrstuvwxyz]"; output: " ghijklmnopqrstuvwxyz"; output: " ghijklmnopqrstuvwxyz"; output: "[' ghijklmnopqrstuvwxyz']"; } <===> output-dart-sass.css .result { output: "\b\c\d\e\fghijklmnopqrstuvwxyz"; output: ghijklmnopqrstuvwxyz; output: "[\b\c\d\e\fghijklmnopqrstuvwxyz]"; output: "\b\c\d\e\fghijklmnopqrstuvwxyz"; output: "\b\c\d\e\fghijklmnopqrstuvwxyz"; output: "['\b\c\d\e\fghijklmnopqrstuvwxyz']"; } sass-spec-libsass-3.6.3/spec/parser/interpolate/19_escapes_single_quoted_lowercase/02_variable.hrx000066400000000000000000000014371355712145100334020ustar00rootroot00000000000000<===> input.scss $input: '\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z'; .result { output: $input; output: #{$input}; output: "[#{$input}]"; output: "#{$input}"; output: '#{$input}'; output: "['#{$input}']"; } <===> output.css .result { output: " ghijklmnopqrstuvwxyz"; output: ghijklmnopqrstuvwxyz; output: "[ ghijklmnopqrstuvwxyz]"; output: " ghijklmnopqrstuvwxyz"; output: " ghijklmnopqrstuvwxyz"; output: "[' ghijklmnopqrstuvwxyz']"; } <===> output-dart-sass.css .result { output: "\b\c\d\e\fghijklmnopqrstuvwxyz"; output: ghijklmnopqrstuvwxyz; output: "[\b\c\d\e\fghijklmnopqrstuvwxyz]"; output: "\b\c\d\e\fghijklmnopqrstuvwxyz"; output: "\b\c\d\e\fghijklmnopqrstuvwxyz"; output: "['\b\c\d\e\fghijklmnopqrstuvwxyz']"; } 03_inline_double.hrx000066400000000000000000000011461355712145100343440ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/parser/interpolate/19_escapes_single_quoted_lowercase<===> input.scss .result { output: #{#{'\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z'}}; output: #{"[#{'\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z'}]"}; output: #{"#{'\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z'}"}; output: #{'#{'\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z'}'}; output: #{"['#{'\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z'}']"}; } <===> output.css .result { output: ghijklmnopqrstuvwxyz; output: [ ghijklmnopqrstuvwxyz]; output: ghijklmnopqrstuvwxyz; output: ghijklmnopqrstuvwxyz; output: [' ghijklmnopqrstuvwxyz']; } 04_variable_double.hrx000066400000000000000000000006761355712145100346630ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/parser/interpolate/19_escapes_single_quoted_lowercase<===> input.scss $input: '\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z'; .result { output: #{#{$input}}; output: #{"[#{$input}]"}; output: #{"#{$input}"}; output: #{'#{$input}'}; output: #{"['#{$input}']"}; } <===> output.css .result { output: ghijklmnopqrstuvwxyz; output: [ ghijklmnopqrstuvwxyz]; output: ghijklmnopqrstuvwxyz; output: ghijklmnopqrstuvwxyz; output: [' ghijklmnopqrstuvwxyz']; } 05_variable_quoted_double.hrx000066400000000000000000000024651355712145100362430ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/parser/interpolate/19_escapes_single_quoted_lowercase<===> input.scss $input: '\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z'; .result { dquoted: "#{#{$input}}"; dquoted: "#{"[#{$input}]"}"; dquoted: "#{"#{$input}"}"; dquoted: "#{'#{$input}'}"; dquoted: "#{"['#{$input}']"}"; squoted: '#{#{$input}}'; squoted: '#{"[#{$input}]"}'; squoted: '#{"#{$input}"}'; squoted: '#{'#{$input}'}'; squoted: '#{"['#{$input}']"}'; } <===> output.css .result { dquoted: " ghijklmnopqrstuvwxyz"; dquoted: "[ ghijklmnopqrstuvwxyz]"; dquoted: " ghijklmnopqrstuvwxyz"; dquoted: " ghijklmnopqrstuvwxyz"; dquoted: "[' ghijklmnopqrstuvwxyz']"; squoted: " ghijklmnopqrstuvwxyz"; squoted: "[ ghijklmnopqrstuvwxyz]"; squoted: " ghijklmnopqrstuvwxyz"; squoted: " ghijklmnopqrstuvwxyz"; squoted: "[' ghijklmnopqrstuvwxyz']"; } <===> output-dart-sass.css .result { dquoted: "\b\c\d\e\fghijklmnopqrstuvwxyz"; dquoted: "[\b\c\d\e\fghijklmnopqrstuvwxyz]"; dquoted: "\b\c\d\e\fghijklmnopqrstuvwxyz"; dquoted: "\b\c\d\e\fghijklmnopqrstuvwxyz"; dquoted: "['\b\c\d\e\fghijklmnopqrstuvwxyz']"; squoted: "\b\c\d\e\fghijklmnopqrstuvwxyz"; squoted: "[\b\c\d\e\fghijklmnopqrstuvwxyz]"; squoted: "\b\c\d\e\fghijklmnopqrstuvwxyz"; squoted: "\b\c\d\e\fghijklmnopqrstuvwxyz"; squoted: "['\b\c\d\e\fghijklmnopqrstuvwxyz']"; } 06_escape_interpolation.hrx000066400000000000000000000017101355712145100357430ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/parser/interpolate/19_escapes_single_quoted_lowercase<===> options.yml --- :todo: - libsass <===> input.scss $input: '\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z'; .result { output: "[\#{'\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z'}]"; output: "\#{'\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z'}"; output: '\#{'\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z'}'; output: "['\#{'\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z'}']"; } <===> output.css .result { output: "[\#{'\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z'}]"; output: "\#{'\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z'}"; output: "#{" \b \c \d \e \f ghijklmnopqrstuvwxyz "}"; output: "['\#{'\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z'}']"; } <===> output-dart-sass.css .result { output: "[#{'\b\c\d\e\fghijklmnopqrstuvwxyz'}]"; output: "#{'\b\c\d\e\fghijklmnopqrstuvwxyz'}"; output: "#{" \b \c \d \e \f ghijklmnopqrstuvwxyz "}"; output: "['#{'\b\c\d\e\fghijklmnopqrstuvwxyz'}']"; } sass-spec-libsass-3.6.3/spec/parser/interpolate/20_escapes_literal_uppercase/000077500000000000000000000000001355712145100273515ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/parser/interpolate/20_escapes_literal_uppercase/01_inline.hrx000066400000000000000000000014601355712145100316530ustar00rootroot00000000000000<===> options.yml --- :todo: - libsass <===> input.scss .result { output: \B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z; output: #{\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z}; output: "[#{\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z}]"; output: "#{\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z}"; output: '#{\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z}'; output: "['#{\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z}']"; } <===> output.css .result { output: \b \c \d \e \f GHIJKLMNOPQRSTUVWXYZ; output: \b \c \d \e \f GHIJKLMNOPQRSTUVWXYZ; output: "[\\b \\c \\d \\e \\f GHIJKLMNOPQRSTUVWXYZ]"; output: "\\b \\c \\d \\e \\f GHIJKLMNOPQRSTUVWXYZ"; output: "\\b \\c \\d \\e \\f GHIJKLMNOPQRSTUVWXYZ"; output: "['\\b \\c \\d \\e \\f GHIJKLMNOPQRSTUVWXYZ']"; } sass-spec-libsass-3.6.3/spec/parser/interpolate/20_escapes_literal_uppercase/02_variable.hrx000066400000000000000000000011561355712145100321650ustar00rootroot00000000000000<===> options.yml --- :todo: - sass/libsass#2700 <===> input.scss $input: \B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z; .result { output: $input; output: #{$input}; output: "[#{$input}]"; output: "#{$input}"; output: '#{$input}'; output: "['#{$input}']"; } <===> output.css .result { output: \b \c \d \e \f GHIJKLMNOPQRSTUVWXYZ; output: \b \c \d \e \f GHIJKLMNOPQRSTUVWXYZ; output: "[\\b \\c \\d \\e \\f GHIJKLMNOPQRSTUVWXYZ]"; output: "\\b \\c \\d \\e \\f GHIJKLMNOPQRSTUVWXYZ"; output: "\\b \\c \\d \\e \\f GHIJKLMNOPQRSTUVWXYZ"; output: "['\\b \\c \\d \\e \\f GHIJKLMNOPQRSTUVWXYZ']"; } sass-spec-libsass-3.6.3/spec/parser/interpolate/20_escapes_literal_uppercase/03_inline_double.hrx000066400000000000000000000013001355712145100332000ustar00rootroot00000000000000<===> options.yml --- :todo: - sass/libsass#2700 <===> input.scss .result { output: #{#{\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z}}; output: #{"[#{\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z}]"}; output: #{"#{\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z}"}; output: #{'#{\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z}'}; output: #{"['#{\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z}']"}; } <===> output.css .result { output: \b \c \d \e \f GHIJKLMNOPQRSTUVWXYZ; output: [\b \c \d \e \f GHIJKLMNOPQRSTUVWXYZ]; output: \b \c \d \e \f GHIJKLMNOPQRSTUVWXYZ; output: \b \c \d \e \f GHIJKLMNOPQRSTUVWXYZ; output: ['\b \c \d \e \f GHIJKLMNOPQRSTUVWXYZ']; } sass-spec-libsass-3.6.3/spec/parser/interpolate/20_escapes_literal_uppercase/04_variable_double.hrx000066400000000000000000000010401355712145100335110ustar00rootroot00000000000000<===> options.yml --- :todo: - sass/libsass#2700 <===> input.scss $input: \B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z; .result { output: #{#{$input}}; output: #{"[#{$input}]"}; output: #{"#{$input}"}; output: #{'#{$input}'}; output: #{"['#{$input}']"}; } <===> output.css .result { output: \b \c \d \e \f GHIJKLMNOPQRSTUVWXYZ; output: [\b \c \d \e \f GHIJKLMNOPQRSTUVWXYZ]; output: \b \c \d \e \f GHIJKLMNOPQRSTUVWXYZ; output: \b \c \d \e \f GHIJKLMNOPQRSTUVWXYZ; output: ['\b \c \d \e \f GHIJKLMNOPQRSTUVWXYZ']; } 05_variable_quoted_double.hrx000066400000000000000000000020051355712145100350160ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/parser/interpolate/20_escapes_literal_uppercase<===> options.yml --- :todo: - sass/libsass#2700 <===> input.scss $input: \B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z; .result { dquoted: "#{#{$input}}"; dquoted: "#{"[#{$input}]"}"; dquoted: "#{"#{$input}"}"; dquoted: "#{'#{$input}'}"; dquoted: "#{"['#{$input}']"}"; squoted: '#{#{$input}}'; squoted: '#{"[#{$input}]"}'; squoted: '#{"#{$input}"}'; squoted: '#{'#{$input}'}'; squoted: '#{"['#{$input}']"}'; } <===> output.css .result { dquoted: "\\b \\c \\d \\e \\f GHIJKLMNOPQRSTUVWXYZ"; dquoted: "[\\b \\c \\d \\e \\f GHIJKLMNOPQRSTUVWXYZ]"; dquoted: "\\b \\c \\d \\e \\f GHIJKLMNOPQRSTUVWXYZ"; dquoted: "\\b \\c \\d \\e \\f GHIJKLMNOPQRSTUVWXYZ"; dquoted: "['\\b \\c \\d \\e \\f GHIJKLMNOPQRSTUVWXYZ']"; squoted: "\\b \\c \\d \\e \\f GHIJKLMNOPQRSTUVWXYZ"; squoted: "[\\b \\c \\d \\e \\f GHIJKLMNOPQRSTUVWXYZ]"; squoted: "\\b \\c \\d \\e \\f GHIJKLMNOPQRSTUVWXYZ"; squoted: "\\b \\c \\d \\e \\f GHIJKLMNOPQRSTUVWXYZ"; squoted: "['\\b \\c \\d \\e \\f GHIJKLMNOPQRSTUVWXYZ']"; } 06_escape_interpolation.hrx000066400000000000000000000016151355712145100345340ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/parser/interpolate/20_escapes_literal_uppercase<===> input.scss $input: \B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z; .result { output: "[\#{\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z}]"; output: "\#{\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z}"; output: '\#{\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z}'; output: "['\#{\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z}']"; } <===> output.css .result { output: "[\#{\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z}]"; output: "\#{\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z}"; output: '\#{\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z}'; output: "['\#{\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z}']"; } <===> output-dart-sass.css .result { output: "[#{\b\c\d\e\fGHIJKLMNOPQRSTUVWXYZ}]"; output: "#{\b\c\d\e\fGHIJKLMNOPQRSTUVWXYZ}"; output: "#{\b\c\d\e\fGHIJKLMNOPQRSTUVWXYZ}"; output: "['#{\b\c\d\e\fGHIJKLMNOPQRSTUVWXYZ}']"; } sass-spec-libsass-3.6.3/spec/parser/interpolate/21_escapes_double_quoted_uppercase/000077500000000000000000000000001355712145100305515ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/parser/interpolate/21_escapes_double_quoted_uppercase/01_inline.hrx000066400000000000000000000020161355712145100330510ustar00rootroot00000000000000<===> input.scss .result { output: "\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z"; output: #{"\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z"}; output: "[#{"\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z"}]"; output: "#{"\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z"}"; output: '#{"\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z"}'; output: "['#{"\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z"}']"; } <===> output.css .result { output: "\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z"; output: GHIJKLMNOPQRSTUVWXYZ; output: "[ GHIJKLMNOPQRSTUVWXYZ]"; output: " GHIJKLMNOPQRSTUVWXYZ"; output: " GHIJKLMNOPQRSTUVWXYZ"; output: "[' GHIJKLMNOPQRSTUVWXYZ']"; } <===> output-dart-sass.css .result { output: "\b\c\d\e\fGHIJKLMNOPQRSTUVWXYZ"; output: GHIJKLMNOPQRSTUVWXYZ; output: "[\b\c\d\e\fGHIJKLMNOPQRSTUVWXYZ]"; output: "\b\c\d\e\fGHIJKLMNOPQRSTUVWXYZ"; output: "\b\c\d\e\fGHIJKLMNOPQRSTUVWXYZ"; output: "['\b\c\d\e\fGHIJKLMNOPQRSTUVWXYZ']"; } sass-spec-libsass-3.6.3/spec/parser/interpolate/21_escapes_double_quoted_uppercase/02_variable.hrx000066400000000000000000000014371355712145100333670ustar00rootroot00000000000000<===> input.scss $input: "\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z"; .result { output: $input; output: #{$input}; output: "[#{$input}]"; output: "#{$input}"; output: '#{$input}'; output: "['#{$input}']"; } <===> output.css .result { output: " GHIJKLMNOPQRSTUVWXYZ"; output: GHIJKLMNOPQRSTUVWXYZ; output: "[ GHIJKLMNOPQRSTUVWXYZ]"; output: " GHIJKLMNOPQRSTUVWXYZ"; output: " GHIJKLMNOPQRSTUVWXYZ"; output: "[' GHIJKLMNOPQRSTUVWXYZ']"; } <===> output-dart-sass.css .result { output: "\b\c\d\e\fGHIJKLMNOPQRSTUVWXYZ"; output: GHIJKLMNOPQRSTUVWXYZ; output: "[\b\c\d\e\fGHIJKLMNOPQRSTUVWXYZ]"; output: "\b\c\d\e\fGHIJKLMNOPQRSTUVWXYZ"; output: "\b\c\d\e\fGHIJKLMNOPQRSTUVWXYZ"; output: "['\b\c\d\e\fGHIJKLMNOPQRSTUVWXYZ']"; } 03_inline_double.hrx000066400000000000000000000011461355712145100343310ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/parser/interpolate/21_escapes_double_quoted_uppercase<===> input.scss .result { output: #{#{"\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z"}}; output: #{"[#{"\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z"}]"}; output: #{"#{"\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z"}"}; output: #{'#{"\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z"}'}; output: #{"['#{"\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z"}']"}; } <===> output.css .result { output: GHIJKLMNOPQRSTUVWXYZ; output: [ GHIJKLMNOPQRSTUVWXYZ]; output: GHIJKLMNOPQRSTUVWXYZ; output: GHIJKLMNOPQRSTUVWXYZ; output: [' GHIJKLMNOPQRSTUVWXYZ']; } 04_variable_double.hrx000066400000000000000000000006761355712145100346500ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/parser/interpolate/21_escapes_double_quoted_uppercase<===> input.scss $input: "\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z"; .result { output: #{#{$input}}; output: #{"[#{$input}]"}; output: #{"#{$input}"}; output: #{'#{$input}'}; output: #{"['#{$input}']"}; } <===> output.css .result { output: GHIJKLMNOPQRSTUVWXYZ; output: [ GHIJKLMNOPQRSTUVWXYZ]; output: GHIJKLMNOPQRSTUVWXYZ; output: GHIJKLMNOPQRSTUVWXYZ; output: [' GHIJKLMNOPQRSTUVWXYZ']; } 05_variable_quoted_double.hrx000066400000000000000000000024651355712145100362300ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/parser/interpolate/21_escapes_double_quoted_uppercase<===> input.scss $input: "\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z"; .result { dquoted: "#{#{$input}}"; dquoted: "#{"[#{$input}]"}"; dquoted: "#{"#{$input}"}"; dquoted: "#{'#{$input}'}"; dquoted: "#{"['#{$input}']"}"; squoted: '#{#{$input}}'; squoted: '#{"[#{$input}]"}'; squoted: '#{"#{$input}"}'; squoted: '#{'#{$input}'}'; squoted: '#{"['#{$input}']"}'; } <===> output.css .result { dquoted: " GHIJKLMNOPQRSTUVWXYZ"; dquoted: "[ GHIJKLMNOPQRSTUVWXYZ]"; dquoted: " GHIJKLMNOPQRSTUVWXYZ"; dquoted: " GHIJKLMNOPQRSTUVWXYZ"; dquoted: "[' GHIJKLMNOPQRSTUVWXYZ']"; squoted: " GHIJKLMNOPQRSTUVWXYZ"; squoted: "[ GHIJKLMNOPQRSTUVWXYZ]"; squoted: " GHIJKLMNOPQRSTUVWXYZ"; squoted: " GHIJKLMNOPQRSTUVWXYZ"; squoted: "[' GHIJKLMNOPQRSTUVWXYZ']"; } <===> output-dart-sass.css .result { dquoted: "\b\c\d\e\fGHIJKLMNOPQRSTUVWXYZ"; dquoted: "[\b\c\d\e\fGHIJKLMNOPQRSTUVWXYZ]"; dquoted: "\b\c\d\e\fGHIJKLMNOPQRSTUVWXYZ"; dquoted: "\b\c\d\e\fGHIJKLMNOPQRSTUVWXYZ"; dquoted: "['\b\c\d\e\fGHIJKLMNOPQRSTUVWXYZ']"; squoted: "\b\c\d\e\fGHIJKLMNOPQRSTUVWXYZ"; squoted: "[\b\c\d\e\fGHIJKLMNOPQRSTUVWXYZ]"; squoted: "\b\c\d\e\fGHIJKLMNOPQRSTUVWXYZ"; squoted: "\b\c\d\e\fGHIJKLMNOPQRSTUVWXYZ"; squoted: "['\b\c\d\e\fGHIJKLMNOPQRSTUVWXYZ']"; } 06_escape_interpolation.hrx000066400000000000000000000016721355712145100357370ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/parser/interpolate/21_escapes_double_quoted_uppercase<===> options.yml --- :todo: - libsass <===> input.scss $input: "\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z"; .result { output: "[\#{"\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z"}]"; output: "\#{"\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z"}"; output: '\#{"\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z"}'; output: "['\#{"\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z"}']"; } <===> output.css .result { output: "[#{" \b \c \d \e \f GHIJKLMNOPQRSTUVWXYZ "}]"; output: "#{" \b \c \d \e \f GHIJKLMNOPQRSTUVWXYZ "}"; output: '\#{"\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z"}'; output: "['#{" \b \c \d \e \f GHIJKLMNOPQRSTUVWXYZ "}']"; } <===> output-dart-sass.css .result { output: "[#{" \b \c \d \e \f GHIJKLMNOPQRSTUVWXYZ "}]"; output: "#{" \b \c \d \e \f GHIJKLMNOPQRSTUVWXYZ "}"; output: '#{"\b\c\d\e\fGHIJKLMNOPQRSTUVWXYZ"}'; output: "['#{" \b \c \d \e \f GHIJKLMNOPQRSTUVWXYZ "}']"; } sass-spec-libsass-3.6.3/spec/parser/interpolate/22_escapes_single_quoted_uppercase/000077500000000000000000000000001355712145100305615ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/parser/interpolate/22_escapes_single_quoted_uppercase/01_inline.hrx000066400000000000000000000020161355712145100330610ustar00rootroot00000000000000<===> input.scss .result { output: '\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z'; output: #{'\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z'}; output: "[#{'\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z'}]"; output: "#{'\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z'}"; output: '#{'\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z'}'; output: "['#{'\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z'}']"; } <===> output.css .result { output: '\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z'; output: GHIJKLMNOPQRSTUVWXYZ; output: "[ GHIJKLMNOPQRSTUVWXYZ]"; output: " GHIJKLMNOPQRSTUVWXYZ"; output: " GHIJKLMNOPQRSTUVWXYZ"; output: "[' GHIJKLMNOPQRSTUVWXYZ']"; } <===> output-dart-sass.css .result { output: "\b\c\d\e\fGHIJKLMNOPQRSTUVWXYZ"; output: GHIJKLMNOPQRSTUVWXYZ; output: "[\b\c\d\e\fGHIJKLMNOPQRSTUVWXYZ]"; output: "\b\c\d\e\fGHIJKLMNOPQRSTUVWXYZ"; output: "\b\c\d\e\fGHIJKLMNOPQRSTUVWXYZ"; output: "['\b\c\d\e\fGHIJKLMNOPQRSTUVWXYZ']"; } sass-spec-libsass-3.6.3/spec/parser/interpolate/22_escapes_single_quoted_uppercase/02_variable.hrx000066400000000000000000000014371355712145100333770ustar00rootroot00000000000000<===> input.scss $input: '\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z'; .result { output: $input; output: #{$input}; output: "[#{$input}]"; output: "#{$input}"; output: '#{$input}'; output: "['#{$input}']"; } <===> output.css .result { output: " GHIJKLMNOPQRSTUVWXYZ"; output: GHIJKLMNOPQRSTUVWXYZ; output: "[ GHIJKLMNOPQRSTUVWXYZ]"; output: " GHIJKLMNOPQRSTUVWXYZ"; output: " GHIJKLMNOPQRSTUVWXYZ"; output: "[' GHIJKLMNOPQRSTUVWXYZ']"; } <===> output-dart-sass.css .result { output: "\b\c\d\e\fGHIJKLMNOPQRSTUVWXYZ"; output: GHIJKLMNOPQRSTUVWXYZ; output: "[\b\c\d\e\fGHIJKLMNOPQRSTUVWXYZ]"; output: "\b\c\d\e\fGHIJKLMNOPQRSTUVWXYZ"; output: "\b\c\d\e\fGHIJKLMNOPQRSTUVWXYZ"; output: "['\b\c\d\e\fGHIJKLMNOPQRSTUVWXYZ']"; } 03_inline_double.hrx000066400000000000000000000011461355712145100343410ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/parser/interpolate/22_escapes_single_quoted_uppercase<===> input.scss .result { output: #{#{'\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z'}}; output: #{"[#{'\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z'}]"}; output: #{"#{'\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z'}"}; output: #{'#{'\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z'}'}; output: #{"['#{'\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z'}']"}; } <===> output.css .result { output: GHIJKLMNOPQRSTUVWXYZ; output: [ GHIJKLMNOPQRSTUVWXYZ]; output: GHIJKLMNOPQRSTUVWXYZ; output: GHIJKLMNOPQRSTUVWXYZ; output: [' GHIJKLMNOPQRSTUVWXYZ']; } 04_variable_double.hrx000066400000000000000000000006761355712145100346600ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/parser/interpolate/22_escapes_single_quoted_uppercase<===> input.scss $input: '\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z'; .result { output: #{#{$input}}; output: #{"[#{$input}]"}; output: #{"#{$input}"}; output: #{'#{$input}'}; output: #{"['#{$input}']"}; } <===> output.css .result { output: GHIJKLMNOPQRSTUVWXYZ; output: [ GHIJKLMNOPQRSTUVWXYZ]; output: GHIJKLMNOPQRSTUVWXYZ; output: GHIJKLMNOPQRSTUVWXYZ; output: [' GHIJKLMNOPQRSTUVWXYZ']; } 05_variable_quoted_double.hrx000066400000000000000000000024651355712145100362400ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/parser/interpolate/22_escapes_single_quoted_uppercase<===> input.scss $input: '\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z'; .result { dquoted: "#{#{$input}}"; dquoted: "#{"[#{$input}]"}"; dquoted: "#{"#{$input}"}"; dquoted: "#{'#{$input}'}"; dquoted: "#{"['#{$input}']"}"; squoted: '#{#{$input}}'; squoted: '#{"[#{$input}]"}'; squoted: '#{"#{$input}"}'; squoted: '#{'#{$input}'}'; squoted: '#{"['#{$input}']"}'; } <===> output.css .result { dquoted: " GHIJKLMNOPQRSTUVWXYZ"; dquoted: "[ GHIJKLMNOPQRSTUVWXYZ]"; dquoted: " GHIJKLMNOPQRSTUVWXYZ"; dquoted: " GHIJKLMNOPQRSTUVWXYZ"; dquoted: "[' GHIJKLMNOPQRSTUVWXYZ']"; squoted: " GHIJKLMNOPQRSTUVWXYZ"; squoted: "[ GHIJKLMNOPQRSTUVWXYZ]"; squoted: " GHIJKLMNOPQRSTUVWXYZ"; squoted: " GHIJKLMNOPQRSTUVWXYZ"; squoted: "[' GHIJKLMNOPQRSTUVWXYZ']"; } <===> output-dart-sass.css .result { dquoted: "\b\c\d\e\fGHIJKLMNOPQRSTUVWXYZ"; dquoted: "[\b\c\d\e\fGHIJKLMNOPQRSTUVWXYZ]"; dquoted: "\b\c\d\e\fGHIJKLMNOPQRSTUVWXYZ"; dquoted: "\b\c\d\e\fGHIJKLMNOPQRSTUVWXYZ"; dquoted: "['\b\c\d\e\fGHIJKLMNOPQRSTUVWXYZ']"; squoted: "\b\c\d\e\fGHIJKLMNOPQRSTUVWXYZ"; squoted: "[\b\c\d\e\fGHIJKLMNOPQRSTUVWXYZ]"; squoted: "\b\c\d\e\fGHIJKLMNOPQRSTUVWXYZ"; squoted: "\b\c\d\e\fGHIJKLMNOPQRSTUVWXYZ"; squoted: "['\b\c\d\e\fGHIJKLMNOPQRSTUVWXYZ']"; } 06_escape_interpolation.hrx000066400000000000000000000017101355712145100357400ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/parser/interpolate/22_escapes_single_quoted_uppercase<===> options.yml --- :todo: - libsass <===> input.scss $input: '\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z'; .result { output: "[\#{'\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z'}]"; output: "\#{'\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z'}"; output: '\#{'\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z'}'; output: "['\#{'\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z'}']"; } <===> output.css .result { output: "[\#{'\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z'}]"; output: "\#{'\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z'}"; output: "#{" \b \c \d \e \f GHIJKLMNOPQRSTUVWXYZ "}"; output: "['\#{'\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z'}']"; } <===> output-dart-sass.css .result { output: "[#{'\b\c\d\e\fGHIJKLMNOPQRSTUVWXYZ'}]"; output: "#{'\b\c\d\e\fGHIJKLMNOPQRSTUVWXYZ'}"; output: "#{" \b \c \d \e \f GHIJKLMNOPQRSTUVWXYZ "}"; output: "['#{'\b\c\d\e\fGHIJKLMNOPQRSTUVWXYZ'}']"; } sass-spec-libsass-3.6.3/spec/parser/interpolate/23_escapes_literal_specials/000077500000000000000000000000001355712145100271705ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/parser/interpolate/23_escapes_literal_specials/01_inline.hrx000066400000000000000000000006341355712145100314740ustar00rootroot00000000000000<===> options.yml --- :todo: - libsass <===> input.scss .result { output: \0_\a_\A; output: #{\0_\a_\A}; output: "[#{\0_\a_\A}]"; output: "#{\0_\a_\A}"; output: '#{\0_\a_\A}'; output: "['#{\0_\a_\A}']"; } <===> output.css .result { output: \0 _\a _\a ; output: \0 _\a _\a ; output: "[\\0 _\\a _\\a ]"; output: "\\0 _\\a _\\a "; output: "\\0 _\\a _\\a "; output: "['\\0 _\\a _\\a ']"; } sass-spec-libsass-3.6.3/spec/parser/interpolate/23_escapes_literal_specials/02_variable.hrx000066400000000000000000000006541355712145100320060ustar00rootroot00000000000000<===> options.yml --- :todo: - sass/libsass#2700 <===> input.scss $input: \0_\a_\A; .result { output: $input; output: #{$input}; output: "[#{$input}]"; output: "#{$input}"; output: '#{$input}'; output: "['#{$input}']"; } <===> output.css .result { output: \0 _\a _\a ; output: \0 _\a _\a ; output: "[\\0 _\\a _\\a ]"; output: "\\0 _\\a _\\a "; output: "\\0 _\\a _\\a "; output: "['\\0 _\\a _\\a ']"; } sass-spec-libsass-3.6.3/spec/parser/interpolate/23_escapes_literal_specials/03_inline_double.hrx000066400000000000000000000005661355712145100330340ustar00rootroot00000000000000<===> options.yml --- :todo: - sass/libsass#2700 <===> input.scss .result { output: #{#{\0_\a_\A}}; output: #{"[#{\0_\a_\A}]"}; output: #{"#{\0_\a_\A}"}; output: #{'#{\0_\a_\A}'}; output: #{"['#{\0_\a_\A}']"}; } <===> output.css .result { output: \0 _\a _\a ; output: [\0 _\a _\a ]; output: \0 _\a _\a ; output: \0 _\a _\a ; output: ['\0 _\a _\a ']; } sass-spec-libsass-3.6.3/spec/parser/interpolate/23_escapes_literal_specials/04_variable_double.hrx000066400000000000000000000005761355712145100333450ustar00rootroot00000000000000<===> options.yml --- :todo: - sass/libsass#2700 <===> input.scss $input: \0_\a_\A; .result { output: #{#{$input}}; output: #{"[#{$input}]"}; output: #{"#{$input}"}; output: #{'#{$input}'}; output: #{"['#{$input}']"}; } <===> output.css .result { output: \0 _\a _\a ; output: [\0 _\a _\a ]; output: \0 _\a _\a ; output: \0 _\a _\a ; output: ['\0 _\a _\a ']; } 05_variable_quoted_double.hrx000066400000000000000000000013271355712145100346430ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/parser/interpolate/23_escapes_literal_specials<===> options.yml --- :todo: - sass/libsass#2700 <===> input.scss $input: \0_\a_\A; .result { dquoted: "#{#{$input}}"; dquoted: "#{"[#{$input}]"}"; dquoted: "#{"#{$input}"}"; dquoted: "#{'#{$input}'}"; dquoted: "#{"['#{$input}']"}"; squoted: '#{#{$input}}'; squoted: '#{"[#{$input}]"}'; squoted: '#{"#{$input}"}'; squoted: '#{'#{$input}'}'; squoted: '#{"['#{$input}']"}'; } <===> output.css .result { dquoted: "\\0 _\\a _\\a "; dquoted: "[\\0 _\\a _\\a ]"; dquoted: "\\0 _\\a _\\a "; dquoted: "\\0 _\\a _\\a "; dquoted: "['\\0 _\\a _\\a ']"; squoted: "\\0 _\\a _\\a "; squoted: "[\\0 _\\a _\\a ]"; squoted: "\\0 _\\a _\\a "; squoted: "\\0 _\\a _\\a "; squoted: "['\\0 _\\a _\\a ']"; } sass-spec-libsass-3.6.3/spec/parser/interpolate/23_escapes_literal_specials/06_escape_interpolation/000077500000000000000000000000001355712145100337045ustar00rootroot00000000000000input.scss000066400000000000000000000002141355712145100356560ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/parser/interpolate/23_escapes_literal_specials/06_escape_interpolation$input: \0_\a_\A; .result { output: "[\#{\0_\a_\A}]"; output: "\#{\0_\a_\A}"; output: '\#{\0_\a_\A}'; output: "['\#{\0_\a_\A}']"; } output-dart-sass.css000066400000000000000000000002141355712145100375730ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/parser/interpolate/23_escapes_literal_specials/06_escape_interpolation@charset "UTF-8"; .result { output: "[#{�_\a_\a}]"; output: "#{�_\a_\a}"; output: "#{�_\a_\a}"; output: "['#{�_\a_\a}']"; } output.css000066400000000000000000000001721355712145100356770ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/parser/interpolate/23_escapes_literal_specials/06_escape_interpolation.result { output: "[\#{\0_\a_\A}]"; output: "\#{\0_\a_\A}"; output: '\#{\0_\a_\A}'; output: "['\#{\0_\a_\A}']"; } sass-spec-libsass-3.6.3/spec/parser/interpolate/24_escapes_double_quoted_specials/000077500000000000000000000000001355712145100303705ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/parser/interpolate/24_escapes_double_quoted_specials/01_inline/000077500000000000000000000000001355712145100321465ustar00rootroot00000000000000input.scss000066400000000000000000000002551355712145100341250ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/parser/interpolate/24_escapes_double_quoted_specials/01_inline.result { output: "\0_\a_\A"; output: #{"\0_\a_\A"}; output: "[#{"\0_\a_\A"}]"; output: "#{"\0_\a_\A"}"; output: '#{"\0_\a_\A"}'; output: "['#{"\0_\a_\A"}']"; } output-dart-sass.css000066400000000000000000000002521355712145100360370ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/parser/interpolate/24_escapes_double_quoted_specials/01_inline@charset "UTF-8"; .result { output: "�_\a_\a"; output: �_ _ ; output: "[�_\a_\a]"; output: "�_\a_\a"; output: "�_\a_\a"; output: "['�_\a_\a']"; } output.css000066400000000000000000000002511355712145100341370ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/parser/interpolate/24_escapes_double_quoted_specials/01_inline@charset "UTF-8"; .result { output: "\0_\a_\A"; output: �_ _ ; output: "[�_\a_\a]"; output: "�_\a_\a"; output: "�_\a_\a"; output: "['�_\a_\a']"; } sass-spec-libsass-3.6.3/spec/parser/interpolate/24_escapes_double_quoted_specials/02_variable/000077500000000000000000000000001355712145100324565ustar00rootroot00000000000000input.scss000066400000000000000000000002511355712145100344310ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/parser/interpolate/24_escapes_double_quoted_specials/02_variable$input: "\0_\a_\A"; .result { output: $input; output: #{$input}; output: "[#{$input}]"; output: "#{$input}"; output: '#{$input}'; output: "['#{$input}']"; } output.css000066400000000000000000000002521355712145100344500ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/parser/interpolate/24_escapes_double_quoted_specials/02_variable@charset "UTF-8"; .result { output: "�_\a_\a"; output: �_ _ ; output: "[�_\a_\a]"; output: "�_\a_\a"; output: "�_\a_\a"; output: "['�_\a_\a']"; } sass-spec-libsass-3.6.3/spec/parser/interpolate/24_escapes_double_quoted_specials/03_inline_double/000077500000000000000000000000001355712145100335025ustar00rootroot00000000000000input.scss000066400000000000000000000002461355712145100354610ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/parser/interpolate/24_escapes_double_quoted_specials/03_inline_double.result { output: #{#{"\0_\a_\A"}}; output: #{"[#{"\0_\a_\A"}]"}; output: #{"#{"\0_\a_\A"}"}; output: #{'#{"\0_\a_\A"}'}; output: #{"['#{"\0_\a_\A"}']"}; } output.css000066400000000000000000000002031355712145100354700ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/parser/interpolate/24_escapes_double_quoted_specials/03_inline_double@charset "UTF-8"; .result { output: �_ _ ; output: [�_ _ ]; output: �_ _ ; output: �_ _ ; output: ['�_ _ ']; } 04_variable_double/000077500000000000000000000000001355712145100337335ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/parser/interpolate/24_escapes_double_quoted_specialsinput.scss000066400000000000000000000002461355712145100357710ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/parser/interpolate/24_escapes_double_quoted_specials/04_variable_double$input: "\0_\a_\A"; .result { output: #{#{$input}}; output: #{"[#{$input}]"}; output: #{"#{$input}"}; output: #{'#{$input}'}; output: #{"['#{$input}']"}; } output.css000066400000000000000000000002031355712145100360000ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/parser/interpolate/24_escapes_double_quoted_specials/04_variable_double@charset "UTF-8"; .result { output: �_ _ ; output: [�_ _ ]; output: �_ _ ; output: �_ _ ; output: ['�_ _ ']; } 06_escape_interpolation/000077500000000000000000000000001355712145100350255ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/parser/interpolate/24_escapes_double_quoted_specialsinput.scss000066400000000000000000000002261355712145100370610ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/parser/interpolate/24_escapes_double_quoted_specials/06_escape_interpolation$input: "\0_\a_\A"; .result { output: "[\#{"\0_\a_\A"}]"; output: "\#{"\0_\a_\A"}"; output: '\#{"\0_\a_\A"}'; output: "['\#{"\0_\a_\A"}']"; } options.yml000066400000000000000000000000251355712145100372400ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/parser/interpolate/24_escapes_double_quoted_specials/06_escape_interpolation--- :todo: - libsass output-dart-sass.css000066400000000000000000000002401355712145100407720ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/parser/interpolate/24_escapes_double_quoted_specials/06_escape_interpolation@charset "UTF-8"; .result { output: "[#{" \0 _\a _\a "}]"; output: "#{" \0 _\a _\a "}"; output: '#{"�_\a_\a"}'; output: "['#{" \0 _\a _\a "}']"; } output.css000066400000000000000000000002161355712145100370760ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/parser/interpolate/24_escapes_double_quoted_specials/06_escape_interpolation.result { output: "[#{" \0 _\a _\a "}]"; output: "#{" \0 _\a _\a "}"; output: '\#{"\0_\a_\A"}'; output: "['#{" \0 _\a _\a "}']"; } todo_05_variable_quoted_double/000077500000000000000000000000001355712145100363425ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/parser/interpolate/24_escapes_double_quoted_specialsinput.scss000066400000000000000000000005121355712145100403740ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/parser/interpolate/24_escapes_double_quoted_specials/todo_05_variable_quoted_double$input: "\0_\a_\A"; .result { dquoted: "#{#{$input}}"; dquoted: "#{"[#{$input}]"}"; dquoted: "#{"#{$input}"}"; dquoted: "#{'#{$input}'}"; dquoted: "#{"['#{$input}']"}"; squoted: '#{#{$input}}'; squoted: '#{"[#{$input}]"}'; squoted: '#{"#{$input}"}'; squoted: '#{'#{$input}'}'; squoted: '#{"['#{$input}']"}'; } output.css000066400000000000000000000004321355712145100404130ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/parser/interpolate/24_escapes_double_quoted_specials/todo_05_variable_quoted_double@charset "UTF-8"; .result { dquoted: "�_\a_\a"; dquoted: "[�_\a_\a]"; dquoted: "�_\a_\a"; dquoted: "�_\a_\a"; dquoted: "['�_\a_\a']"; squoted: "�_\a_\a"; squoted: "[�_\a_\a]"; squoted: "�_\a_\a"; squoted: "�_\a_\a"; squoted: "['�_\a_\a']"; } todo.txt000066400000000000000000000001021355712145100400410ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/parser/interpolate/24_escapes_double_quoted_specials/todo_05_variable_quoted_doubleFails on shared build (gcc/clang) Looks like some issue with "\r"sass-spec-libsass-3.6.3/spec/parser/interpolate/25_escapes_single_quoted_specials/000077500000000000000000000000001355712145100304005ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/parser/interpolate/25_escapes_single_quoted_specials/01_inline/000077500000000000000000000000001355712145100321565ustar00rootroot00000000000000input.scss000066400000000000000000000002551355712145100341350ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/parser/interpolate/25_escapes_single_quoted_specials/01_inline.result { output: '\0_\a_\A'; output: #{'\0_\a_\A'}; output: "[#{'\0_\a_\A'}]"; output: "#{'\0_\a_\A'}"; output: '#{'\0_\a_\A'}'; output: "['#{'\0_\a_\A'}']"; } output-dart-sass.css000066400000000000000000000002521355712145100360470ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/parser/interpolate/25_escapes_single_quoted_specials/01_inline@charset "UTF-8"; .result { output: "�_\a_\a"; output: �_ _ ; output: "[�_\a_\a]"; output: "�_\a_\a"; output: "�_\a_\a"; output: "['�_\a_\a']"; } output.css000066400000000000000000000002511355712145100341470ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/parser/interpolate/25_escapes_single_quoted_specials/01_inline@charset "UTF-8"; .result { output: '\0_\a_\A'; output: �_ _ ; output: "[�_\a_\a]"; output: "�_\a_\a"; output: "�_\a_\a"; output: "['�_\a_\a']"; } sass-spec-libsass-3.6.3/spec/parser/interpolate/25_escapes_single_quoted_specials/02_variable/000077500000000000000000000000001355712145100324665ustar00rootroot00000000000000input.scss000066400000000000000000000002511355712145100344410ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/parser/interpolate/25_escapes_single_quoted_specials/02_variable$input: '\0_\a_\A'; .result { output: $input; output: #{$input}; output: "[#{$input}]"; output: "#{$input}"; output: '#{$input}'; output: "['#{$input}']"; } output.css000066400000000000000000000002521355712145100344600ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/parser/interpolate/25_escapes_single_quoted_specials/02_variable@charset "UTF-8"; .result { output: "�_\a_\a"; output: �_ _ ; output: "[�_\a_\a]"; output: "�_\a_\a"; output: "�_\a_\a"; output: "['�_\a_\a']"; } sass-spec-libsass-3.6.3/spec/parser/interpolate/25_escapes_single_quoted_specials/03_inline_double/000077500000000000000000000000001355712145100335125ustar00rootroot00000000000000input.scss000066400000000000000000000002461355712145100354710ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/parser/interpolate/25_escapes_single_quoted_specials/03_inline_double.result { output: #{#{'\0_\a_\A'}}; output: #{"[#{'\0_\a_\A'}]"}; output: #{"#{'\0_\a_\A'}"}; output: #{'#{'\0_\a_\A'}'}; output: #{"['#{'\0_\a_\A'}']"}; } output.css000066400000000000000000000002031355712145100355000ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/parser/interpolate/25_escapes_single_quoted_specials/03_inline_double@charset "UTF-8"; .result { output: �_ _ ; output: [�_ _ ]; output: �_ _ ; output: �_ _ ; output: ['�_ _ ']; } 04_variable_double/000077500000000000000000000000001355712145100337435ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/parser/interpolate/25_escapes_single_quoted_specialsinput.scss000066400000000000000000000002461355712145100360010ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/parser/interpolate/25_escapes_single_quoted_specials/04_variable_double$input: '\0_\a_\A'; .result { output: #{#{$input}}; output: #{"[#{$input}]"}; output: #{"#{$input}"}; output: #{'#{$input}'}; output: #{"['#{$input}']"}; } output.css000066400000000000000000000002031355712145100360100ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/parser/interpolate/25_escapes_single_quoted_specials/04_variable_double@charset "UTF-8"; .result { output: �_ _ ; output: [�_ _ ]; output: �_ _ ; output: �_ _ ; output: ['�_ _ ']; } 06_escape_interpolation/000077500000000000000000000000001355712145100350355ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/parser/interpolate/25_escapes_single_quoted_specialsinput.scss000066400000000000000000000002261355712145100370710ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/parser/interpolate/25_escapes_single_quoted_specials/06_escape_interpolation$input: '\0_\a_\A'; .result { output: "[\#{'\0_\a_\A'}]"; output: "\#{'\0_\a_\A'}"; output: '\#{'\0_\a_\A'}'; output: "['\#{'\0_\a_\A'}']"; } options.yml000066400000000000000000000000251355712145100372500ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/parser/interpolate/25_escapes_single_quoted_specials/06_escape_interpolation--- :todo: - libsass output-dart-sass.css000066400000000000000000000002301355712145100410010ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/parser/interpolate/25_escapes_single_quoted_specials/06_escape_interpolation@charset "UTF-8"; .result { output: "[#{'�_\a_\a'}]"; output: "#{'�_\a_\a'}"; output: "#{" \0 _\a _\a "}"; output: "['#{'�_\a_\a'}']"; } output.css000066400000000000000000000002061355712145100371050ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/parser/interpolate/25_escapes_single_quoted_specials/06_escape_interpolation.result { output: "[\#{'\0_\a_\A'}]"; output: "\#{'\0_\a_\A'}"; output: "#{" \0 _\a _\a "}"; output: "['\#{'\0_\a_\A'}']"; } todo_05_variable_quoted_double/000077500000000000000000000000001355712145100363525ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/parser/interpolate/25_escapes_single_quoted_specialsinput.scss000066400000000000000000000005121355712145100404040ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/parser/interpolate/25_escapes_single_quoted_specials/todo_05_variable_quoted_double$input: '\0_\a_\A'; .result { dquoted: "#{#{$input}}"; dquoted: "#{"[#{$input}]"}"; dquoted: "#{"#{$input}"}"; dquoted: "#{'#{$input}'}"; dquoted: "#{"['#{$input}']"}"; squoted: '#{#{$input}}'; squoted: '#{"[#{$input}]"}'; squoted: '#{"#{$input}"}'; squoted: '#{'#{$input}'}'; squoted: '#{"['#{$input}']"}'; } output.css000066400000000000000000000004321355712145100404230ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/parser/interpolate/25_escapes_single_quoted_specials/todo_05_variable_quoted_double@charset "UTF-8"; .result { dquoted: "�_\a_\a"; dquoted: "[�_\a_\a]"; dquoted: "�_\a_\a"; dquoted: "�_\a_\a"; dquoted: "['�_\a_\a']"; squoted: "�_\a_\a"; squoted: "[�_\a_\a]"; squoted: "�_\a_\a"; squoted: "�_\a_\a"; squoted: "['�_\a_\a']"; } todo.txt000066400000000000000000000001021355712145100400510ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/parser/interpolate/25_escapes_single_quoted_specials/todo_05_variable_quoted_doubleFails on shared build (gcc/clang) Looks like some issue with "\r"sass-spec-libsass-3.6.3/spec/parser/interpolate/26_escaped_literal_quotes/000077500000000000000000000000001355712145100266715ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/parser/interpolate/26_escaped_literal_quotes/01_inline.hrx000066400000000000000000000004621355712145100311740ustar00rootroot00000000000000<===> input.scss .result { output: \"\'; output: #{\"\'}; output: "[#{\"\'}]"; output: "#{\"\'}"; output: '#{\"\'}'; output: "['#{\"\'}']"; } <===> output.css .result { output: \"\'; output: \"\'; output: "[\\\"\\']"; output: "\\\"\\'"; output: "\\\"\\'"; output: "['\\\"\\'']"; } sass-spec-libsass-3.6.3/spec/parser/interpolate/26_escaped_literal_quotes/02_variable.hrx000066400000000000000000000005141355712145100315020ustar00rootroot00000000000000<===> input.scss $input: \"\'; .result { output: $input; output: #{$input}; output: "[#{$input}]"; output: "#{$input}"; output: '#{$input}'; output: "['#{$input}']"; } <===> output.css .result { output: \"\'; output: \"\'; output: "[\\\"\\']"; output: "\\\"\\'"; output: "\\\"\\'"; output: "['\\\"\\'']"; } sass-spec-libsass-3.6.3/spec/parser/interpolate/26_escaped_literal_quotes/03_inline_double.hrx000066400000000000000000000004151355712145100325260ustar00rootroot00000000000000<===> input.scss .result { output: #{#{\"\'}}; output: #{"[#{\"\'}]"}; output: #{"#{\"\'}"}; output: #{'#{\"\'}'}; output: #{"['#{\"\'}']"}; } <===> output.css .result { output: \"\'; output: [\"\']; output: \"\'; output: \"\'; output: ['\"\'']; } sass-spec-libsass-3.6.3/spec/parser/interpolate/26_escaped_literal_quotes/04_variable_double.hrx000066400000000000000000000004451355712145100330410ustar00rootroot00000000000000<===> input.scss $input: \"\'; .result { output: #{#{$input}}; output: #{"[#{$input}]"}; output: #{"#{$input}"}; output: #{'#{$input}'}; output: #{"['#{$input}']"}; } <===> output.css .result { output: \"\'; output: [\"\']; output: \"\'; output: \"\'; output: ['\"\'']; } 05_variable_quoted_double.hrx000066400000000000000000000011331355712145100343370ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/parser/interpolate/26_escaped_literal_quotes<===> input.scss $input: \"\'; .result { dquoted: "#{#{$input}}"; dquoted: "#{"[#{$input}]"}"; dquoted: "#{"#{$input}"}"; dquoted: "#{'#{$input}'}"; dquoted: "#{"['#{$input}']"}"; squoted: '#{#{$input}}'; squoted: '#{"[#{$input}]"}'; squoted: '#{"#{$input}"}'; squoted: '#{'#{$input}'}'; squoted: '#{"['#{$input}']"}'; } <===> output.css .result { dquoted: "\\\"\\'"; dquoted: "[\\\"\\']"; dquoted: "\\\"\\'"; dquoted: "\\\"\\'"; dquoted: "['\\\"\\'']"; squoted: "\\\"\\'"; squoted: "[\\\"\\']"; squoted: "\\\"\\'"; squoted: "\\\"\\'"; squoted: "['\\\"\\'']"; } 06_escape_interpolation.hrx000066400000000000000000000006031355712145100340500ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/parser/interpolate/26_escaped_literal_quotes<===> input.scss $input: \"\'; .result { output: "[\#{\"\'}]"; output: "\#{\"\'}"; output: '\#{\"\'}'; output: "['\#{\"\'}']"; } <===> output.css .result { output: "[\#{\"\'}]"; output: "\#{\"\'}"; output: '\#{\"\'}'; output: "['\#{\"\'}']"; } <===> output-dart-sass.css .result { output: "[#{\"'}]"; output: "#{\"'}"; output: "#{\"'}"; output: "['#{\"'}']"; } sass-spec-libsass-3.6.3/spec/parser/interpolate/27_escaped_double_quotes/000077500000000000000000000000001355712145100265105ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/parser/interpolate/27_escaped_double_quotes/01_inline.hrx000066400000000000000000000006371355712145100310170ustar00rootroot00000000000000<===> input.scss .result { output: "\""; output: #{"\""}; output: "[#{"\""}]"; output: "#{"\""}"; output: '#{"\""}'; output: "['#{"\""}']"; } <===> output.css .result { output: "\""; output: "; output: '["]'; output: '"'; output: '"'; output: "['\"']"; } <===> output-dart-sass.css .result { output: '"'; output: "; output: '["]'; output: '"'; output: '"'; output: "['\"']"; } sass-spec-libsass-3.6.3/spec/parser/interpolate/27_escaped_double_quotes/02_variable.hrx000066400000000000000000000004611355712145100313220ustar00rootroot00000000000000<===> input.scss $input: "\""; .result { output: $input; output: #{$input}; output: "[#{$input}]"; output: "#{$input}"; output: '#{$input}'; output: "['#{$input}']"; } <===> output.css .result { output: '"'; output: "; output: '["]'; output: '"'; output: '"'; output: "['\"']"; } sass-spec-libsass-3.6.3/spec/parser/interpolate/27_escaped_double_quotes/03_inline_double.hrx000066400000000000000000000003761355712145100323530ustar00rootroot00000000000000<===> input.scss .result { output: #{#{"\""}}; output: #{"[#{"\""}]"}; output: #{"#{"\""}"}; output: #{'#{"\""}'}; output: #{"['#{"\""}']"}; } <===> output.css .result { output: "; output: ["]; output: "; output: "; output: ['"']; } sass-spec-libsass-3.6.3/spec/parser/interpolate/27_escaped_double_quotes/04_variable_double.hrx000066400000000000000000000004261355712145100326570ustar00rootroot00000000000000<===> input.scss $input: "\""; .result { output: #{#{$input}}; output: #{"[#{$input}]"}; output: #{"#{$input}"}; output: #{'#{$input}'}; output: #{"['#{$input}']"}; } <===> output.css .result { output: "; output: ["]; output: "; output: "; output: ['"']; } 05_variable_quoted_double.hrx000066400000000000000000000010411355712145100341540ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/parser/interpolate/27_escaped_double_quotes<===> input.scss $input: "\""; .result { dquoted: "#{#{$input}}"; dquoted: "#{"[#{$input}]"}"; dquoted: "#{"#{$input}"}"; dquoted: "#{'#{$input}'}"; dquoted: "#{"['#{$input}']"}"; squoted: '#{#{$input}}'; squoted: '#{"[#{$input}]"}'; squoted: '#{"#{$input}"}'; squoted: '#{'#{$input}'}'; squoted: '#{"['#{$input}']"}'; } <===> output.css .result { dquoted: '"'; dquoted: '["]'; dquoted: '"'; dquoted: '"'; dquoted: "['\"']"; squoted: '"'; squoted: '["]'; squoted: '"'; squoted: '"'; squoted: "['\"']"; } sass-spec-libsass-3.6.3/spec/parser/interpolate/27_escaped_double_quotes/06_escape_interpolation.hrx000066400000000000000000000006171355712145100337530ustar00rootroot00000000000000<===> input.scss $input: "\""; .result { output: "[\#{"\""}]"; output: "\#{"\""}"; output: '\#{"\""}'; output: "['\#{"\""}']"; } <===> output.css .result { output: "[#{" \" "}]"; output: "#{" \" "}"; output: '\#{"\""}'; output: "['#{" \" "}']"; } <===> output-dart-sass.css .result { output: "[#{" \" "}]"; output: "#{" \" "}"; output: '#{"""}'; output: "['#{" \" "}']"; } sass-spec-libsass-3.6.3/spec/parser/interpolate/28_escaped_single_quotes/000077500000000000000000000000001355712145100265205ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/parser/interpolate/28_escaped_single_quotes/01_inline.hrx000066400000000000000000000006351355712145100310250ustar00rootroot00000000000000<===> input.scss .result { output: '\''; output: #{'\''}; output: "[#{'\''}]"; output: "#{'\''}"; output: '#{'\''}'; output: "['#{'\''}']"; } <===> output.css .result { output: '\''; output: '; output: "[']"; output: "'"; output: "'"; output: "[''']"; } <===> output-dart-sass.css .result { output: "'"; output: '; output: "[']"; output: "'"; output: "'"; output: "[''']"; } sass-spec-libsass-3.6.3/spec/parser/interpolate/28_escaped_single_quotes/02_variable.hrx000066400000000000000000000004601355712145100313310ustar00rootroot00000000000000<===> input.scss $input: '\''; .result { output: $input; output: #{$input}; output: "[#{$input}]"; output: "#{$input}"; output: '#{$input}'; output: "['#{$input}']"; } <===> output.css .result { output: "'"; output: '; output: "[']"; output: "'"; output: "'"; output: "[''']"; } sass-spec-libsass-3.6.3/spec/parser/interpolate/28_escaped_single_quotes/03_inline_double.hrx000066400000000000000000000003761355712145100323630ustar00rootroot00000000000000<===> input.scss .result { output: #{#{'\''}}; output: #{"[#{'\''}]"}; output: #{"#{'\''}"}; output: #{'#{'\''}'}; output: #{"['#{'\''}']"}; } <===> output.css .result { output: '; output: [']; output: '; output: '; output: [''']; } sass-spec-libsass-3.6.3/spec/parser/interpolate/28_escaped_single_quotes/04_variable_double.hrx000066400000000000000000000004261355712145100326670ustar00rootroot00000000000000<===> input.scss $input: '\''; .result { output: #{#{$input}}; output: #{"[#{$input}]"}; output: #{"#{$input}"}; output: #{'#{$input}'}; output: #{"['#{$input}']"}; } <===> output.css .result { output: '; output: [']; output: '; output: '; output: [''']; } 05_variable_quoted_double.hrx000066400000000000000000000010371355712145100341710ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/parser/interpolate/28_escaped_single_quotes<===> input.scss $input: '\''; .result { dquoted: "#{#{$input}}"; dquoted: "#{"[#{$input}]"}"; dquoted: "#{"#{$input}"}"; dquoted: "#{'#{$input}'}"; dquoted: "#{"['#{$input}']"}"; squoted: '#{#{$input}}'; squoted: '#{"[#{$input}]"}'; squoted: '#{"#{$input}"}'; squoted: '#{'#{$input}'}'; squoted: '#{"['#{$input}']"}'; } <===> output.css .result { dquoted: "'"; dquoted: "[']"; dquoted: "'"; dquoted: "'"; dquoted: "[''']"; squoted: "'"; squoted: "[']"; squoted: "'"; squoted: "'"; squoted: "[''']"; } sass-spec-libsass-3.6.3/spec/parser/interpolate/28_escaped_single_quotes/06_escape_interpolation.hrx000066400000000000000000000006071355712145100337620ustar00rootroot00000000000000<===> input.scss $input: '\''; .result { output: "[\#{'\''}]"; output: "\#{'\''}"; output: '\#{'\''}'; output: "['\#{'\''}']"; } <===> output.css .result { output: "[\#{'\''}]"; output: "\#{'\''}"; output: "#{" \' "}"; output: "['\#{'\''}']"; } <===> output-dart-sass.css .result { output: "[#{'''}]"; output: "#{'''}"; output: "#{" \' "}"; output: "['#{'''}']"; } sass-spec-libsass-3.6.3/spec/parser/interpolate/29_binary_operation/000077500000000000000000000000001355712145100255205ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/parser/interpolate/29_binary_operation/01_inline.hrx000066400000000000000000000006541355712145100300260ustar00rootroot00000000000000<===> input.scss .result { output: "foo#{'ba' + 'r'}baz"; output: #{"foo#{'ba' + 'r'}baz"}; output: "[#{"foo#{'ba' + 'r'}baz"}]"; output: "#{"foo#{'ba' + 'r'}baz"}"; output: '#{"foo#{'ba' + 'r'}baz"}'; output: "['#{"foo#{'ba' + 'r'}baz"}']"; } <===> output.css .result { output: "foobarbaz"; output: foobarbaz; output: "[foobarbaz]"; output: "foobarbaz"; output: "foobarbaz"; output: "['foobarbaz']"; } sass-spec-libsass-3.6.3/spec/parser/interpolate/29_binary_operation/02_variable.hrx000066400000000000000000000005611355712145100303330ustar00rootroot00000000000000<===> input.scss $input: "foo#{'ba' + 'r'}baz"; .result { output: $input; output: #{$input}; output: "[#{$input}]"; output: "#{$input}"; output: '#{$input}'; output: "['#{$input}']"; } <===> output.css .result { output: "foobarbaz"; output: foobarbaz; output: "[foobarbaz]"; output: "foobarbaz"; output: "foobarbaz"; output: "['foobarbaz']"; } sass-spec-libsass-3.6.3/spec/parser/interpolate/29_binary_operation/03_inline_double.hrx000066400000000000000000000005731355712145100313620ustar00rootroot00000000000000<===> input.scss .result { output: #{#{"foo#{'ba' + 'r'}baz"}}; output: #{"[#{"foo#{'ba' + 'r'}baz"}]"}; output: #{"#{"foo#{'ba' + 'r'}baz"}"}; output: #{'#{"foo#{'ba' + 'r'}baz"}'}; output: #{"['#{"foo#{'ba' + 'r'}baz"}']"}; } <===> output.css .result { output: foobarbaz; output: [foobarbaz]; output: foobarbaz; output: foobarbaz; output: ['foobarbaz']; } sass-spec-libsass-3.6.3/spec/parser/interpolate/29_binary_operation/04_variable_double.hrx000066400000000000000000000005171355712145100316700ustar00rootroot00000000000000<===> input.scss $input: "foo#{'ba' + 'r'}baz"; .result { output: #{#{$input}}; output: #{"[#{$input}]"}; output: #{"#{$input}"}; output: #{'#{$input}'}; output: #{"['#{$input}']"}; } <===> output.css .result { output: foobarbaz; output: [foobarbaz]; output: foobarbaz; output: foobarbaz; output: ['foobarbaz']; } sass-spec-libsass-3.6.3/spec/parser/interpolate/29_binary_operation/05_variable_quoted_double.hrx000066400000000000000000000012001355712145100332400ustar00rootroot00000000000000<===> input.scss $input: "foo#{'ba' + 'r'}baz"; .result { dquoted: "#{#{$input}}"; dquoted: "#{"[#{$input}]"}"; dquoted: "#{"#{$input}"}"; dquoted: "#{'#{$input}'}"; dquoted: "#{"['#{$input}']"}"; squoted: '#{#{$input}}'; squoted: '#{"[#{$input}]"}'; squoted: '#{"#{$input}"}'; squoted: '#{'#{$input}'}'; squoted: '#{"['#{$input}']"}'; } <===> output.css .result { dquoted: "foobarbaz"; dquoted: "[foobarbaz]"; dquoted: "foobarbaz"; dquoted: "foobarbaz"; dquoted: "['foobarbaz']"; squoted: "foobarbaz"; squoted: "[foobarbaz]"; squoted: "foobarbaz"; squoted: "foobarbaz"; squoted: "['foobarbaz']"; } sass-spec-libsass-3.6.3/spec/parser/interpolate/29_binary_operation/06_escape_interpolation.hrx000066400000000000000000000006501355712145100327600ustar00rootroot00000000000000<===> options.yml --- :warning_todo: - libsass <===> input.scss $input: "foo#{'ba' + 'r'}baz"; .result { output: "[\#{"foo#{'ba' + 'r'}baz"}]"; output: "\#{"foo#{'ba' + 'r'}baz"}"; output: '\#{"foo#{'ba' + 'r'}baz"}'; output: "['\#{"foo#{'ba' + 'r'}baz"}']"; } <===> output.css .result { output: "[#{" foobarbaz "}]"; output: "#{" foobarbaz "}"; output: '#{"foobarbaz"}'; output: "['#{" foobarbaz "}']"; } sass-spec-libsass-3.6.3/spec/parser/interpolate/30_base_test/000077500000000000000000000000001355712145100241155ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/parser/interpolate/30_base_test/01_inline.hrx000066400000000000000000000006541355712145100264230ustar00rootroot00000000000000<===> input.scss .result { output: "foo#{'ba' + 'r'}baz"; output: #{"foo#{'ba' + 'r'}baz"}; output: "[#{"foo#{'ba' + 'r'}baz"}]"; output: "#{"foo#{'ba' + 'r'}baz"}"; output: '#{"foo#{'ba' + 'r'}baz"}'; output: "['#{"foo#{'ba' + 'r'}baz"}']"; } <===> output.css .result { output: "foobarbaz"; output: foobarbaz; output: "[foobarbaz]"; output: "foobarbaz"; output: "foobarbaz"; output: "['foobarbaz']"; } sass-spec-libsass-3.6.3/spec/parser/interpolate/30_base_test/02_variable.hrx000066400000000000000000000005611355712145100267300ustar00rootroot00000000000000<===> input.scss $input: "foo#{'ba' + 'r'}baz"; .result { output: $input; output: #{$input}; output: "[#{$input}]"; output: "#{$input}"; output: '#{$input}'; output: "['#{$input}']"; } <===> output.css .result { output: "foobarbaz"; output: foobarbaz; output: "[foobarbaz]"; output: "foobarbaz"; output: "foobarbaz"; output: "['foobarbaz']"; } sass-spec-libsass-3.6.3/spec/parser/interpolate/30_base_test/03_inline_double.hrx000066400000000000000000000005731355712145100277570ustar00rootroot00000000000000<===> input.scss .result { output: #{#{"foo#{'ba' + 'r'}baz"}}; output: #{"[#{"foo#{'ba' + 'r'}baz"}]"}; output: #{"#{"foo#{'ba' + 'r'}baz"}"}; output: #{'#{"foo#{'ba' + 'r'}baz"}'}; output: #{"['#{"foo#{'ba' + 'r'}baz"}']"}; } <===> output.css .result { output: foobarbaz; output: [foobarbaz]; output: foobarbaz; output: foobarbaz; output: ['foobarbaz']; } sass-spec-libsass-3.6.3/spec/parser/interpolate/30_base_test/04_variable_double.hrx000066400000000000000000000005171355712145100302650ustar00rootroot00000000000000<===> input.scss $input: "foo#{'ba' + 'r'}baz"; .result { output: #{#{$input}}; output: #{"[#{$input}]"}; output: #{"#{$input}"}; output: #{'#{$input}'}; output: #{"['#{$input}']"}; } <===> output.css .result { output: foobarbaz; output: [foobarbaz]; output: foobarbaz; output: foobarbaz; output: ['foobarbaz']; } sass-spec-libsass-3.6.3/spec/parser/interpolate/30_base_test/05_variable_quoted_double.hrx000066400000000000000000000012001355712145100316350ustar00rootroot00000000000000<===> input.scss $input: "foo#{'ba' + 'r'}baz"; .result { dquoted: "#{#{$input}}"; dquoted: "#{"[#{$input}]"}"; dquoted: "#{"#{$input}"}"; dquoted: "#{'#{$input}'}"; dquoted: "#{"['#{$input}']"}"; squoted: '#{#{$input}}'; squoted: '#{"[#{$input}]"}'; squoted: '#{"#{$input}"}'; squoted: '#{'#{$input}'}'; squoted: '#{"['#{$input}']"}'; } <===> output.css .result { dquoted: "foobarbaz"; dquoted: "[foobarbaz]"; dquoted: "foobarbaz"; dquoted: "foobarbaz"; dquoted: "['foobarbaz']"; squoted: "foobarbaz"; squoted: "[foobarbaz]"; squoted: "foobarbaz"; squoted: "foobarbaz"; squoted: "['foobarbaz']"; } sass-spec-libsass-3.6.3/spec/parser/interpolate/30_base_test/06_escape_interpolation.hrx000066400000000000000000000006501355712145100313550ustar00rootroot00000000000000<===> options.yml --- :warning_todo: - libsass <===> input.scss $input: "foo#{'ba' + 'r'}baz"; .result { output: "[\#{"foo#{'ba' + 'r'}baz"}]"; output: "\#{"foo#{'ba' + 'r'}baz"}"; output: '\#{"foo#{'ba' + 'r'}baz"}'; output: "['\#{"foo#{'ba' + 'r'}baz"}']"; } <===> output.css .result { output: "[#{" foobarbaz "}]"; output: "#{" foobarbaz "}"; output: '#{"foobarbaz"}'; output: "['#{" foobarbaz "}']"; } sass-spec-libsass-3.6.3/spec/parser/interpolate/31_schema_simple/000077500000000000000000000000001355712145100247565ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/parser/interpolate/31_schema_simple/01_inline.hrx000066400000000000000000000005501355712145100272570ustar00rootroot00000000000000<===> input.scss .result { output: "["'foo'"]"; output: #{"["'foo'"]"}; output: "[#{"["'foo'"]"}]"; output: "#{"["'foo'"]"}"; output: '#{"["'foo'"]"}'; output: "['#{"["'foo'"]"}']"; } <===> output.css .result { output: "[" "foo" "]"; output: [ foo ]; output: "[[ foo ]]"; output: "[ foo ]"; output: "[ foo ]"; output: "['[ foo ]']"; } sass-spec-libsass-3.6.3/spec/parser/interpolate/31_schema_simple/02_variable.hrx000066400000000000000000000005371355712145100275740ustar00rootroot00000000000000<===> input.scss $input: "["'foo'"]"; .result { output: $input; output: #{$input}; output: "[#{$input}]"; output: "#{$input}"; output: '#{$input}'; output: "['#{$input}']"; } <===> output.css .result { output: "[" "foo" "]"; output: [ foo ]; output: "[[ foo ]]"; output: "[ foo ]"; output: "[ foo ]"; output: "['[ foo ]']"; } sass-spec-libsass-3.6.3/spec/parser/interpolate/31_schema_simple/03_inline_double.hrx000066400000000000000000000004771355712145100306230ustar00rootroot00000000000000<===> input.scss .result { output: #{#{"["'foo'"]"}}; output: #{"[#{"["'foo'"]"}]"}; output: #{"#{"["'foo'"]"}"}; output: #{'#{"["'foo'"]"}'}; output: #{"['#{"["'foo'"]"}']"}; } <===> output.css .result { output: [ foo ]; output: [[ foo ]]; output: [ foo ]; output: [ foo ]; output: ['[ foo ]']; } sass-spec-libsass-3.6.3/spec/parser/interpolate/31_schema_simple/04_variable_double.hrx000066400000000000000000000004731355712145100311270ustar00rootroot00000000000000<===> input.scss $input: "["'foo'"]"; .result { output: #{#{$input}}; output: #{"[#{$input}]"}; output: #{"#{$input}"}; output: #{'#{$input}'}; output: #{"['#{$input}']"}; } <===> output.css .result { output: [ foo ]; output: [[ foo ]]; output: [ foo ]; output: [ foo ]; output: ['[ foo ]']; } sass-spec-libsass-3.6.3/spec/parser/interpolate/31_schema_simple/05_variable_quoted_double.hrx000066400000000000000000000011421355712145100325030ustar00rootroot00000000000000<===> input.scss $input: "["'foo'"]"; .result { dquoted: "#{#{$input}}"; dquoted: "#{"[#{$input}]"}"; dquoted: "#{"#{$input}"}"; dquoted: "#{'#{$input}'}"; dquoted: "#{"['#{$input}']"}"; squoted: '#{#{$input}}'; squoted: '#{"[#{$input}]"}'; squoted: '#{"#{$input}"}'; squoted: '#{'#{$input}'}'; squoted: '#{"['#{$input}']"}'; } <===> output.css .result { dquoted: "[ foo ]"; dquoted: "[[ foo ]]"; dquoted: "[ foo ]"; dquoted: "[ foo ]"; dquoted: "['[ foo ]']"; squoted: "[ foo ]"; squoted: "[[ foo ]]"; squoted: "[ foo ]"; squoted: "[ foo ]"; squoted: "['[ foo ]']"; } sass-spec-libsass-3.6.3/spec/parser/interpolate/32_comma_list/000077500000000000000000000000001355712145100242755ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/parser/interpolate/32_comma_list/01_inline.hrx000066400000000000000000000006441355712145100266020ustar00rootroot00000000000000<===> input.scss .result { output: "["',foo, '"]"; output: #{"["',foo, '"]"}; output: "[#{"["',foo, '"]"}]"; output: "#{"["',foo, '"]"}"; output: '#{"["',foo, '"]"}'; output: "['#{"["',foo, '"]"}']"; } <===> output.css .result { output: "[" ",foo, " "]"; output: [ ,foo, ]; output: "[[ ,foo, ]]"; output: "[ ,foo, ]"; output: "[ ,foo, ]"; output: "['[ ,foo, ]']"; } sass-spec-libsass-3.6.3/spec/parser/interpolate/32_comma_list/02_variable.hrx000066400000000000000000000006021355712145100271040ustar00rootroot00000000000000<===> input.scss $input: "["',foo, '"]"; .result { output: $input; output: #{$input}; output: "[#{$input}]"; output: "#{$input}"; output: '#{$input}'; output: "['#{$input}']"; } <===> output.css .result { output: "[" ",foo, " "]"; output: [ ,foo, ]; output: "[[ ,foo, ]]"; output: "[ ,foo, ]"; output: "[ ,foo, ]"; output: "['[ ,foo, ]']"; } sass-spec-libsass-3.6.3/spec/parser/interpolate/32_comma_list/03_inline_double.hrx000066400000000000000000000005611355712145100301340ustar00rootroot00000000000000<===> input.scss .result { output: #{#{"["',foo, '"]"}}; output: #{"[#{"["',foo, '"]"}]"}; output: #{"#{"["',foo, '"]"}"}; output: #{'#{"["',foo, '"]"}'}; output: #{"['#{"["',foo, '"]"}']"}; } <===> output.css .result { output: [ ,foo, ]; output: [[ ,foo, ]]; output: [ ,foo, ]; output: [ ,foo, ]; output: ['[ ,foo, ]']; } sass-spec-libsass-3.6.3/spec/parser/interpolate/32_comma_list/04_variable_double.hrx000066400000000000000000000005311355712145100304410ustar00rootroot00000000000000<===> input.scss $input: "["',foo, '"]"; .result { output: #{#{$input}}; output: #{"[#{$input}]"}; output: #{"#{$input}"}; output: #{'#{$input}'}; output: #{"['#{$input}']"}; } <===> output.css .result { output: [ ,foo, ]; output: [[ ,foo, ]]; output: [ ,foo, ]; output: [ ,foo, ]; output: ['[ ,foo, ]']; } sass-spec-libsass-3.6.3/spec/parser/interpolate/32_comma_list/05_variable_quoted_double.hrx000066400000000000000000000012311355712145100320210ustar00rootroot00000000000000<===> input.scss $input: "["',foo, '"]"; .result { dquoted: "#{#{$input}}"; dquoted: "#{"[#{$input}]"}"; dquoted: "#{"#{$input}"}"; dquoted: "#{'#{$input}'}"; dquoted: "#{"['#{$input}']"}"; squoted: '#{#{$input}}'; squoted: '#{"[#{$input}]"}'; squoted: '#{"#{$input}"}'; squoted: '#{'#{$input}'}'; squoted: '#{"['#{$input}']"}'; } <===> output.css .result { dquoted: "[ ,foo, ]"; dquoted: "[[ ,foo, ]]"; dquoted: "[ ,foo, ]"; dquoted: "[ ,foo, ]"; dquoted: "['[ ,foo, ]']"; squoted: "[ ,foo, ]"; squoted: "[[ ,foo, ]]"; squoted: "[ ,foo, ]"; squoted: "[ ,foo, ]"; squoted: "['[ ,foo, ]']"; } sass-spec-libsass-3.6.3/spec/parser/interpolate/33_space_list/000077500000000000000000000000001355712145100242755ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/parser/interpolate/33_space_list/01_inline.hrx000066400000000000000000000007341355712145100266020ustar00rootroot00000000000000<===> input.scss .result { output: "["'foo '"]" "bar"; output: #{"["'foo '"]" "bar"}; output: "[#{"["'foo '"]" "bar"}]"; output: "#{"["'foo '"]" "bar"}"; output: '#{"["'foo '"]" "bar"}'; output: "['#{"["'foo '"]" "bar"}']"; } <===> output.css .result { output: "[" "foo " "]" "bar"; output: [ foo ] bar; output: "[[ foo ] bar]"; output: "[ foo ] bar"; output: "[ foo ] bar"; output: "['[ foo ] bar']"; } sass-spec-libsass-3.6.3/spec/parser/interpolate/33_space_list/02_variable.hrx000066400000000000000000000006271355712145100271130ustar00rootroot00000000000000<===> input.scss $input: "["'foo '"]" "bar"; .result { output: $input; output: #{$input}; output: "[#{$input}]"; output: "#{$input}"; output: '#{$input}'; output: "['#{$input}']"; } <===> output.css .result { output: "[" "foo " "]" "bar"; output: [ foo ] bar; output: "[[ foo ] bar]"; output: "[ foo ] bar"; output: "[ foo ] bar"; output: "['[ foo ] bar']"; } sass-spec-libsass-3.6.3/spec/parser/interpolate/33_space_list/03_inline_double.hrx000066400000000000000000000006361355712145100301370ustar00rootroot00000000000000<===> input.scss .result { output: #{#{"["'foo '"]" "bar"}}; output: #{"[#{"["'foo '"]" "bar"}]"}; output: #{"#{"["'foo '"]" "bar"}"}; output: #{'#{"["'foo '"]" "bar"}'}; output: #{"['#{"["'foo '"]" "bar"}']"}; } <===> output.css .result { output: [ foo ] bar; output: [[ foo ] bar]; output: [ foo ] bar; output: [ foo ] bar; output: ['[ foo ] bar']; } sass-spec-libsass-3.6.3/spec/parser/interpolate/33_space_list/04_variable_double.hrx000066400000000000000000000005521355712145100304440ustar00rootroot00000000000000<===> input.scss $input: "["'foo '"]" "bar"; .result { output: #{#{$input}}; output: #{"[#{$input}]"}; output: #{"#{$input}"}; output: #{'#{$input}'}; output: #{"['#{$input}']"}; } <===> output.css .result { output: [ foo ] bar; output: [[ foo ] bar]; output: [ foo ] bar; output: [ foo ] bar; output: ['[ foo ] bar']; } sass-spec-libsass-3.6.3/spec/parser/interpolate/33_space_list/05_variable_quoted_double.hrx000066400000000000000000000012641355712145100320270ustar00rootroot00000000000000<===> input.scss $input: "["'foo '"]" "bar"; .result { dquoted: "#{#{$input}}"; dquoted: "#{"[#{$input}]"}"; dquoted: "#{"#{$input}"}"; dquoted: "#{'#{$input}'}"; dquoted: "#{"['#{$input}']"}"; squoted: '#{#{$input}}'; squoted: '#{"[#{$input}]"}'; squoted: '#{"#{$input}"}'; squoted: '#{'#{$input}'}'; squoted: '#{"['#{$input}']"}'; } <===> output.css .result { dquoted: "[ foo ] bar"; dquoted: "[[ foo ] bar]"; dquoted: "[ foo ] bar"; dquoted: "[ foo ] bar"; dquoted: "['[ foo ] bar']"; squoted: "[ foo ] bar"; squoted: "[[ foo ] bar]"; squoted: "[ foo ] bar"; squoted: "[ foo ] bar"; squoted: "['[ foo ] bar']"; } sass-spec-libsass-3.6.3/spec/parser/interpolate/34_mixed_list/000077500000000000000000000000001355712145100243115ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/parser/interpolate/34_mixed_list/01_inline.hrx000066400000000000000000000010301355712145100266040ustar00rootroot00000000000000<===> input.scss .result { output: "["',foo , '"]" "bar"; output: #{"["',foo , '"]" "bar"}; output: "[#{"["',foo , '"]" "bar"}]"; output: "#{"["',foo , '"]" "bar"}"; output: '#{"["',foo , '"]" "bar"}'; output: "['#{"["',foo , '"]" "bar"}']"; } <===> output.css .result { output: "[" ",foo , " "]" "bar"; output: [ ,foo , ] bar; output: "[[ ,foo , ] bar]"; output: "[ ,foo , ] bar"; output: "[ ,foo , ] bar"; output: "['[ ,foo , ] bar']"; } sass-spec-libsass-3.6.3/spec/parser/interpolate/34_mixed_list/02_variable.hrx000066400000000000000000000006721355712145100271270ustar00rootroot00000000000000<===> input.scss $input: "["',foo , '"]" "bar"; .result { output: $input; output: #{$input}; output: "[#{$input}]"; output: "#{$input}"; output: '#{$input}'; output: "['#{$input}']"; } <===> output.css .result { output: "[" ",foo , " "]" "bar"; output: [ ,foo , ] bar; output: "[[ ,foo , ] bar]"; output: "[ ,foo , ] bar"; output: "[ ,foo , ] bar"; output: "['[ ,foo , ] bar']"; } sass-spec-libsass-3.6.3/spec/parser/interpolate/34_mixed_list/03_inline_double.hrx000066400000000000000000000007201355712145100301450ustar00rootroot00000000000000<===> input.scss .result { output: #{#{"["',foo , '"]" "bar"}}; output: #{"[#{"["',foo , '"]" "bar"}]"}; output: #{"#{"["',foo , '"]" "bar"}"}; output: #{'#{"["',foo , '"]" "bar"}'}; output: #{"['#{"["',foo , '"]" "bar"}']"}; } <===> output.css .result { output: [ ,foo , ] bar; output: [[ ,foo , ] bar]; output: [ ,foo , ] bar; output: [ ,foo , ] bar; output: ['[ ,foo , ] bar']; } sass-spec-libsass-3.6.3/spec/parser/interpolate/34_mixed_list/04_variable_double.hrx000066400000000000000000000006101355712145100304530ustar00rootroot00000000000000<===> input.scss $input: "["',foo , '"]" "bar"; .result { output: #{#{$input}}; output: #{"[#{$input}]"}; output: #{"#{$input}"}; output: #{'#{$input}'}; output: #{"['#{$input}']"}; } <===> output.css .result { output: [ ,foo , ] bar; output: [[ ,foo , ] bar]; output: [ ,foo , ] bar; output: [ ,foo , ] bar; output: ['[ ,foo , ] bar']; } sass-spec-libsass-3.6.3/spec/parser/interpolate/34_mixed_list/05_variable_quoted_double.hrx000066400000000000000000000013531355712145100320420ustar00rootroot00000000000000<===> input.scss $input: "["',foo , '"]" "bar"; .result { dquoted: "#{#{$input}}"; dquoted: "#{"[#{$input}]"}"; dquoted: "#{"#{$input}"}"; dquoted: "#{'#{$input}'}"; dquoted: "#{"['#{$input}']"}"; squoted: '#{#{$input}}'; squoted: '#{"[#{$input}]"}'; squoted: '#{"#{$input}"}'; squoted: '#{'#{$input}'}'; squoted: '#{"['#{$input}']"}'; } <===> output.css .result { dquoted: "[ ,foo , ] bar"; dquoted: "[[ ,foo , ] bar]"; dquoted: "[ ,foo , ] bar"; dquoted: "[ ,foo , ] bar"; dquoted: "['[ ,foo , ] bar']"; squoted: "[ ,foo , ] bar"; squoted: "[[ ,foo , ] bar]"; squoted: "[ ,foo , ] bar"; squoted: "[ ,foo , ] bar"; squoted: "['[ ,foo , ] bar']"; } sass-spec-libsass-3.6.3/spec/parser/interpolate/44_selector/000077500000000000000000000000001355712145100237715ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/parser/interpolate/44_selector/colon_twice_todo.hrx000066400000000000000000000007611355712145100300520ustar00rootroot00000000000000<===> options.yml --- :todo: - libsass <===> input.scss test { filter: progid:DXImageTransform.Microsoft.#{Alpha(opacity=20)}; } <===> error Error: Invalid CSS after " filter: progid": expected ";", was ":DXImageTransfo..." on line 2 of input.scss Use --trace for backtrace. <===> error-dart-sass Error: expected "(". , 2 | filter: progid:DXImageTransform.Microsoft.#{Alpha(opacity=20)}; | ^ ' input.scss 2:45 root stylesheet sass-spec-libsass-3.6.3/spec/parser/interpolate/44_selector/double_escape/000077500000000000000000000000001355712145100265635ustar00rootroot0000000000000012_double_escaped_interpolated_value_todo.hrx000066400000000000000000000002751355712145100374660ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/parser/interpolate/44_selector/double_escape<===> input.scss $key: 'bar'; .test12#{'\\@#{$key}'} { content: '1.2'; } <===> output.css .test12\@bar { content: '1.2'; } <===> output-dart-sass.css .test12\@bar { content: "1.2"; } 22_double_escaped_interpolated_variable.hrx000066400000000000000000000003211355712145100371030ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/parser/interpolate/44_selector/double_escape<===> input.scss $key: 'bar'; $suffix2: '\\@#{$key}'; .test22#{$suffix2} { content: '2.2'; } <===> output.css .test22\@bar { content: '2.2'; } <===> output-dart-sass.css .test22\@bar { content: "2.2"; } 32_double_escaped_literal.hrx000066400000000000000000000002541355712145100342060ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/parser/interpolate/44_selector/double_escape<===> input.scss .test32#{'\\@baz'} { content: '3.2'; } <===> output.css .test32\@baz { content: '3.2'; } <===> output-dart-sass.css .test32\@baz { content: "3.2"; } sass-spec-libsass-3.6.3/spec/parser/interpolate/44_selector/todo_single_escape/000077500000000000000000000000001355712145100276175ustar00rootroot0000000000000011_escaped_interpolated_value.hrx000066400000000000000000000005371355712145100361430ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/parser/interpolate/44_selector/todo_single_escape<===> input.scss $key: 'bar'; .test11#{'\@#{$key}'} { content: '1.1'; } <===> error Error: Invalid CSS after ".test11": expected selector, was "@bar" on line 2 of input.scss Use --trace for backtrace. <===> error-dart-sass Error: expected selector. , 2 | .test11@bar{ content: '1.1'; } | ^ ' input.scss 2:8 root stylesheet 21_escaped_interpolated_variable.hrx000066400000000000000000000005631355712145100366140ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/parser/interpolate/44_selector/todo_single_escape<===> input.scss $key: 'bar'; $suffix1: '\@#{$key}'; .test21#{$suffix1} { content: '2.1'; } <===> error Error: Invalid CSS after ".test21": expected selector, was "@bar" on line 3 of input.scss Use --trace for backtrace. <===> error-dart-sass Error: expected selector. , 3 | .test21@bar{ content: '2.1'; } | ^ ' input.scss 3:8 root stylesheet 31_escaped_literal.hrx000066400000000000000000000005161355712145100337100ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/parser/interpolate/44_selector/todo_single_escape<===> input.scss .test31#{'\@baz'} { content: '3.1'; } <===> error Error: Invalid CSS after ".test31": expected selector, was "@baz" on line 1 of input.scss Use --trace for backtrace. <===> error-dart-sass Error: expected selector. , 1 | .test31@baz{ content: '3.1'; } | ^ ' input.scss 1:8 root stylesheet sass-spec-libsass-3.6.3/spec/parser/interpolate/interpolate.pl000066400000000000000000000100051355712145100245210ustar00rootroot00000000000000use strict; use warnings; use File::chdir; my @input = ( ['01_literal', qq(literal)], ['02_double_quoted', qq("dquoted")], ['03_single_quoted', qq('squoted')], ['04_space_list_quoted', qq("alpha" 'beta')], ['05_comma_list_quoted', qq("alpha", 'beta')], ['06_space_list_complex', qq(gamme "'"delta"'")], ['07_comma_list_complex', qq(gamma, "'"delta"'")], ['10_escaped_backslash', qq(\\\\)], ['11_escaped_literal', qq(l\\\\ite\\ral)], ['12_escaped_double_quoted', qq("l\\\\ite\\ral")], ['13_escaped_single_quoted', qq('l\\\\ite\\ral')], ['14_escapes_literal_numbers', qq(\\1\\2\\3\\4\\5\\6\\7\\8\\9)], ['15_escapes_double_quoted_numbers', qq("\\1\\2\\3\\4\\5\\6\\7\\8\\9")], ['16_escapes_single_quoted_numbers', qq('\\1\\2\\3\\4\\5\\6\\7\\8\\9')], ['17_escapes_literal_lowercase', qq(\\b\\c\\d\\e\\f\\g\\h\\i\\j\\k\\l\\m\\n\\o\\p\\q\\r\\s\\t\\u\\v\\w\\x\\y\\z)], ['18_escapes_double_quoted_lowercase', qq("\\b\\c\\d\\e\\f\\g\\h\\i\\j\\k\\l\\m\\n\\o\\p\\q\\r\\s\\t\\u\\v\\w\\x\\y\\z")], ['19_escapes_single_quoted_lowercase', qq('\\b\\c\\d\\e\\f\\g\\h\\i\\j\\k\\l\\m\\n\\o\\p\\q\\r\\s\\t\\u\\v\\w\\x\\y\\z')], ['20_escapes_literal_uppercase', qq(\\B\\C\\D\\E\\F\\G\\H\\I\\J\\K\\L\\M\\N\\O\\P\\Q\\R\\S\\T\\U\\V\\W\\X\\Y\\Z)], ['21_escapes_double_quoted_uppercase', qq("\\B\\C\\D\\E\\F\\G\\H\\I\\J\\K\\L\\M\\N\\O\\P\\Q\\R\\S\\T\\U\\V\\W\\X\\Y\\Z")], ['22_escapes_single_quoted_uppercase', qq('\\B\\C\\D\\E\\F\\G\\H\\I\\J\\K\\L\\M\\N\\O\\P\\Q\\R\\S\\T\\U\\V\\W\\X\\Y\\Z')], ['23_escapes_literal_specials', qq(\\0_\\a_\\A)], ['24_escapes_double_quoted_specials', qq("\\0_\\a_\\A")], ['25_escapes_single_quoted_specials', qq('\\0_\\a_\\A')], ['26_escaped_literal_quotes', qq(\\\"\\\')], ['27_escaped_double_quotes', qq("\\\"")], ['28_escaped_single_quotes', qq('\\\'')], ['29_binary_operation', qq("foo#{'ba' + 'r'}baz")], ['30_base_test', qq("foo#{'ba' + 'r'}baz")], ['31_schema_simple', qq("["'foo'"]")], ['32_comma_list', qq("["',foo, '"]")], ['33_space_list', qq("["'foo '"]" "bar")], ['34_mixed_list', qq("["',foo , '"]" "bar")], ); my @template; push @template, "01_inline"; push @template, << "EOF"; .result { output: %%; output: #{%%}; output: "[#{%%}]"; output: "#{%%}"; output: '#{%%}'; output: "['#{%%}']"; } EOF push @template, "02_variable"; push @template, << "EOF"; \$input: %%; .result { output: \$input; output: #{\$input}; output: "[#{\$input}]"; output: "#{\$input}"; output: '#{\$input}'; output: "['#{\$input}']"; } EOF push @template, "03_inline_double"; push @template, << "EOF"; .result { output: #{#{%%}}; output: #{"[#{%%}]"}; output: #{"#{%%}"}; output: #{'#{%%}'}; output: #{"['#{%%}']"}; } EOF push @template, "04_variable_double"; push @template, << "EOF"; \$input: %%; .result { output: #{#{\$input}}; output: #{"[#{\$input}]"}; output: #{"#{\$input}"}; output: #{'#{\$input}'}; output: #{"['#{\$input}']"}; } EOF push @template, "05_variable_quoted_double"; push @template, << "EOF"; \$input: %%; .result { dquoted: "#{#{\$input}}"; dquoted: "#{"[#{\$input}]"}"; dquoted: "#{"#{\$input}"}"; dquoted: "#{'#{\$input}'}"; dquoted: "#{"['#{\$input}']"}"; squoted: '#{#{\$input}}'; squoted: '#{"[#{\$input}]"}'; squoted: '#{"#{\$input}"}'; squoted: '#{'#{\$input}'}'; squoted: '#{"['#{\$input}']"}'; } EOF # ruby sass cannot handle these cases ... # pop(@template); pop(@template); push @template, "06_escape_interpolation"; push @template, << "EOF"; \$input: %%; .result { output: "[\\#{%%}]"; output: "\\#{%%}"; output: '\\#{%%}'; output: "['\\#{%%}']"; } EOF sub render { use File::Slurp qw(write_file); my ($names, $template, $input) = @_; $template =~ s/\%\%/$input/g; local $CWD = $CWD; foreach (@{$names}) { mkdir $_; $CWD = $_; } print "created ", join("/", @{$names}), "\n"; return write_file('input.scss', { binmode => ':raw' }, $template); } while (defined(my $name = shift @template)) { my $template = shift(@template); foreach my $input (@input) { render([$input->[0], $name], $template, $input->[1]); } } # <>;sass-spec-libsass-3.6.3/spec/parser/malformed_expressions/000077500000000000000000000000001355712145100237245ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/parser/malformed_expressions/at-debug/000077500000000000000000000000001355712145100254145ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/parser/malformed_expressions/at-debug/incomplete-expression.hrx000066400000000000000000000003461355712145100324760ustar00rootroot00000000000000<===> input.scss @debug("foo"; <===> error Error: Invalid CSS after "@debug("foo"": expected ")", was ";" <===> error-dart-sass Error: expected ")". , 1 | @debug("foo"; | ^ ' input.scss 1:13 root stylesheet sass-spec-libsass-3.6.3/spec/parser/malformed_expressions/at-debug/no-argument.hrx000066400000000000000000000003541355712145100303750ustar00rootroot00000000000000<===> input.scss @debug; <===> error Error: Invalid CSS after "@debug": expected expression (e.g. 1px, bold), was ";" <===> error-dart-sass Error: Expected expression. , 1 | @debug; | ^ ' input.scss 1:7 root stylesheet sass-spec-libsass-3.6.3/spec/parser/malformed_expressions/at-error/000077500000000000000000000000001355712145100254575ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/parser/malformed_expressions/at-error/incomplete-expression.hrx000066400000000000000000000003461355712145100325410ustar00rootroot00000000000000<===> input.scss @error("foo"; <===> error Error: Invalid CSS after "@error("foo"": expected ")", was ";" <===> error-dart-sass Error: expected ")". , 1 | @error("foo"; | ^ ' input.scss 1:13 root stylesheet sass-spec-libsass-3.6.3/spec/parser/malformed_expressions/at-error/no-argument.hrx000066400000000000000000000003541355712145100304400ustar00rootroot00000000000000<===> input.scss @error; <===> error Error: Invalid CSS after "@error": expected expression (e.g. 1px, bold), was ";" <===> error-dart-sass Error: Expected expression. , 1 | @error; | ^ ' input.scss 1:7 root stylesheet sass-spec-libsass-3.6.3/spec/parser/malformed_expressions/at-warn/000077500000000000000000000000001355712145100252755ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/parser/malformed_expressions/at-warn/incomplete-expression.hrx000066400000000000000000000003421355712145100323530ustar00rootroot00000000000000<===> input.scss @warn("foo"; <===> error Error: Invalid CSS after "@warn("foo"": expected ")", was ";" <===> error-dart-sass Error: expected ")". , 1 | @warn("foo"; | ^ ' input.scss 1:12 root stylesheet sass-spec-libsass-3.6.3/spec/parser/malformed_expressions/at-warn/no-argument.hrx000066400000000000000000000003501355712145100302520ustar00rootroot00000000000000<===> input.scss @warn; <===> error Error: Invalid CSS after "@warn": expected expression (e.g. 1px, bold), was ";" <===> error-dart-sass Error: Expected expression. , 1 | @warn; | ^ ' input.scss 1:6 root stylesheet sass-spec-libsass-3.6.3/spec/parser/malformed_expressions/options.yml000066400000000000000000000000251355712145100261370ustar00rootroot00000000000000--- :todo: - libsass sass-spec-libsass-3.6.3/spec/parser/operations/000077500000000000000000000000001355712145100214775ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/parser/operations/addition/000077500000000000000000000000001355712145100232725ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/parser/operations/addition/dimensions/000077500000000000000000000000001355712145100254425ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/parser/operations/addition/dimensions/pairs.hrx000066400000000000000000000132061355712145100273050ustar00rootroot00000000000000<===> options.yml --- :todo: - libsass <===> input.scss foo { test-1: 10+10; test-2: 10 +10; test-3: 10+ 10; test-4: 10 + 10; test-5: 10+10px; test-6: 10 +10px; test-7: 10+ 10px; test-8: 10 + 10px; test-9: 10+#{10}px; test-10: 10 +#{10}px; test-11: 10+ #{10}px; test-12: 10 + #{10}px; test-13: 10+1#{0}px; test-14: 10 +1#{0}px; test-15: 10+ 1#{0}px; test-16: 10 + 1#{0}px; test-17: 10+10#{px}; test-18: 10 +10#{px}; test-19: 10+ 10#{px}; test-20: 10 + 10#{px}; test-21: 10+10#{p}x; test-22: 10 +10#{p}x; test-23: 10+ 10#{p}x; test-24: 10 + 10#{p}x; test-25: 10px+10px; test-26: 10px +10px; test-27: 10px+ 10px; test-28: 10px + 10px; test-29: 10px+#{10}px; test-30: 10px +#{10}px; test-31: 10px+ #{10}px; test-32: 10px + #{10}px; test-33: 10px+1#{0}px; test-34: 10px +1#{0}px; test-35: 10px+ 1#{0}px; test-36: 10px + 1#{0}px; test-37: 10px+10#{px}; test-38: 10px +10#{px}; test-39: 10px+ 10#{px}; test-40: 10px + 10#{px}; test-41: 10px+10#{p}x; test-42: 10px +10#{p}x; test-43: 10px+ 10#{p}x; test-44: 10px + 10#{p}x; test-45: #{10}px+#{10}px; test-46: #{10}px +#{10}px; test-47: #{10}px+ #{10}px; test-48: #{10}px + #{10}px; test-49: #{10}px+1#{0}px; test-50: #{10}px +1#{0}px; test-51: #{10}px+ 1#{0}px; test-52: #{10}px + 1#{0}px; test-53: #{10}px+10#{px}; test-54: #{10}px +10#{px}; test-55: #{10}px+ 10#{px}; test-56: #{10}px + 10#{px}; test-57: #{10}px+10#{p}x; test-58: #{10}px +10#{p}x; test-59: #{10}px+ 10#{p}x; test-60: #{10}px + 10#{p}x; test-61: 1#{0}px+1#{0}px; test-62: 1#{0}px +1#{0}px; test-63: 1#{0}px+ 1#{0}px; test-64: 1#{0}px + 1#{0}px; test-65: 1#{0}px+10#{px}; test-66: 1#{0}px +10#{px}; test-67: 1#{0}px+ 10#{px}; test-68: 1#{0}px + 10#{px}; test-69: 1#{0}px+10#{p}x; test-70: 1#{0}px +10#{p}x; test-71: 1#{0}px+ 10#{p}x; test-72: 1#{0}px + 10#{p}x; test-73: 10#{px}+10#{px}; test-74: 10#{px} +10#{px}; test-75: 10#{px}+ 10#{px}; test-76: 10#{px} + 10#{px}; test-77: 10#{px}+10#{p}x; test-78: 10#{px} +10#{p}x; test-79: 10#{px}+ 10#{p}x; test-80: 10#{px} + 10#{p}x; test-81: 10#{p}x+10#{p}x; test-82: 10#{p}x +10#{p}x; test-83: 10#{p}x+ 10#{p}x; test-84: 10#{p}x + 10#{p}x; } <===> output.css foo { test-1: 20; test-2: 10 +10; test-3: 20; test-4: 20; test-5: 20px; test-6: 10 +10px; test-7: 20px; test-8: 20px; test-9: 1010px; test-10: 1010px; test-11: 1010px; test-12: 1010px; test-13: 11 0px; test-14: 11 0px; test-15: 11 0px; test-16: 11 0px; test-17: 20 px; test-18: 20 px; test-19: 20 px; test-20: 20 px; test-21: 20 px; test-22: 20 px; test-23: 20 px; test-24: 20 px; test-25: 20px; test-26: 10px +10px; test-27: 20px; test-28: 20px; test-29: 10px10px; test-30: 10px10px; test-31: 10px10px; test-32: 10px10px; test-33: 11px 0px; test-34: 11px 0px; test-35: 11px 0px; test-36: 11px 0px; test-37: 20px px; test-38: 20px px; test-39: 20px px; test-40: 20px px; test-41: 20px px; test-42: 20px px; test-43: 20px px; test-44: 20px px; test-45: 10px10px; test-46: 10px10px; test-47: 10px10px; test-48: 10px10px; test-49: 10px1 0px; test-50: 10px1 0px; test-51: 10px1 0px; test-52: 10px1 0px; test-53: 10px10 px; test-54: 10px10 px; test-55: 10px10 px; test-56: 10px10 px; test-57: 10px10 px; test-58: 10px10 px; test-59: 10px10 px; test-60: 10px10 px; test-61: 1 0px1 0px; test-62: 1 0px1 0px; test-63: 1 0px1 0px; test-64: 1 0px1 0px; test-65: 1 0px10 px; test-66: 1 0px10 px; test-67: 1 0px10 px; test-68: 1 0px10 px; test-69: 1 0px10 px; test-70: 1 0px10 px; test-71: 1 0px10 px; test-72: 1 0px10 px; test-73: 10 px10 px; test-74: 10 px10 px; test-75: 10 px10 px; test-76: 10 px10 px; test-77: 10 px10 px; test-78: 10 px10 px; test-79: 10 px10 px; test-80: 10 px10 px; test-81: 10 px10 px; test-82: 10 px10 px; test-83: 10 px10 px; test-84: 10 px10 px; } <===> output-dart-sass.css foo { test-1: 20; test-2: 20; test-3: 20; test-4: 20; test-5: 20px; test-6: 20px; test-7: 20px; test-8: 20px; test-9: 1010px; test-10: 1010px; test-11: 1010px; test-12: 1010px; test-13: 11 0px; test-14: 11 0px; test-15: 11 0px; test-16: 11 0px; test-17: 20 px; test-18: 20 px; test-19: 20 px; test-20: 20 px; test-21: 20 px; test-22: 20 px; test-23: 20 px; test-24: 20 px; test-25: 20px; test-26: 20px; test-27: 20px; test-28: 20px; test-29: 10px10px; test-30: 10px10px; test-31: 10px10px; test-32: 10px10px; test-33: 11px 0px; test-34: 11px 0px; test-35: 11px 0px; test-36: 11px 0px; test-37: 20px px; test-38: 20px px; test-39: 20px px; test-40: 20px px; test-41: 20px px; test-42: 20px px; test-43: 20px px; test-44: 20px px; test-45: 10px10px; test-46: 10px10px; test-47: 10px10px; test-48: 10px10px; test-49: 10px1 0px; test-50: 10px1 0px; test-51: 10px1 0px; test-52: 10px1 0px; test-53: 10px10 px; test-54: 10px10 px; test-55: 10px10 px; test-56: 10px10 px; test-57: 10px10 px; test-58: 10px10 px; test-59: 10px10 px; test-60: 10px10 px; test-61: 1 0px1 0px; test-62: 1 0px1 0px; test-63: 1 0px1 0px; test-64: 1 0px1 0px; test-65: 1 0px10 px; test-66: 1 0px10 px; test-67: 1 0px10 px; test-68: 1 0px10 px; test-69: 1 0px10 px; test-70: 1 0px10 px; test-71: 1 0px10 px; test-72: 1 0px10 px; test-73: 10 px10 px; test-74: 10 px10 px; test-75: 10 px10 px; test-76: 10 px10 px; test-77: 10 px10 px; test-78: 10 px10 px; test-79: 10 px10 px; test-80: 10 px10 px; test-81: 10 px10 px; test-82: 10 px10 px; test-83: 10 px10 px; test-84: 10 px10 px; } sass-spec-libsass-3.6.3/spec/parser/operations/addition/numbers/000077500000000000000000000000001355712145100247455ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/parser/operations/addition/numbers/pairs.hrx000066400000000000000000000045641355712145100266170ustar00rootroot00000000000000<===> options.yml --- :todo: - libsass <===> input.scss foo { test-1: 10+10; test-2: 10 +10; test-3: 10+ 10; test-4: 10 + 10; test-5: 10+#{10}; test-6: 10 +#{10}; test-7: 10+ #{10}; test-8: 10 + #{10}; test-9: 10+1#{0}; test-10: 10 +1#{0}; test-11: 10+ 1#{0}; test-12: 10 + 1#{0}; test-13: 10+#{1}0; test-14: 10 +#{1}0; test-15: 10+ #{1}0; test-16: 10 + #{1}0; test-17: #{10}+#{10}; test-18: #{10} +#{10}; test-19: #{10}+ #{10}; test-20: #{10} + #{10}; test-21: #{10}+1#{0}; test-22: #{10} +1#{0}; test-23: #{10}+ 1#{0}; test-24: #{10} + 1#{0}; test-25: #{10}+#{1}0; test-26: #{10} +#{1}0; test-27: #{10}+ #{1}0; test-28: #{10} + #{1}0; test-29: 1#{0}+1#{0}; test-30: 1#{0} +1#{0}; test-31: 1#{0}+ 1#{0}; test-32: 1#{0} + 1#{0}; test-33: 1#{0}+#{1}0; test-34: 1#{0} +#{1}0; test-35: 1#{0}+ #{1}0; test-36: 1#{0} + #{1}0; test-37: #{1}0+#{1}0; test-38: #{1}0 +#{1}0; test-39: #{1}0+ #{1}0; test-40: #{1}0 + #{1}0; } <===> output.css foo { test-1: 20; test-2: 10 +10; test-3: 20; test-4: 20; test-5: 1010; test-6: 1010; test-7: 1010; test-8: 1010; test-9: 11 0; test-10: 11 0; test-11: 11 0; test-12: 11 0; test-13: 1010; test-14: 1010; test-15: 1010; test-16: 1010; test-17: 1010; test-18: 1010; test-19: 1010; test-20: 1010; test-21: 101 0; test-22: 101 0; test-23: 101 0; test-24: 101 0; test-25: 1010; test-26: 1010; test-27: 1010; test-28: 1010; test-29: 1 01 0; test-30: 1 01 0; test-31: 1 01 0; test-32: 1 01 0; test-33: 1 010; test-34: 1 010; test-35: 1 010; test-36: 1 010; test-37: 1010; test-38: 1010; test-39: 1010; test-40: 1010; } <===> output-dart-sass.css foo { test-1: 20; test-2: 20; test-3: 20; test-4: 20; test-5: 1010; test-6: 1010; test-7: 1010; test-8: 1010; test-9: 11 0; test-10: 11 0; test-11: 11 0; test-12: 11 0; test-13: 1010; test-14: 1010; test-15: 1010; test-16: 1010; test-17: 1010; test-18: 1010; test-19: 1010; test-20: 1010; test-21: 101 0; test-22: 101 0; test-23: 101 0; test-24: 101 0; test-25: 1010; test-26: 1010; test-27: 1010; test-28: 1010; test-29: 1 01 0; test-30: 1 01 0; test-31: 1 01 0; test-32: 1 01 0; test-33: 1 010; test-34: 1 010; test-35: 1 010; test-36: 1 010; test-37: 1010; test-38: 1010; test-39: 1010; test-40: 1010; } sass-spec-libsass-3.6.3/spec/parser/operations/addition/strings/000077500000000000000000000000001355712145100247635ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/parser/operations/addition/strings/pairs.hrx000066400000000000000000000105411355712145100266250ustar00rootroot00000000000000<===> options.yml --- :todo: - libsass <===> input.scss foo { test-1: literal+literal; test-2: literal +literal; test-3: literal+ literal; test-4: literal + literal; test-5: literal+"quoted"; test-6: literal +"quoted"; test-7: literal+ "quoted"; test-8: literal + "quoted"; test-9: literal+#{interpolant}; test-10: literal +#{interpolant}; test-11: literal+ #{interpolant}; test-12: literal + #{interpolant}; test-13: literal+lschema_#{ritlp}; test-14: literal +lschema_#{ritlp}; test-15: literal+ lschema_#{ritlp}; test-16: literal + lschema_#{ritlp}; test-17: literal+#{litlp}_rschema; test-18: literal +#{litlp}_rschema; test-19: literal+ #{litlp}_rschema; test-20: literal + #{litlp}_rschema; test-21: "quoted"+"quoted"; test-22: "quoted" +"quoted"; test-23: "quoted"+ "quoted"; test-24: "quoted" + "quoted"; test-25: "quoted"+#{interpolant}; test-26: "quoted" +#{interpolant}; test-27: "quoted"+ #{interpolant}; test-28: "quoted" + #{interpolant}; test-29: "quoted"+lschema_#{ritlp}; test-30: "quoted" +lschema_#{ritlp}; test-31: "quoted"+ lschema_#{ritlp}; test-32: "quoted" + lschema_#{ritlp}; test-33: "quoted"+#{litlp}_rschema; test-34: "quoted" +#{litlp}_rschema; test-35: "quoted"+ #{litlp}_rschema; test-36: "quoted" + #{litlp}_rschema; test-37: #{interpolant}+#{interpolant}; test-38: #{interpolant} +#{interpolant}; test-39: #{interpolant}+ #{interpolant}; test-40: #{interpolant} + #{interpolant}; test-41: #{interpolant}+lschema_#{ritlp}; test-42: #{interpolant} +lschema_#{ritlp}; test-43: #{interpolant}+ lschema_#{ritlp}; test-44: #{interpolant} + lschema_#{ritlp}; test-45: #{interpolant}+#{litlp}_rschema; test-46: #{interpolant} +#{litlp}_rschema; test-47: #{interpolant}+ #{litlp}_rschema; test-48: #{interpolant} + #{litlp}_rschema; test-49: lschema_#{ritlp}+lschema_#{ritlp}; test-50: lschema_#{ritlp} +lschema_#{ritlp}; test-51: lschema_#{ritlp}+ lschema_#{ritlp}; test-52: lschema_#{ritlp} + lschema_#{ritlp}; test-53: lschema_#{ritlp}+#{litlp}_rschema; test-54: lschema_#{ritlp} +#{litlp}_rschema; test-55: lschema_#{ritlp}+ #{litlp}_rschema; test-56: lschema_#{ritlp} + #{litlp}_rschema; test-57: #{litlp}_rschema+#{litlp}_rschema; test-58: #{litlp}_rschema +#{litlp}_rschema; test-59: #{litlp}_rschema+ #{litlp}_rschema; test-60: #{litlp}_rschema + #{litlp}_rschema; } <===> output.css foo { test-1: literalliteral; test-2: literalliteral; test-3: literalliteral; test-4: literalliteral; test-5: literalquoted; test-6: literalquoted; test-7: literalquoted; test-8: literalquoted; test-9: literalinterpolant; test-10: literalinterpolant; test-11: literalinterpolant; test-12: literalinterpolant; test-13: literallschema_ritlp; test-14: literallschema_ritlp; test-15: literallschema_ritlp; test-16: literallschema_ritlp; test-17: literallitlp_rschema; test-18: literallitlp_rschema; test-19: literallitlp_rschema; test-20: literallitlp_rschema; test-21: "quotedquoted"; test-22: "quotedquoted"; test-23: "quotedquoted"; test-24: "quotedquoted"; test-25: "quotedinterpolant"; test-26: "quotedinterpolant"; test-27: "quotedinterpolant"; test-28: "quotedinterpolant"; test-29: "quotedlschema_ritlp"; test-30: "quotedlschema_ritlp"; test-31: "quotedlschema_ritlp"; test-32: "quotedlschema_ritlp"; test-33: "quotedlitlp_rschema"; test-34: "quotedlitlp_rschema"; test-35: "quotedlitlp_rschema"; test-36: "quotedlitlp_rschema"; test-37: interpolantinterpolant; test-38: interpolantinterpolant; test-39: interpolantinterpolant; test-40: interpolantinterpolant; test-41: interpolantlschema_ritlp; test-42: interpolantlschema_ritlp; test-43: interpolantlschema_ritlp; test-44: interpolantlschema_ritlp; test-45: interpolantlitlp_rschema; test-46: interpolantlitlp_rschema; test-47: interpolantlitlp_rschema; test-48: interpolantlitlp_rschema; test-49: lschema_ritlplschema_ritlp; test-50: lschema_ritlplschema_ritlp; test-51: lschema_ritlplschema_ritlp; test-52: lschema_ritlplschema_ritlp; test-53: lschema_ritlplitlp_rschema; test-54: lschema_ritlplitlp_rschema; test-55: lschema_ritlplitlp_rschema; test-56: lschema_ritlplitlp_rschema; test-57: litlp_rschemalitlp_rschema; test-58: litlp_rschemalitlp_rschema; test-59: litlp_rschemalitlp_rschema; test-60: litlp_rschemalitlp_rschema; } sass-spec-libsass-3.6.3/spec/parser/operations/binary-and-unary.hrx000066400000000000000000000011741355712145100254050ustar00rootroot00000000000000<===> input.scss foo { minus-before-minus: - 1 - 2; minus-after-minus: 1 - - 2; plus-before-minus: + 1 - 2; plus-after-minus: 1 - + 2; not-before-plus: not 1 + 2; not-after-plus: 1 + not 2; minus-after-comma: (1, - 2); plus-after-comma: (1, + 2); slash-after-comma: (1, / 2); not-after-comma: (1, not 2); } <===> output.css foo { minus-before-minus: -3; minus-after-minus: 3; plus-before-minus: -1; plus-after-minus: -1; not-before-plus: false2; not-after-plus: 1false; minus-after-comma: 1, -2; plus-after-comma: 1, 2; slash-after-comma: 1, /2; not-after-comma: 1, false; } sass-spec-libsass-3.6.3/spec/parser/operations/division/000077500000000000000000000000001355712145100233235ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/parser/operations/division/dimensions/000077500000000000000000000000001355712145100254735ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/parser/operations/division/dimensions/pairs.hrx000066400000000000000000000136741355712145100273470ustar00rootroot00000000000000<===> options.yml --- :todo: - libsass <===> input.scss foo { test-1: 10/10; test-2: 10 /10; test-3: 10/ 10; test-4: 10 / 10; test-5: 10/10px; test-6: 10 /10px; test-7: 10/ 10px; test-8: 10 / 10px; test-9: 10/#{10}px; test-10: 10 /#{10}px; test-11: 10/ #{10}px; test-12: 10 / #{10}px; test-13: 10/1#{0}px; test-14: 10 /1#{0}px; test-15: 10/ 1#{0}px; test-16: 10 / 1#{0}px; test-17: 10/10#{px}; test-18: 10 /10#{px}; test-19: 10/ 10#{px}; test-20: 10 / 10#{px}; test-21: 10/10#{p}x; test-22: 10 /10#{p}x; test-23: 10/ 10#{p}x; test-24: 10 / 10#{p}x; test-25: 10px/10px; test-26: 10px /10px; test-27: 10px/ 10px; test-28: 10px / 10px; test-29: 10px/#{10}px; test-30: 10px /#{10}px; test-31: 10px/ #{10}px; test-32: 10px / #{10}px; test-33: 10px/1#{0}px; test-34: 10px /1#{0}px; test-35: 10px/ 1#{0}px; test-36: 10px / 1#{0}px; test-37: 10px/10#{px}; test-38: 10px /10#{px}; test-39: 10px/ 10#{px}; test-40: 10px / 10#{px}; test-41: 10px/10#{p}x; test-42: 10px /10#{p}x; test-43: 10px/ 10#{p}x; test-44: 10px / 10#{p}x; test-45: #{10}px/#{10}px; test-46: #{10}px /#{10}px; test-47: #{10}px/ #{10}px; test-48: #{10}px / #{10}px; test-49: #{10}px/1#{0}px; test-50: #{10}px /1#{0}px; test-51: #{10}px/ 1#{0}px; test-52: #{10}px / 1#{0}px; test-53: #{10}px/10#{px}; test-54: #{10}px /10#{px}; test-55: #{10}px/ 10#{px}; test-56: #{10}px / 10#{px}; test-57: #{10}px/10#{p}x; test-58: #{10}px /10#{p}x; test-59: #{10}px/ 10#{p}x; test-60: #{10}px / 10#{p}x; test-61: 1#{0}px/1#{0}px; test-62: 1#{0}px /1#{0}px; test-63: 1#{0}px/ 1#{0}px; test-64: 1#{0}px / 1#{0}px; test-65: 1#{0}px/10#{px}; test-66: 1#{0}px /10#{px}; test-67: 1#{0}px/ 10#{px}; test-68: 1#{0}px / 10#{px}; test-69: 1#{0}px/10#{p}x; test-70: 1#{0}px /10#{p}x; test-71: 1#{0}px/ 10#{p}x; test-72: 1#{0}px / 10#{p}x; test-73: 10#{px}/10#{px}; test-74: 10#{px} /10#{px}; test-75: 10#{px}/ 10#{px}; test-76: 10#{px} / 10#{px}; test-77: 10#{px}/10#{p}x; test-78: 10#{px} /10#{p}x; test-79: 10#{px}/ 10#{p}x; test-80: 10#{px} / 10#{p}x; test-81: 10#{p}x/10#{p}x; test-82: 10#{p}x /10#{p}x; test-83: 10#{p}x/ 10#{p}x; test-84: 10#{p}x / 10#{p}x; } <===> output.css foo { test-1: 10/10; test-2: 10 /10; test-3: 10/ 10; test-4: 10 / 10; test-5: 10/10px; test-6: 10 /10px; test-7: 10/ 10px; test-8: 10 / 10px; test-9: 10/10px; test-10: 10/10px; test-11: 10/10px; test-12: 10/10px; test-13: 10/1 0px; test-14: 10/1 0px; test-15: 10/1 0px; test-16: 10/1 0px; test-17: 10/10 px; test-18: 10/10 px; test-19: 10/10 px; test-20: 10/10 px; test-21: 10/10 px; test-22: 10/10 px; test-23: 10/10 px; test-24: 10/10 px; test-25: 10px/10px; test-26: 10px /10px; test-27: 10px/ 10px; test-28: 10px / 10px; test-29: 10px/10px; test-30: 10px/10px; test-31: 10px/10px; test-32: 10px/10px; test-33: 10px/1 0px; test-34: 10px/1 0px; test-35: 10px/1 0px; test-36: 10px/1 0px; test-37: 10px/10 px; test-38: 10px/10 px; test-39: 10px/10 px; test-40: 10px/10 px; test-41: 10px/10 px; test-42: 10px/10 px; test-43: 10px/10 px; test-44: 10px/10 px; test-45: 10px/10px; test-46: 10px/10px; test-47: 10px/10px; test-48: 10px/10px; test-49: 10px/1 0px; test-50: 10px/1 0px; test-51: 10px/1 0px; test-52: 10px/1 0px; test-53: 10px/10 px; test-54: 10px/10 px; test-55: 10px/10 px; test-56: 10px/10 px; test-57: 10px/10 px; test-58: 10px/10 px; test-59: 10px/10 px; test-60: 10px/10 px; test-61: 1 0px/1 0px; test-62: 1 0px/1 0px; test-63: 1 0px/1 0px; test-64: 1 0px/1 0px; test-65: 1 0px/10 px; test-66: 1 0px/10 px; test-67: 1 0px/10 px; test-68: 1 0px/10 px; test-69: 1 0px/10 px; test-70: 1 0px/10 px; test-71: 1 0px/10 px; test-72: 1 0px/10 px; test-73: 10 px/10 px; test-74: 10 px/10 px; test-75: 10 px/10 px; test-76: 10 px/10 px; test-77: 10 px/10 px; test-78: 10 px/10 px; test-79: 10 px/10 px; test-80: 10 px/10 px; test-81: 10 px/10 px; test-82: 10 px/10 px; test-83: 10 px/10 px; test-84: 10 px/10 px; } <===> output-dart-sass.css foo { test-1: 10/10; test-2: 10/10; test-3: 10/10; test-4: 10/10; test-5: 10/10px; test-6: 10/10px; test-7: 10/10px; test-8: 10/10px; test-9: 10/10px; test-10: 10/10px; test-11: 10/10px; test-12: 10/10px; test-13: 10/1 0px; test-14: 10/1 0px; test-15: 10/1 0px; test-16: 10/1 0px; test-17: 10/10 px; test-18: 10/10 px; test-19: 10/10 px; test-20: 10/10 px; test-21: 10/10 px; test-22: 10/10 px; test-23: 10/10 px; test-24: 10/10 px; test-25: 10px/10px; test-26: 10px/10px; test-27: 10px/10px; test-28: 10px/10px; test-29: 10px/10px; test-30: 10px/10px; test-31: 10px/10px; test-32: 10px/10px; test-33: 10px/1 0px; test-34: 10px/1 0px; test-35: 10px/1 0px; test-36: 10px/1 0px; test-37: 10px/10 px; test-38: 10px/10 px; test-39: 10px/10 px; test-40: 10px/10 px; test-41: 10px/10 px; test-42: 10px/10 px; test-43: 10px/10 px; test-44: 10px/10 px; test-45: 10px/10px; test-46: 10px/10px; test-47: 10px/10px; test-48: 10px/10px; test-49: 10px/1 0px; test-50: 10px/1 0px; test-51: 10px/1 0px; test-52: 10px/1 0px; test-53: 10px/10 px; test-54: 10px/10 px; test-55: 10px/10 px; test-56: 10px/10 px; test-57: 10px/10 px; test-58: 10px/10 px; test-59: 10px/10 px; test-60: 10px/10 px; test-61: 1 0px/1 0px; test-62: 1 0px/1 0px; test-63: 1 0px/1 0px; test-64: 1 0px/1 0px; test-65: 1 0px/10 px; test-66: 1 0px/10 px; test-67: 1 0px/10 px; test-68: 1 0px/10 px; test-69: 1 0px/10 px; test-70: 1 0px/10 px; test-71: 1 0px/10 px; test-72: 1 0px/10 px; test-73: 10 px/10 px; test-74: 10 px/10 px; test-75: 10 px/10 px; test-76: 10 px/10 px; test-77: 10 px/10 px; test-78: 10 px/10 px; test-79: 10 px/10 px; test-80: 10 px/10 px; test-81: 10 px/10 px; test-82: 10 px/10 px; test-83: 10 px/10 px; test-84: 10 px/10 px; } sass-spec-libsass-3.6.3/spec/parser/operations/division/mixed/000077500000000000000000000000001355712145100244315ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/parser/operations/division/mixed/pairs.hrx000066400000000000000000000072401355712145100262750ustar00rootroot00000000000000<===> options.yml --- :todo: - libsass <===> input.scss foo { test-1: 10/10; test-2: 10 /10; test-3: 10/ 10; test-4: 10 / 10; test-5: 10/10%; test-6: 10 /10%; test-7: 10/ 10%; test-8: 10 / 10%; test-9: 10/10px; test-10: 10 /10px; test-11: 10/ 10px; test-12: 10 / 10px; test-13: 10/#AAA; test-14: 10 /#AAA; test-15: 10/ #AAA; test-16: 10 / #AAA; test-17: 10/#{itpl}; test-18: 10 /#{itpl}; test-19: 10/ #{itpl}; test-20: 10 / #{itpl}; test-21: 10%/10%; test-22: 10% /10%; test-23: 10%/ 10%; test-24: 10% / 10%; test-25: 10%/10px; test-26: 10% /10px; test-27: 10%/ 10px; test-28: 10% / 10px; test-29: 10%/#AAA; test-30: 10% /#AAA; test-31: 10%/ #AAA; test-32: 10% / #AAA; test-33: 10%/#{itpl}; test-34: 10% /#{itpl}; test-35: 10%/ #{itpl}; test-36: 10% / #{itpl}; test-37: 10px/10px; test-38: 10px /10px; test-39: 10px/ 10px; test-40: 10px / 10px; test-41: 10px/#AAA; test-42: 10px /#AAA; test-43: 10px/ #AAA; test-44: 10px / #AAA; test-45: 10px/#{itpl}; test-46: 10px /#{itpl}; test-47: 10px/ #{itpl}; test-48: 10px / #{itpl}; test-49: #AAA/#{itpl}; test-50: #AAA /#{itpl}; test-51: #AAA/ #{itpl}; test-52: #AAA / #{itpl}; test-53: #{itpl}/#{itpl}; test-54: #{itpl} /#{itpl}; test-55: #{itpl}/ #{itpl}; test-56: #{itpl} / #{itpl}; } <===> output.css foo { test-1: 10/10; test-2: 10 /10; test-3: 10/ 10; test-4: 10 / 10; test-5: 10/10%; test-6: 10 /10%; test-7: 10/ 10%; test-8: 10 / 10%; test-9: 10/10px; test-10: 10 /10px; test-11: 10/ 10px; test-12: 10 / 10px; test-13: 10/#AAA; test-14: 10 /#AAA; test-15: 10/ #AAA; test-16: 10 / #AAA; test-17: 10/itpl; test-18: 10/itpl; test-19: 10/itpl; test-20: 10/itpl; test-21: 10%/10%; test-22: 10% /10%; test-23: 10%/ 10%; test-24: 10% / 10%; test-25: 10%/10px; test-26: 10% /10px; test-27: 10%/ 10px; test-28: 10% / 10px; test-29: 10%/#AAA; test-30: 10% /#AAA; test-31: 10%/ #AAA; test-32: 10% / #AAA; test-33: 10%/itpl; test-34: 10%/itpl; test-35: 10%/itpl; test-36: 10%/itpl; test-37: 10px/10px; test-38: 10px /10px; test-39: 10px/ 10px; test-40: 10px / 10px; test-41: 10px/#AAA; test-42: 10px /#AAA; test-43: 10px/ #AAA; test-44: 10px / #AAA; test-45: 10px/itpl; test-46: 10px/itpl; test-47: 10px/itpl; test-48: 10px/itpl; test-49: #AAA/itpl; test-50: #AAA/itpl; test-51: #AAA/itpl; test-52: #AAA/itpl; test-53: itpl/itpl; test-54: itpl/itpl; test-55: itpl/itpl; test-56: itpl/itpl; } <===> output-dart-sass.css foo { test-1: 10/10; test-2: 10/10; test-3: 10/10; test-4: 10/10; test-5: 10/10%; test-6: 10/10%; test-7: 10/10%; test-8: 10/10%; test-9: 10/10px; test-10: 10/10px; test-11: 10/10px; test-12: 10/10px; test-13: 10/#AAA; test-14: 10/#AAA; test-15: 10/#AAA; test-16: 10/#AAA; test-17: 10/itpl; test-18: 10/itpl; test-19: 10/itpl; test-20: 10/itpl; test-21: 10%/10%; test-22: 10%/10%; test-23: 10%/10%; test-24: 10%/10%; test-25: 10%/10px; test-26: 10%/10px; test-27: 10%/10px; test-28: 10%/10px; test-29: 10%/#AAA; test-30: 10%/#AAA; test-31: 10%/#AAA; test-32: 10%/#AAA; test-33: 10%/itpl; test-34: 10%/itpl; test-35: 10%/itpl; test-36: 10%/itpl; test-37: 10px/10px; test-38: 10px/10px; test-39: 10px/10px; test-40: 10px/10px; test-41: 10px/#AAA; test-42: 10px/#AAA; test-43: 10px/#AAA; test-44: 10px/#AAA; test-45: 10px/itpl; test-46: 10px/itpl; test-47: 10px/itpl; test-48: 10px/itpl; test-49: #AAA/itpl; test-50: #AAA/itpl; test-51: #AAA/itpl; test-52: #AAA/itpl; test-53: itpl/itpl; test-54: itpl/itpl; test-55: itpl/itpl; test-56: itpl/itpl; } sass-spec-libsass-3.6.3/spec/parser/operations/division/numbers/000077500000000000000000000000001355712145100247765ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/parser/operations/division/numbers/pairs.hrx000066400000000000000000000047341355712145100266470ustar00rootroot00000000000000<===> options.yml --- :todo: - libsass <===> input.scss foo { test-1: 10/10; test-2: 10 /10; test-3: 10/ 10; test-4: 10 / 10; test-5: 10/#{10}; test-6: 10 /#{10}; test-7: 10/ #{10}; test-8: 10 / #{10}; test-9: 10/1#{0}; test-10: 10 /1#{0}; test-11: 10/ 1#{0}; test-12: 10 / 1#{0}; test-13: 10/#{1}0; test-14: 10 /#{1}0; test-15: 10/ #{1}0; test-16: 10 / #{1}0; test-17: #{10}/#{10}; test-18: #{10} /#{10}; test-19: #{10}/ #{10}; test-20: #{10} / #{10}; test-21: #{10}/1#{0}; test-22: #{10} /1#{0}; test-23: #{10}/ 1#{0}; test-24: #{10} / 1#{0}; test-25: #{10}/#{1}0; test-26: #{10} /#{1}0; test-27: #{10}/ #{1}0; test-28: #{10} / #{1}0; test-29: 1#{0}/1#{0}; test-30: 1#{0} /1#{0}; test-31: 1#{0}/ 1#{0}; test-32: 1#{0} / 1#{0}; test-33: 1#{0}/#{1}0; test-34: 1#{0} /#{1}0; test-35: 1#{0}/ #{1}0; test-36: 1#{0} / #{1}0; test-37: #{1}0/#{1}0; test-38: #{1}0 /#{1}0; test-39: #{1}0/ #{1}0; test-40: #{1}0 / #{1}0; } <===> output.css foo { test-1: 10/10; test-2: 10 /10; test-3: 10/ 10; test-4: 10 / 10; test-5: 10/10; test-6: 10/10; test-7: 10/10; test-8: 10/10; test-9: 10/1 0; test-10: 10/1 0; test-11: 10/1 0; test-12: 10/1 0; test-13: 10/10; test-14: 10/10; test-15: 10/10; test-16: 10/10; test-17: 10/10; test-18: 10/10; test-19: 10/10; test-20: 10/10; test-21: 10/1 0; test-22: 10/1 0; test-23: 10/1 0; test-24: 10/1 0; test-25: 10/10; test-26: 10/10; test-27: 10/10; test-28: 10/10; test-29: 1 0/1 0; test-30: 1 0/1 0; test-31: 1 0/1 0; test-32: 1 0/1 0; test-33: 1 0/10; test-34: 1 0/10; test-35: 1 0/10; test-36: 1 0/10; test-37: 10/10; test-38: 10/10; test-39: 10/10; test-40: 10/10; } <===> output-dart-sass.css foo { test-1: 10/10; test-2: 10/10; test-3: 10/10; test-4: 10/10; test-5: 10/10; test-6: 10/10; test-7: 10/10; test-8: 10/10; test-9: 10/1 0; test-10: 10/1 0; test-11: 10/1 0; test-12: 10/1 0; test-13: 10/10; test-14: 10/10; test-15: 10/10; test-16: 10/10; test-17: 10/10; test-18: 10/10; test-19: 10/10; test-20: 10/10; test-21: 10/1 0; test-22: 10/1 0; test-23: 10/1 0; test-24: 10/1 0; test-25: 10/10; test-26: 10/10; test-27: 10/10; test-28: 10/10; test-29: 1 0/1 0; test-30: 1 0/1 0; test-31: 1 0/1 0; test-32: 1 0/1 0; test-33: 1 0/10; test-34: 1 0/10; test-35: 1 0/10; test-36: 1 0/10; test-37: 10/10; test-38: 10/10; test-39: 10/10; test-40: 10/10; } sass-spec-libsass-3.6.3/spec/parser/operations/division/strings/000077500000000000000000000000001355712145100250145ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/parser/operations/division/strings/pairs.hrx000066400000000000000000000147741355712145100266720ustar00rootroot00000000000000<===> options.yml --- :todo: - libsass <===> input.scss foo { test-1: literal/literal; test-2: literal /literal; test-3: literal/ literal; test-4: literal / literal; test-5: literal/"quoted"; test-6: literal /"quoted"; test-7: literal/ "quoted"; test-8: literal / "quoted"; test-9: literal/#{interpolant}; test-10: literal /#{interpolant}; test-11: literal/ #{interpolant}; test-12: literal / #{interpolant}; test-13: literal/lschema_#{ritlp}; test-14: literal /lschema_#{ritlp}; test-15: literal/ lschema_#{ritlp}; test-16: literal / lschema_#{ritlp}; test-17: literal/#{litlp}_rschema; test-18: literal /#{litlp}_rschema; test-19: literal/ #{litlp}_rschema; test-20: literal / #{litlp}_rschema; test-21: "quoted"/"quoted"; test-22: "quoted" /"quoted"; test-23: "quoted"/ "quoted"; test-24: "quoted" / "quoted"; test-25: "quoted"/#{interpolant}; test-26: "quoted" /#{interpolant}; test-27: "quoted"/ #{interpolant}; test-28: "quoted" / #{interpolant}; test-29: "quoted"/lschema_#{ritlp}; test-30: "quoted" /lschema_#{ritlp}; test-31: "quoted"/ lschema_#{ritlp}; test-32: "quoted" / lschema_#{ritlp}; test-33: "quoted"/#{litlp}_rschema; test-34: "quoted" /#{litlp}_rschema; test-35: "quoted"/ #{litlp}_rschema; test-36: "quoted" / #{litlp}_rschema; test-37: #{interpolant}/#{interpolant}; test-38: #{interpolant} /#{interpolant}; test-39: #{interpolant}/ #{interpolant}; test-40: #{interpolant} / #{interpolant}; test-41: #{interpolant}/lschema_#{ritlp}; test-42: #{interpolant} /lschema_#{ritlp}; test-43: #{interpolant}/ lschema_#{ritlp}; test-44: #{interpolant} / lschema_#{ritlp}; test-45: #{interpolant}/#{litlp}_rschema; test-46: #{interpolant} /#{litlp}_rschema; test-47: #{interpolant}/ #{litlp}_rschema; test-48: #{interpolant} / #{litlp}_rschema; test-49: lschema_#{ritlp}/lschema_#{ritlp}; test-50: lschema_#{ritlp} /lschema_#{ritlp}; test-51: lschema_#{ritlp}/ lschema_#{ritlp}; test-52: lschema_#{ritlp} / lschema_#{ritlp}; test-53: lschema_#{ritlp}/#{litlp}_rschema; test-54: lschema_#{ritlp} /#{litlp}_rschema; test-55: lschema_#{ritlp}/ #{litlp}_rschema; test-56: lschema_#{ritlp} / #{litlp}_rschema; test-57: #{litlp}_rschema/#{litlp}_rschema; test-58: #{litlp}_rschema /#{litlp}_rschema; test-59: #{litlp}_rschema/ #{litlp}_rschema; test-60: #{litlp}_rschema / #{litlp}_rschema; } <===> output.css foo { test-1: literal/literal; test-2: literal /literal; test-3: literal/ literal; test-4: literal / literal; test-5: literal/"quoted"; test-6: literal /"quoted"; test-7: literal/ "quoted"; test-8: literal / "quoted"; test-9: literal/interpolant; test-10: literal/interpolant; test-11: literal/interpolant; test-12: literal/interpolant; test-13: literal/lschema_ritlp; test-14: literal/lschema_ritlp; test-15: literal/lschema_ritlp; test-16: literal/lschema_ritlp; test-17: literal/litlp_rschema; test-18: literal/litlp_rschema; test-19: literal/litlp_rschema; test-20: literal/litlp_rschema; test-21: "quoted"/"quoted"; test-22: "quoted" /"quoted"; test-23: "quoted"/ "quoted"; test-24: "quoted" / "quoted"; test-25: "quoted"/interpolant; test-26: "quoted"/interpolant; test-27: "quoted"/interpolant; test-28: "quoted"/interpolant; test-29: "quoted"/lschema_ritlp; test-30: "quoted"/lschema_ritlp; test-31: "quoted"/lschema_ritlp; test-32: "quoted"/lschema_ritlp; test-33: "quoted"/litlp_rschema; test-34: "quoted"/litlp_rschema; test-35: "quoted"/litlp_rschema; test-36: "quoted"/litlp_rschema; test-37: interpolant/interpolant; test-38: interpolant/interpolant; test-39: interpolant/interpolant; test-40: interpolant/interpolant; test-41: interpolant/lschema_ritlp; test-42: interpolant/lschema_ritlp; test-43: interpolant/lschema_ritlp; test-44: interpolant/lschema_ritlp; test-45: interpolant/litlp_rschema; test-46: interpolant/litlp_rschema; test-47: interpolant/litlp_rschema; test-48: interpolant/litlp_rschema; test-49: lschema_ritlp/lschema_ritlp; test-50: lschema_ritlp/lschema_ritlp; test-51: lschema_ritlp/lschema_ritlp; test-52: lschema_ritlp/lschema_ritlp; test-53: lschema_ritlp/litlp_rschema; test-54: lschema_ritlp/litlp_rschema; test-55: lschema_ritlp/litlp_rschema; test-56: lschema_ritlp/litlp_rschema; test-57: litlp_rschema/litlp_rschema; test-58: litlp_rschema/litlp_rschema; test-59: litlp_rschema/litlp_rschema; test-60: litlp_rschema/litlp_rschema; } <===> output-dart-sass.css foo { test-1: literal/literal; test-2: literal/literal; test-3: literal/literal; test-4: literal/literal; test-5: literal/"quoted"; test-6: literal/"quoted"; test-7: literal/"quoted"; test-8: literal/"quoted"; test-9: literal/interpolant; test-10: literal/interpolant; test-11: literal/interpolant; test-12: literal/interpolant; test-13: literal/lschema_ritlp; test-14: literal/lschema_ritlp; test-15: literal/lschema_ritlp; test-16: literal/lschema_ritlp; test-17: literal/litlp_rschema; test-18: literal/litlp_rschema; test-19: literal/litlp_rschema; test-20: literal/litlp_rschema; test-21: "quoted"/"quoted"; test-22: "quoted"/"quoted"; test-23: "quoted"/"quoted"; test-24: "quoted"/"quoted"; test-25: "quoted"/interpolant; test-26: "quoted"/interpolant; test-27: "quoted"/interpolant; test-28: "quoted"/interpolant; test-29: "quoted"/lschema_ritlp; test-30: "quoted"/lschema_ritlp; test-31: "quoted"/lschema_ritlp; test-32: "quoted"/lschema_ritlp; test-33: "quoted"/litlp_rschema; test-34: "quoted"/litlp_rschema; test-35: "quoted"/litlp_rschema; test-36: "quoted"/litlp_rschema; test-37: interpolant/interpolant; test-38: interpolant/interpolant; test-39: interpolant/interpolant; test-40: interpolant/interpolant; test-41: interpolant/lschema_ritlp; test-42: interpolant/lschema_ritlp; test-43: interpolant/lschema_ritlp; test-44: interpolant/lschema_ritlp; test-45: interpolant/litlp_rschema; test-46: interpolant/litlp_rschema; test-47: interpolant/litlp_rschema; test-48: interpolant/litlp_rschema; test-49: lschema_ritlp/lschema_ritlp; test-50: lschema_ritlp/lschema_ritlp; test-51: lschema_ritlp/lschema_ritlp; test-52: lschema_ritlp/lschema_ritlp; test-53: lschema_ritlp/litlp_rschema; test-54: lschema_ritlp/litlp_rschema; test-55: lschema_ritlp/litlp_rschema; test-56: lschema_ritlp/litlp_rschema; test-57: litlp_rschema/litlp_rschema; test-58: litlp_rschema/litlp_rschema; test-59: litlp_rschema/litlp_rschema; test-60: litlp_rschema/litlp_rschema; } sass-spec-libsass-3.6.3/spec/parser/operations/logic_eq/000077500000000000000000000000001355712145100232615ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/parser/operations/logic_eq/dimensions/000077500000000000000000000000001355712145100254315ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/parser/operations/logic_eq/dimensions/pairs.hrx000066400000000000000000000100461355712145100272730ustar00rootroot00000000000000<===> options.yml --- :todo: - libsass :todo: - libsass <===> input.scss foo { test-1: 10==10; test-2: 10 ==10; test-3: 10== 10; test-4: 10 == 10; test-5: 10==10px; test-6: 10 ==10px; test-7: 10== 10px; test-8: 10 == 10px; test-9: 10==#{10}px; test-10: 10 ==#{10}px; test-11: 10== #{10}px; test-12: 10 == #{10}px; test-13: 10==1#{0}px; test-14: 10 ==1#{0}px; test-15: 10== 1#{0}px; test-16: 10 == 1#{0}px; test-17: 10==10#{px}; test-18: 10 ==10#{px}; test-19: 10== 10#{px}; test-20: 10 == 10#{px}; test-21: 10==10#{p}x; test-22: 10 ==10#{p}x; test-23: 10== 10#{p}x; test-24: 10 == 10#{p}x; test-25: 10px==10px; test-26: 10px ==10px; test-27: 10px== 10px; test-28: 10px == 10px; test-29: 10px==#{10}px; test-30: 10px ==#{10}px; test-31: 10px== #{10}px; test-32: 10px == #{10}px; test-33: 10px==1#{0}px; test-34: 10px ==1#{0}px; test-35: 10px== 1#{0}px; test-36: 10px == 1#{0}px; test-37: 10px==10#{px}; test-38: 10px ==10#{px}; test-39: 10px== 10#{px}; test-40: 10px == 10#{px}; test-41: 10px==10#{p}x; test-42: 10px ==10#{p}x; test-43: 10px== 10#{p}x; test-44: 10px == 10#{p}x; test-45: #{10}px==#{10}px; test-46: #{10}px ==#{10}px; test-47: #{10}px== #{10}px; test-48: #{10}px == #{10}px; test-49: #{10}px==1#{0}px; test-50: #{10}px ==1#{0}px; test-51: #{10}px== 1#{0}px; test-52: #{10}px == 1#{0}px; test-53: #{10}px==10#{px}; test-54: #{10}px ==10#{px}; test-55: #{10}px== 10#{px}; test-56: #{10}px == 10#{px}; test-57: #{10}px==10#{p}x; test-58: #{10}px ==10#{p}x; test-59: #{10}px== 10#{p}x; test-60: #{10}px == 10#{p}x; test-61: 1#{0}px==1#{0}px; test-62: 1#{0}px ==1#{0}px; test-63: 1#{0}px== 1#{0}px; test-64: 1#{0}px == 1#{0}px; test-65: 1#{0}px==10#{px}; test-66: 1#{0}px ==10#{px}; test-67: 1#{0}px== 10#{px}; test-68: 1#{0}px == 10#{px}; test-69: 1#{0}px==10#{p}x; test-70: 1#{0}px ==10#{p}x; test-71: 1#{0}px== 10#{p}x; test-72: 1#{0}px == 10#{p}x; test-73: 10#{px}==10#{px}; test-74: 10#{px} ==10#{px}; test-75: 10#{px}== 10#{px}; test-76: 10#{px} == 10#{px}; test-77: 10#{px}==10#{p}x; test-78: 10#{px} ==10#{p}x; test-79: 10#{px}== 10#{p}x; test-80: 10#{px} == 10#{p}x; test-81: 10#{p}x==10#{p}x; test-82: 10#{p}x ==10#{p}x; test-83: 10#{p}x== 10#{p}x; test-84: 10#{p}x == 10#{p}x; } <===> output.css foo { test-1: true; test-2: true; test-3: true; test-4: true; test-5: false; test-6: false; test-7: false; test-8: false; test-9: false; test-10: false; test-11: false; test-12: false; test-13: false 0px; test-14: false 0px; test-15: false 0px; test-16: false 0px; test-17: true px; test-18: true px; test-19: true px; test-20: true px; test-21: true px; test-22: true px; test-23: true px; test-24: true px; test-25: true; test-26: true; test-27: true; test-28: true; test-29: false; test-30: false; test-31: false; test-32: false; test-33: false 0px; test-34: false 0px; test-35: false 0px; test-36: false 0px; test-37: false px; test-38: false px; test-39: false px; test-40: false px; test-41: false px; test-42: false px; test-43: false px; test-44: false px; test-45: true; test-46: true; test-47: true; test-48: true; test-49: false 0px; test-50: false 0px; test-51: false 0px; test-52: false 0px; test-53: false px; test-54: false px; test-55: false px; test-56: false px; test-57: false px; test-58: false px; test-59: false px; test-60: false px; test-61: 1 false 0px; test-62: 1 false 0px; test-63: 1 false 0px; test-64: 1 false 0px; test-65: 1 false px; test-66: 1 false px; test-67: 1 false px; test-68: 1 false px; test-69: 1 false px; test-70: 1 false px; test-71: 1 false px; test-72: 1 false px; test-73: 10 false px; test-74: 10 false px; test-75: 10 false px; test-76: 10 false px; test-77: 10 false px; test-78: 10 false px; test-79: 10 false px; test-80: 10 false px; test-81: 10 false px; test-82: 10 false px; test-83: 10 false px; test-84: 10 false px; } sass-spec-libsass-3.6.3/spec/parser/operations/logic_eq/mixed/000077500000000000000000000000001355712145100243675ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/parser/operations/logic_eq/mixed/pairs.hrx000066400000000000000000000050361355712145100262340ustar00rootroot00000000000000<===> options.yml --- :todo: - libsass :todo: - libsass <===> input.scss foo { test-1: 10==10; test-2: 10 ==10; test-3: 10== 10; test-4: 10 == 10; test-5: 10==10%; test-6: 10 ==10%; test-7: 10== 10%; test-8: 10 == 10%; test-9: 10==10px; test-10: 10 ==10px; test-11: 10== 10px; test-12: 10 == 10px; test-13: 10==#AAA; test-14: 10 ==#AAA; test-15: 10== #AAA; test-16: 10 == #AAA; test-17: 10==#{itpl}; test-18: 10 ==#{itpl}; test-19: 10== #{itpl}; test-20: 10 == #{itpl}; test-21: 10%==10%; test-22: 10% ==10%; test-23: 10%== 10%; test-24: 10% == 10%; test-25: 10%==10px; test-26: 10% ==10px; test-27: 10%== 10px; test-28: 10% == 10px; test-29: 10%==#AAA; test-30: 10% ==#AAA; test-31: 10%== #AAA; test-32: 10% == #AAA; test-33: 10%==#{itpl}; test-34: 10% ==#{itpl}; test-35: 10%== #{itpl}; test-36: 10% == #{itpl}; test-37: 10px==10px; test-38: 10px ==10px; test-39: 10px== 10px; test-40: 10px == 10px; test-41: 10px==#AAA; test-42: 10px ==#AAA; test-43: 10px== #AAA; test-44: 10px == #AAA; test-45: 10px==#{itpl}; test-46: 10px ==#{itpl}; test-47: 10px== #{itpl}; test-48: 10px == #{itpl}; test-49: #AAA==#AAA; test-50: #AAA ==#AAA; test-51: #AAA== #AAA; test-52: #AAA == #AAA; test-53: #AAA==#{itpl}; test-54: #AAA ==#{itpl}; test-55: #AAA== #{itpl}; test-56: #AAA == #{itpl}; test-57: #{itpl}==#{itpl}; test-58: #{itpl} ==#{itpl}; test-59: #{itpl}== #{itpl}; test-60: #{itpl} == #{itpl}; } <===> output.css foo { test-1: true; test-2: true; test-3: true; test-4: true; test-5: false; test-6: false; test-7: false; test-8: false; test-9: false; test-10: false; test-11: false; test-12: false; test-13: false; test-14: false; test-15: false; test-16: false; test-17: false; test-18: false; test-19: false; test-20: false; test-21: true; test-22: true; test-23: true; test-24: true; test-25: false; test-26: false; test-27: false; test-28: false; test-29: false; test-30: false; test-31: false; test-32: false; test-33: false; test-34: false; test-35: false; test-36: false; test-37: true; test-38: true; test-39: true; test-40: true; test-41: false; test-42: false; test-43: false; test-44: false; test-45: false; test-46: false; test-47: false; test-48: false; test-49: true; test-50: true; test-51: true; test-52: true; test-53: false; test-54: false; test-55: false; test-56: false; test-57: true; test-58: true; test-59: true; test-60: true; } sass-spec-libsass-3.6.3/spec/parser/operations/logic_eq/numbers/000077500000000000000000000000001355712145100247345ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/parser/operations/logic_eq/numbers/pairs.hrx000066400000000000000000000034051355712145100265770ustar00rootroot00000000000000<===> options.yml --- :todo: - libsass <===> input.scss foo { test-1: 10==10; test-2: 10 ==10; test-3: 10== 10; test-4: 10 == 10; test-5: 10==#{10}; test-6: 10 ==#{10}; test-7: 10== #{10}; test-8: 10 == #{10}; test-9: 10==1#{0}; test-10: 10 ==1#{0}; test-11: 10== 1#{0}; test-12: 10 == 1#{0}; test-13: 10==#{1}0; test-14: 10 ==#{1}0; test-15: 10== #{1}0; test-16: 10 == #{1}0; test-17: #{10}==#{10}; test-18: #{10} ==#{10}; test-19: #{10}== #{10}; test-20: #{10} == #{10}; test-21: #{10}==1#{0}; test-22: #{10} ==1#{0}; test-23: #{10}== 1#{0}; test-24: #{10} == 1#{0}; test-25: #{10}==#{1}0; test-26: #{10} ==#{1}0; test-27: #{10}== #{1}0; test-28: #{10} == #{1}0; test-29: 1#{0}==1#{0}; test-30: 1#{0} ==1#{0}; test-31: 1#{0}== 1#{0}; test-32: 1#{0} == 1#{0}; test-33: 1#{0}==#{1}0; test-34: 1#{0} ==#{1}0; test-35: 1#{0}== #{1}0; test-36: 1#{0} == #{1}0; test-37: #{1}0==#{1}0; test-38: #{1}0 ==#{1}0; test-39: #{1}0== #{1}0; test-40: #{1}0 == #{1}0; } <===> output.css foo { test-1: true; test-2: true; test-3: true; test-4: true; test-5: false; test-6: false; test-7: false; test-8: false; test-9: false 0; test-10: false 0; test-11: false 0; test-12: false 0; test-13: false; test-14: false; test-15: false; test-16: false; test-17: true; test-18: true; test-19: true; test-20: true; test-21: false 0; test-22: false 0; test-23: false 0; test-24: false 0; test-25: true; test-26: true; test-27: true; test-28: true; test-29: 1 false 0; test-30: 1 false 0; test-31: 1 false 0; test-32: 1 false 0; test-33: 1 false; test-34: 1 false; test-35: 1 false; test-36: 1 false; test-37: true; test-38: true; test-39: true; test-40: true; } sass-spec-libsass-3.6.3/spec/parser/operations/logic_eq/strings/000077500000000000000000000000001355712145100247525ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/parser/operations/logic_eq/strings/pairs.hrx000066400000000000000000000067451355712145100266270ustar00rootroot00000000000000<===> options.yml --- :todo: - libsass <===> input.scss foo { test-1: literal==literal; test-2: literal ==literal; test-3: literal== literal; test-4: literal == literal; test-5: literal=="quoted"; test-6: literal =="quoted"; test-7: literal== "quoted"; test-8: literal == "quoted"; test-9: literal==#{interpolant}; test-10: literal ==#{interpolant}; test-11: literal== #{interpolant}; test-12: literal == #{interpolant}; test-13: literal==lschema_#{ritlp}; test-14: literal ==lschema_#{ritlp}; test-15: literal== lschema_#{ritlp}; test-16: literal == lschema_#{ritlp}; test-17: literal==#{litlp}_rschema; test-18: literal ==#{litlp}_rschema; test-19: literal== #{litlp}_rschema; test-20: literal == #{litlp}_rschema; test-21: "quoted"=="quoted"; test-22: "quoted" =="quoted"; test-23: "quoted"== "quoted"; test-24: "quoted" == "quoted"; test-25: "quoted"==#{interpolant}; test-26: "quoted" ==#{interpolant}; test-27: "quoted"== #{interpolant}; test-28: "quoted" == #{interpolant}; test-29: "quoted"==lschema_#{ritlp}; test-30: "quoted" ==lschema_#{ritlp}; test-31: "quoted"== lschema_#{ritlp}; test-32: "quoted" == lschema_#{ritlp}; test-33: "quoted"==#{litlp}_rschema; test-34: "quoted" ==#{litlp}_rschema; test-35: "quoted"== #{litlp}_rschema; test-36: "quoted" == #{litlp}_rschema; test-37: #{interpolant}==#{interpolant}; test-38: #{interpolant} ==#{interpolant}; test-39: #{interpolant}== #{interpolant}; test-40: #{interpolant} == #{interpolant}; test-41: #{interpolant}==lschema_#{ritlp}; test-42: #{interpolant} ==lschema_#{ritlp}; test-43: #{interpolant}== lschema_#{ritlp}; test-44: #{interpolant} == lschema_#{ritlp}; test-45: #{interpolant}==#{litlp}_rschema; test-46: #{interpolant} ==#{litlp}_rschema; test-47: #{interpolant}== #{litlp}_rschema; test-48: #{interpolant} == #{litlp}_rschema; test-49: lschema_#{ritlp}==lschema_#{ritlp}; test-50: lschema_#{ritlp} ==lschema_#{ritlp}; test-51: lschema_#{ritlp}== lschema_#{ritlp}; test-52: lschema_#{ritlp} == lschema_#{ritlp}; test-53: lschema_#{ritlp}==#{litlp}_rschema; test-54: lschema_#{ritlp} ==#{litlp}_rschema; test-55: lschema_#{ritlp}== #{litlp}_rschema; test-56: lschema_#{ritlp} == #{litlp}_rschema; test-57: #{litlp}_rschema==#{litlp}_rschema; test-58: #{litlp}_rschema ==#{litlp}_rschema; test-59: #{litlp}_rschema== #{litlp}_rschema; test-60: #{litlp}_rschema == #{litlp}_rschema; } <===> output.css foo { test-1: true; test-2: true; test-3: true; test-4: true; test-5: false; test-6: false; test-7: false; test-8: false; test-9: false; test-10: false; test-11: false; test-12: false; test-13: false; test-14: false; test-15: false; test-16: false; test-17: false; test-18: false; test-19: false; test-20: false; test-21: true; test-22: true; test-23: true; test-24: true; test-25: false; test-26: false; test-27: false; test-28: false; test-29: false; test-30: false; test-31: false; test-32: false; test-33: false; test-34: false; test-35: false; test-36: false; test-37: true; test-38: true; test-39: true; test-40: true; test-41: false; test-42: false; test-43: false; test-44: false; test-45: false; test-46: false; test-47: false; test-48: false; test-49: true; test-50: true; test-51: true; test-52: true; test-53: false; test-54: false; test-55: false; test-56: false; test-57: true; test-58: true; test-59: true; test-60: true; } sass-spec-libsass-3.6.3/spec/parser/operations/logic_ne/000077500000000000000000000000001355712145100232565ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/parser/operations/logic_ne/dimensions/000077500000000000000000000000001355712145100254265ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/parser/operations/logic_ne/dimensions/pairs.hrx000066400000000000000000000077721355712145100273040ustar00rootroot00000000000000<===> options.yml --- :todo: - libsass :todo: - libsass <===> input.scss foo { test-1: 10!=10; test-2: 10 !=10; test-3: 10!= 10; test-4: 10 != 10; test-5: 10!=10px; test-6: 10 !=10px; test-7: 10!= 10px; test-8: 10 != 10px; test-9: 10!=#{10}px; test-10: 10 !=#{10}px; test-11: 10!= #{10}px; test-12: 10 != #{10}px; test-13: 10!=1#{0}px; test-14: 10 !=1#{0}px; test-15: 10!= 1#{0}px; test-16: 10 != 1#{0}px; test-17: 10!=10#{px}; test-18: 10 !=10#{px}; test-19: 10!= 10#{px}; test-20: 10 != 10#{px}; test-21: 10!=10#{p}x; test-22: 10 !=10#{p}x; test-23: 10!= 10#{p}x; test-24: 10 != 10#{p}x; test-25: 10px!=10px; test-26: 10px !=10px; test-27: 10px!= 10px; test-28: 10px != 10px; test-29: 10px!=#{10}px; test-30: 10px !=#{10}px; test-31: 10px!= #{10}px; test-32: 10px != #{10}px; test-33: 10px!=1#{0}px; test-34: 10px !=1#{0}px; test-35: 10px!= 1#{0}px; test-36: 10px != 1#{0}px; test-37: 10px!=10#{px}; test-38: 10px !=10#{px}; test-39: 10px!= 10#{px}; test-40: 10px != 10#{px}; test-41: 10px!=10#{p}x; test-42: 10px !=10#{p}x; test-43: 10px!= 10#{p}x; test-44: 10px != 10#{p}x; test-45: #{10}px!=#{10}px; test-46: #{10}px !=#{10}px; test-47: #{10}px!= #{10}px; test-48: #{10}px != #{10}px; test-49: #{10}px!=1#{0}px; test-50: #{10}px !=1#{0}px; test-51: #{10}px!= 1#{0}px; test-52: #{10}px != 1#{0}px; test-53: #{10}px!=10#{px}; test-54: #{10}px !=10#{px}; test-55: #{10}px!= 10#{px}; test-56: #{10}px != 10#{px}; test-57: #{10}px!=10#{p}x; test-58: #{10}px !=10#{p}x; test-59: #{10}px!= 10#{p}x; test-60: #{10}px != 10#{p}x; test-61: 1#{0}px!=1#{0}px; test-62: 1#{0}px !=1#{0}px; test-63: 1#{0}px!= 1#{0}px; test-64: 1#{0}px != 1#{0}px; test-65: 1#{0}px!=10#{px}; test-66: 1#{0}px !=10#{px}; test-67: 1#{0}px!= 10#{px}; test-68: 1#{0}px != 10#{px}; test-69: 1#{0}px!=10#{p}x; test-70: 1#{0}px !=10#{p}x; test-71: 1#{0}px!= 10#{p}x; test-72: 1#{0}px != 10#{p}x; test-73: 10#{px}!=10#{px}; test-74: 10#{px} !=10#{px}; test-75: 10#{px}!= 10#{px}; test-76: 10#{px} != 10#{px}; test-77: 10#{px}!=10#{p}x; test-78: 10#{px} !=10#{p}x; test-79: 10#{px}!= 10#{p}x; test-80: 10#{px} != 10#{p}x; test-81: 10#{p}x!=10#{p}x; test-82: 10#{p}x !=10#{p}x; test-83: 10#{p}x!= 10#{p}x; test-84: 10#{p}x != 10#{p}x; } <===> output.css foo { test-1: false; test-2: false; test-3: false; test-4: false; test-5: true; test-6: true; test-7: true; test-8: true; test-9: true; test-10: true; test-11: true; test-12: true; test-13: true 0px; test-14: true 0px; test-15: true 0px; test-16: true 0px; test-17: false px; test-18: false px; test-19: false px; test-20: false px; test-21: false px; test-22: false px; test-23: false px; test-24: false px; test-25: false; test-26: false; test-27: false; test-28: false; test-29: true; test-30: true; test-31: true; test-32: true; test-33: true 0px; test-34: true 0px; test-35: true 0px; test-36: true 0px; test-37: true px; test-38: true px; test-39: true px; test-40: true px; test-41: true px; test-42: true px; test-43: true px; test-44: true px; test-45: false; test-46: false; test-47: false; test-48: false; test-49: true 0px; test-50: true 0px; test-51: true 0px; test-52: true 0px; test-53: true px; test-54: true px; test-55: true px; test-56: true px; test-57: true px; test-58: true px; test-59: true px; test-60: true px; test-61: 1 true 0px; test-62: 1 true 0px; test-63: 1 true 0px; test-64: 1 true 0px; test-65: 1 true px; test-66: 1 true px; test-67: 1 true px; test-68: 1 true px; test-69: 1 true px; test-70: 1 true px; test-71: 1 true px; test-72: 1 true px; test-73: 10 true px; test-74: 10 true px; test-75: 10 true px; test-76: 10 true px; test-77: 10 true px; test-78: 10 true px; test-79: 10 true px; test-80: 10 true px; test-81: 10 true px; test-82: 10 true px; test-83: 10 true px; test-84: 10 true px; } sass-spec-libsass-3.6.3/spec/parser/operations/logic_ne/mixed/000077500000000000000000000000001355712145100243645ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/parser/operations/logic_ne/mixed/pairs.hrx000066400000000000000000000050121355712145100262230ustar00rootroot00000000000000<===> options.yml --- :todo: - libsass :todo: - libsass <===> input.scss foo { test-1: 10!=10; test-2: 10 !=10; test-3: 10!= 10; test-4: 10 != 10; test-5: 10!=10%; test-6: 10 !=10%; test-7: 10!= 10%; test-8: 10 != 10%; test-9: 10!=10px; test-10: 10 !=10px; test-11: 10!= 10px; test-12: 10 != 10px; test-13: 10!=#AAA; test-14: 10 !=#AAA; test-15: 10!= #AAA; test-16: 10 != #AAA; test-17: 10!=#{itpl}; test-18: 10 !=#{itpl}; test-19: 10!= #{itpl}; test-20: 10 != #{itpl}; test-21: 10%!=10%; test-22: 10% !=10%; test-23: 10%!= 10%; test-24: 10% != 10%; test-25: 10%!=10px; test-26: 10% !=10px; test-27: 10%!= 10px; test-28: 10% != 10px; test-29: 10%!=#AAA; test-30: 10% !=#AAA; test-31: 10%!= #AAA; test-32: 10% != #AAA; test-33: 10%!=#{itpl}; test-34: 10% !=#{itpl}; test-35: 10%!= #{itpl}; test-36: 10% != #{itpl}; test-37: 10px!=10px; test-38: 10px !=10px; test-39: 10px!= 10px; test-40: 10px != 10px; test-41: 10px!=#AAA; test-42: 10px !=#AAA; test-43: 10px!= #AAA; test-44: 10px != #AAA; test-45: 10px!=#{itpl}; test-46: 10px !=#{itpl}; test-47: 10px!= #{itpl}; test-48: 10px != #{itpl}; test-49: #AAA!=#AAA; test-50: #AAA !=#AAA; test-51: #AAA!= #AAA; test-52: #AAA != #AAA; test-53: #AAA!=#{itpl}; test-54: #AAA !=#{itpl}; test-55: #AAA!= #{itpl}; test-56: #AAA != #{itpl}; test-57: #{itpl}!=#{itpl}; test-58: #{itpl} !=#{itpl}; test-59: #{itpl}!= #{itpl}; test-60: #{itpl} != #{itpl}; } <===> output.css foo { test-1: false; test-2: false; test-3: false; test-4: false; test-5: true; test-6: true; test-7: true; test-8: true; test-9: true; test-10: true; test-11: true; test-12: true; test-13: true; test-14: true; test-15: true; test-16: true; test-17: true; test-18: true; test-19: true; test-20: true; test-21: false; test-22: false; test-23: false; test-24: false; test-25: true; test-26: true; test-27: true; test-28: true; test-29: true; test-30: true; test-31: true; test-32: true; test-33: true; test-34: true; test-35: true; test-36: true; test-37: false; test-38: false; test-39: false; test-40: false; test-41: true; test-42: true; test-43: true; test-44: true; test-45: true; test-46: true; test-47: true; test-48: true; test-49: false; test-50: false; test-51: false; test-52: false; test-53: true; test-54: true; test-55: true; test-56: true; test-57: false; test-58: false; test-59: false; test-60: false; } sass-spec-libsass-3.6.3/spec/parser/operations/logic_ne/numbers/000077500000000000000000000000001355712145100247315ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/parser/operations/logic_ne/numbers/pairs.hrx000066400000000000000000000033751355712145100266020ustar00rootroot00000000000000<===> options.yml --- :todo: - libsass <===> input.scss foo { test-1: 10!=10; test-2: 10 !=10; test-3: 10!= 10; test-4: 10 != 10; test-5: 10!=#{10}; test-6: 10 !=#{10}; test-7: 10!= #{10}; test-8: 10 != #{10}; test-9: 10!=1#{0}; test-10: 10 !=1#{0}; test-11: 10!= 1#{0}; test-12: 10 != 1#{0}; test-13: 10!=#{1}0; test-14: 10 !=#{1}0; test-15: 10!= #{1}0; test-16: 10 != #{1}0; test-17: #{10}!=#{10}; test-18: #{10} !=#{10}; test-19: #{10}!= #{10}; test-20: #{10} != #{10}; test-21: #{10}!=1#{0}; test-22: #{10} !=1#{0}; test-23: #{10}!= 1#{0}; test-24: #{10} != 1#{0}; test-25: #{10}!=#{1}0; test-26: #{10} !=#{1}0; test-27: #{10}!= #{1}0; test-28: #{10} != #{1}0; test-29: 1#{0}!=1#{0}; test-30: 1#{0} !=1#{0}; test-31: 1#{0}!= 1#{0}; test-32: 1#{0} != 1#{0}; test-33: 1#{0}!=#{1}0; test-34: 1#{0} !=#{1}0; test-35: 1#{0}!= #{1}0; test-36: 1#{0} != #{1}0; test-37: #{1}0!=#{1}0; test-38: #{1}0 !=#{1}0; test-39: #{1}0!= #{1}0; test-40: #{1}0 != #{1}0; } <===> output.css foo { test-1: false; test-2: false; test-3: false; test-4: false; test-5: true; test-6: true; test-7: true; test-8: true; test-9: true 0; test-10: true 0; test-11: true 0; test-12: true 0; test-13: true; test-14: true; test-15: true; test-16: true; test-17: false; test-18: false; test-19: false; test-20: false; test-21: true 0; test-22: true 0; test-23: true 0; test-24: true 0; test-25: false; test-26: false; test-27: false; test-28: false; test-29: 1 true 0; test-30: 1 true 0; test-31: 1 true 0; test-32: 1 true 0; test-33: 1 true; test-34: 1 true; test-35: 1 true; test-36: 1 true; test-37: false; test-38: false; test-39: false; test-40: false; } sass-spec-libsass-3.6.3/spec/parser/operations/logic_ne/strings/000077500000000000000000000000001355712145100247475ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/parser/operations/logic_ne/strings/pairs.hrx000066400000000000000000000067211355712145100266160ustar00rootroot00000000000000<===> options.yml --- :todo: - libsass <===> input.scss foo { test-1: literal!=literal; test-2: literal !=literal; test-3: literal!= literal; test-4: literal != literal; test-5: literal!="quoted"; test-6: literal !="quoted"; test-7: literal!= "quoted"; test-8: literal != "quoted"; test-9: literal!=#{interpolant}; test-10: literal !=#{interpolant}; test-11: literal!= #{interpolant}; test-12: literal != #{interpolant}; test-13: literal!=lschema_#{ritlp}; test-14: literal !=lschema_#{ritlp}; test-15: literal!= lschema_#{ritlp}; test-16: literal != lschema_#{ritlp}; test-17: literal!=#{litlp}_rschema; test-18: literal !=#{litlp}_rschema; test-19: literal!= #{litlp}_rschema; test-20: literal != #{litlp}_rschema; test-21: "quoted"!="quoted"; test-22: "quoted" !="quoted"; test-23: "quoted"!= "quoted"; test-24: "quoted" != "quoted"; test-25: "quoted"!=#{interpolant}; test-26: "quoted" !=#{interpolant}; test-27: "quoted"!= #{interpolant}; test-28: "quoted" != #{interpolant}; test-29: "quoted"!=lschema_#{ritlp}; test-30: "quoted" !=lschema_#{ritlp}; test-31: "quoted"!= lschema_#{ritlp}; test-32: "quoted" != lschema_#{ritlp}; test-33: "quoted"!=#{litlp}_rschema; test-34: "quoted" !=#{litlp}_rschema; test-35: "quoted"!= #{litlp}_rschema; test-36: "quoted" != #{litlp}_rschema; test-37: #{interpolant}!=#{interpolant}; test-38: #{interpolant} !=#{interpolant}; test-39: #{interpolant}!= #{interpolant}; test-40: #{interpolant} != #{interpolant}; test-41: #{interpolant}!=lschema_#{ritlp}; test-42: #{interpolant} !=lschema_#{ritlp}; test-43: #{interpolant}!= lschema_#{ritlp}; test-44: #{interpolant} != lschema_#{ritlp}; test-45: #{interpolant}!=#{litlp}_rschema; test-46: #{interpolant} !=#{litlp}_rschema; test-47: #{interpolant}!= #{litlp}_rschema; test-48: #{interpolant} != #{litlp}_rschema; test-49: lschema_#{ritlp}!=lschema_#{ritlp}; test-50: lschema_#{ritlp} !=lschema_#{ritlp}; test-51: lschema_#{ritlp}!= lschema_#{ritlp}; test-52: lschema_#{ritlp} != lschema_#{ritlp}; test-53: lschema_#{ritlp}!=#{litlp}_rschema; test-54: lschema_#{ritlp} !=#{litlp}_rschema; test-55: lschema_#{ritlp}!= #{litlp}_rschema; test-56: lschema_#{ritlp} != #{litlp}_rschema; test-57: #{litlp}_rschema!=#{litlp}_rschema; test-58: #{litlp}_rschema !=#{litlp}_rschema; test-59: #{litlp}_rschema!= #{litlp}_rschema; test-60: #{litlp}_rschema != #{litlp}_rschema; } <===> output.css foo { test-1: false; test-2: false; test-3: false; test-4: false; test-5: true; test-6: true; test-7: true; test-8: true; test-9: true; test-10: true; test-11: true; test-12: true; test-13: true; test-14: true; test-15: true; test-16: true; test-17: true; test-18: true; test-19: true; test-20: true; test-21: false; test-22: false; test-23: false; test-24: false; test-25: true; test-26: true; test-27: true; test-28: true; test-29: true; test-30: true; test-31: true; test-32: true; test-33: true; test-34: true; test-35: true; test-36: true; test-37: false; test-38: false; test-39: false; test-40: false; test-41: true; test-42: true; test-43: true; test-44: true; test-45: true; test-46: true; test-47: true; test-48: true; test-49: false; test-50: false; test-51: false; test-52: false; test-53: true; test-54: true; test-55: true; test-56: true; test-57: false; test-58: false; test-59: false; test-60: false; } sass-spec-libsass-3.6.3/spec/parser/operations/operations.pl000066400000000000000000000165071355712145100242300ustar00rootroot00000000000000use strict; use warnings; use File::chdir; use File::Slurp qw(write_file); use Algorithm::Combinatorics qw(:all); # all operators ('+', '-', '*', '/', '%', '<', '==', ...) # operator spacing ('+', '+ ', ' +', ' + ') # interpolation on left, right, both and none # test two and more operations (precedence?) # mix number, strings, null and other types my %op = ( 'modulo' => '%', 'addition' => '+', 'subtract' => '-', 'multiply' => '*', 'division' => '/', 'logic_gt' => '>', 'logic_lt' => '<', 'logic_ge' => '>=', 'logic_le' => '<=', 'logic_eq' => '==', 'logic_ne' => '!=', ); my %types = ( 'numbers' => [ '10', #'-26', #'+39', '#{10}', '1#{0}', '#{1}0', ], 'fractions' => [ '.25', '-.25', #'+.325', '#{.25}', '#{-.25}', '#{.}25', ], 'strings' => [ 'literal', '"quoted"', '#{interpolant}', 'lschema_#{ritlp}', '#{litlp}_rschema', ], 'dimensions' => [ '10', # '-10', '10px', # '-10px', '#{10}px', '1#{0}px', '10#{px}', '10#{p}x', ], 'mixed' => [ '10', #'-10', '10%', #'-10%', '10px', #'-10px', '#AAA', #'-#AAA', '#{itpl}', #'-#{itpl}', ], ); my %variants = ( 'pairs' => { 'combinations' => sub { my ($o, $v, $t) = @_; return combinations_with_repetition($t, 2); }, 'render' => sub { my ($c, $o, $v, $f) = @_; my $compare_op = ($o =~ m/^\s*[<>]=?\s*$/); my $multiply_op = ($o =~ m/^\s*[\*%]\s*$/); my $skip_literal = $compare_op || $multiply_op; return '' if $skip_literal && $f->[0] eq '"quoted"'; return '' if $skip_literal && $f->[1] eq '"quoted"'; return '' if $skip_literal && $f->[0] eq 'literal'; return '' if $skip_literal && $f->[1] eq 'literal'; return " test-$c: $f->[0]$o$f->[1];\n"; } }, 'tripplets' => { 'combinations' => sub { my ($o, $v, $t) = @_; return combinations_with_repetition($t, 3); }, 'render' => sub { my ($c, $o, $v, $f) = @_; # logic operations do not work with tripplets # first pair would evaluate to a boolean # boolean return '' if ($o =~ m/^\s*[<>]=?\s*$/); return " test-$c: $f->[0]$o$f->[1]$o$f->[2];\n"; } }, ); local $CWD = $CWD; sub create_variants { my ($op, $type) = @_; foreach my $variant (keys %variants) { # skip some combination which have some problems with deprecation warnings next if ($op eq "multiply" && $type eq "dimensions" && $variant eq "pairs"); mkdir $variant; local $CWD = $variant; my $o = $op{$op}; my $a = $types{$type}; my $v = $variants{$variant}; # init combination iterator of this variant my $combinator = $v->{'combinations'}->($o, $v, $a); my $count = 0; my $result = "foo {\n"; while (my $f = $combinator->next) { $result .= $v->{'render'}->(++$count, "$o", $v, $f); $result .= $v->{'render'}->(++$count, " $o", $v, $f); $result .= $v->{'render'}->(++$count, "$o ", $v, $f); $result .= $v->{'render'}->(++$count, " $o ", $v, $f); } print 'created ', join('/', $op, $type, $variant, 'input.scss'), "\n"; write_file('input.scss', { binmode => ':raw' }, $result. "}\n"); } } sub create_types { my ($op) = @_; foreach my $type (keys %types) { mkdir $type; local $CWD = $type; create_variants($op, $type); } } sub create_ops { foreach my $op (keys %op) { mkdir $op; local $CWD = $op; create_types($op); } } create_ops(); __DATA__ #{10}px + 10px; 10#{px} + 10px; #{10}px+10px; #{10}px+ 10px; #{10}px +10px; 10#{px} + 10px; my @input = ( ['01_literal', qq(literal)], ['02_double_quoted', qq("dquoted")], ['03_single_quoted', qq('squoted')], ['04_space_list_quoted', qq("alpha" 'beta')], ['05_comma_list_quoted', qq("alpha", 'beta')], ['06_space_list_complex', qq(gamme "'"delta"'")], ['07_comma_list_complex', qq(gamma, "'"delta"'")], ['10_escaped_backslash', qq(\\\\)], ['11_escaped_literal', qq(l\\\\ite\\ral)], ['12_escaped_double_quoted', qq("l\\\\ite\\ral")], ['13_escaped_single_quoted', qq('l\\\\ite\\ral')], ['14_escapes_literal_numbers', qq(\\1\\2\\3\\4\\5\\6\\7\\8\\9)], ['15_escapes_double_quoted_numbers', qq("\\1\\2\\3\\4\\5\\6\\7\\8\\9")], ['16_escapes_single_quoted_numbers', qq('\\1\\2\\3\\4\\5\\6\\7\\8\\9')], ['17_escapes_literal_lowercase', qq(\\b\\c\\d\\e\\f\\g\\h\\i\\j\\k\\l\\m\\n\\o\\p\\q\\r\\s\\t\\u\\v\\w\\x\\y\\z)], ['18_escapes_double_quoted_lowercase', qq("\\b\\c\\d\\e\\f\\g\\h\\i\\j\\k\\l\\m\\n\\o\\p\\q\\r\\s\\t\\u\\v\\w\\x\\y\\z")], ['19_escapes_single_quoted_lowercase', qq('\\b\\c\\d\\e\\f\\g\\h\\i\\j\\k\\l\\m\\n\\o\\p\\q\\r\\s\\t\\u\\v\\w\\x\\y\\z')], ['20_escapes_literal_uppercase', qq(\\B\\C\\D\\E\\F\\G\\H\\I\\J\\K\\L\\M\\N\\O\\P\\Q\\R\\S\\T\\U\\V\\W\\X\\Y\\Z)], ['21_escapes_double_quoted_uppercase', qq("\\B\\C\\D\\E\\F\\G\\H\\I\\J\\K\\L\\M\\N\\O\\P\\Q\\R\\S\\T\\U\\V\\W\\X\\Y\\Z")], ['22_escapes_single_quoted_uppercase', qq('\\B\\C\\D\\E\\F\\G\\H\\I\\J\\K\\L\\M\\N\\O\\P\\Q\\R\\S\\T\\U\\V\\W\\X\\Y\\Z')], ['23_escapes_literal_specials', qq(\\0_\\a_\\A)], ['24_escapes_double_quoted_specials', qq("\\0_\\a_\\A")], ['25_escapes_single_quoted_specials', qq('\\0_\\a_\\A')], ['26_escaped_literal_quotes', qq(\\\"\\\')], ['27_escaped_double_quotes', qq("\\\"")], ['28_escaped_single_quotes', qq('\\\'')], ['29_binary_operation', qq("foo#{'ba' + 'r'}baz")], ['30_base_test', qq("foo#{'ba' + 'r'}baz")], ['31_schema_simple', qq("["'foo'"]")], ['32_comma_list', qq("["',foo, '"]")], ['33_space_list', qq("["'foo '"]" "bar")], ['34_mixed_list', qq("["',foo , '"]" "bar")], ); my @template; push @template, "01_inline"; push @template, << "EOF"; .result { output: %%; output: #{%%}; output: "[#{%%}]"; output: "#{%%}"; output: '#{%%}'; output: "['#{%%}']"; } EOF push @template, "02_variable"; push @template, << "EOF"; \$input: %%; .result { output: \$input; output: #{\$input}; output: "[#{\$input}]"; output: "#{\$input}"; output: '#{\$input}'; output: "['#{\$input}']"; } EOF push @template, "03_inline_double"; push @template, << "EOF"; .result { output: #{#{%%}}; output: #{"[#{%%}]"}; output: #{"#{%%}"}; output: #{'#{%%}'}; output: #{"['#{%%}']"}; } EOF push @template, "04_variable_double"; push @template, << "EOF"; \$input: %%; .result { output: #{#{\$input}}; output: #{"[#{\$input}]"}; output: #{"#{\$input}"}; output: #{'#{\$input}'}; output: #{"['#{\$input}']"}; } EOF push @template, "05_variable_quoted_double"; push @template, << "EOF"; \$input: %%; .result { dquoted: "#{#{\$input}}"; dquoted: "#{"[#{\$input}]"}"; dquoted: "#{"#{\$input}"}"; dquoted: "#{'#{\$input}'}"; dquoted: "#{"['#{\$input}']"}"; squoted: '#{#{\$input}}'; squoted: '#{"[#{\$input}]"}'; squoted: '#{"#{\$input}"}'; squoted: '#{'#{\$input}'}'; squoted: '#{"['#{\$input}']"}'; } EOF # ruby sass cannot handle these cases ... # pop(@template); pop(@template); push @template, "06_escape_interpolation"; push @template, << "EOF"; \$input: %%; .result { output: "[\\#{%%}]"; output: "\\#{%%}"; output: '\\#{%%}'; output: "['\\#{%%}']"; } EOF sub render { use File::Slurp qw(write_file); my ($names, $template, $input) = @_; $template =~ s/\%\%/$input/g; local $CWD = $CWD; foreach (@{$names}) { mkdir $_; $CWD = $_; } print "created ", join("/", @{$names}), "\n"; return write_file('input.scss', { binmode => ':raw' }, $template); } while (defined(my $name = shift @template)) { my $template = shift(@template); foreach my $input (@input) { render([$input->[0], $name], $template, $input->[1]); } } # <>;sass-spec-libsass-3.6.3/spec/parser/operations/subtract/000077500000000000000000000000001355712145100233265ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/parser/operations/subtract/dimensions/000077500000000000000000000000001355712145100254765ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/parser/operations/subtract/dimensions/pairs.hrx000066400000000000000000000100031355712145100273310ustar00rootroot00000000000000<===> options.yml --- :todo: - libsass <===> input.scss foo { test-1: 10-10; test-2: 10 -10; test-3: 10- 10; test-4: 10 - 10; test-5: 10-10px; test-6: 10 -10px; test-7: 10- 10px; test-8: 10 - 10px; test-9: 10-#{10}px; test-10: 10 -#{10}px; test-11: 10- #{10}px; test-12: 10 - #{10}px; test-13: 10-1#{0}px; test-14: 10 -1#{0}px; test-15: 10- 1#{0}px; test-16: 10 - 1#{0}px; test-17: 10-10#{px}; test-18: 10 -10#{px}; test-19: 10- 10#{px}; test-20: 10 - 10#{px}; test-21: 10-10#{p}x; test-22: 10 -10#{p}x; test-23: 10- 10#{p}x; test-24: 10 - 10#{p}x; test-25: 10px-10px; test-26: 10px -10px; test-27: 10px- 10px; test-28: 10px - 10px; test-29: 10px-#{10}px; test-30: 10px -#{10}px; test-31: 10px- #{10}px; test-32: 10px - #{10}px; test-33: 10px-1#{0}px; test-34: 10px -1#{0}px; test-35: 10px- 1#{0}px; test-36: 10px - 1#{0}px; test-37: 10px-10#{px}; test-38: 10px -10#{px}; test-39: 10px- 10#{px}; test-40: 10px - 10#{px}; test-41: 10px-10#{p}x; test-42: 10px -10#{p}x; test-43: 10px- 10#{p}x; test-44: 10px - 10#{p}x; test-45: #{10}px-#{10}px; test-46: #{10}px -#{10}px; test-47: #{10}px- #{10}px; test-48: #{10}px - #{10}px; test-49: #{10}px-1#{0}px; test-50: #{10}px -1#{0}px; test-51: #{10}px- 1#{0}px; test-52: #{10}px - 1#{0}px; test-53: #{10}px-10#{px}; test-54: #{10}px -10#{px}; test-55: #{10}px- 10#{px}; test-56: #{10}px - 10#{px}; test-57: #{10}px-10#{p}x; test-58: #{10}px -10#{p}x; test-59: #{10}px- 10#{p}x; test-60: #{10}px - 10#{p}x; test-61: 1#{0}px-1#{0}px; test-62: 1#{0}px -1#{0}px; test-63: 1#{0}px- 1#{0}px; test-64: 1#{0}px - 1#{0}px; test-65: 1#{0}px-10#{px}; test-66: 1#{0}px -10#{px}; test-67: 1#{0}px- 10#{px}; test-68: 1#{0}px - 10#{px}; test-69: 1#{0}px-10#{p}x; test-70: 1#{0}px -10#{p}x; test-71: 1#{0}px- 10#{p}x; test-72: 1#{0}px - 10#{p}x; test-73: 10#{px}-10#{px}; test-74: 10#{px} -10#{px}; test-75: 10#{px}- 10#{px}; test-76: 10#{px} - 10#{px}; test-77: 10#{px}-10#{p}x; test-78: 10#{px} -10#{p}x; test-79: 10#{px}- 10#{p}x; test-80: 10#{px} - 10#{p}x; test-81: 10#{p}x-10#{p}x; test-82: 10#{p}x -10#{p}x; test-83: 10#{p}x- 10#{p}x; test-84: 10#{p}x - 10#{p}x; } <===> output.css foo { test-1: 0; test-2: 10 -10; test-3: 0; test-4: 0; test-5: 0px; test-6: 10 -10px; test-7: 0px; test-8: 0px; test-9: 10 -10px; test-10: 10 -10px; test-11: 10-10px; test-12: 10-10px; test-13: 9 0px; test-14: 10 -1 0px; test-15: 9 0px; test-16: 9 0px; test-17: 0 px; test-18: 10 -10 px; test-19: 0 px; test-20: 0 px; test-21: 0 px; test-22: 10 -10 px; test-23: 0 px; test-24: 0 px; test-25: 0px; test-26: 10px -10px; test-27: 10px- 10px; test-28: 0px; test-29: 10px- 10px; test-30: 10px -10px; test-31: 10px- 10px; test-32: 10px-10px; test-33: 9px 0px; test-34: 10px -1 0px; test-35: 10px- 1 0px; test-36: 9px 0px; test-37: 0px px; test-38: 10px -10 px; test-39: 10px- 10 px; test-40: 0px px; test-41: 0px px; test-42: 10px -10 px; test-43: 10px- 10 px; test-44: 0px px; test-45: 10px-10px; test-46: 10px -10px; test-47: 10px- 10px; test-48: 10px-10px; test-49: 10px-10px; test-50: 10px -1 0px; test-51: 10px- 1 0px; test-52: 10px-1 0px; test-53: 10px-10px; test-54: 10px -10 px; test-55: 10px- 10 px; test-56: 10px-10 px; test-57: 10px-10px; test-58: 10px -10 px; test-59: 10px- 10 px; test-60: 10px-10 px; test-61: 1 0px-10px; test-62: 1 0px -1 0px; test-63: 1 0px- 1 0px; test-64: 1 0px-1 0px; test-65: 1 0px-10px; test-66: 1 0px -10 px; test-67: 1 0px- 10 px; test-68: 1 0px-10 px; test-69: 1 0px-10px; test-70: 1 0px -10 px; test-71: 1 0px- 10 px; test-72: 1 0px-10 px; test-73: 10 px-10px; test-74: 10 px -10 px; test-75: 10 px- 10 px; test-76: 10 px-10 px; test-77: 10 px-10px; test-78: 10 px -10 px; test-79: 10 px- 10 px; test-80: 10 px-10 px; test-81: 10 px-10px; test-82: 10 px -10 px; test-83: 10 px- 10 px; test-84: 10 px-10 px; } sass-spec-libsass-3.6.3/spec/parser/operations/subtract/numbers/000077500000000000000000000000001355712145100250015ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/parser/operations/subtract/numbers/pairs.hrx000066400000000000000000000033241355712145100266440ustar00rootroot00000000000000<===> options.yml --- :todo: - libsass <===> input.scss foo { test-1: 10-10; test-2: 10 -10; test-3: 10- 10; test-4: 10 - 10; test-5: 10-#{10}; test-6: 10 -#{10}; test-7: 10- #{10}; test-8: 10 - #{10}; test-9: 10-1#{0}; test-10: 10 -1#{0}; test-11: 10- 1#{0}; test-12: 10 - 1#{0}; test-13: 10-#{1}0; test-14: 10 -#{1}0; test-15: 10- #{1}0; test-16: 10 - #{1}0; test-17: #{10}-#{10}; test-18: #{10} -#{10}; test-19: #{10}- #{10}; test-20: #{10} - #{10}; test-21: #{10}-1#{0}; test-22: #{10} -1#{0}; test-23: #{10}- 1#{0}; test-24: #{10} - 1#{0}; test-25: #{10}-#{1}0; test-26: #{10} -#{1}0; test-27: #{10}- #{1}0; test-28: #{10} - #{1}0; test-29: 1#{0}-1#{0}; test-30: 1#{0} -1#{0}; test-31: 1#{0}- 1#{0}; test-32: 1#{0} - 1#{0}; test-33: 1#{0}-#{1}0; test-34: 1#{0} -#{1}0; test-35: 1#{0}- #{1}0; test-36: 1#{0} - #{1}0; test-37: #{1}0-#{1}0; test-38: #{1}0 -#{1}0; test-39: #{1}0- #{1}0; test-40: #{1}0 - #{1}0; } <===> output.css foo { test-1: 0; test-2: 10 -10; test-3: 0; test-4: 0; test-5: 10 -10; test-6: 10 -10; test-7: 10-10; test-8: 10-10; test-9: 9 0; test-10: 10 -1 0; test-11: 9 0; test-12: 9 0; test-13: 10 -10; test-14: 10 -10; test-15: 10-10; test-16: 10-10; test-17: 10-10; test-18: 10 -10; test-19: 10- 10; test-20: 10-10; test-21: 10-10; test-22: 10 -1 0; test-23: 10- 1 0; test-24: 10-1 0; test-25: 10-10; test-26: 10 -10; test-27: 10- 10; test-28: 10-10; test-29: 1 0-10; test-30: 1 0 -1 0; test-31: 1 0- 1 0; test-32: 1 0-1 0; test-33: 1 0-10; test-34: 1 0 -10; test-35: 1 0- 10; test-36: 1 0-10; test-37: 10-10; test-38: 10 -10; test-39: 10- 10; test-40: 10-10; } sass-spec-libsass-3.6.3/spec/parser/operations/subtract/strings/000077500000000000000000000000001355712145100250175ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/parser/operations/subtract/strings/pairs.hrx000066400000000000000000000107111355712145100266600ustar00rootroot00000000000000<===> options.yml --- :todo: - libsass <===> input.scss foo { test-1: literal-literal; test-2: literal -literal; test-3: literal- literal; test-4: literal - literal; test-5: literal-"quoted"; test-6: literal -"quoted"; test-7: literal- "quoted"; test-8: literal - "quoted"; test-9: literal-#{interpolant}; test-10: literal -#{interpolant}; test-11: literal- #{interpolant}; test-12: literal - #{interpolant}; test-13: literal-lschema_#{ritlp}; test-14: literal -lschema_#{ritlp}; test-15: literal- lschema_#{ritlp}; test-16: literal - lschema_#{ritlp}; test-17: literal-#{litlp}_rschema; test-18: literal -#{litlp}_rschema; test-19: literal- #{litlp}_rschema; test-20: literal - #{litlp}_rschema; test-21: "quoted"-"quoted"; test-22: "quoted" -"quoted"; test-23: "quoted"- "quoted"; test-24: "quoted" - "quoted"; test-25: "quoted"-#{interpolant}; test-26: "quoted" -#{interpolant}; test-27: "quoted"- #{interpolant}; test-28: "quoted" - #{interpolant}; test-29: "quoted"-lschema_#{ritlp}; test-30: "quoted" -lschema_#{ritlp}; test-31: "quoted"- lschema_#{ritlp}; test-32: "quoted" - lschema_#{ritlp}; test-33: "quoted"-#{litlp}_rschema; test-34: "quoted" -#{litlp}_rschema; test-35: "quoted"- #{litlp}_rschema; test-36: "quoted" - #{litlp}_rschema; test-37: #{interpolant}-#{interpolant}; test-38: #{interpolant} -#{interpolant}; test-39: #{interpolant}- #{interpolant}; test-40: #{interpolant} - #{interpolant}; test-41: #{interpolant}-lschema_#{ritlp}; test-42: #{interpolant} -lschema_#{ritlp}; test-43: #{interpolant}- lschema_#{ritlp}; test-44: #{interpolant} - lschema_#{ritlp}; test-45: #{interpolant}-#{litlp}_rschema; test-46: #{interpolant} -#{litlp}_rschema; test-47: #{interpolant}- #{litlp}_rschema; test-48: #{interpolant} - #{litlp}_rschema; test-49: lschema_#{ritlp}-lschema_#{ritlp}; test-50: lschema_#{ritlp} -lschema_#{ritlp}; test-51: lschema_#{ritlp}- lschema_#{ritlp}; test-52: lschema_#{ritlp} - lschema_#{ritlp}; test-53: lschema_#{ritlp}-#{litlp}_rschema; test-54: lschema_#{ritlp} -#{litlp}_rschema; test-55: lschema_#{ritlp}- #{litlp}_rschema; test-56: lschema_#{ritlp} - #{litlp}_rschema; test-57: #{litlp}_rschema-#{litlp}_rschema; test-58: #{litlp}_rschema -#{litlp}_rschema; test-59: #{litlp}_rschema- #{litlp}_rschema; test-60: #{litlp}_rschema - #{litlp}_rschema; } <===> output.css foo { test-1: literal-literal; test-2: literal -literal; test-3: literal- literal; test-4: literal-literal; test-5: literal- "quoted"; test-6: literal-"quoted"; test-7: literal- "quoted"; test-8: literal-"quoted"; test-9: literal-interpolant; test-10: literal -interpolant; test-11: literal- interpolant; test-12: literal-interpolant; test-13: literal-lschema_ritlp; test-14: literal -lschema_ritlp; test-15: literal- lschema_ritlp; test-16: literal-lschema_ritlp; test-17: literal-litlp_rschema; test-18: literal -litlp_rschema; test-19: literal- litlp_rschema; test-20: literal-litlp_rschema; test-21: "quoted"-"quoted"; test-22: "quoted"-"quoted"; test-23: "quoted"-"quoted"; test-24: "quoted"-"quoted"; test-25: "quoted" -interpolant; test-26: "quoted" -interpolant; test-27: "quoted"-interpolant; test-28: "quoted"-interpolant; test-29: "quoted" -lschema_ritlp; test-30: "quoted" -lschema_ritlp; test-31: "quoted"-lschema_ritlp; test-32: "quoted"-lschema_ritlp; test-33: "quoted" -litlp_rschema; test-34: "quoted" -litlp_rschema; test-35: "quoted"-litlp_rschema; test-36: "quoted"-litlp_rschema; test-37: interpolant-interpolant; test-38: interpolant -interpolant; test-39: interpolant- interpolant; test-40: interpolant-interpolant; test-41: interpolant-lschema_ritlp; test-42: interpolant -lschema_ritlp; test-43: interpolant- lschema_ritlp; test-44: interpolant-lschema_ritlp; test-45: interpolant-litlp_rschema; test-46: interpolant -litlp_rschema; test-47: interpolant- litlp_rschema; test-48: interpolant-litlp_rschema; test-49: lschema_ritlp-lschema_ritlp; test-50: lschema_ritlp -lschema_ritlp; test-51: lschema_ritlp- lschema_ritlp; test-52: lschema_ritlp-lschema_ritlp; test-53: lschema_ritlp-litlp_rschema; test-54: lschema_ritlp -litlp_rschema; test-55: lschema_ritlp- litlp_rschema; test-56: lschema_ritlp-litlp_rschema; test-57: litlp_rschema-litlp_rschema; test-58: litlp_rschema -litlp_rschema; test-59: litlp_rschema- litlp_rschema; test-60: litlp_rschema-litlp_rschema; } sass-spec-libsass-3.6.3/spec/sass/000077500000000000000000000000001355712145100167715ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/sass/basic.hrx000066400000000000000000000001741355712145100205770ustar00rootroot00000000000000<===> input.sass div a color: red li color: green <===> output.css div a { color: red; } div li { color: green; } sass-spec-libsass-3.6.3/spec/sass/comment/000077500000000000000000000000001355712145100204335ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/sass/comment/loud.hrx000066400000000000000000000012771355712145100221300ustar00rootroot00000000000000<===> options.yml --- :todo: - libsass <===> input.sass /* Single-line /* Multi line /* Multiline starting on the first line /* Preserves empty lines /* Ignores comment closer */ /* Handles weird indentation gracefully /* Even when it starts on the first line /* Allows interpolation: #{1 + 1} <===> output.css /* Single-line */ /* Multi * line */ /* Multiline starting on * the first line */ /* Preserves * * empty * * * lines */ /* Ignores comment closer */ /* Handles * weird * indentation * gracefully */ /* Even * when * it starts * on the * first line */ /* Allows interpolation: 2 */ sass-spec-libsass-3.6.3/spec/sass/extend.hrx000066400000000000000000000007621355712145100210100ustar00rootroot00000000000000<===> input.sass .error border: 1px #f00 background-color: #fdd .seriousError @extend .error border-width: 3px .criticalError @extend .seriousError position: fixed top: 10% bottom: 10% left: 10% right: 10% <===> output.css .error, .seriousError, .criticalError { border: 1px #f00; background-color: #fdd; } .seriousError, .criticalError { border-width: 3px; } .criticalError { position: fixed; top: 10%; bottom: 10%; left: 10%; right: 10%; } sass-spec-libsass-3.6.3/spec/sass/functions.hrx000066400000000000000000000003351355712145100215250ustar00rootroot00000000000000<===> input.sass $grid-width: 40px $gutter-width: 10px @function grid-width($n) @return $n * $grid-width + ($n - 1) * $gutter-width #sidebar width: grid-width(5) <===> output.css #sidebar { width: 240px; } sass-spec-libsass-3.6.3/spec/sass/import/000077500000000000000000000000001355712145100203035ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/sass/import/unquoted.hrx000066400000000000000000000002371355712145100226740ustar00rootroot00000000000000<===> input.sass @import unquoted, sub/unquoted <===> sub/unquoted.scss d {e: f} <===> unquoted.scss a {b: c} <===> output.css a { b: c; } d { e: f; } sass-spec-libsass-3.6.3/spec/sass/imported.hrx000066400000000000000000000002521355712145100213360ustar00rootroot00000000000000<===> imported.sass div a color: red li color: green <===> input.scss @import "imported.sass"; <===> output.css div a { color: red; } div li { color: green; } sass-spec-libsass-3.6.3/spec/sass/indentation.hrx000066400000000000000000000035511355712145100220340ustar00rootroot00000000000000<===> different/spaces/input.sass a b: c d: e x y: z <===> different/spaces/output.css a { b: c; b-d: e; } x { y: z; } <===> ================================================================================ <===> different/tabs/input.sass a b: c d: e x y: z <===> different/tabs/output.css a { b: c; b-d: e; } x { y: z; } <===> ================================================================================ <===> unusual_newlines/README.md Everything CSS considers a newline (including `\r\n`, `\r`, and `\f`) should be usable as the end of an indented syntax line. <===> ================================================================================ <===> unusual_newlines/cr_lf/input.sass a b: c d: e <===> unusual_newlines/cr_lf/output.css a { b: c; d: e; } <===> ================================================================================ <===> unusual_newlines/cr/input.sass a b: c d: e <===> unusual_newlines/cr/output.css a { b: c; d: e; } <===> ================================================================================ <===> unusual_newlines/ff/options.yml --- :todo: - sass/libsass#2843 <===> unusual_newlines/ff/input.sass a b: c d: e <===> unusual_newlines/ff/output.css a { b: c; d: e; } <===> ================================================================================ <===> error/inconsistent/options.yml --- :todo: - libsass <===> error/inconsistent/input.sass a b: c d: e <===> error/inconsistent/error Error: Inconsistent indentation: 1 space was used for indentation, but the rest of the document was indented using 4 spaces. on line 3 of /sass/spec/sass/inconsistent_indentation/input.sass Use --trace for backtrace. <===> error/inconsistent/error-dart-sass Error: Inconsistent indentation, expected 4 spaces. , 3 | d: e | ^ ' input.sass 3:1 root stylesheet sass-spec-libsass-3.6.3/spec/sass/mixins.hrx000066400000000000000000000011741355712145100210260ustar00rootroot00000000000000<===> input.sass =mixme color: blue input +mixme background: red =apply-to-ie6-only * html @content +apply-to-ie6-only #logo background-image: url(/logo.gif) @mixin inc() mix: in .a + .c, .b margin: 10px +inc .a +inc + b .c, .b margin: 10px .a > .c, .b margin: 10px <===> output.css input { color: blue; background: red; } * html #logo { background-image: url(/logo.gif); } .a + .c, .a + .b { margin: 10px; mix: in; } .a { mix: in; } .a + b .c, .a + b .b { margin: 10px; } .a > .c, .a > .b { margin: 10px; } sass-spec-libsass-3.6.3/spec/sass/pseudo.hrx000066400000000000000000000011341355712145100210120ustar00rootroot00000000000000<===> input.sass ::selection color: rebeccapurple ::-webkit-selection color: rebeccapurple ::-webkit-selection, ::selection color: rebeccapurple \:-webkit-selection color: rebeccapurple \:hover TD color: red \:color red foo: bar \:nth-child(2n+1) SPAN foo: bar <===> output.css ::selection { color: rebeccapurple; } ::-webkit-selection { color: rebeccapurple; } ::-webkit-selection, ::selection { color: rebeccapurple; } :-webkit-selection { color: rebeccapurple; } :hover TD { color: red; } :color red { foo: bar; } :nth-child(2n+1) SPAN { foo: bar; } sass-spec-libsass-3.6.3/spec/sass/selectors.hrx000066400000000000000000000013571355712145100215250ustar00rootroot00000000000000<===> input.sass .test foo: bar ~ tilde: true + adjancent: true > child: true * universal: true [foo] attribute: true @mixin selector-2() foo: bar .selector-0 + .selector-1 color: rebeccapurple = selector-2 color: yellow multiple, lines, separated by, commas and, indented x: y <===> output.css .test { foo: bar; } .test ~ { tilde: true; } .test + { adjancent: true; } .test > { child: true; } .test * { universal: true; } .test [foo] { attribute: true; } .selector-0 + .selector-1 { color: rebeccapurple; } multiple and, multiple indented, lines and, lines indented, separated by and, separated by indented, commas and, commas indented { x: y; } sass-spec-libsass-3.6.3/spec/sass/semicolon/000077500000000000000000000000001355712145100207615ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/sass/semicolon/at_rule.hrx000066400000000000000000000005011355712145100231330ustar00rootroot00000000000000<===> input.sass @rule value; <===> error Error: Invalid CSS after "value": expected newline, was ";" on line 1 of input.sass Use --trace for backtrace. <===> error-dart-sass Error: semicolons aren't allowed in the indented syntax. , 1 | @rule value; | ^ ' input.sass 1:12 root stylesheet sass-spec-libsass-3.6.3/spec/sass/semicolon/content.hrx000066400000000000000000000005141355712145100231560ustar00rootroot00000000000000<===> input.sass @mixin foo @content; <===> error Error: Invalid CSS after "@content": expected newline, was ";" on line 1 of input.sass Use --trace for backtrace. <===> error-dart-sass Error: semicolons aren't allowed in the indented syntax. , 2 | @content; | ^ ' input.sass 2:11 root stylesheet sass-spec-libsass-3.6.3/spec/sass/semicolon/debug.hrx000066400000000000000000000005301355712145100225700ustar00rootroot00000000000000<===> input.sass @debug value; <===> error Error: Invalid CSS after "value": expected expression (e.g. 1px, bold), was ";" on line 1 of input.sass Use --trace for backtrace. <===> error-dart-sass Error: semicolons aren't allowed in the indented syntax. , 1 | @debug value; | ^ ' input.sass 1:13 root stylesheet sass-spec-libsass-3.6.3/spec/sass/semicolon/declaration.hrx000066400000000000000000000005031355712145100237670ustar00rootroot00000000000000<===> input.sass a b: c; <===> error Error: Invalid CSS after "c": expected expression (e.g. 1px, bold), was ";" on line 2 of input.sass Use --trace for backtrace. <===> error-dart-sass Error: semicolons aren't allowed in the indented syntax. , 2 | b: c; | ^ ' input.sass 2:7 root stylesheet sass-spec-libsass-3.6.3/spec/sass/semicolon/error.hrx000066400000000000000000000005301355712145100226330ustar00rootroot00000000000000<===> input.sass @error value; <===> error Error: Invalid CSS after "value": expected expression (e.g. 1px, bold), was ";" on line 1 of input.sass Use --trace for backtrace. <===> error-dart-sass Error: semicolons aren't allowed in the indented syntax. , 1 | @error value; | ^ ' input.sass 1:13 root stylesheet sass-spec-libsass-3.6.3/spec/sass/semicolon/import.hrx000066400000000000000000000005441355712145100230210ustar00rootroot00000000000000<===> input.sass @import url("foo"); <===> error Error: Invalid CSS after "url("foo")": expected media query list, was ";" on line 1 of input.sass Use --trace for backtrace. <===> error-dart-sass Error: semicolons aren't allowed in the indented syntax. , 1 | @import url("foo"); | ^ ' input.sass 1:19 root stylesheet sass-spec-libsass-3.6.3/spec/sass/semicolon/include.hrx000066400000000000000000000005231355712145100231270ustar00rootroot00000000000000<===> input.sass @include foo; <===> error Error: Invalid CSS after "": expected expression (e.g. 1px, bold), was ";" on line 1 of input.sass Use --trace for backtrace. <===> error-dart-sass Error: semicolons aren't allowed in the indented syntax. , 1 | @include foo; | ^ ' input.sass 1:13 root stylesheet sass-spec-libsass-3.6.3/spec/sass/semicolon/options.yml000066400000000000000000000000251355712145100231740ustar00rootroot00000000000000--- :todo: - libsass sass-spec-libsass-3.6.3/spec/sass/semicolon/return.hrx000066400000000000000000000005611355712145100230250ustar00rootroot00000000000000<===> input.sass @function foo() @return value; <===> error Error: Invalid CSS after "value": expected expression (e.g. 1px, bold), was ";" on line 2 of input.sass Use --trace for backtrace. <===> error-dart-sass Error: semicolons aren't allowed in the indented syntax. , 2 | @return value; | ^ ' input.sass 2:16 root stylesheet sass-spec-libsass-3.6.3/spec/sass/semicolon/variable.hrx000066400000000000000000000005251355712145100232730ustar00rootroot00000000000000<===> input.sass $var: value; <===> error Error: Invalid CSS after "value": expected expression (e.g. 1px, bold), was ";" on line 1 of input.sass Use --trace for backtrace. <===> error-dart-sass Error: semicolons aren't allowed in the indented syntax. , 1 | $var: value; | ^ ' input.sass 1:12 root stylesheet sass-spec-libsass-3.6.3/spec/sass/semicolon/warn.hrx000066400000000000000000000005251355712145100224550ustar00rootroot00000000000000<===> input.sass @warn value; <===> error Error: Invalid CSS after "value": expected expression (e.g. 1px, bold), was ";" on line 1 of input.sass Use --trace for backtrace. <===> error-dart-sass Error: semicolons aren't allowed in the indented syntax. , 1 | @warn value; | ^ ' input.sass 1:12 root stylesheet sass-spec-libsass-3.6.3/spec/sass/var-args/000077500000000000000000000000001355712145100205135ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/sass/var-args/error.hrx000066400000000000000000000010061355712145100223640ustar00rootroot00000000000000<===> input.scss @mixin bar($x, $y, $z) { x: $x; y: $y; z: $z; } div { @include bar(a, c d e...); } <===> error-dart-sass Error: Only 3 arguments allowed, but 4 were passed. , 8 | @include bar(a, c d e...); | ^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 8:3 bar() input.scss 8:3 root stylesheet <===> output.css div { x: a; y: c; z: d; } <===> warning WARNING: Mixin bar takes 3 arguments but 4 were passed. on line 8 of input.scss This will be an error in future versions of Sass. sass-spec-libsass-3.6.3/spec/sass/var-args/success.hrx000066400000000000000000000033571355712145100227160ustar00rootroot00000000000000<===> input.scss @mixin foo($x, $y, $zs...) { grarh: type-of(false); f: $zs; fa: $x, $y, $zs; fv: $zs; ft: type-of($zs); fj: join(1 2 3, $zs); fjt: type-of(join(1 2 3, $zs)); fkt: type-of(join($zs, 1 2 3)); hoopla: length(a b c d e); boopla: type-of(123+234); koopla: type-of(length(a b c d)); } @mixin bar($x, $y, $z) { ba: $x, $y, $z; bv: $z; bt: type-of($z); bj: join(1 2 3, $z); bjt: type-of(join(1 2 3, $z)); } $stuff: hey hoo ha; @mixin mudge($x, $y, $zs...) { x: $x; y: $y; z: $zs; } div { @include foo(a, b, c d e f); @include bar(a, b, c d e f); @include foo(a, b, c d e...); @include foo(a, c d e...); @include foo(a, $stuff...); new: type-of("hello"); } @mixin bad($x, $y, $z) { first: $x; second: $y; rest: $z; } @mixin foo($x, $y, $z) { a: type-of(join($x, $y)); b: type-of($z); c: type-of(length($x)); } div { @include foo(a b c, d e, false); } <===> output.css div { grarh: bool; f: c d e f; fa: a, b, c d e f; fv: c d e f; ft: arglist; fj: 1 2 3 c d e f; fjt: list; fkt: list; hoopla: 5; boopla: number; koopla: number; ba: a, b, c d e f; bv: c d e f; bt: list; bj: 1 2 3 c d e f; bjt: list; grarh: bool; f: c d e; fa: a, b, c d e; fv: c d e; ft: arglist; fj: 1 2 3 c d e; fjt: list; fkt: list; hoopla: 5; boopla: number; koopla: number; grarh: bool; f: d e; fa: a, c, d e; fv: d e; ft: arglist; fj: 1 2 3 d e; fjt: list; fkt: list; hoopla: 5; boopla: number; koopla: number; grarh: bool; f: hoo ha; fa: a, hey, hoo ha; fv: hoo ha; ft: arglist; fj: 1 2 3 hoo ha; fjt: list; fkt: list; hoopla: 5; boopla: number; koopla: number; new: string; } div { a: list; b: bool; c: number; } sass-spec-libsass-3.6.3/spec/sass_4_0/000077500000000000000000000000001355712145100174335ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/sass_4_0/color_arithmetic/000077500000000000000000000000001355712145100227625ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/sass_4_0/color_arithmetic/addition/000077500000000000000000000000001355712145100245555ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/sass_4_0/color_arithmetic/addition/color_color.hrx000066400000000000000000000002541355712145100276150ustar00rootroot00000000000000<===> input.scss $v: #abc + #123; <===> error Error: Undefined operation "#abc + #123". , 1 | $v: #abc + #123; | ^^^^^^^^^^^ ' input.scss 1:5 root stylesheet sass-spec-libsass-3.6.3/spec/sass_4_0/color_arithmetic/addition/color_number.hrx000066400000000000000000000002401355712145100277620ustar00rootroot00000000000000<===> input.scss $v: #abc + 1; <===> error Error: Undefined operation "#abc + 1". , 1 | $v: #abc + 1; | ^^^^^^^^ ' input.scss 1:5 root stylesheet sass-spec-libsass-3.6.3/spec/sass_4_0/color_arithmetic/addition/number_color.hrx000066400000000000000000000002401355712145100277620ustar00rootroot00000000000000<===> input.scss $v: 1 + #123; <===> error Error: Undefined operation "1 + #123". , 1 | $v: 1 + #123; | ^^^^^^^^ ' input.scss 1:5 root stylesheet sass-spec-libsass-3.6.3/spec/sass_4_0/color_arithmetic/division/000077500000000000000000000000001355712145100246065ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/sass_4_0/color_arithmetic/division/color_color.hrx000066400000000000000000000002541355712145100276460ustar00rootroot00000000000000<===> input.scss $v: #abc / #123; <===> error Error: Undefined operation "#abc / #123". , 1 | $v: #abc / #123; | ^^^^^^^^^^^ ' input.scss 1:5 root stylesheet sass-spec-libsass-3.6.3/spec/sass_4_0/color_arithmetic/division/color_number.hrx000066400000000000000000000002401355712145100300130ustar00rootroot00000000000000<===> input.scss $v: #abc / 1; <===> error Error: Undefined operation "#abc / 1". , 1 | $v: #abc / 1; | ^^^^^^^^ ' input.scss 1:5 root stylesheet sass-spec-libsass-3.6.3/spec/sass_4_0/color_arithmetic/modulo/000077500000000000000000000000001355712145100242615ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/sass_4_0/color_arithmetic/modulo/color_color.hrx000066400000000000000000000002541355712145100273210ustar00rootroot00000000000000<===> input.scss $v: #abc % #123; <===> error Error: Undefined operation "#abc % #123". , 1 | $v: #abc % #123; | ^^^^^^^^^^^ ' input.scss 1:5 root stylesheet sass-spec-libsass-3.6.3/spec/sass_4_0/color_arithmetic/modulo/color_number.hrx000066400000000000000000000002401355712145100274660ustar00rootroot00000000000000<===> input.scss $v: #abc % 1; <===> error Error: Undefined operation "#abc % 1". , 1 | $v: #abc % 1; | ^^^^^^^^ ' input.scss 1:5 root stylesheet sass-spec-libsass-3.6.3/spec/sass_4_0/color_arithmetic/multiplication/000077500000000000000000000000001355712145100260175ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/sass_4_0/color_arithmetic/multiplication/color_color.hrx000066400000000000000000000002541355712145100310570ustar00rootroot00000000000000<===> input.scss $v: #abc * #123; <===> error Error: Undefined operation "#abc * #123". , 1 | $v: #abc * #123; | ^^^^^^^^^^^ ' input.scss 1:5 root stylesheet sass-spec-libsass-3.6.3/spec/sass_4_0/color_arithmetic/multiplication/color_number.hrx000066400000000000000000000002401355712145100312240ustar00rootroot00000000000000<===> input.scss $v: #abc * 1; <===> error Error: Undefined operation "#abc * 1". , 1 | $v: #abc * 1; | ^^^^^^^^ ' input.scss 1:5 root stylesheet sass-spec-libsass-3.6.3/spec/sass_4_0/color_arithmetic/multiplication/number_color.hrx000066400000000000000000000002401355712145100312240ustar00rootroot00000000000000<===> input.scss $v: 1 * #123; <===> error Error: Undefined operation "1 * #123". , 1 | $v: 1 * #123; | ^^^^^^^^ ' input.scss 1:5 root stylesheet sass-spec-libsass-3.6.3/spec/sass_4_0/color_arithmetic/options.yml000066400000000000000000000000251355712145100251750ustar00rootroot00000000000000--- :todo: - libsass sass-spec-libsass-3.6.3/spec/sass_4_0/color_arithmetic/subtraction/000077500000000000000000000000001355712145100253175ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/sass_4_0/color_arithmetic/subtraction/color_color.hrx000066400000000000000000000002541355712145100303570ustar00rootroot00000000000000<===> input.scss $v: #abc - #123; <===> error Error: Undefined operation "#abc - #123". , 1 | $v: #abc - #123; | ^^^^^^^^^^^ ' input.scss 1:5 root stylesheet sass-spec-libsass-3.6.3/spec/sass_4_0/color_arithmetic/subtraction/color_number.hrx000066400000000000000000000002401355712145100305240ustar00rootroot00000000000000<===> input.scss $v: #abc - 1; <===> error Error: Undefined operation "#abc - 1". , 1 | $v: #abc - 1; | ^^^^^^^^ ' input.scss 1:5 root stylesheet sass-spec-libsass-3.6.3/spec/sass_4_0/interpolation/000077500000000000000000000000001355712145100223225ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/sass_4_0/interpolation/after_hyphen.hrx000066400000000000000000000012041355712145100255160ustar00rootroot00000000000000<===> input.scss .after-hyphen { // We want to treat interpolation as though it's a valid identifier character, // which means that if it comes after a hyphen or double-hyphen it should be // treated as part of an interpolated identifier that includes that hyphen. standalone-single: -#{foo}; standalone-double: --#{foo}; // It also means that we shouldn't treat the hyphen as a subtraction // operation. adjacent-single: #{foo} -#{bar}; adjacent-double: #{foo} --#{bar}; } <===> output.css .after-hyphen { standalone-single: -foo; standalone-double: --foo; adjacent-single: foo -bar; adjacent-double: foo --bar; } sass-spec-libsass-3.6.3/spec/sass_4_0/interpolation/function_name.hrx000066400000000000000000000014731355712145100256770ustar00rootroot00000000000000<===> options.yml --- :todo: - libsass <===> input.scss @function identity($arg) {@return $arg} .function-name { start: #{1 + 1}foo(arg); mid: foo#{1 + 1}bar(arg); end: foo#{1 + 1}(arg); full: #{foo}(arg); evaluates-args: foo#{1 + 1}bar(2 + 2); $list: 1, 2, 3, 4, 5; supports-splats: foo#{1 + 1}bar($list...); not-built-in-function: qu#{o}te(arg); not-user-defined-function: id#{enti}ty(arg); // In 3.5, this would interpret "red()" as a live function call. followed-by-function: b#{o}red(arg); } <===> output.css .function-name { start: 2foo(arg); mid: foo2bar(arg); end: foo2(arg); full: foo(arg); evaluates-args: foo2bar(4); supports-splats: foo2bar(1, 2, 3, 4, 5); not-built-in-function: quote(arg); not-user-defined-function: identity(arg); followed-by-function: bored(arg); } sass-spec-libsass-3.6.3/spec/sass_4_0/interpolation/trailing_non_name_start.hrx000066400000000000000000000012231355712145100277430ustar00rootroot00000000000000<===> input.scss .trailing-non-name-start { // We want to treat interpolation as though it's a valid identifier character, // which means that if it's followed by a [name character][] that's not a // [name start character][] it should still treat that as part of the // identifier. // // [name character]: https://drafts.csswg.org/css-syntax-3/#name-code-point // [name start character]: https://drafts.csswg.org/css-syntax-3/#name-start-code-point digit: foo#{bar}12; hyphen: foo#{bar}-12; double-hyphen: foo#{bar}--12; } <===> output.css .trailing-non-name-start { digit: foobar12; hyphen: foobar-12; double-hyphen: foobar--12; } sass-spec-libsass-3.6.3/spec/scope/000077500000000000000000000000001355712145100171315ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/scope/clash.hrx000066400000000000000000000007671355712145100207600ustar00rootroot00000000000000<===> input.scss $foo: 42; $bar: 43; $baz: 45; foo { foo: $foo; bar: $bar; baz: $baz; $bar: 4; // this is a different $bar than `$bar !global` foo: $foo; bar: $bar; baz: $baz; @if true { $foo: 3; // this is a different $foo than `$foo !global` $bar: 5; // this is a different $bar than `$bar !global` foo: $foo; bar: $bar; baz: $baz; } } <===> output.css foo { foo: 42; bar: 43; baz: 45; foo: 42; bar: 4; baz: 45; foo: 3; bar: 5; baz: 45; } sass-spec-libsass-3.6.3/spec/scope/each.hrx000066400000000000000000000003061355712145100205530ustar00rootroot00000000000000<===> input.scss $foo: 42; .foo { content: $foo; } @each $item in 1337 { $foo: $item !global; } .bar { content: $foo; } <===> output.css .foo { content: 42; } .bar { content: 1337; } sass-spec-libsass-3.6.3/spec/scope/for.hrx000066400000000000000000000003111355712145100204350ustar00rootroot00000000000000<===> input.scss $foo: 42; .foo { content: $foo; } @for $i from 1337 to 1338 { $foo: $i !global; } .bar { content: $foo; } <===> output.css .foo { content: 42; } .bar { content: 1337; } sass-spec-libsass-3.6.3/spec/scope/function.hrx000066400000000000000000000003371355712145100215040ustar00rootroot00000000000000<===> input.scss $foo: 42; .foo { content: $foo; } @function foo() { $foo: 1337 !global; @return $foo; } @if foo() {} .bar { content: $foo; } <===> output.css .foo { content: 42; } .bar { content: 1337; } sass-spec-libsass-3.6.3/spec/scope/if.hrx000066400000000000000000000002721355712145100202530ustar00rootroot00000000000000<===> input.scss $foo: 42; .foo { content: $foo; } @if true { $foo: 1337 !global; } .bar { content: $foo; } <===> output.css .foo { content: 42; } .bar { content: 1337; } sass-spec-libsass-3.6.3/spec/scope/mixin.hrx000066400000000000000000000003131355712145100207750ustar00rootroot00000000000000<===> input.scss $foo: 42; @mixin foo { $foo: 1337 !global; } .foo { content: $foo; } @include foo; .bar { content: $foo; } <===> output.css .foo { content: 42; } .bar { content: 1337; } sass-spec-libsass-3.6.3/spec/scope/nested.hrx000066400000000000000000000002761355712145100211430ustar00rootroot00000000000000<===> input.scss $foo: 42; .foo { content: $foo; > .bar { $foo: 1337 !global; } } .bar { content: $foo; } <===> output.css .foo { content: 42; } .bar { content: 1337; } sass-spec-libsass-3.6.3/spec/scope/root.hrx000066400000000000000000000002531355712145100206370ustar00rootroot00000000000000<===> input.scss $foo: 42; .foo { content: $foo; } $foo: 1337 !global; .bar { content: $foo; } <===> output.css .foo { content: 42; } .bar { content: 1337; } sass-spec-libsass-3.6.3/spec/scope/ruleset.hrx000066400000000000000000000003161355712145100213370ustar00rootroot00000000000000<===> input.scss $foo: 42; .foo { content: $foo; $foo: 1337 !global; content: $foo; } .bar { content: $foo; } <===> output.css .foo { content: 42; content: 1337; } .bar { content: 1337; } sass-spec-libsass-3.6.3/spec/scope/while.hrx000066400000000000000000000003601355712145100207630ustar00rootroot00000000000000<===> input.scss $foo: 42; .foo { content: $foo; } $condition: 1337; @while $condition > 0 { $foo: $condition !global; $condition: 0; } .bar { content: $foo; } <===> output.css .foo { content: 42; } .bar { content: 1337; } sass-spec-libsass-3.6.3/spec/scss-tests/000077500000000000000000000000001355712145100201335ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/scss-tests/001_test_one_line_comments.hrx000066400000000000000000000001401355712145100257650ustar00rootroot00000000000000<===> input.scss .foo {// bar: baz;} baz: bang; //} } <===> output.css .foo { baz: bang; } sass-spec-libsass-3.6.3/spec/scss-tests/002_test_one_line_comments.hrx000066400000000000000000000001571355712145100257760ustar00rootroot00000000000000<===> input.scss .foo bar[val="//"] { baz: bang; //} } <===> output.css .foo bar[val="//"] { baz: bang; } sass-spec-libsass-3.6.3/spec/scss-tests/003_test_variables.hrx000066400000000000000000000001211355712145100242410ustar00rootroot00000000000000<===> input.scss $var: foo; blat {a: $var} <===> output.css blat { a: foo; } sass-spec-libsass-3.6.3/spec/scss-tests/004_test_variables.hrx000066400000000000000000000002051355712145100242450ustar00rootroot00000000000000<===> input.scss foo { $var: 2; $another-var: 4; a: $var; b: $var + $another-var;} <===> output.css foo { a: 2; b: 6; } sass-spec-libsass-3.6.3/spec/scss-tests/005_test_unicode_variables/000077500000000000000000000000001355712145100252345ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/scss-tests/005_test_unicode_variables/input.scss000066400000000000000000000000351355712145100272660ustar00rootroot00000000000000$vär: foo; blat {a: $vär} sass-spec-libsass-3.6.3/spec/scss-tests/005_test_unicode_variables/output.css000066400000000000000000000000231355712145100273010ustar00rootroot00000000000000blat { a: foo; } sass-spec-libsass-3.6.3/spec/scss-tests/006_test_guard_assign.hrx000066400000000000000000000001351355712145100247470ustar00rootroot00000000000000<===> input.scss $var: 1; $var: 2 !default; foo {a: $var} <===> output.css foo { a: 1; } sass-spec-libsass-3.6.3/spec/scss-tests/007_test_guard_assign.hrx000066400000000000000000000001241355712145100247460ustar00rootroot00000000000000<===> input.scss $var: 2 !default; foo {a: $var} <===> output.css foo { a: 2; } sass-spec-libsass-3.6.3/spec/scss-tests/008_test_sass_script.hrx000066400000000000000000000002301355712145100246340ustar00rootroot00000000000000<===> input.scss foo { a: 1 + 2; b: 1 - 2; c: foo + bar; d: floor(12.3px); } <===> output.css foo { a: 3; b: -1; c: foobar; d: 12px; } sass-spec-libsass-3.6.3/spec/scss-tests/009_test_for_directive.hrx000066400000000000000000000001701355712145100251270ustar00rootroot00000000000000<===> input.scss .foo { @for $var from 1 to 5 {a: $var;} } <===> output.css .foo { a: 1; a: 2; a: 3; a: 4; } sass-spec-libsass-3.6.3/spec/scss-tests/010_test_for_directive.hrx000066400000000000000000000002051355712145100251160ustar00rootroot00000000000000<===> input.scss .foo { @for $var from 1 through 5 {a: $var;} } <===> output.css .foo { a: 1; a: 2; a: 3; a: 4; a: 5; } sass-spec-libsass-3.6.3/spec/scss-tests/011_test_if_directive.hrx000066400000000000000000000001631355712145100247320ustar00rootroot00000000000000<===> input.scss @if "foo" == "foo" {foo {a: b}} @if "foo" != "foo" {bar {a: b}} <===> output.css foo { a: b; } sass-spec-libsass-3.6.3/spec/scss-tests/012_test_if_directive.hrx000066400000000000000000000002231355712145100247300ustar00rootroot00000000000000<===> input.scss @if "foo" != "foo" {foo {a: b}} @else if "foo" == "foo" {bar {a: b}} @else if true {baz {a: b}} <===> output.css bar { a: b; } sass-spec-libsass-3.6.3/spec/scss-tests/013_test_if_directive.hrx000066400000000000000000000001461355712145100247350ustar00rootroot00000000000000<===> input.scss @if "foo" != "foo" {foo {a: b}} @else {bar {a: b}} <===> output.css bar { a: b; } sass-spec-libsass-3.6.3/spec/scss-tests/014_test_comment_after_if_directive.hrx000066400000000000000000000002201355712145100276320ustar00rootroot00000000000000<===> input.scss foo { @if true {a: b} /* This is a comment */ c: d } <===> output.css foo { a: b; /* This is a comment */ c: d; } sass-spec-libsass-3.6.3/spec/scss-tests/015_test_comment_after_if_directive.hrx000066400000000000000000000002371355712145100276430ustar00rootroot00000000000000<===> input.scss foo { @if true {a: b} @else {x: y} /* This is a comment */ c: d } <===> output.css foo { a: b; /* This is a comment */ c: d; } sass-spec-libsass-3.6.3/spec/scss-tests/017_test_each_directive.hrx000066400000000000000000000003751355712145100252470ustar00rootroot00000000000000<===> input.scss a { @each $number in 1px 2px 3px 4px { b: $number; } } c { @each $str in foo, bar, baz, bang { d: $str; } } <===> output.css a { b: 1px; b: 2px; b: 3px; b: 4px; } c { d: foo; d: bar; d: baz; d: bang; } sass-spec-libsass-3.6.3/spec/scss-tests/019_test_css_import_directive.hrx000066400000000000000000000001721355712145100265260ustar00rootroot00000000000000<===> input.scss @import "foo.css"; <===> output.css @import url(foo.css); <===> output-dart-sass.css @import "foo.css"; sass-spec-libsass-3.6.3/spec/scss-tests/020_test_css_import_directive.hrx000066400000000000000000000001721355712145100265160ustar00rootroot00000000000000<===> input.scss @import 'foo.css'; <===> output.css @import url(foo.css); <===> output-dart-sass.css @import 'foo.css'; sass-spec-libsass-3.6.3/spec/scss-tests/021_test_css_import_directive.hrx000066400000000000000000000001221355712145100265120ustar00rootroot00000000000000<===> input.scss @import url("foo.css"); <===> output.css @import url("foo.css"); sass-spec-libsass-3.6.3/spec/scss-tests/022_test_css_import_directive.hrx000066400000000000000000000001221355712145100265130ustar00rootroot00000000000000<===> input.scss @import url("foo.css"); <===> output.css @import url("foo.css"); sass-spec-libsass-3.6.3/spec/scss-tests/023_test_css_import_directive.hrx000066400000000000000000000001161355712145100265170ustar00rootroot00000000000000<===> input.scss @import url(foo.css); <===> output.css @import url(foo.css); sass-spec-libsass-3.6.3/spec/scss-tests/024_test_media_import.hrx000066400000000000000000000001321355712145100247470ustar00rootroot00000000000000<===> input.scss @import "./fonts.sass" all; <===> output.css @import "./fonts.sass" all; sass-spec-libsass-3.6.3/spec/scss-tests/025_test_dynamic_media_import.hrx000066400000000000000000000003371355712145100264630ustar00rootroot00000000000000<===> input.scss $media: print; $key: -webkit-min-device-pixel-ratio; $value: 20; @import "foo" #{$media} and ($key + "-foo": $value + 5); <===> output.css @import "foo" print and (-webkit-min-device-pixel-ratio-foo: 25); sass-spec-libsass-3.6.3/spec/scss-tests/027_test_protocol_relative_import.hrx000066400000000000000000000002221355712145100274270ustar00rootroot00000000000000<===> input.scss @import "//fonts.googleapis.com/css?family=Droid+Sans"; <===> output.css @import "//fonts.googleapis.com/css?family=Droid+Sans"; sass-spec-libsass-3.6.3/spec/scss-tests/028_test_import_with_interpolation.hrx000066400000000000000000000003071355712145100276220ustar00rootroot00000000000000<===> input.scss $family: unquote("Droid+Sans"); @import url("http://fonts.googleapis.com/css?family=#{$family}"); <===> output.css @import url("http://fonts.googleapis.com/css?family=Droid+Sans"); sass-spec-libsass-3.6.3/spec/scss-tests/029_test_url_import.hrx000066400000000000000000000001241355712145100245000ustar00rootroot00000000000000<===> input.scss @import url(fonts.sass); <===> output.css @import url(fonts.sass); sass-spec-libsass-3.6.3/spec/scss-tests/030_test_block_comment_in_script.hrx000066400000000000000000000001231355712145100271610ustar00rootroot00000000000000<===> input.scss foo {a: 1 + /* flang */ bar} <===> output.css foo { a: 1bar; } sass-spec-libsass-3.6.3/spec/scss-tests/031_test_line_comment_in_script.hrx000066400000000000000000000001311355712145100270160ustar00rootroot00000000000000<===> input.scss foo {a: 1 + // flang } blang } <===> output.css foo { a: 1blang; } sass-spec-libsass-3.6.3/spec/scss-tests/032_test_nested_rules.hrx000066400000000000000000000001101355712145100247650ustar00rootroot00000000000000<===> input.scss foo {bar {a: b}} <===> output.css foo bar { a: b; } sass-spec-libsass-3.6.3/spec/scss-tests/033_test_nested_rules.hrx000066400000000000000000000001541355712145100247760ustar00rootroot00000000000000<===> input.scss foo { bar {a: b} baz {b: c}} <===> output.css foo bar { a: b; } foo baz { b: c; } sass-spec-libsass-3.6.3/spec/scss-tests/034_test_nested_rules.hrx000066400000000000000000000002021355712145100247710ustar00rootroot00000000000000<===> input.scss foo { bar {baz {a: b}} bang {bip {a: b}}} <===> output.css foo bar baz { a: b; } foo bang bip { a: b; } sass-spec-libsass-3.6.3/spec/scss-tests/035_test_nested_rules_with_declarations.hrx000066400000000000000000000001431355712145100305610ustar00rootroot00000000000000<===> input.scss foo { a: b; bar {c: d}} <===> output.css foo { a: b; } foo bar { c: d; } sass-spec-libsass-3.6.3/spec/scss-tests/036_test_nested_rules_with_declarations.hrx000066400000000000000000000001421355712145100305610ustar00rootroot00000000000000<===> input.scss foo { bar {c: d} a: b} <===> output.css foo { a: b; } foo bar { c: d; } sass-spec-libsass-3.6.3/spec/scss-tests/037_test_nested_rules_with_declarations.hrx000066400000000000000000000005071355712145100305670ustar00rootroot00000000000000<===> input.scss foo { ump: nump; grump: clump; bar { blat: bang; habit: rabbit; baz {a: b} bip {c: d}} bibble { bap {e: f}}} <===> output.css foo { ump: nump; grump: clump; } foo bar { blat: bang; habit: rabbit; } foo bar baz { a: b; } foo bar bip { c: d; } foo bibble bap { e: f; } sass-spec-libsass-3.6.3/spec/scss-tests/038_test_nested_rules_with_fancy_selectors.hrx000066400000000000000000000002331355712145100312770ustar00rootroot00000000000000<===> input.scss foo { .bar {a: b} :baz {c: d} bang:bop {e: f}} <===> output.css foo .bar { a: b; } foo :baz { c: d; } foo bang:bop { e: f; } sass-spec-libsass-3.6.3/spec/scss-tests/039_test_almost_ambiguous_nested_rules_and_declarations.hrx000066400000000000000000000006661355712145100340200ustar00rootroot00000000000000<===> input.scss foo { bar:baz:bang:bop:biddle:woo:look:at:all:these:pseudoclasses {a: b}; bar:baz bang bop biddle woo look at all these elems {a: b}; bar:baz bang bop biddle woo look at all these elems; } <===> output.css foo { bar: baz bang bop biddle woo look at all these elems; } foo bar:baz:bang:bop:biddle:woo:look:at:all:these:pseudoclasses { a: b; } foo bar:baz bang bop biddle woo look at all these elems { a: b; } sass-spec-libsass-3.6.3/spec/scss-tests/040_test_newlines_in_selectors.hrx000066400000000000000000000001661355712145100267000ustar00rootroot00000000000000<===> options.yml --- :ignore_for: - dart-sass <===> input.scss foo bar {a: b} <===> output.css foo bar { a: b; } sass-spec-libsass-3.6.3/spec/scss-tests/041_test_newlines_in_selectors.hrx000066400000000000000000000001651355712145100267000ustar00rootroot00000000000000<===> input.scss foo, bar { baz, bang {a: b}} <===> output.css foo baz, foo bang, bar baz, bar bang { a: b; } sass-spec-libsass-3.6.3/spec/scss-tests/042_test_newlines_in_selectors.hrx000066400000000000000000000003421355712145100266760ustar00rootroot00000000000000<===> input.scss foo bar { baz bang {a: b} bip bop {c: d}} <===> output.css foo bar baz bang { a: b; } foo bar bip bop { c: d; } <===> output-dart-sass.css foo bar baz bang { a: b; } foo bar bip bop { c: d; } sass-spec-libsass-3.6.3/spec/scss-tests/043_test_newlines_in_selectors.hrx000066400000000000000000000002751355712145100267040ustar00rootroot00000000000000<===> options.yml --- :ignore_for: - dart-sass <===> input.scss foo, bar baz { bang, bip bop {a: b}} <===> output.css foo bang, foo bip bop, bar baz bang, bar baz bip bop { a: b; } sass-spec-libsass-3.6.3/spec/scss-tests/044_test_trailing_comma_in_selector.hrx000066400000000000000000000002221355712145100276530ustar00rootroot00000000000000<===> input.scss #foo #bar,, ,#baz #boom, {a: b} #bip #bop, ,, {c: d} <===> output.css #foo #bar, #baz #boom { a: b; } #bip #bop { c: d; } sass-spec-libsass-3.6.3/spec/scss-tests/045_test_parent_selectors.hrx000066400000000000000000000001741355712145100256630ustar00rootroot00000000000000<===> input.scss foo { &:hover {a: b} bar &.baz {c: d}} <===> output.css foo:hover { a: b; } bar foo.baz { c: d; } sass-spec-libsass-3.6.3/spec/scss-tests/046_test_parent_selector_with_subject.hrx000066400000000000000000000013171355712145100302530ustar00rootroot00000000000000<===> options.yml --- :ignore_for: - dart-sass - libsass <===> input.scss foo { bar &.baz! .bip {a: b}} foo bar { bar &.baz! .bip {c: d}} <===> output.css bar foo.baz! .bip { a: b; } bar foo bar.baz! .bip { c: d; } <===> warning DEPRECATION WARNING on line 2, column 1 of input.scss: The subject selector operator "!" is deprecated and will be removed in a future release. This operator has been replaced by ":has()" in the CSS spec. For example: bar &.baz:has(.bip) DEPRECATION WARNING on line 5, column 1 of input.scss: The subject selector operator "!" is deprecated and will be removed in a future release. This operator has been replaced by ":has()" in the CSS spec. For example: bar &.baz:has(.bip) sass-spec-libsass-3.6.3/spec/scss-tests/047_test_unknown_directive_bubbling.hrx000066400000000000000000000001641355712145100277110ustar00rootroot00000000000000<===> input.scss .foo { @fblthp { .bar {a: b} } } <===> output.css @fblthp { .foo .bar { a: b; } } sass-spec-libsass-3.6.3/spec/scss-tests/048_test_namespace_properties.hrx000066400000000000000000000002231355712145100265150ustar00rootroot00000000000000<===> input.scss foo { bar: baz; bang: { bip: 1px; bop: bar;}} <===> output.css foo { bar: baz; bang-bip: 1px; bang-bop: bar; } sass-spec-libsass-3.6.3/spec/scss-tests/049_test_several_namespace_properties.hrx000066400000000000000000000003501355712145100302400ustar00rootroot00000000000000<===> input.scss foo { bar: baz; bang: { bip: 1px; bop: bar;} buzz: { fram: "foo"; frum: moo; } } <===> output.css foo { bar: baz; bang-bip: 1px; bang-bop: bar; buzz-fram: "foo"; buzz-frum: moo; } sass-spec-libsass-3.6.3/spec/scss-tests/050_test_nested_namespace_properties.hrx000066400000000000000000000002761355712145100300600ustar00rootroot00000000000000<===> input.scss foo { bar: baz; bang: { bip: 1px; bop: bar; blat:{baf:bort}}} <===> output.css foo { bar: baz; bang-bip: 1px; bang-bop: bar; bang-blat-baf: bort; } sass-spec-libsass-3.6.3/spec/scss-tests/051_test_namespace_properties_with_value.hrx000066400000000000000000000002131355712145100307350ustar00rootroot00000000000000<===> input.scss foo { bar: baz { bip: bop; bing: bop; }} <===> output.css foo { bar: baz; bar-bip: bop; bar-bing: bop; } sass-spec-libsass-3.6.3/spec/scss-tests/052_test_namespace_properties_with_script_value.hrx000066400000000000000000000002261355712145100323260ustar00rootroot00000000000000<===> input.scss foo { bar: baz + bang { bip: bop; bing: bop; }} <===> output.css foo { bar: bazbang; bar-bip: bop; bar-bing: bop; } sass-spec-libsass-3.6.3/spec/scss-tests/053_test_no_namespace_properties_without_space.hrx000066400000000000000000000001411355712145100321420ustar00rootroot00000000000000<===> input.scss foo { bar:baz { bip: bop }} <===> output.css foo bar:baz { bip: bop; } sass-spec-libsass-3.6.3/spec/scss-tests/054_test_basic_mixins.hrx000066400000000000000000000001371355712145100247560ustar00rootroot00000000000000<===> input.scss @mixin foo { .foo {a: b}} @include foo; <===> output.css .foo { a: b; } sass-spec-libsass-3.6.3/spec/scss-tests/055_test_basic_mixins.hrx000066400000000000000000000002051355712145100247530ustar00rootroot00000000000000<===> input.scss @mixin foo { .foo {a: b}} bar { @include foo; c: d; } <===> output.css bar { c: d; } bar .foo { a: b; } sass-spec-libsass-3.6.3/spec/scss-tests/056_test_basic_mixins.hrx000066400000000000000000000001561355712145100247610ustar00rootroot00000000000000<===> input.scss @mixin foo {a: b} bar { @include foo; c: d; } <===> output.css bar { a: b; c: d; } sass-spec-libsass-3.6.3/spec/scss-tests/057_test_mixins_with_empty_args.hrx000066400000000000000000000001401355712145100270770ustar00rootroot00000000000000<===> input.scss @mixin foo() {a: b} .foo {@include foo();} <===> output.css .foo { a: b; } sass-spec-libsass-3.6.3/spec/scss-tests/058_test_mixins_with_empty_args.hrx000066400000000000000000000001361355712145100271050ustar00rootroot00000000000000<===> input.scss @mixin foo() {a: b} .foo {@include foo;} <===> output.css .foo { a: b; } sass-spec-libsass-3.6.3/spec/scss-tests/059_test_mixins_with_empty_args.hrx000066400000000000000000000001361355712145100271060ustar00rootroot00000000000000<===> input.scss @mixin foo {a: b} .foo {@include foo();} <===> output.css .foo { a: b; } sass-spec-libsass-3.6.3/spec/scss-tests/060_test_mixins_with_args.hrx000066400000000000000000000001471355712145100256620ustar00rootroot00000000000000<===> input.scss @mixin foo($a) {a: $a} .foo {@include foo(bar)} <===> output.css .foo { a: bar; } sass-spec-libsass-3.6.3/spec/scss-tests/061_test_mixins_with_args.hrx000066400000000000000000000002121355712145100256540ustar00rootroot00000000000000<===> input.scss @mixin foo($a, $b) { a: $a; b: $b; } .foo {@include foo(bar, 12px)} <===> output.css .foo { a: bar; b: 12px; } sass-spec-libsass-3.6.3/spec/scss-tests/062_test_basic_function.hrx000066400000000000000000000001551355712145100252730ustar00rootroot00000000000000<===> input.scss @function foo() { @return 1 + 2; } bar { a: foo(); } <===> output.css bar { a: 3; } sass-spec-libsass-3.6.3/spec/scss-tests/063_test_function_args.hrx000066400000000000000000000002071355712145100251450ustar00rootroot00000000000000<===> input.scss @function plus($var1, $var2) { @return $var1 + $var2; } bar { a: plus(1, 2); } <===> output.css bar { a: 3; } sass-spec-libsass-3.6.3/spec/scss-tests/064_test_mixin_var_args.hrx000066400000000000000000000002171355712145100253160ustar00rootroot00000000000000<===> input.scss @mixin foo($a, $b...) { a: $a; b: $b; } .foo {@include foo(1, 2, 3, 4)} <===> output.css .foo { a: 1; b: 2, 3, 4; } sass-spec-libsass-3.6.3/spec/scss-tests/065_test_mixin_empty_var_args.hrx000066400000000000000000000002101355712145100265260ustar00rootroot00000000000000<===> input.scss @mixin foo($a, $b...) { a: $a; b: length($b); } .foo {@include foo(1)} <===> output.css .foo { a: 1; b: 0; } sass-spec-libsass-3.6.3/spec/scss-tests/066_test_mixin_var_args_act_like_list.hrx000066400000000000000000000002311355712145100302020ustar00rootroot00000000000000<===> input.scss @mixin foo($a, $b...) { a: length($b); b: nth($b, 2); } .foo {@include foo(1, 2, 3, 4)} <===> output.css .foo { a: 3; b: 3; } sass-spec-libsass-3.6.3/spec/scss-tests/067_test_mixin_splat_args.hrx000066400000000000000000000003011355712145100256460ustar00rootroot00000000000000<===> input.scss @mixin foo($a, $b, $c, $d) { a: $a; b: $b; c: $c; d: $d; } $list: 2, 3, 4; .foo {@include foo(1, $list...)} <===> output.css .foo { a: 1; b: 2; c: 3; d: 4; } sass-spec-libsass-3.6.3/spec/scss-tests/068_test_mixin_splat_expression.hrx000066400000000000000000000002651355712145100271230ustar00rootroot00000000000000<===> input.scss @mixin foo($a, $b, $c, $d) { a: $a; b: $b; c: $c; d: $d; } .foo {@include foo(1, (2, 3, 4)...)} <===> output.css .foo { a: 1; b: 2; c: 3; d: 4; } sass-spec-libsass-3.6.3/spec/scss-tests/069_test_mixin_splat_args_with_var_args.hrx000066400000000000000000000002401355712145100305710ustar00rootroot00000000000000<===> input.scss @mixin foo($a, $b...) { a: $a; b: $b; } $list: 2, 3, 4; .foo {@include foo(1, $list...)} <===> output.css .foo { a: 1; b: 2, 3, 4; } sass-spec-libsass-3.6.3/spec/scss-tests/070_test_mixin_splat_args_with_var_args_and_normal_args.hrx000066400000000000000000000002621355712145100337730ustar00rootroot00000000000000<===> input.scss @mixin foo($a, $b, $c...) { a: $a; b: $b; c: $c; } $list: 2, 3, 4; .foo {@include foo(1, $list...)} <===> output.css .foo { a: 1; b: 2; c: 3, 4; } 071_test_mixin_splat_args_with_var_args_preserves_separator.hrx000066400000000000000000000002411355712145100346620ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/scss-tests<===> input.scss @mixin foo($a, $b...) { a: $a; b: $b; } $list: 3 4 5; .foo {@include foo(1, 2, $list...)} <===> output.css .foo { a: 1; b: 2 3 4 5; } sass-spec-libsass-3.6.3/spec/scss-tests/072_test_mixin_var_and_splat_args_pass_through_keywords.hrx000066400000000000000000000003161355712145100340570ustar00rootroot00000000000000<===> input.scss @mixin foo($a...) { @include bar($a...); } @mixin bar($b, $c, $a) { a: $a; b: $b; c: $c; } .foo {@include foo(1, $c: 2, $a: 3)} <===> output.css .foo { a: 3; b: 1; c: 2; } sass-spec-libsass-3.6.3/spec/scss-tests/078_test_mixin_list_of_pairs_splat_treated_as_list.hrx000066400000000000000000000002561355712145100330100ustar00rootroot00000000000000<===> input.scss @mixin foo($a, $b, $c) { a: $a; b: $b; c: $c; } .foo { @include foo((a 1, b 2, c 3)...); } <===> output.css .foo { a: a 1; b: b 2; c: c 3; } sass-spec-libsass-3.6.3/spec/scss-tests/083_test_function_var_args.hrx000066400000000000000000000002411355712145100260150ustar00rootroot00000000000000<===> input.scss @function foo($a, $b...) { @return "a: #{$a}, b: #{$b}"; } .foo {val: foo(1, 2, 3, 4)} <===> output.css .foo { val: "a: 1, b: 2, 3, 4"; } sass-spec-libsass-3.6.3/spec/scss-tests/084_test_function_empty_var_args.hrx000066400000000000000000000002321355712145100272340ustar00rootroot00000000000000<===> input.scss @function foo($a, $b...) { @return "a: #{$a}, b: #{length($b)}"; } .foo {val: foo(1)} <===> output.css .foo { val: "a: 1, b: 0"; } sass-spec-libsass-3.6.3/spec/scss-tests/085_test_function_var_args_act_like_list.hrx000066400000000000000000000002531355712145100307100ustar00rootroot00000000000000<===> input.scss @function foo($a, $b...) { @return "a: #{length($b)}, b: #{nth($b, 2)}"; } .foo {val: foo(1, 2, 3, 4)} <===> output.css .foo { val: "a: 3, b: 3"; } sass-spec-libsass-3.6.3/spec/scss-tests/086_test_function_splat_args.hrx000066400000000000000000000003211355712145100263520ustar00rootroot00000000000000<===> input.scss @function foo($a, $b, $c, $d) { @return "a: #{$a}, b: #{$b}, c: #{$c}, d: #{$d}"; } $list: 2, 3, 4; .foo {val: foo(1, $list...)} <===> output.css .foo { val: "a: 1, b: 2, c: 3, d: 4"; } sass-spec-libsass-3.6.3/spec/scss-tests/087_test_function_splat_expression.hrx000066400000000000000000000003051355712145100276200ustar00rootroot00000000000000<===> input.scss @function foo($a, $b, $c, $d) { @return "a: #{$a}, b: #{$b}, c: #{$c}, d: #{$d}"; } .foo {val: foo(1, (2, 3, 4)...)} <===> output.css .foo { val: "a: 1, b: 2, c: 3, d: 4"; } sass-spec-libsass-3.6.3/spec/scss-tests/088_test_function_splat_args_with_var_args.hrx000066400000000000000000000002621355712145100312770ustar00rootroot00000000000000<===> input.scss @function foo($a, $b...) { @return "a: #{$a}, b: #{$b}"; } $list: 2, 3, 4; .foo {val: foo(1, $list...)} <===> output.css .foo { val: "a: 1, b: 2, 3, 4"; } 089_test_function_splat_args_with_var_args_and_normal_args.hrx000066400000000000000000000003031355712145100344230ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/scss-tests<===> input.scss @function foo($a, $b, $c...) { @return "a: #{$a}, b: #{$b}, c: #{$c}"; } $list: 2, 3, 4; .foo {val: foo(1, $list...)} <===> output.css .foo { val: "a: 1, b: 2, c: 3, 4"; } 090_test_function_splat_args_with_var_args_preserves_separator.hrx000066400000000000000000000002631355712145100353700ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/scss-tests<===> input.scss @function foo($a, $b...) { @return "a: #{$a}, b: #{$b}"; } $list: 3 4 5; .foo {val: foo(1, 2, $list...)} <===> output.css .foo { val: "a: 1, b: 2 3 4 5"; } 091_test_function_var_and_splat_args_pass_through_keywords.hrx000066400000000000000000000003411355712145100345000ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/scss-tests<===> input.scss @function foo($a...) { @return bar($a...); } @function bar($b, $c, $a) { @return "a: #{$a}, b: #{$b}, c: #{$c}"; } .foo {val: foo(1, $c: 2, $a: 3)} <===> output.css .foo { val: "a: 3, b: 1, c: 2"; } sass-spec-libsass-3.6.3/spec/scss-tests/098_test_function_list_of_pairs_splat_treated_as_list.hrx000066400000000000000000000002771355712145100335160ustar00rootroot00000000000000<===> input.scss @function foo($a, $b, $c) { @return "a: #{$a}, b: #{$b}, c: #{$c}"; } .foo { val: foo((a 1, b 2, c 3)...); } <===> output.css .foo { val: "a: a 1, b: b 2, c: c 3"; } sass-spec-libsass-3.6.3/spec/scss-tests/103_test_function_var_args_passed_to_native.hrx000066400000000000000000000002361355712145100314210ustar00rootroot00000000000000<===> input.scss @function foo($args...) { @return adjust-color($args...); } .foo {val: foo(#102030, $blue: 5)} <===> output.css .foo { val: #102035; } sass-spec-libsass-3.6.3/spec/scss-tests/104_test_basic_selector_interpolation.hrx000066400000000000000000000001171355712145100302300ustar00rootroot00000000000000<===> input.scss foo#{1 + 2} baz {a: b} <===> output.css foo3 baz { a: b; } sass-spec-libsass-3.6.3/spec/scss-tests/105_test_basic_selector_interpolation.hrx000066400000000000000000000001231355712145100302260ustar00rootroot00000000000000<===> input.scss foo#{".bar"} baz {a: b} <===> output.css foo.bar baz { a: b; } sass-spec-libsass-3.6.3/spec/scss-tests/106_test_basic_selector_interpolation.hrx000066400000000000000000000001231355712145100302270ustar00rootroot00000000000000<===> input.scss #{"foo"}.bar baz {a: b} <===> output.css foo.bar baz { a: b; } sass-spec-libsass-3.6.3/spec/scss-tests/107_test_selector_only_interpolation.hrx000066400000000000000000000001201355712145100301250ustar00rootroot00000000000000<===> input.scss #{"foo" + " bar"} {a: b} <===> output.css foo bar { a: b; } sass-spec-libsass-3.6.3/spec/scss-tests/108_test_selector_interpolation_before_element_name.hrx000066400000000000000000000001261355712145100331260ustar00rootroot00000000000000<===> input.scss #{"foo" + " bar"}baz {a: b} <===> output.css foo barbaz { a: b; } sass-spec-libsass-3.6.3/spec/scss-tests/109_test_selector_interpolation_in_string.hrx000066400000000000000000000001661355712145100311540ustar00rootroot00000000000000<===> input.scss foo[val="bar #{"foo" + " bar"} baz"] {a: b} <===> output.css foo[val="bar foo bar baz"] { a: b; } sass-spec-libsass-3.6.3/spec/scss-tests/110_test_selector_interpolation_in_pseudoclass.hrx000066400000000000000000000001421355712145100321550ustar00rootroot00000000000000<===> input.scss foo:nth-child(#{5 + "n"}) {a: b} <===> output.css foo:nth-child(5n) { a: b; } sass-spec-libsass-3.6.3/spec/scss-tests/111_test_selector_interpolation_at_class_begininng.hrx000066400000000000000000000001221355712145100327520ustar00rootroot00000000000000<===> input.scss $zzz: zzz; .#{$zzz} { a: b; } <===> output.css .zzz { a: b; } sass-spec-libsass-3.6.3/spec/scss-tests/112_test_selector_interpolation_at_id_begininng.hrx000066400000000000000000000001221355712145100322420ustar00rootroot00000000000000<===> input.scss $zzz: zzz; ##{$zzz} { a: b; } <===> output.css #zzz { a: b; } sass-spec-libsass-3.6.3/spec/scss-tests/113_test_selector_interpolation_at_pseudo_begininng.hrx000066400000000000000000000001401355712145100331460ustar00rootroot00000000000000<===> input.scss $zzz: zzz; :#{$zzz}::#{$zzz} { a: b; } <===> output.css :zzz::zzz { a: b; } sass-spec-libsass-3.6.3/spec/scss-tests/114_test_selector_interpolation_at_attr_beginning.hrx000066400000000000000000000001341355712145100326250ustar00rootroot00000000000000<===> input.scss $zzz: zzz; [#{$zzz}=foo] { a: b; } <===> output.css [zzz=foo] { a: b; } sass-spec-libsass-3.6.3/spec/scss-tests/115_test_selector_interpolation_at_attr_end.hrx000066400000000000000000000001341355712145100314340ustar00rootroot00000000000000<===> input.scss $zzz: zzz; [foo=#{$zzz}] { a: b; } <===> output.css [foo=zzz] { a: b; } sass-spec-libsass-3.6.3/spec/scss-tests/116_test_selector_interpolation_at_dashes.hrx000066400000000000000000000001621355712145100311050ustar00rootroot00000000000000<===> input.scss $a : a; $b : b; div { -foo-#{$a}-#{$b}-foo: foo } <===> output.css div { -foo-a-b-foo: foo; } sass-spec-libsass-3.6.3/spec/scss-tests/118_test_parent_selector_with_parent_and_subject.hrx000066400000000000000000000006611355712145100324470ustar00rootroot00000000000000<===> options.yml --- :ignore_for: - dart-sass - libsass <===> input.scss $subject: "!"; foo { bar &.baz#{$subject} .bip {c: d}} <===> output.css bar foo.baz! .bip { c: d; } <===> warning DEPRECATION WARNING on line 3, column 1 of input.scss: The subject selector operator "!" is deprecated and will be removed in a future release. This operator has been replaced by ":has()" in the CSS spec. For example: bar &.baz:has(.bip) sass-spec-libsass-3.6.3/spec/scss-tests/119_test_basic_prop_name_interpolation.hrx000066400000000000000000000001401355712145100303720ustar00rootroot00000000000000<===> input.scss foo {bar#{"baz" + "bang"}: blip} <===> output.css foo { barbazbang: blip; } sass-spec-libsass-3.6.3/spec/scss-tests/120_test_basic_prop_name_interpolation.hrx000066400000000000000000000001211355712145100303610ustar00rootroot00000000000000<===> input.scss foo {bar#{1 + 2}: blip} <===> output.css foo { bar3: blip; } sass-spec-libsass-3.6.3/spec/scss-tests/121_test_prop_name_only_interpolation.hrx000066400000000000000000000001321355712145100302640ustar00rootroot00000000000000<===> input.scss foo {#{"baz" + "bang"}: blip} <===> output.css foo { bazbang: blip; } sass-spec-libsass-3.6.3/spec/scss-tests/122_test_directive_interpolation.hrx000066400000000000000000000001431355712145100272240ustar00rootroot00000000000000<===> input.scss $baz: 12; @foo bar#{$baz} qux {a: b} <===> output.css @foo bar12 qux { a: b; } sass-spec-libsass-3.6.3/spec/scss-tests/128_test_supports_with_expressions.hrx000066400000000000000000000004401355712145100277010ustar00rootroot00000000000000<===> input.scss $query: "(feature1: val)"; $feature: feature2; $val: val; @supports (#{$query} and ($feature: $val)) or (not ($feature + 3: $val + 4)) { foo {a: b} } <===> output.css @supports ((feature1: val) and (feature2: val)) or (not (feature23: val4)) { foo { a: b; } } sass-spec-libsass-3.6.3/spec/scss-tests/129_test_supports_bubbling.hrx000066400000000000000000000003431355712145100260530ustar00rootroot00000000000000<===> input.scss a { @supports (foo: bar) { b: c; @supports (baz: bang) { d: e; } } } <===> output.css @supports (foo: bar) { a { b: c; } @supports (baz: bang) { a { d: e; } } } sass-spec-libsass-3.6.3/spec/scss-tests/130_test_random_directive_interpolation.hrx000066400000000000000000000004701355712145100305660ustar00rootroot00000000000000<===> input.scss $domain: "sass-lang.com"; @foo url(https://#{$domain}/), #{domain($domain)}, "foo#{'ba' + 'r'}baz", foo#{'ba' + 'r'}baz { .foo {a: b} } <===> output.css @foo url(https://sass-lang.com/), domain("sass-lang.com"), "foobarbaz", foobarbaz { .foo { a: b; } } sass-spec-libsass-3.6.3/spec/scss-tests/131_test_nested_mixin_def.hrx000066400000000000000000000001371355712145100256060ustar00rootroot00000000000000<===> input.scss foo { @mixin bar {a: b} @include bar; } <===> output.css foo { a: b; } sass-spec-libsass-3.6.3/spec/scss-tests/132_test_nested_mixin_shadow.hrx000066400000000000000000000002271355712145100263360ustar00rootroot00000000000000<===> input.scss @mixin bar {a: b} foo { @mixin bar {c: d} @include bar; } baz {@include bar} <===> output.css foo { c: d; } baz { a: b; } sass-spec-libsass-3.6.3/spec/scss-tests/133_test_nested_function_def.hrx000066400000000000000000000002121355712145100263030ustar00rootroot00000000000000<===> input.scss foo { @function foo() {@return 1} a: foo(); } bar {b: foo()} <===> output.css foo { a: 1; } bar { b: foo(); } sass-spec-libsass-3.6.3/spec/scss-tests/134_test_nested_function_shadow.hrx000066400000000000000000000002431355712145100270370ustar00rootroot00000000000000<===> input.scss @function foo() {@return 1} foo { @function foo() {@return 2} a: foo(); } baz {b: foo()} <===> output.css foo { a: 2; } baz { b: 1; } sass-spec-libsass-3.6.3/spec/scss-tests/171_test_loud_comment_in_compressed_mode.hrx000066400000000000000000000000711355712145100307060ustar00rootroot00000000000000<===> input.scss /*! foo */ <===> output.css /*! foo */ 172_test_parsing_decimals_followed_by_comments_doesnt_take_forever.hrx000066400000000000000000000002621355712145100361350ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/scss-tests<===> input.scss .foo { padding: 4.21052631578947% 4.21052631578947% 5.631578947368421% /**/ } <===> output.css .foo { padding: 4.2105263158% 4.2105263158% 5.6315789474%; } sass-spec-libsass-3.6.3/spec/scss-tests/173_test_parsing_many_numbers_doesnt_take_forever.hrx000066400000000000000000000432331355712145100326460ustar00rootroot00000000000000<===> input.scss .foo { padding: 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%; } <===> output.css .foo { padding: 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%, 80% 90%; } sass-spec-libsass-3.6.3/spec/scss-tests/174_test_import_comments_in_imports.hrx000066400000000000000000000005011355712145100277660ustar00rootroot00000000000000<===> input.scss @import "foo.css", // this is a comment "bar.css", /* this is another comment */ "baz.css"; // this is a third comment <===> output.css @import url(foo.css); @import url(bar.css); @import url(baz.css); <===> output-dart-sass.css @import "foo.css"; @import "bar.css"; @import "baz.css"; sass-spec-libsass-3.6.3/spec/scss-tests/176_test_newline_selector_rendered_multiple_times.hrx000066400000000000000000000003301355712145100326330ustar00rootroot00000000000000<===> input.scss @for $i from 1 through 2 { form { input, select { color: white; } } } <===> output.css form input, form select { color: white; } form input, form select { color: white; } sass-spec-libsass-3.6.3/spec/scss-tests/177_test_prop_name_interpolation_after_hyphen.hrx000066400000000000000000000001201355712145100317670ustar00rootroot00000000000000<===> input.scss a { -#{"foo"}-bar: b; } <===> output.css a { -foo-bar: b; } sass-spec-libsass-3.6.3/spec/scss-tests/178_test_star_plus_and_parent.hrx000066400000000000000000000001221355712145100265160ustar00rootroot00000000000000<===> input.scss foo {*+html & {a: b}} <===> output.css * + html foo { a: b; } sass-spec-libsass-3.6.3/spec/scss-tests/179_test_weird_added_space.hrx000066400000000000000000000001521355712145100257210ustar00rootroot00000000000000<===> input.scss $value : bip; foo { bar: -moz-#{$value}; } <===> output.css foo { bar: -moz-bip; } sass-spec-libsass-3.6.3/spec/scss-tests/180_test_interpolation_with_bracket_on_next_line.hrx000066400000000000000000000001271355712145100324630ustar00rootroot00000000000000<===> input.scss a.#{"foo"} b {color: red} <===> output.css a.foo b { color: red; } sass-spec-libsass-3.6.3/spec/scss-tests/181_test_interpolation.hrx000066400000000000000000000002011355712145100251660ustar00rootroot00000000000000<===> input.scss $bar : "#foo"; ul li#{$bar} a span.label { foo: bar; } <===> output.css ul li#foo a span.label { foo: bar; } sass-spec-libsass-3.6.3/spec/scss-tests/182_test_mixin_with_keyword_args.hrx000066400000000000000000000004471355712145100272530ustar00rootroot00000000000000<===> input.scss @mixin a-mixin($required, $arg1: default-val1, $arg2: default-val2) { required: $required; arg1: $arg1; arg2: $arg2; } .mixed { @include a-mixin(foo, $arg2: non-default-val2); } <===> output.css .mixed { required: foo; arg1: default-val1; arg2: non-default-val2; } sass-spec-libsass-3.6.3/spec/scss-tests/183_test_passing_required_args_as_a_keyword_arg.hrx000066400000000000000000000004251355712145100322510ustar00rootroot00000000000000<===> input.scss @mixin a-mixin($required, $arg1: default-val1, $arg2: default-val2) { required: $required; arg1: $arg1; arg2: $arg2; } .mixed { @include a-mixin($required: foo); } <===> output.css .mixed { required: foo; arg1: default-val1; arg2: default-val2; } sass-spec-libsass-3.6.3/spec/scss-tests/184_test_passing_all_as_keyword_args_in_opposite_order.hrx000066400000000000000000000005171355712145100336560ustar00rootroot00000000000000<===> input.scss @mixin a-mixin($required, $arg1: default-val1, $arg2: default-val2) { required: $required; arg1: $arg1; arg2: $arg2; } .mixed { @include a-mixin($arg2: non-default-val2, $arg1: non-default-val1, $required: foo); } <===> output.css .mixed { required: foo; arg1: non-default-val1; arg2: non-default-val2; } sass-spec-libsass-3.6.3/spec/scss-tests/185_test_keyword_args_in_functions.hrx000066400000000000000000000002031355712145100275630ustar00rootroot00000000000000<===> input.scss .keyed { color: rgba($color: #a7c, $alpha: 0.4) } <===> output.css .keyed { color: rgba(170, 119, 204, 0.4); } sass-spec-libsass-3.6.3/spec/scss-tests/186_test_newlines_removed_from_selectors_when_compressed.hrx000066400000000000000000000002501355712145100342300ustar00rootroot00000000000000<===> input.scss a , b { z & { display: block; } } <===> output.css z a , z b { display: block; } <===> output-dart-sass.css z a, z b { display: block; } sass-spec-libsass-3.6.3/spec/scss-tests/187_test_multiline_var.hrx000066400000000000000000000002741355712145100251710ustar00rootroot00000000000000<===> input.scss foo { $var1: 1 + 2; $var2: true and false; $var3: a b c; a: $var1; b: $var2; c: $var3; } <===> output.css foo { a: 3; b: false; c: a b c; } sass-spec-libsass-3.6.3/spec/scss-tests/188_test_mixin_content.hrx000066400000000000000000000006421355712145100251750ustar00rootroot00000000000000<===> input.scss $color: blue; @mixin context($class, $color: red) { .#{$class} { background-color: $color; @content; border-color: $color; } } @include context(parent) { @include context(child, $color: yellow) { color: $color; } } <===> output.css .parent { background-color: red; border-color: red; } .parent .child { background-color: yellow; color: blue; border-color: yellow; } sass-spec-libsass-3.6.3/spec/scss-tests/189_test_empty_content.hrx000066400000000000000000000001451355712145100252060ustar00rootroot00000000000000<===> input.scss @mixin foo { @content } a { b: c; @include foo {} } <===> output.css a { b: c; } sass-spec-libsass-3.6.3/spec/scss-tests/190_test_options_passed_to_script.hrx000066400000000000000000000001331355712145100274230ustar00rootroot00000000000000<===> input.scss foo {color: darken(black, 10%)} <===> output.css foo { color: black; } sass-spec-libsass-3.6.3/spec/scss-tests/191_test_extend_in_media_in_rule.hrx000066400000000000000000000002471355712145100271430ustar00rootroot00000000000000<===> input.scss .foo { @media screen { @extend %bar; } } @media screen { %bar { a: b; } } <===> output.css @media screen { .foo { a: b; } } sass-spec-libsass-3.6.3/spec/scss/000077500000000000000000000000001355712145100167735ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/scss/almost_ambiguous_nested_rules_and_declarations.hrx000066400000000000000000000006661355712145100312260ustar00rootroot00000000000000<===> input.scss foo { bar:baz:bang:bop:biddle:woo:look:at:all:these:pseudoclasses {a: b}; bar:baz bang bop biddle woo look at all these elems {a: b}; bar:baz bang bop biddle woo look at all these elems; } <===> output.css foo { bar: baz bang bop biddle woo look at all these elems; } foo bar:baz:bang:bop:biddle:woo:look:at:all:these:pseudoclasses { a: b; } foo bar:baz bang bop biddle woo look at all these elems { a: b; } sass-spec-libsass-3.6.3/spec/scss/alpha.hrx000066400000000000000000000014121355712145100206010ustar00rootroot00000000000000<===> input.scss $x: rgb(0, 255, 255); div { color: rgb(255, $blue: 0, $green: 255); background: rgb(123, 45, 6); // flah: rgba(0, 0, 0, 1) + #111; grah: rgba(#f0e, $alpha: .5); // blah: rgba(1,2,3,.6); floo: $x; // bloo: rgba($x, 0.7); groo: $x; $x: rgb(123, 45, 6); hoo: red($x); moo: green($x); poo: blue($x); // goo: mix(rgba(255, 0, 0, 0.5), #00f); boo: invert(#123456); } <===> output.css div { color: yellow; background: #7b2d06; grah: rgba(255, 0, 238, 0.5); floo: cyan; groo: cyan; hoo: 123; moo: 45; poo: 6; boo: #edcba9; } <===> output-dart-sass.css div { color: yellow; background: #7b2d06; grah: rgba(255, 0, 238, 0.5); floo: aqua; groo: aqua; hoo: 123; moo: 45; poo: 6; boo: #edcba9; } sass-spec-libsass-3.6.3/spec/scss/arglist.hrx000066400000000000000000000003051355712145100211610ustar00rootroot00000000000000<===> input.scss @mixin foo($x, $y, $zs...) { foo-x: $x; foo-y: $y; foo-zs: $zs; } div { @include foo(a, b, c, d, e); } <===> output.css div { foo-x: a; foo-y: b; foo-zs: c, d, e; } sass-spec-libsass-3.6.3/spec/scss/backrefs-in-selector-groups.hrx000066400000000000000000000002431355712145100250340ustar00rootroot00000000000000<===> input.scss a { &:c, & d { hey: ho; } } a b { &:c, & d { hey: ho; } } <===> output.css a:c, a d { hey: ho; } a b:c, a b d { hey: ho; } sass-spec-libsass-3.6.3/spec/scss/backslash.hrx000066400000000000000000000002351355712145100214510ustar00rootroot00000000000000<===> input.scss div, span { color: red; \ foo { color: blue; } } <===> output.css div, span { color: red; } div \ foo, span \ foo { color: blue; } sass-spec-libsass-3.6.3/spec/scss/basic_function.hrx000066400000000000000000000001551355712145100225050ustar00rootroot00000000000000<===> input.scss @function foo() { @return 1 + 2; } bar { a: foo(); } <===> output.css bar { a: 3; } sass-spec-libsass-3.6.3/spec/scss/basic_mixins.hrx000066400000000000000000000001561355712145100221700ustar00rootroot00000000000000<===> input.scss @mixin foo {a: b} bar { @include foo; c: d; } <===> output.css bar { a: b; c: d; } sass-spec-libsass-3.6.3/spec/scss/basic_prop_name_interpolation.hrx000066400000000000000000000001211355712145100256000ustar00rootroot00000000000000<===> input.scss foo {bar#{1 + 2}: blip} <===> output.css foo { bar3: blip; } sass-spec-libsass-3.6.3/spec/scss/basic_selector_interpolation.hrx000066400000000000000000000001231355712145100254420ustar00rootroot00000000000000<===> input.scss #{"foo"}.bar baz {a: b} <===> output.css foo.bar baz { a: b; } sass-spec-libsass-3.6.3/spec/scss/blimp.hrx000066400000000000000000000001241355712145100206160ustar00rootroot00000000000000<===> input.scss blimp { color: green } <===> output.css blimp { color: green; } sass-spec-libsass-3.6.3/spec/scss/block_comment_in_script.hrx000066400000000000000000000001231355712145100244000ustar00rootroot00000000000000<===> input.scss foo {a: 1 + /* flang */ bar} <===> output.css foo { a: 1bar; } sass-spec-libsass-3.6.3/spec/scss/cfunc.hrx000066400000000000000000000001441355712145100206130ustar00rootroot00000000000000<===> input.scss div { blah: say-something(); } <===> output.css div { blah: say-something(); } sass-spec-libsass-3.6.3/spec/scss/classes-and-ids.hrx000066400000000000000000000003541355712145100224720ustar00rootroot00000000000000<===> input.scss div.foo { color: red; #hux buz { width: auto; } > .mux { text-align: center; } } <===> output.css div.foo { color: red; } div.foo #hux buz { width: auto; } div.foo > .mux { text-align: center; } sass-spec-libsass-3.6.3/spec/scss/color_output.hrx000066400000000000000000000033051355712145100222550ustar00rootroot00000000000000<===> input.scss $green: green; $green-hex: #00FF00; $green-hex-min: #0f0; $green-rgb: rgb(0, 255, 0); $green-rgba-t: rgba(0, 255, 0, 0.5); $green-rgba-s: rgba(0, 255, 0, 1); $offgreen: #00ff01; $silver: silver; $silver-hex: #ddd; a { q: silver; r: #ddd; s: green; t: #00FF00; v: #0f0; w: rgb(0, 255, 0); x: rgba(0, 255, 0, 0.5); y: rgba(0, 255, 0, 1); z: #00ff01; } b { q: 1px solid silver; r: 1px solid #ddd; s: 1px solid green; t: 1px solid #00FF00; v: 1px solid #0f0; w: 1px solid rgb(0, 255, 0); x: 1px solid rgba(0, 255, 0, 0.5); y: 1px solid rgba(0, 255, 0, 1); z: 1px solid #00ff01; } c { q: $silver; r: $silver-hex; s: $green; t: $green-hex; v: $green-hex-min; w: $green-rgb; x: $green-rgba-t; y: $green-rgba-s; z: $offgreen; } d { q: 1px solid $silver; r: 1px solid $silver-hex; s: 1px solid $green; t: 1px solid $green-hex; v: 1px solid $green-hex-min; w: 1px solid $green-rgb; x: 1px solid $green-rgba-t; y: 1px solid $green-rgba-s; z: 1px solid $offgreen; } <===> output.css a { q: silver; r: #ddd; s: green; t: #00FF00; v: #0f0; w: lime; x: rgba(0, 255, 0, 0.5); y: lime; z: #00ff01; } b { q: 1px solid silver; r: 1px solid #ddd; s: 1px solid green; t: 1px solid #00FF00; v: 1px solid #0f0; w: 1px solid lime; x: 1px solid rgba(0, 255, 0, 0.5); y: 1px solid lime; z: 1px solid #00ff01; } c { q: silver; r: #ddd; s: green; t: #00FF00; v: #0f0; w: lime; x: rgba(0, 255, 0, 0.5); y: lime; z: #00ff01; } d { q: 1px solid silver; r: 1px solid #ddd; s: 1px solid green; t: 1px solid #00FF00; v: 1px solid #0f0; w: 1px solid lime; x: 1px solid rgba(0, 255, 0, 0.5); y: 1px solid lime; z: 1px solid #00ff01; } sass-spec-libsass-3.6.3/spec/scss/comment_after_if_directive.hrx000066400000000000000000000002371355712145100250570ustar00rootroot00000000000000<===> input.scss foo { @if true {a: b} @else {x: y} /* This is a comment */ c: d } <===> output.css foo { a: b; /* This is a comment */ c: d; } sass-spec-libsass-3.6.3/spec/scss/composed-args.hrx000066400000000000000000000027741355712145100222730ustar00rootroot00000000000000<===> input.scss @mixin A($width: 0, $height: 0, $opacity: 0) { width: $width; height: $height; opacity: $opacity; } @mixin B($args...) { @include A($args...); } @mixin C($args...) { @include B($args...); } .testOneLevelPassthrough { @include B(1px, 2px, 0.3); } .testOneLevelNoArgs { @include B(); } .testOneLevelSingleArg { @include B(1px); } .testOneLevelNamedSingleArg { @include B($opacity: 0.1); } .testOneLevelNamedArgs { @include B($opacity: 0.3, $width: 1px, $height: 2px); } .testTwoLevelPassthrough { @include C(1px, 2px, 0.3); } .testTwoLevelNoArgs { @include C(); } .testTwoLevelSingleArg { @include C(1px); } .testTwoLevelNamedSingleArg { @include C($opacity: 0.1); } .testTwoLevelNamedArgs { @include C($opacity: 0.3, $width: 1px, $height: 2px); } <===> output.css .testOneLevelPassthrough { width: 1px; height: 2px; opacity: 0.3; } .testOneLevelNoArgs { width: 0; height: 0; opacity: 0; } .testOneLevelSingleArg { width: 1px; height: 0; opacity: 0; } .testOneLevelNamedSingleArg { width: 0; height: 0; opacity: 0.1; } .testOneLevelNamedArgs { width: 1px; height: 2px; opacity: 0.3; } .testTwoLevelPassthrough { width: 1px; height: 2px; opacity: 0.3; } .testTwoLevelNoArgs { width: 0; height: 0; opacity: 0; } .testTwoLevelSingleArg { width: 1px; height: 0; opacity: 0; } .testTwoLevelNamedSingleArg { width: 0; height: 0; opacity: 0.1; } .testTwoLevelNamedArgs { width: 1px; height: 2px; opacity: 0.3; } sass-spec-libsass-3.6.3/spec/scss/concat.hrx000066400000000000000000000003141355712145100207630ustar00rootroot00000000000000<===> input.scss div { a: hello + "goodbye"; b: "hello" + goodbye; c: 3 + "hello"; d: "hello" + 3; } <===> output.css div { a: hellogoodbye; b: "hellogoodbye"; c: "3hello"; d: "hello3"; } sass-spec-libsass-3.6.3/spec/scss/cons-up.hrx000066400000000000000000000023321355712145100211020ustar00rootroot00000000000000<===> input.scss $inputs-list: 'input[type="email"]', 'input[type="number"]', 'input[type="password"]', 'input[type="search"]', 'input[type="tel"]', 'input[type="text"]', 'input[type="url"]', // Webkit & Gecko may change the display of these in the future 'input[type="color"]', 'input[type="date"]', 'input[type="datetime"]', 'input[type="datetime-local"]', 'input[type="month"]', 'input[type="time"]', 'input[type="week"]'; $unquoted-inputs-list: (); @each $input-type in $inputs-list { $unquoted-inputs-list: append($unquoted-inputs-list, unquote($input-type), comma); } div { content: $unquoted-inputs-list; content: append((), hello); content: length(()); } <===> output.css div { content: input[type="email"], input[type="number"], input[type="password"], input[type="search"], input[type="tel"], input[type="text"], input[type="url"], input[type="color"], input[type="date"], input[type="datetime"], input[type="datetime-local"], input[type="month"], input[type="time"], input[type="week"]; content: hello; content: 0; } sass-spec-libsass-3.6.3/spec/scss/css_basic_scss.hrx000066400000000000000000000001031355712145100224740ustar00rootroot00000000000000<===> input.scss sel { p: v; } <===> output.css sel { p: v; } sass-spec-libsass-3.6.3/spec/scss/css_block_directive_with_semicolon.hrx000066400000000000000000000001501355712145100266150ustar00rootroot00000000000000<===> input.scss @foo { a: b; } @bar { a: b; } <===> output.css @foo { a: b; } @bar { a: b; } sass-spec-libsass-3.6.3/spec/scss/css_cdo_and_cdc_ignored_at_toplevel.hrx000066400000000000000000000002371355712145100266750ustar00rootroot00000000000000<===> input.scss foo { bar: baz; } bar { bar: baz; } baz { bar: baz; } <===> output.css foo { bar: baz; } bar { bar: baz; } baz { bar: baz; } sass-spec-libsass-3.6.3/spec/scss/css_crazy_comments.hrx000066400000000000000000000013451355712145100234260ustar00rootroot00000000000000<===> input.scss /* This is a CSS comment. */ .one { color: green; } /* Another comment */ /* The following should not be used: .two {color: red;} */ .three { color: green; /* color: red; */ } /** .four {color: red;} */ .five { color: green; } /**/ .six { color: green; } /*********/ .seven { color: green; } /* a comment **/ .eight { color: green; } <===> output.css /* This is a CSS comment. */ .one { color: green; } /* Another comment */ /* The following should not be used: .two {color: red;} */ .three { color: green; /* color: red; */ } /** .four {color: red;} */ .five { color: green; } /**/ .six { color: green; } /*********/ .seven { color: green; } /* a comment **/ .eight { color: green; } sass-spec-libsass-3.6.3/spec/scss/css_empty_declarations.hrx000066400000000000000000000001131355712145100242470ustar00rootroot00000000000000<===> input.scss foo { bar: baz; } <===> output.css foo { bar: baz; } sass-spec-libsass-3.6.3/spec/scss/css_empty_rule.hrx000066400000000000000000000000421355712145100225470ustar00rootroot00000000000000<===> input.scss <===> output.css sass-spec-libsass-3.6.3/spec/scss/css_import_directive.hrx000066400000000000000000000001161355712145100237340ustar00rootroot00000000000000<===> input.scss @import url(foo.css); <===> output.css @import url(foo.css); sass-spec-libsass-3.6.3/spec/scss/css_invisible_comments.hrx000066400000000000000000000001031355712145100242510ustar00rootroot00000000000000<===> input.scss foo { a: d; } <===> output.css foo { a: d; } sass-spec-libsass-3.6.3/spec/scss/css_property_comments.hrx000066400000000000000000000001571355712145100241620ustar00rootroot00000000000000<===> input.scss .foo { /* Foo * Bar */ a: b; } <===> output.css .foo { /* Foo * Bar */ a: b; } sass-spec-libsass-3.6.3/spec/scss/css_rule_comments.hrx000066400000000000000000000001471355712145100232440ustar00rootroot00000000000000<===> input.scss /* Foo * Bar */ .foo { a: b; } <===> output.css /* Foo * Bar */ .foo { a: b; } sass-spec-libsass-3.6.3/spec/scss/css_selector_comments.hrx000066400000000000000000000001411355712145100241070ustar00rootroot00000000000000<===> input.scss .foo #bar:baz(bip) { a: b; } <===> output.css .foo #bar:baz(bip) { a: b; } sass-spec-libsass-3.6.3/spec/scss/css_selector_hacks.hrx000066400000000000000000000001071355712145100233550ustar00rootroot00000000000000<===> input.scss > > E { a: b; } <===> output.css > > E { a: b; } sass-spec-libsass-3.6.3/spec/scss/css_spaceless_combo_selectors.hrx000066400000000000000000000001071355712145100256100ustar00rootroot00000000000000<===> input.scss E + F { a: b; } <===> output.css E + F { a: b; } sass-spec-libsass-3.6.3/spec/scss/css_unary_ops.hrx000066400000000000000000000002511355712145100224030ustar00rootroot00000000000000<===> input.scss foo { a: -0.5em; b: 0.5em; c: -foo(12px); d: +foo(12px); } <===> output.css foo { a: -0.5em; b: 0.5em; c: -foo(12px); d: +foo(12px); } sass-spec-libsass-3.6.3/spec/scss/default-args.hrx000066400000000000000000000005021355712145100220710ustar00rootroot00000000000000<===> input.scss @mixin foo($x: 1, $y: $x + 1) { value: $x, $y; } div { @include foo(); @include foo(2); @include foo($y: 3); } $v: hey; @mixin bar($x: $v) { value: $x; } div { $v: ho !global; @include bar(); } <===> output.css div { value: 1, 2; value: 2, 3; value: 1, 3; } div { value: ho; } sass-spec-libsass-3.6.3/spec/scss/default-parameters.hrx000066400000000000000000000002541355712145100233040ustar00rootroot00000000000000<===> input.scss $a: red; @mixin f($a: $a) { color: $a; } h1 { @include f; } h2 { @include f(blue); } <===> output.css h1 { color: red; } h2 { color: blue; } sass-spec-libsass-3.6.3/spec/scss/default-vars-in-default-params.hrx000066400000000000000000000002501355712145100254170ustar00rootroot00000000000000<===> input.scss $y: why; @mixin foo($x, $y: $y) { stuff: $x $y; } div { why: $y; @include foo(ecks); } <===> output.css div { why: why; stuff: ecks why; } sass-spec-libsass-3.6.3/spec/scss/directives-in-propsets.hrx000066400000000000000000000010371355712145100241410ustar00rootroot00000000000000<===> input.scss $color: red; $position: 50%; $x: 0; @mixin foo() { image: url(foo.png); } div { background: { something: { color: green; } @if (type-of($color) == "color") { color: $color; } @if (type-of($position) == "number") { position: $position; @include foo(); } groo: foo; } width: $x; } <===> output.css div { background-something-color: green; background-color: red; background-position: 50%; background-image: url(foo.png); background-groo: foo; width: 0; } sass-spec-libsass-3.6.3/spec/scss/each.hrx000066400000000000000000000004461355712145100204220ustar00rootroot00000000000000<===> input.scss div { $x: 3; @each $x in singleton { color: $x; } divider: $x; @each $x in foo, bar, hux { span { msg: $x; } } } <===> output.css div { color: singleton; divider: 3; } div span { msg: foo; } div span { msg: bar; } div span { msg: hux; } sass-spec-libsass-3.6.3/spec/scss/each_directive.hrx000066400000000000000000000003751355712145100224610ustar00rootroot00000000000000<===> input.scss a { @each $number in 1px 2px 3px 4px { b: $number; } } c { @each $str in foo, bar, baz, bang { d: $str; } } <===> output.css a { b: 1px; b: 2px; b: 3px; b: 4px; } c { d: foo; d: bar; d: baz; d: bang; } sass-spec-libsass-3.6.3/spec/scss/each_in_functions.hrx000066400000000000000000000013111355712145100231700ustar00rootroot00000000000000<===> input.scss $GLOBAL: global; @function foo($g1, $g2, $g3) { @each $value in $g1, $g2, $g3 { $GLOBAL: $GLOBAL each $value !global; $GLOBAL: $GLOBAL type1 type-of(nth($value, 1)) !global; $GLOBAL: $GLOBAL type2 type-of(nth($value, 2)) !global; } @each $value in (foo: foo, bar: bar) { $GLOBAL: $GLOBAL map $value !global; } @return 0; } div { a: foo(50% 50%, cover circle, red blue); b: $GLOBAL; $colors: red green blue; c: a, b, type-of(nth($colors, 2)), d; } <===> output.css div { a: 0; b: global each 50% 50% type1 number type2 number each cover circle type1 string type2 string each red blue type1 color type2 color map foo foo map bar bar; c: a, b, color, d; } sass-spec-libsass-3.6.3/spec/scss/feature-queries/000077500000000000000000000000001355712145100221015ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/scss/feature-queries/basic.hrx000066400000000000000000000010551355712145100237060ustar00rootroot00000000000000<===> input.scss @supports (foo: bar) { div { foo: bar; } } @supports not (foo: bar) { div { bar: baz; } } @supports (foo: bar) and (bar: baz) { div { foo: bar; bar: baz; } } @supports (foo: bar) or (bar: baz) { div { bar: baz; } } <===> output.css @supports (foo: bar) { div { foo: bar; } } @supports not (foo: bar) { div { bar: baz; } } @supports (foo: bar) and (bar: baz) { div { foo: bar; bar: baz; } } @supports (foo: bar) or (bar: baz) { div { bar: baz; } } sass-spec-libsass-3.6.3/spec/scss/feature-queries/nested.hrx000066400000000000000000000003331355712145100241050ustar00rootroot00000000000000<===> input.scss .foo { display: block; @supports (display: flex) { display: flex; } } <===> output.css .foo { display: block; } @supports (display: flex) { .foo { display: flex; } } sass-spec-libsass-3.6.3/spec/scss/feature-queries/without-query.hrx000066400000000000000000000005121355712145100254700ustar00rootroot00000000000000<===> input.scss @supports { } <===> error Error: Invalid CSS after "@supports ": expected @supports condition (e.g. (display: flexbox)), was "{" on line 1 of input.scss Use --trace for backtrace. <===> error-dart-sass Error: Expected "not". , 1 | @supports { | ^ ' input.scss 1:11 root stylesheet sass-spec-libsass-3.6.3/spec/scss/for.hrx000066400000000000000000000006771355712145100203160ustar00rootroot00000000000000<===> input.scss $limit: 10; @for $x from 1 through $limit { $limit: 4; div { content: $limit thing $x; } } <===> output.css div { content: 4 thing 1; } div { content: 4 thing 2; } div { content: 4 thing 3; } div { content: 4 thing 4; } div { content: 4 thing 5; } div { content: 4 thing 6; } div { content: 4 thing 7; } div { content: 4 thing 8; } div { content: 4 thing 9; } div { content: 4 thing 10; } sass-spec-libsass-3.6.3/spec/scss/for_directive.hrx000066400000000000000000000002051355712145100223370ustar00rootroot00000000000000<===> input.scss .foo { @for $var from 1 through 5 {a: $var;} } <===> output.css .foo { a: 1; a: 2; a: 3; a: 4; a: 5; } sass-spec-libsass-3.6.3/spec/scss/for_in_functions.hrx000066400000000000000000000003071355712145100230620ustar00rootroot00000000000000<===> input.scss @function foo() { $limit: 10; $y: 0; @for $x from 1 through $limit { $limit: 4; $y: $y + $x; } @return $y; } div { width: foo(); } <===> output.css div { width: 55; } sass-spec-libsass-3.6.3/spec/scss/function-names.hrx000066400000000000000000000003171355712145100224450ustar00rootroot00000000000000<===> input.scss div { color: unquote("hello"); color: un#{quo}te("hello"); color: ("hello")un#{quo}te; } <===> output.css div { color: hello; color: unquote("hello"); color: "hello" unquote; } sass-spec-libsass-3.6.3/spec/scss/function_args.hrx000066400000000000000000000002071355712145100223560ustar00rootroot00000000000000<===> input.scss @function plus($var1, $var2) { @return $var1 + $var2; } bar { a: plus(1, 2); } <===> output.css bar { a: 3; } sass-spec-libsass-3.6.3/spec/scss/functions-and-mixins.hrx000066400000000000000000000006471355712145100236020ustar00rootroot00000000000000<===> input.scss @function foo() { @return "hello"; } @mixin foo() { content: "hello"; } div { span { @function length($a, $b, $c, $d) { @return $a + $b + $c + $d; } div { content: foo(); @include foo(); width: length(1,2,2,3); } } height: length(a b c d e); } <===> output.css div { height: 5; } div span div { content: "hello"; content: "hello"; width: 8; } sass-spec-libsass-3.6.3/spec/scss/functions.hrx000066400000000000000000000004721355712145100215310ustar00rootroot00000000000000<===> input.scss @function foo($x, $y, $z) { @while $x < $y { $z: transform($z); @return $z; } } @function bar($x) { @if $x { @return YES; } } div { answer: bar(true); flanswer: fudge(mux+flux) + mudge(a/b); } <===> output.css div { answer: YES; flanswer: fudge(muxflux)mudge(a/b); } sass-spec-libsass-3.6.3/spec/scss/guard_assign.hrx000066400000000000000000000001241355712145100221610ustar00rootroot00000000000000<===> input.scss $var: 2 !default; foo {a: $var} <===> output.css foo { a: 2; } sass-spec-libsass-3.6.3/spec/scss/hey1.hrx000066400000000000000000000001151355712145100203610ustar00rootroot00000000000000<===> input.scss div { width: 1px; } <===> output.css div { width: 1px; } sass-spec-libsass-3.6.3/spec/scss/hey2.hrx000066400000000000000000000001151355712145100203620ustar00rootroot00000000000000<===> input.scss div { color: red; } <===> output.css div { color: red; } sass-spec-libsass-3.6.3/spec/scss/huge.hrx000066400000000000000000123430421355712145100204570ustar00rootroot00000000000000<===> input.scss $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } $blah: a b c; $bloo: "hello"; div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } } } } } } } } } } } } div { color: red; width: 100%; p { margin: $blah; $blee: goodbye; padding: 10px 5px; a { display: inline-block; padding: 5px; color: $blee; } foo: $bloo; empty { not-empty { background: lightgray; border: 1px solid blue; span { display: block; -webkit-box-sizing: border-box; } } } } } } } } } } } <===> output.css div { color: red; width: 100%; } div div { color: red; width: 100%; } div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div p a { display: inline-block; padding: 5px; color: goodbye; } div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div p empty not-empty div { color: red; width: 100%; } div div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div p empty not-empty div div { color: red; width: 100%; } div div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div { color: red; width: 100%; } div div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div p a { display: inline-block; padding: 5px; color: goodbye; } div p a div { color: red; width: 100%; } div p a div div { color: red; width: 100%; } div p a div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div p a div div p a { display: inline-block; padding: 5px; color: goodbye; } div p a div div p empty not-empty { background: lightgray; border: 1px solid blue; } div p a div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div p a div div p empty not-empty div { color: red; width: 100%; } div p a div div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div p a div div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div p a div div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div p a div div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div p a div div p empty not-empty div div { color: red; width: 100%; } div p a div div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div p a div div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div p a div div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div p a div div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div p a div div div { color: red; width: 100%; } div p a div div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div p a div div div p a { display: inline-block; padding: 5px; color: goodbye; } div p a div div div p empty not-empty { background: lightgray; border: 1px solid blue; } div p a div div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div p a div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div p a div p a { display: inline-block; padding: 5px; color: goodbye; } div p a div p empty not-empty { background: lightgray; border: 1px solid blue; } div p a div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div p a div p empty not-empty div { color: red; width: 100%; } div p a div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div p a div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div p a div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div p a div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div p a div p empty not-empty div div { color: red; width: 100%; } div p a div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div p a div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div p a div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div p a div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div p a div div { color: red; width: 100%; } div p a div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div p a div div p a { display: inline-block; padding: 5px; color: goodbye; } div p a div div p empty not-empty { background: lightgray; border: 1px solid blue; } div p a div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div p empty not-empty { background: lightgray; border: 1px solid blue; } div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div p empty not-empty div { color: red; width: 100%; } div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div p empty not-empty div div { color: red; width: 100%; } div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div { color: red; width: 100%; } div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div p a { display: inline-block; padding: 5px; color: goodbye; } div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div p div { color: red; width: 100%; } div div p div div { color: red; width: 100%; } div div p div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div p div div p a { display: inline-block; padding: 5px; color: goodbye; } div div p div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div p div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div p div div p empty not-empty div { color: red; width: 100%; } div div p div div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div p div div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div p div div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div p div div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div p div div p empty not-empty div div { color: red; width: 100%; } div div p div div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div p div div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div p div div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div p div div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div p div div div { color: red; width: 100%; } div div p div div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div p div div div p a { display: inline-block; padding: 5px; color: goodbye; } div div p div div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div p div div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div p div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div p div p a { display: inline-block; padding: 5px; color: goodbye; } div div p div p a div { color: red; width: 100%; } div div p div p a div div { color: red; width: 100%; } div div p div p a div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div p div p a div div p a { display: inline-block; padding: 5px; color: goodbye; } div div p div p a div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div p div p a div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div p div p a div div p empty not-empty div { color: red; width: 100%; } div div p div p a div div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div p div p a div div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div p div p a div div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div p div p a div div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div p div p a div div p empty not-empty div div { color: red; width: 100%; } div div p div p a div div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div p div p a div div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div p div p a div div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div p div p a div div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div p div p a div div div { color: red; width: 100%; } div div p div p a div div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div p div p a div div div p a { display: inline-block; padding: 5px; color: goodbye; } div div p div p a div div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div p div p a div div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div p div p a div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div p div p a div p a { display: inline-block; padding: 5px; color: goodbye; } div div p div p a div p empty not-empty { background: lightgray; border: 1px solid blue; } div div p div p a div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div p div p a div p empty not-empty div { color: red; width: 100%; } div div p div p a div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div p div p a div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div p div p a div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div p div p a div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div p div p a div p empty not-empty div div { color: red; width: 100%; } div div p div p a div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div p div p a div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div p div p a div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div p div p a div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div p div p a div div { color: red; width: 100%; } div div p div p a div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div p div p a div div p a { display: inline-block; padding: 5px; color: goodbye; } div div p div p a div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div p div p a div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div p div p empty not-empty { background: lightgray; border: 1px solid blue; } div div p div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div p div p empty not-empty div { color: red; width: 100%; } div div p div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div p div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div p div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div p div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div p div p empty not-empty div div { color: red; width: 100%; } div div p div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div p div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div p div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div p div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div p div div { color: red; width: 100%; } div div p div div div { color: red; width: 100%; } div div p div div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div p div div div p a { display: inline-block; padding: 5px; color: goodbye; } div div p div div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div p div div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div p div div div p empty not-empty div { color: red; width: 100%; } div div p div div div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div p div div div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div p div div div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div p div div div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div p div div div p empty not-empty div div { color: red; width: 100%; } div div p div div div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div p div div div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div p div div div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div p div div div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div p div div div div { color: red; width: 100%; } div div p div div div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div p div div div div p a { display: inline-block; padding: 5px; color: goodbye; } div div p div div div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div p div div div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div p div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div p div div p a { display: inline-block; padding: 5px; color: goodbye; } div div p div div p a div { color: red; width: 100%; } div div p div div p a div div { color: red; width: 100%; } div div p div div p a div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div p div div p a div div p a { display: inline-block; padding: 5px; color: goodbye; } div div p div div p a div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div p div div p a div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div p div div p a div div p empty not-empty div { color: red; width: 100%; } div div p div div p a div div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div p div div p a div div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div p div div p a div div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div p div div p a div div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div p div div p a div div p empty not-empty div div { color: red; width: 100%; } div div p div div p a div div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div p div div p a div div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div p div div p a div div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div p div div p a div div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div p div div p a div div div { color: red; width: 100%; } div div p div div p a div div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div p div div p a div div div p a { display: inline-block; padding: 5px; color: goodbye; } div div p div div p a div div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div p div div p a div div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div p div div p a div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div p div div p a div p a { display: inline-block; padding: 5px; color: goodbye; } div div p div div p a div p empty not-empty { background: lightgray; border: 1px solid blue; } div div p div div p a div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div p div div p a div p empty not-empty div { color: red; width: 100%; } div div p div div p a div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div p div div p a div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div p div div p a div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div p div div p a div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div p div div p a div p empty not-empty div div { color: red; width: 100%; } div div p div div p a div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div p div div p a div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div p div div p a div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div p div div p a div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div p div div p a div div { color: red; width: 100%; } div div p div div p a div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div p div div p a div div p a { display: inline-block; padding: 5px; color: goodbye; } div div p div div p a div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div p div div p a div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div p div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div p div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div p div div p empty not-empty div { color: red; width: 100%; } div div p div div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div p div div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div p div div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div p div div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div p div div p empty not-empty div div { color: red; width: 100%; } div div p div div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div p div div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div p div div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div p div div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div p div div div { color: red; width: 100%; } div div p div div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div p div div div p a { display: inline-block; padding: 5px; color: goodbye; } div div p div div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div p div div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div p div div div p div { color: red; width: 100%; } div div p div div div p div div { color: red; width: 100%; } div div p div div div p div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div p div div div p div div p a { display: inline-block; padding: 5px; color: goodbye; } div div p div div div p div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div p div div div p div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div p div div div p div div p empty not-empty div { color: red; width: 100%; } div div p div div div p div div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div p div div div p div div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div p div div div p div div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div p div div div p div div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div p div div div p div div p empty not-empty div div { color: red; width: 100%; } div div p div div div p div div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div p div div div p div div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div p div div div p div div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div p div div div p div div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div p div div div p div div div { color: red; width: 100%; } div div p div div div p div div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div p div div div p div div div p a { display: inline-block; padding: 5px; color: goodbye; } div div p div div div p div div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div p div div div p div div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div p div div div p div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div p div div div p div p a { display: inline-block; padding: 5px; color: goodbye; } div div p div div div p div p a div { color: red; width: 100%; } div div p div div div p div p a div div { color: red; width: 100%; } div div p div div div p div p a div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div p div div div p div p a div div p a { display: inline-block; padding: 5px; color: goodbye; } div div p div div div p div p a div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div p div div div p div p a div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div p div div div p div p a div div p empty not-empty div { color: red; width: 100%; } div div p div div div p div p a div div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div p div div div p div p a div div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div p div div div p div p a div div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div p div div div p div p a div div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div p div div div p div p a div div p empty not-empty div div { color: red; width: 100%; } div div p div div div p div p a div div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div p div div div p div p a div div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div p div div div p div p a div div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div p div div div p div p a div div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div p div div div p div p a div div div { color: red; width: 100%; } div div p div div div p div p a div div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div p div div div p div p a div div div p a { display: inline-block; padding: 5px; color: goodbye; } div div p div div div p div p a div div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div p div div div p div p a div div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div p div div div p div p a div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div p div div div p div p a div p a { display: inline-block; padding: 5px; color: goodbye; } div div p div div div p div p a div p empty not-empty { background: lightgray; border: 1px solid blue; } div div p div div div p div p a div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div p div div div p div p a div p empty not-empty div { color: red; width: 100%; } div div p div div div p div p a div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div p div div div p div p a div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div p div div div p div p a div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div p div div div p div p a div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div p div div div p div p a div p empty not-empty div div { color: red; width: 100%; } div div p div div div p div p a div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div p div div div p div p a div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div p div div div p div p a div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div p div div div p div p a div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div p div div div p div p a div div { color: red; width: 100%; } div div p div div div p div p a div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div p div div div p div p a div div p a { display: inline-block; padding: 5px; color: goodbye; } div div p div div div p div p a div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div p div div div p div p a div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div p div div div p div p empty not-empty { background: lightgray; border: 1px solid blue; } div div p div div div p div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div p div div div p div p empty not-empty div { color: red; width: 100%; } div div p div div div p div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div p div div div p div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div p div div div p div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div p div div div p div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div p div div div p div p empty not-empty div div { color: red; width: 100%; } div div p div div div p div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div p div div div p div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div p div div div p div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div p div div div p div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div p div div div p div p empty not-empty div { color: red; width: 100%; } div div p div div div p div p empty not-empty div div { color: red; width: 100%; } div div p div div div p div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div p div div div p div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div p div div div p div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div p div div div p div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div p div div div p div p empty not-empty div div p empty not-empty div { color: red; width: 100%; } div div p div div div p div p empty not-empty div div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div p div div div p div p empty not-empty div div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div p div div div p div p empty not-empty div div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div p div div div p div p empty not-empty div div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div p div div div p div p empty not-empty div div p empty not-empty div div { color: red; width: 100%; } div div p div div div p div p empty not-empty div div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div p div div div p div p empty not-empty div div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div p div div div p div p empty not-empty div div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div p div div div p div p empty not-empty div div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div p div div div p div p empty not-empty div div div { color: red; width: 100%; } div div p div div div p div p empty not-empty div div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div p div div div p div p empty not-empty div div div p a { display: inline-block; padding: 5px; color: goodbye; } div div p div div div p div p empty not-empty div div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div p div div div p div p empty not-empty div div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div p div div div p div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div p div div div p div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div p div div div p div p empty not-empty div p a div { color: red; width: 100%; } div div p div div div p div p empty not-empty div p a div div { color: red; width: 100%; } div div p div div div p div p empty not-empty div p a div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div p div div div p div p empty not-empty div p a div div p a { display: inline-block; padding: 5px; color: goodbye; } div div p div div div p div p empty not-empty div p a div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div p div div div p div p empty not-empty div p a div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div p div div div p div p empty not-empty div p a div div p empty not-empty div { color: red; width: 100%; } div div p div div div p div p empty not-empty div p a div div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div p div div div p div p empty not-empty div p a div div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div p div div div p div p empty not-empty div p a div div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div p div div div p div p empty not-empty div p a div div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div p div div div p div p empty not-empty div p a div div p empty not-empty div div { color: red; width: 100%; } div div p div div div p div p empty not-empty div p a div div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div p div div div p div p empty not-empty div p a div div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div p div div div p div p empty not-empty div p a div div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div p div div div p div p empty not-empty div p a div div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div p div div div p div p empty not-empty div p a div div div { color: red; width: 100%; } div div p div div div p div p empty not-empty div p a div div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div p div div div p div p empty not-empty div p a div div div p a { display: inline-block; padding: 5px; color: goodbye; } div div p div div div p div p empty not-empty div p a div div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div p div div div p div p empty not-empty div p a div div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div p div div div p div p empty not-empty div p a div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div p div div div p div p empty not-empty div p a div p a { display: inline-block; padding: 5px; color: goodbye; } div div p div div div p div p empty not-empty div p a div p empty not-empty { background: lightgray; border: 1px solid blue; } div div p div div div p div p empty not-empty div p a div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div p div div div p div p empty not-empty div p a div p empty not-empty div { color: red; width: 100%; } div div p div div div p div p empty not-empty div p a div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div p div div div p div p empty not-empty div p a div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div p div div div p div p empty not-empty div p a div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div p div div div p div p empty not-empty div p a div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div p div div div p div p empty not-empty div p a div p empty not-empty div div { color: red; width: 100%; } div div p div div div p div p empty not-empty div p a div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div p div div div p div p empty not-empty div p a div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div p div div div p div p empty not-empty div p a div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div p div div div p div p empty not-empty div p a div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div p div div div p div p empty not-empty div p a div div { color: red; width: 100%; } div div p div div div p div p empty not-empty div p a div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div p div div div p div p empty not-empty div p a div div p a { display: inline-block; padding: 5px; color: goodbye; } div div p div div div p div p empty not-empty div p a div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div p div div div p div p empty not-empty div p a div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div p div div div p div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div p div div div p div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div p div div div p div p empty not-empty div p empty not-empty div { color: red; width: 100%; } div div p div div div p div p empty not-empty div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div p div div div p div p empty not-empty div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div p div div div p div p empty not-empty div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div p div div div p div p empty not-empty div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div p div div div p div p empty not-empty div p empty not-empty div div { color: red; width: 100%; } div div p div div div p div p empty not-empty div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div p div div div p div p empty not-empty div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div p div div div p div p empty not-empty div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div p div div div p div p empty not-empty div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div p div div div p div p empty not-empty div div { color: red; width: 100%; } div div p div div div p div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div p div div div p div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div p div div div p div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div p div div div p div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div p div div div p div p empty not-empty div div p div { color: red; width: 100%; } div div p div div div p div p empty not-empty div div p div div { color: red; width: 100%; } div div p div div div p div p empty not-empty div div p div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div p div div div p div p empty not-empty div div p div div p a { display: inline-block; padding: 5px; color: goodbye; } div div p div div div p div p empty not-empty div div p div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div p div div div p div p empty not-empty div div p div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div p div div div p div p empty not-empty div div p div div p empty not-empty div { color: red; width: 100%; } div div p div div div p div p empty not-empty div div p div div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div p div div div p div p empty not-empty div div p div div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div p div div div p div p empty not-empty div div p div div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div p div div div p div p empty not-empty div div p div div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div p div div div p div p empty not-empty div div p div div p empty not-empty div div { color: red; width: 100%; } div div p div div div p div p empty not-empty div div p div div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div p div div div p div p empty not-empty div div p div div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div p div div div p div p empty not-empty div div p div div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div p div div div p div p empty not-empty div div p div div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div p div div div p div p empty not-empty div div p div div div { color: red; width: 100%; } div div p div div div p div p empty not-empty div div p div div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div p div div div p div p empty not-empty div div p div div div p a { display: inline-block; padding: 5px; color: goodbye; } div div p div div div p div p empty not-empty div div p div div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div p div div div p div p empty not-empty div div p div div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div p div div div p div p empty not-empty div div p div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div p div div div p div p empty not-empty div div p div p a { display: inline-block; padding: 5px; color: goodbye; } div div p div div div p div p empty not-empty div div p div p a div { color: red; width: 100%; } div div p div div div p div p empty not-empty div div p div p a div div { color: red; width: 100%; } div div p div div div p div p empty not-empty div div p div p a div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div p div div div p div p empty not-empty div div p div p a div div p a { display: inline-block; padding: 5px; color: goodbye; } div div p div div div p div p empty not-empty div div p div p a div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div p div div div p div p empty not-empty div div p div p a div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div p div div div p div p empty not-empty div div p div p a div div p empty not-empty div { color: red; width: 100%; } div div p div div div p div p empty not-empty div div p div p a div div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div p div div div p div p empty not-empty div div p div p a div div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div p div div div p div p empty not-empty div div p div p a div div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div p div div div p div p empty not-empty div div p div p a div div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div p div div div p div p empty not-empty div div p div p a div div p empty not-empty div div { color: red; width: 100%; } div div p div div div p div p empty not-empty div div p div p a div div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div p div div div p div p empty not-empty div div p div p a div div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div p div div div p div p empty not-empty div div p div p a div div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div p div div div p div p empty not-empty div div p div p a div div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div p div div div p div p empty not-empty div div p div p a div div div { color: red; width: 100%; } div div p div div div p div p empty not-empty div div p div p a div div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div p div div div p div p empty not-empty div div p div p a div div div p a { display: inline-block; padding: 5px; color: goodbye; } div div p div div div p div p empty not-empty div div p div p a div div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div p div div div p div p empty not-empty div div p div p a div div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div p div div div p div p empty not-empty div div p div p a div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div p div div div p div p empty not-empty div div p div p a div p a { display: inline-block; padding: 5px; color: goodbye; } div div p div div div p div p empty not-empty div div p div p a div p empty not-empty { background: lightgray; border: 1px solid blue; } div div p div div div p div p empty not-empty div div p div p a div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div p div div div p div p empty not-empty div div p div p a div p empty not-empty div { color: red; width: 100%; } div div p div div div p div p empty not-empty div div p div p a div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div p div div div p div p empty not-empty div div p div p a div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div p div div div p div p empty not-empty div div p div p a div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div p div div div p div p empty not-empty div div p div p a div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div p div div div p div p empty not-empty div div p div p a div p empty not-empty div div { color: red; width: 100%; } div div p div div div p div p empty not-empty div div p div p a div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div p div div div p div p empty not-empty div div p div p a div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div p div div div p div p empty not-empty div div p div p a div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div p div div div p div p empty not-empty div div p div p a div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div p div div div p div p empty not-empty div div p div p a div div { color: red; width: 100%; } div div p div div div p div p empty not-empty div div p div p a div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div p div div div p div p empty not-empty div div p div p a div div p a { display: inline-block; padding: 5px; color: goodbye; } div div p div div div p div p empty not-empty div div p div p a div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div p div div div p div p empty not-empty div div p div p a div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div p div div div p div p empty not-empty div div p div p empty not-empty { background: lightgray; border: 1px solid blue; } div div p div div div p div p empty not-empty div div p div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div p div div div p div p empty not-empty div div p div p empty not-empty div { color: red; width: 100%; } div div p div div div p div p empty not-empty div div p div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div p div div div p div p empty not-empty div div p div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div p div div div p div p empty not-empty div div p div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div p div div div p div p empty not-empty div div p div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div p div div div p div p empty not-empty div div p div p empty not-empty div div { color: red; width: 100%; } div div p div div div p div p empty not-empty div div p div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div p div div div p div p empty not-empty div div p div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div p div div div p div p empty not-empty div div p div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div p div div div p div p empty not-empty div div p div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div p div div div p div p empty not-empty div div p div div { color: red; width: 100%; } div div p div div div p div p empty not-empty div div p div div div { color: red; width: 100%; } div div p div div div p div p empty not-empty div div p div div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div p div div div p div p empty not-empty div div p div div div p a { display: inline-block; padding: 5px; color: goodbye; } div div p div div div p div p empty not-empty div div p div div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div p div div div p div p empty not-empty div div p div div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div p div div div p div p empty not-empty div div p div div div p empty not-empty div { color: red; width: 100%; } div div p div div div p div p empty not-empty div div p div div div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div p div div div p div p empty not-empty div div p div div div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div p div div div p div p empty not-empty div div p div div div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div p div div div p div p empty not-empty div div p div div div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div p div div div p div p empty not-empty div div p div div div p empty not-empty div div { color: red; width: 100%; } div div p div div div p div p empty not-empty div div p div div div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div p div div div p div p empty not-empty div div p div div div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div p div div div p div p empty not-empty div div p div div div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div p div div div p div p empty not-empty div div p div div div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div p div div div p div p empty not-empty div div p div div div div { color: red; width: 100%; } div div p div div div p div p empty not-empty div div p div div div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div p div div div p div p empty not-empty div div p div div div div p a { display: inline-block; padding: 5px; color: goodbye; } div div p div div div p div p empty not-empty div div p div div div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div p div div div p div p empty not-empty div div p div div div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div p div div div p div p empty not-empty div div p div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div p div div div p div p empty not-empty div div p div div p a { display: inline-block; padding: 5px; color: goodbye; } div div p div div div p div p empty not-empty div div p div div p a div { color: red; width: 100%; } div div p div div div p div p empty not-empty div div p div div p a div div { color: red; width: 100%; } div div p div div div p div p empty not-empty div div p div div p a div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div p div div div p div p empty not-empty div div p div div p a div div p a { display: inline-block; padding: 5px; color: goodbye; } div div p div div div p div p empty not-empty div div p div div p a div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div p div div div p div p empty not-empty div div p div div p a div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div p div div div p div p empty not-empty div div p div div p a div div p empty not-empty div { color: red; width: 100%; } div div p div div div p div p empty not-empty div div p div div p a div div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div p div div div p div p empty not-empty div div p div div p a div div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div p div div div p div p empty not-empty div div p div div p a div div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div p div div div p div p empty not-empty div div p div div p a div div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div p div div div p div p empty not-empty div div p div div p a div div p empty not-empty div div { color: red; width: 100%; } div div p div div div p div p empty not-empty div div p div div p a div div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div p div div div p div p empty not-empty div div p div div p a div div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div p div div div p div p empty not-empty div div p div div p a div div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div p div div div p div p empty not-empty div div p div div p a div div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div p div div div p div p empty not-empty div div p div div p a div div div { color: red; width: 100%; } div div p div div div p div p empty not-empty div div p div div p a div div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div p div div div p div p empty not-empty div div p div div p a div div div p a { display: inline-block; padding: 5px; color: goodbye; } div div p div div div p div p empty not-empty div div p div div p a div div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div p div div div p div p empty not-empty div div p div div p a div div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div p div div div p div p empty not-empty div div p div div p a div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div p div div div p div p empty not-empty div div p div div p a div p a { display: inline-block; padding: 5px; color: goodbye; } div div p div div div p div p empty not-empty div div p div div p a div p empty not-empty { background: lightgray; border: 1px solid blue; } div div p div div div p div p empty not-empty div div p div div p a div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div p div div div p div p empty not-empty div div p div div p a div p empty not-empty div { color: red; width: 100%; } div div p div div div p div p empty not-empty div div p div div p a div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div p div div div p div p empty not-empty div div p div div p a div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div p div div div p div p empty not-empty div div p div div p a div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div p div div div p div p empty not-empty div div p div div p a div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div p div div div p div p empty not-empty div div p div div p a div p empty not-empty div div { color: red; width: 100%; } div div p div div div p div p empty not-empty div div p div div p a div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div p div div div p div p empty not-empty div div p div div p a div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div p div div div p div p empty not-empty div div p div div p a div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div p div div div p div p empty not-empty div div p div div p a div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div p div div div p div p empty not-empty div div p div div p a div div { color: red; width: 100%; } div div p div div div p div p empty not-empty div div p div div p a div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div p div div div p div p empty not-empty div div p div div p a div div p a { display: inline-block; padding: 5px; color: goodbye; } div div p div div div p div p empty not-empty div div p div div p a div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div p div div div p div p empty not-empty div div p div div p a div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div p div div div p div p empty not-empty div div p div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div p div div div p div p empty not-empty div div p div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div p div div div p div p empty not-empty div div p div div p empty not-empty div { color: red; width: 100%; } div div p div div div p div p empty not-empty div div p div div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div p div div div p div p empty not-empty div div p div div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div p div div div p div p empty not-empty div div p div div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div p div div div p div p empty not-empty div div p div div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div p div div div p div p empty not-empty div div p div div p empty not-empty div div { color: red; width: 100%; } div div p div div div p div p empty not-empty div div p div div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div p div div div p div p empty not-empty div div p div div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div p div div div p div p empty not-empty div div p div div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div p div div div p div p empty not-empty div div p div div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div p div div div p div p empty not-empty div div p div div div { color: red; width: 100%; } div div p div div div p div p empty not-empty div div p div div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div p div div div p div p empty not-empty div div p div div div p a { display: inline-block; padding: 5px; color: goodbye; } div div p div div div p div p empty not-empty div div p div div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div p div div div p div p empty not-empty div div p div div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div p div div div p div p empty not-empty div div p div div div p div { color: red; width: 100%; } div div p div div div p div p empty not-empty div div p div div div p div div { color: red; width: 100%; } div div p div div div p div p empty not-empty div div p div div div p div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div p div div div p div p empty not-empty div div p div div div p div div p a { display: inline-block; padding: 5px; color: goodbye; } div div p div div div p div p empty not-empty div div p div div div p div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div p div div div p div p empty not-empty div div p div div div p div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div p div div div p div p empty not-empty div div p div div div p div div p empty not-empty div { color: red; width: 100%; } div div p div div div p div p empty not-empty div div p div div div p div div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div p div div div p div p empty not-empty div div p div div div p div div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div p div div div p div p empty not-empty div div p div div div p div div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div p div div div p div p empty not-empty div div p div div div p div div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div p div div div p div p empty not-empty div div p div div div p div div p empty not-empty div div { color: red; width: 100%; } div div p div div div p div p empty not-empty div div p div div div p div div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div p div div div p div p empty not-empty div div p div div div p div div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div p div div div p div p empty not-empty div div p div div div p div div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div p div div div p div p empty not-empty div div p div div div p div div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div p div div div p div p empty not-empty div div p div div div p div div div { color: red; width: 100%; } div div p div div div p div p empty not-empty div div p div div div p div div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div p div div div p div p empty not-empty div div p div div div p div div div p a { display: inline-block; padding: 5px; color: goodbye; } div div p div div div p div p empty not-empty div div p div div div p div div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div p div div div p div p empty not-empty div div p div div div p div div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div p div div div p div p empty not-empty div div p div div div p div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div p div div div p div p empty not-empty div div p div div div p div p a { display: inline-block; padding: 5px; color: goodbye; } div div p div div div p div p empty not-empty div div p div div div p div p a div { color: red; width: 100%; } div div p div div div p div p empty not-empty div div p div div div p div p a div div { color: red; width: 100%; } div div p div div div p div p empty not-empty div div p div div div p div p a div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div p div div div p div p empty not-empty div div p div div div p div p a div div p a { display: inline-block; padding: 5px; color: goodbye; } div div p div div div p div p empty not-empty div div p div div div p div p a div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div p div div div p div p empty not-empty div div p div div div p div p a div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div p div div div p div p empty not-empty div div p div div div p div p a div div p empty not-empty div { color: red; width: 100%; } div div p div div div p div p empty not-empty div div p div div div p div p a div div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div p div div div p div p empty not-empty div div p div div div p div p a div div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div p div div div p div p empty not-empty div div p div div div p div p a div div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div p div div div p div p empty not-empty div div p div div div p div p a div div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div p div div div p div p empty not-empty div div p div div div p div p a div div p empty not-empty div div { color: red; width: 100%; } div div p div div div p div p empty not-empty div div p div div div p div p a div div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div p div div div p div p empty not-empty div div p div div div p div p a div div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div p div div div p div p empty not-empty div div p div div div p div p a div div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div p div div div p div p empty not-empty div div p div div div p div p a div div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div p div div div p div p empty not-empty div div p div div div p div p a div div div { color: red; width: 100%; } div div p div div div p div p empty not-empty div div p div div div p div p a div div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div p div div div p div p empty not-empty div div p div div div p div p a div div div p a { display: inline-block; padding: 5px; color: goodbye; } div div p div div div p div p empty not-empty div div p div div div p div p a div div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div p div div div p div p empty not-empty div div p div div div p div p a div div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div p div div div p div p empty not-empty div div p div div div p div p a div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div p div div div p div p empty not-empty div div p div div div p div p a div p a { display: inline-block; padding: 5px; color: goodbye; } div div p div div div p div p empty not-empty div div p div div div p div p a div p empty not-empty { background: lightgray; border: 1px solid blue; } div div p div div div p div p empty not-empty div div p div div div p div p a div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div p div div div p div p empty not-empty div div p div div div p div p a div p empty not-empty div { color: red; width: 100%; } div div p div div div p div p empty not-empty div div p div div div p div p a div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div p div div div p div p empty not-empty div div p div div div p div p a div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div p div div div p div p empty not-empty div div p div div div p div p a div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div p div div div p div p empty not-empty div div p div div div p div p a div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div p div div div p div p empty not-empty div div p div div div p div p a div p empty not-empty div div { color: red; width: 100%; } div div p div div div p div p empty not-empty div div p div div div p div p a div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div p div div div p div p empty not-empty div div p div div div p div p a div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div p div div div p div p empty not-empty div div p div div div p div p a div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div p div div div p div p empty not-empty div div p div div div p div p a div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div p div div div p div p empty not-empty div div p div div div p div p a div div { color: red; width: 100%; } div div p div div div p div p empty not-empty div div p div div div p div p a div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div p div div div p div p empty not-empty div div p div div div p div p a div div p a { display: inline-block; padding: 5px; color: goodbye; } div div p div div div p div p empty not-empty div div p div div div p div p a div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div p div div div p div p empty not-empty div div p div div div p div p a div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div p div div div p div p empty not-empty div div p div div div p div p empty not-empty { background: lightgray; border: 1px solid blue; } div div p div div div p div p empty not-empty div div p div div div p div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div p div div div p div p empty not-empty div div p div div div p div p empty not-empty div { color: red; width: 100%; } div div p div div div p div p empty not-empty div div p div div div p div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div p div div div p div p empty not-empty div div p div div div p div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div p div div div p div p empty not-empty div div p div div div p div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div p div div div p div p empty not-empty div div p div div div p div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div p div div div p div p empty not-empty div div p div div div p div p empty not-empty div div { color: red; width: 100%; } div div p div div div p div p empty not-empty div div p div div div p div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div p div div div p div p empty not-empty div div p div div div p div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div p div div div p div p empty not-empty div div p div div div p div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div p div div div p div p empty not-empty div div p div div div p div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div p div div div p div p empty not-empty div div p div div div p div div { color: red; width: 100%; } div div p div div div p div p empty not-empty div div p div div div p div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div p div div div p div p empty not-empty div div p div div div p div div p a { display: inline-block; padding: 5px; color: goodbye; } div div p div div div p div p empty not-empty div div p div div div p div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div p div div div p div p empty not-empty div div p div div div p div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div p div div div p div p empty not-empty div div p div div { color: red; width: 100%; } div div p div div div p div p empty not-empty div div p div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div p div div div p div p empty not-empty div div p div div p a { display: inline-block; padding: 5px; color: goodbye; } div div p div div div p div p empty not-empty div div p div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div p div div div p div p empty not-empty div div p div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div p div div div p div div { color: red; width: 100%; } div div p div div div p div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div p div div div p div div p a { display: inline-block; padding: 5px; color: goodbye; } div div p div div div p div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div p div div div p div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div p div div { color: red; width: 100%; } div div p div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div p div div p a { display: inline-block; padding: 5px; color: goodbye; } div div p div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div p div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div { color: red; width: 100%; } div div div div { color: red; width: 100%; } div div div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p empty not-empty div { color: red; width: 100%; } div div div div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p empty not-empty div div { color: red; width: 100%; } div div div div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div div { color: red; width: 100%; } div div div div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div p a div { color: red; width: 100%; } div div div p a div div { color: red; width: 100%; } div div div p a div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div p a div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div p a div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div p a div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div p a div div p empty not-empty div { color: red; width: 100%; } div div div p a div div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div p a div div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div p a div div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div p a div div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div p a div div p empty not-empty div div { color: red; width: 100%; } div div div p a div div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div p a div div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div p a div div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div p a div div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div p a div div div { color: red; width: 100%; } div div div p a div div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div p a div div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div p a div div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div p a div div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div p a div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div p a div p a { display: inline-block; padding: 5px; color: goodbye; } div div div p a div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div p a div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div p a div p empty not-empty div { color: red; width: 100%; } div div div p a div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div p a div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div p a div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div p a div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div p a div p empty not-empty div div { color: red; width: 100%; } div div div p a div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div p a div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div p a div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div p a div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div p a div div { color: red; width: 100%; } div div div p a div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div p a div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div p a div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div p a div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div p empty not-empty div { color: red; width: 100%; } div div div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div p empty not-empty div div { color: red; width: 100%; } div div div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div { color: red; width: 100%; } div div div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div { color: red; width: 100%; } div div div div p div div { color: red; width: 100%; } div div div div p div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div p empty not-empty div { color: red; width: 100%; } div div div div p div div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div p empty not-empty div div { color: red; width: 100%; } div div div div p div div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div { color: red; width: 100%; } div div div div p div div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div p a div { color: red; width: 100%; } div div div div p div p a div div { color: red; width: 100%; } div div div div p div p a div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div p a div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div p a div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div p a div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div p a div div p empty not-empty div { color: red; width: 100%; } div div div div p div p a div div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div p a div div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div p a div div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div p a div div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div p a div div p empty not-empty div div { color: red; width: 100%; } div div div div p div p a div div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div p a div div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div p a div div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div p a div div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div p a div div div { color: red; width: 100%; } div div div div p div p a div div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div p a div div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div p a div div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div p a div div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div p a div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div p a div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div p a div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div p a div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div p a div p empty not-empty div { color: red; width: 100%; } div div div div p div p a div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div p a div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div p a div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div p a div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div p a div p empty not-empty div div { color: red; width: 100%; } div div div div p div p a div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div p a div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div p a div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div p a div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div p a div div { color: red; width: 100%; } div div div div p div p a div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div p a div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div p a div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div p a div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div p empty not-empty div { color: red; width: 100%; } div div div div p div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div p empty not-empty div div { color: red; width: 100%; } div div div div p div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div { color: red; width: 100%; } div div div div p div div div { color: red; width: 100%; } div div div div p div div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div div { color: red; width: 100%; } div div div div p div div div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div p a div { color: red; width: 100%; } div div div div p div div p a div div { color: red; width: 100%; } div div div div p div div p a div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div p a div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div p a div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div p a div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div p a div div p empty not-empty div { color: red; width: 100%; } div div div div p div div p a div div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div p a div div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div p a div div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div p a div div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div p a div div p empty not-empty div div { color: red; width: 100%; } div div div div p div div p a div div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div p a div div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div p a div div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div p a div div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div p a div div div { color: red; width: 100%; } div div div div p div div p a div div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div p a div div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div p a div div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div p a div div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div p a div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div p a div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div p a div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div p a div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div p a div p empty not-empty div { color: red; width: 100%; } div div div div p div div p a div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div p a div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div p a div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div p a div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div p a div p empty not-empty div div { color: red; width: 100%; } div div div div p div div p a div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div p a div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div p a div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div p a div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div p a div div { color: red; width: 100%; } div div div div p div div p a div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div p a div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div p a div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div p a div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div p empty not-empty div { color: red; width: 100%; } div div div div p div div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div p empty not-empty div div { color: red; width: 100%; } div div div div p div div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div { color: red; width: 100%; } div div div div p div div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div { color: red; width: 100%; } div div div div p div div div p div div { color: red; width: 100%; } div div div div p div div div p div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div { color: red; width: 100%; } div div div div p div div div p div div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div p a div { color: red; width: 100%; } div div div div p div div div p div p a div div { color: red; width: 100%; } div div div div p div div div p div p a div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div p a div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div p a div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div p a div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div p a div div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div p a div div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div p a div div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div p a div div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div p a div div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div p a div div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div p a div div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div p a div div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div p a div div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div p a div div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div p a div div div { color: red; width: 100%; } div div div div p div div div p div p a div div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div p a div div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div p a div div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div p a div div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div p a div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div p a div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div p a div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div p a div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div p a div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div p a div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div p a div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div p a div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div p a div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div p a div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div p a div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div p a div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div p a div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div p a div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div p a div div { color: red; width: 100%; } div div div div p div div div p div p a div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div p a div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div p a div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div p a div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div p empty not-empty div div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div p empty not-empty div div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div p empty not-empty div div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div p empty not-empty div div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div p empty not-empty div div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div p empty not-empty div div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div p empty not-empty div div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div p empty not-empty div div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div p empty not-empty div div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div p empty not-empty div div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div p empty not-empty div div div { color: red; width: 100%; } div div div div p div div div p div p empty not-empty div div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div p empty not-empty div div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div p empty not-empty div div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div p empty not-empty div div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div p empty not-empty div p a div { color: red; width: 100%; } div div div div p div div div p div p empty not-empty div p a div div { color: red; width: 100%; } div div div div p div div div p div p empty not-empty div p a div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div p empty not-empty div p a div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div p empty not-empty div p a div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div p empty not-empty div p a div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div p empty not-empty div p a div div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div p empty not-empty div p a div div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div p empty not-empty div p a div div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div p empty not-empty div p a div div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div p empty not-empty div p a div div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div p empty not-empty div p a div div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div p empty not-empty div p a div div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div p empty not-empty div p a div div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div p empty not-empty div p a div div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div p empty not-empty div p a div div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div p empty not-empty div p a div div div { color: red; width: 100%; } div div div div p div div div p div p empty not-empty div p a div div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div p empty not-empty div p a div div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div p empty not-empty div p a div div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div p empty not-empty div p a div div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div p empty not-empty div p a div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div p empty not-empty div p a div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div p empty not-empty div p a div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div p empty not-empty div p a div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div p empty not-empty div p a div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div p empty not-empty div p a div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div p empty not-empty div p a div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div p empty not-empty div p a div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div p empty not-empty div p a div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div p empty not-empty div p a div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div p empty not-empty div p a div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div p empty not-empty div p a div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div p empty not-empty div p a div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div p empty not-empty div p a div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div p empty not-empty div p a div div { color: red; width: 100%; } div div div div p div div div p div p empty not-empty div p a div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div p empty not-empty div p a div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div p empty not-empty div p a div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div p empty not-empty div p a div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div p empty not-empty div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div p empty not-empty div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div p empty not-empty div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div p empty not-empty div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div p empty not-empty div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div p empty not-empty div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div p empty not-empty div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div p empty not-empty div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div p empty not-empty div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div p empty not-empty div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div p empty not-empty div div p div { color: red; width: 100%; } div div div div p div div div p div p empty not-empty div div p div div { color: red; width: 100%; } div div div div p div div div p div p empty not-empty div div p div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div p empty not-empty div div p div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div p empty not-empty div div p div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div p empty not-empty div div p div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div p empty not-empty div div p div div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div p empty not-empty div div p div div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div p empty not-empty div div p div div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div p empty not-empty div div p div div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div p empty not-empty div div p div div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div p empty not-empty div div p div div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div p empty not-empty div div p div div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div p empty not-empty div div p div div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div p empty not-empty div div p div div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div p empty not-empty div div p div div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div p empty not-empty div div p div div div { color: red; width: 100%; } div div div div p div div div p div p empty not-empty div div p div div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div p empty not-empty div div p div div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div p empty not-empty div div p div div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div p empty not-empty div div p div div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div p empty not-empty div div p div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div p empty not-empty div div p div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div p empty not-empty div div p div p a div { color: red; width: 100%; } div div div div p div div div p div p empty not-empty div div p div p a div div { color: red; width: 100%; } div div div div p div div div p div p empty not-empty div div p div p a div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div p empty not-empty div div p div p a div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div p empty not-empty div div p div p a div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div p empty not-empty div div p div p a div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div p empty not-empty div div p div p a div div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div p empty not-empty div div p div p a div div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div p empty not-empty div div p div p a div div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div p empty not-empty div div p div p a div div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div p empty not-empty div div p div p a div div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div p empty not-empty div div p div p a div div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div p empty not-empty div div p div p a div div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div p empty not-empty div div p div p a div div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div p empty not-empty div div p div p a div div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div p empty not-empty div div p div p a div div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div p empty not-empty div div p div p a div div div { color: red; width: 100%; } div div div div p div div div p div p empty not-empty div div p div p a div div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div p empty not-empty div div p div p a div div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div p empty not-empty div div p div p a div div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div p empty not-empty div div p div p a div div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div p empty not-empty div div p div p a div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div p empty not-empty div div p div p a div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div p empty not-empty div div p div p a div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div p empty not-empty div div p div p a div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div p empty not-empty div div p div p a div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div p empty not-empty div div p div p a div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div p empty not-empty div div p div p a div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div p empty not-empty div div p div p a div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div p empty not-empty div div p div p a div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div p empty not-empty div div p div p a div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div p empty not-empty div div p div p a div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div p empty not-empty div div p div p a div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div p empty not-empty div div p div p a div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div p empty not-empty div div p div p a div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div p empty not-empty div div p div p a div div { color: red; width: 100%; } div div div div p div div div p div p empty not-empty div div p div p a div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div p empty not-empty div div p div p a div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div p empty not-empty div div p div p a div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div p empty not-empty div div p div p a div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div p empty not-empty div div p div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div p empty not-empty div div p div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div p empty not-empty div div p div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div p empty not-empty div div p div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div p empty not-empty div div p div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div p empty not-empty div div p div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div p empty not-empty div div p div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div p empty not-empty div div p div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div p empty not-empty div div p div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div p empty not-empty div div p div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div p empty not-empty div div p div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div p empty not-empty div div p div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div p empty not-empty div div p div div { color: red; width: 100%; } div div div div p div div div p div p empty not-empty div div p div div div { color: red; width: 100%; } div div div div p div div div p div p empty not-empty div div p div div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div p empty not-empty div div p div div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div p empty not-empty div div p div div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div p empty not-empty div div p div div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div p empty not-empty div div p div div div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div p empty not-empty div div p div div div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div p empty not-empty div div p div div div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div p empty not-empty div div p div div div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div p empty not-empty div div p div div div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div p empty not-empty div div p div div div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div p empty not-empty div div p div div div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div p empty not-empty div div p div div div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div p empty not-empty div div p div div div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div p empty not-empty div div p div div div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div p empty not-empty div div p div div div div { color: red; width: 100%; } div div div div p div div div p div p empty not-empty div div p div div div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div p empty not-empty div div p div div div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div p empty not-empty div div p div div div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div p empty not-empty div div p div div div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div p empty not-empty div div p div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div p empty not-empty div div p div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div p empty not-empty div div p div div p a div { color: red; width: 100%; } div div div div p div div div p div p empty not-empty div div p div div p a div div { color: red; width: 100%; } div div div div p div div div p div p empty not-empty div div p div div p a div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div p empty not-empty div div p div div p a div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div p empty not-empty div div p div div p a div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div p empty not-empty div div p div div p a div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div p empty not-empty div div p div div p a div div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div p empty not-empty div div p div div p a div div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div p empty not-empty div div p div div p a div div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div p empty not-empty div div p div div p a div div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div p empty not-empty div div p div div p a div div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div p empty not-empty div div p div div p a div div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div p empty not-empty div div p div div p a div div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div p empty not-empty div div p div div p a div div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div p empty not-empty div div p div div p a div div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div p empty not-empty div div p div div p a div div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div p empty not-empty div div p div div p a div div div { color: red; width: 100%; } div div div div p div div div p div p empty not-empty div div p div div p a div div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div p empty not-empty div div p div div p a div div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div p empty not-empty div div p div div p a div div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div p empty not-empty div div p div div p a div div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div p empty not-empty div div p div div p a div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div p empty not-empty div div p div div p a div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div p empty not-empty div div p div div p a div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div p empty not-empty div div p div div p a div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div p empty not-empty div div p div div p a div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div p empty not-empty div div p div div p a div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div p empty not-empty div div p div div p a div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div p empty not-empty div div p div div p a div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div p empty not-empty div div p div div p a div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div p empty not-empty div div p div div p a div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div p empty not-empty div div p div div p a div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div p empty not-empty div div p div div p a div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div p empty not-empty div div p div div p a div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div p empty not-empty div div p div div p a div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div p empty not-empty div div p div div p a div div { color: red; width: 100%; } div div div div p div div div p div p empty not-empty div div p div div p a div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div p empty not-empty div div p div div p a div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div p empty not-empty div div p div div p a div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div p empty not-empty div div p div div p a div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div p empty not-empty div div p div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div p empty not-empty div div p div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div p empty not-empty div div p div div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div p empty not-empty div div p div div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div p empty not-empty div div p div div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div p empty not-empty div div p div div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div p empty not-empty div div p div div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div p empty not-empty div div p div div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div p empty not-empty div div p div div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div p empty not-empty div div p div div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div p empty not-empty div div p div div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div p empty not-empty div div p div div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div p empty not-empty div div p div div div { color: red; width: 100%; } div div div div p div div div p div p empty not-empty div div p div div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div p empty not-empty div div p div div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div p empty not-empty div div p div div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div p empty not-empty div div p div div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div p empty not-empty div div p div div div p div { color: red; width: 100%; } div div div div p div div div p div p empty not-empty div div p div div div p div div { color: red; width: 100%; } div div div div p div div div p div p empty not-empty div div p div div div p div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div p empty not-empty div div p div div div p div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div p empty not-empty div div p div div div p div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div p empty not-empty div div p div div div p div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div p empty not-empty div div p div div div p div div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div p empty not-empty div div p div div div p div div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div p empty not-empty div div p div div div p div div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div p empty not-empty div div p div div div p div div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div p empty not-empty div div p div div div p div div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div p empty not-empty div div p div div div p div div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div p empty not-empty div div p div div div p div div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div p empty not-empty div div p div div div p div div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div p empty not-empty div div p div div div p div div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div p empty not-empty div div p div div div p div div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div p empty not-empty div div p div div div p div div div { color: red; width: 100%; } div div div div p div div div p div p empty not-empty div div p div div div p div div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div p empty not-empty div div p div div div p div div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div p empty not-empty div div p div div div p div div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div p empty not-empty div div p div div div p div div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div p empty not-empty div div p div div div p div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div p empty not-empty div div p div div div p div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div p empty not-empty div div p div div div p div p a div { color: red; width: 100%; } div div div div p div div div p div p empty not-empty div div p div div div p div p a div div { color: red; width: 100%; } div div div div p div div div p div p empty not-empty div div p div div div p div p a div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div p empty not-empty div div p div div div p div p a div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div p empty not-empty div div p div div div p div p a div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div p empty not-empty div div p div div div p div p a div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div p empty not-empty div div p div div div p div p a div div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div p empty not-empty div div p div div div p div p a div div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div p empty not-empty div div p div div div p div p a div div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div p empty not-empty div div p div div div p div p a div div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div p empty not-empty div div p div div div p div p a div div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div p empty not-empty div div p div div div p div p a div div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div p empty not-empty div div p div div div p div p a div div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div p empty not-empty div div p div div div p div p a div div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div p empty not-empty div div p div div div p div p a div div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div p empty not-empty div div p div div div p div p a div div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div p empty not-empty div div p div div div p div p a div div div { color: red; width: 100%; } div div div div p div div div p div p empty not-empty div div p div div div p div p a div div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div p empty not-empty div div p div div div p div p a div div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div p empty not-empty div div p div div div p div p a div div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div p empty not-empty div div p div div div p div p a div div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div p empty not-empty div div p div div div p div p a div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div p empty not-empty div div p div div div p div p a div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div p empty not-empty div div p div div div p div p a div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div p empty not-empty div div p div div div p div p a div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div p empty not-empty div div p div div div p div p a div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div p empty not-empty div div p div div div p div p a div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div p empty not-empty div div p div div div p div p a div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div p empty not-empty div div p div div div p div p a div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div p empty not-empty div div p div div div p div p a div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div p empty not-empty div div p div div div p div p a div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div p empty not-empty div div p div div div p div p a div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div p empty not-empty div div p div div div p div p a div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div p empty not-empty div div p div div div p div p a div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div p empty not-empty div div p div div div p div p a div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div p empty not-empty div div p div div div p div p a div div { color: red; width: 100%; } div div div div p div div div p div p empty not-empty div div p div div div p div p a div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div p empty not-empty div div p div div div p div p a div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div p empty not-empty div div p div div div p div p a div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div p empty not-empty div div p div div div p div p a div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div p empty not-empty div div p div div div p div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div p empty not-empty div div p div div div p div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div p empty not-empty div div p div div div p div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div p empty not-empty div div p div div div p div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div p empty not-empty div div p div div div p div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div p empty not-empty div div p div div div p div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div p empty not-empty div div p div div div p div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div p empty not-empty div div p div div div p div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div p empty not-empty div div p div div div p div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div p empty not-empty div div p div div div p div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div p empty not-empty div div p div div div p div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div p empty not-empty div div p div div div p div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div p empty not-empty div div p div div div p div div { color: red; width: 100%; } div div div div p div div div p div p empty not-empty div div p div div div p div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div p empty not-empty div div p div div div p div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div p empty not-empty div div p div div div p div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div p empty not-empty div div p div div div p div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div p empty not-empty div div p div div { color: red; width: 100%; } div div div div p div div div p div p empty not-empty div div p div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div p empty not-empty div div p div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div p empty not-empty div div p div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div p empty not-empty div div p div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div { color: red; width: 100%; } div div div div p div div div p div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div { color: red; width: 100%; } div div div div p div div div p div div div { color: red; width: 100%; } div div div div p div div div p div div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div div div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div div div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div { color: red; width: 100%; } div div div div p div div div p div div div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div p a div { color: red; width: 100%; } div div div div p div div div p div div p a div div { color: red; width: 100%; } div div div div p div div div p div div p a div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div p a div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div p a div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div p a div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div p a div div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div div p a div div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div p a div div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div p a div div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div p a div div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div p a div div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div div p a div div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div p a div div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div p a div div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div p a div div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div p a div div div { color: red; width: 100%; } div div div div p div div div p div div p a div div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div p a div div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div p a div div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div p a div div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div p a div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div p a div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div p a div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div p a div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div p a div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div div p a div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div p a div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div p a div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div p a div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div p a div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div div p a div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div p a div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div p a div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div p a div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div p a div div { color: red; width: 100%; } div div div div p div div div p div div p a div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div p a div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div p a div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div p a div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div { color: red; width: 100%; } div div div div p div div div p div div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div p div { color: red; width: 100%; } div div div div p div div div p div div div p div div { color: red; width: 100%; } div div div div p div div div p div div div p div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div p div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div p div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div p div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div p div div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div div div p div div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div p div div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div p div div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div p div div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div p div div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div div div p div div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div p div div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div p div div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div p div div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div p div div div { color: red; width: 100%; } div div div div p div div div p div div div p div div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div p div div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div p div div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div p div div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div p div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div p div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div p div p a div { color: red; width: 100%; } div div div div p div div div p div div div p div p a div div { color: red; width: 100%; } div div div div p div div div p div div div p div p a div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div p div p a div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div p div p a div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div p div p a div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div p div p a div div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div div div p div p a div div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div p div p a div div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div p div p a div div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div p div p a div div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div p div p a div div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div div div p div p a div div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div p div p a div div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div p div p a div div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div p div p a div div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div p div p a div div div { color: red; width: 100%; } div div div div p div div div p div div div p div p a div div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div p div p a div div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div p div p a div div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div p div p a div div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div p div p a div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div p div p a div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div p div p a div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div p div p a div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div p div p a div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div div div p div p a div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div p div p a div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div p div p a div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div p div p a div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div p div p a div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div div div p div p a div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div p div p a div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div p div p a div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div p div p a div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div p div p a div div { color: red; width: 100%; } div div div div p div div div p div div div p div p a div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div p div p a div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div p div p a div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div p div p a div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div p div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div p div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div p div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div div div p div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div p div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div p div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div p div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div p div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div div div p div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div p div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div p div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div p div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div p div div { color: red; width: 100%; } div div div div p div div div p div div div p div div div { color: red; width: 100%; } div div div div p div div div p div div div p div div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div p div div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div p div div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div p div div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div p div div div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div div div p div div div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div p div div div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div p div div div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div p div div div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div p div div div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div div div p div div div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div p div div div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div p div div div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div p div div div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div p div div div div { color: red; width: 100%; } div div div div p div div div p div div div p div div div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div p div div div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div p div div div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div p div div div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div p div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div p div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div p div div p a div { color: red; width: 100%; } div div div div p div div div p div div div p div div p a div div { color: red; width: 100%; } div div div div p div div div p div div div p div div p a div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div p div div p a div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div p div div p a div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div p div div p a div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div p div div p a div div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div div div p div div p a div div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div p div div p a div div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div p div div p a div div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div p div div p a div div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div p div div p a div div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div div div p div div p a div div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div p div div p a div div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div p div div p a div div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div p div div p a div div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div p div div p a div div div { color: red; width: 100%; } div div div div p div div div p div div div p div div p a div div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div p div div p a div div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div p div div p a div div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div p div div p a div div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div p div div p a div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div p div div p a div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div p div div p a div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div p div div p a div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div p div div p a div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div div div p div div p a div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div p div div p a div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div p div div p a div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div p div div p a div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div p div div p a div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div div div p div div p a div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div p div div p a div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div p div div p a div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div p div div p a div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div p div div p a div div { color: red; width: 100%; } div div div div p div div div p div div div p div div p a div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div p div div p a div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div p div div p a div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div p div div p a div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div p div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div p div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div p div div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div div div p div div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div p div div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div p div div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div p div div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div p div div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div div div p div div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div p div div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div p div div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div p div div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div p div div div { color: red; width: 100%; } div div div div p div div div p div div div p div div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div p div div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div p div div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div p div div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div p div div div p div { color: red; width: 100%; } div div div div p div div div p div div div p div div div p div div { color: red; width: 100%; } div div div div p div div div p div div div p div div div p div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div p div div div p div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div p div div div p div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div p div div div p div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div p div div div p div div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div div div p div div div p div div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div p div div div p div div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div p div div div p div div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div p div div div p div div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div p div div div p div div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div div div p div div div p div div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div p div div div p div div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div p div div div p div div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div p div div div p div div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div p div div div p div div div { color: red; width: 100%; } div div div div p div div div p div div div p div div div p div div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div p div div div p div div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div p div div div p div div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div p div div div p div div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div p div div div p div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div p div div div p div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div p div div div p div p a div { color: red; width: 100%; } div div div div p div div div p div div div p div div div p div p a div div { color: red; width: 100%; } div div div div p div div div p div div div p div div div p div p a div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div p div div div p div p a div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div p div div div p div p a div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div p div div div p div p a div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div p div div div p div p a div div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div div div p div div div p div p a div div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div p div div div p div p a div div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div p div div div p div p a div div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div p div div div p div p a div div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div p div div div p div p a div div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div div div p div div div p div p a div div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div p div div div p div p a div div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div p div div div p div p a div div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div p div div div p div p a div div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div p div div div p div p a div div div { color: red; width: 100%; } div div div div p div div div p div div div p div div div p div p a div div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div p div div div p div p a div div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div p div div div p div p a div div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div p div div div p div p a div div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div p div div div p div p a div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div p div div div p div p a div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div p div div div p div p a div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div p div div div p div p a div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div p div div div p div p a div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div div div p div div div p div p a div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div p div div div p div p a div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div p div div div p div p a div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div p div div div p div p a div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div p div div div p div p a div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div div div p div div div p div p a div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div p div div div p div p a div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div p div div div p div p a div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div p div div div p div p a div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div p div div div p div p a div div { color: red; width: 100%; } div div div div p div div div p div div div p div div div p div p a div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div p div div div p div p a div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div p div div div p div p a div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div p div div div p div p a div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div p div div div p div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div p div div div p div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div p div div div p div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div div div p div div div p div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div p div div div p div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div p div div div p div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div p div div div p div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div p div div div p div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div p div div div p div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div div div p div div div p div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div p div div div p div p empty not-empty div div div { color: red; width: 100%; } div div div div p div div div p div div div p div div div p div p empty not-empty div div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div p div div div p div p empty not-empty div div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div p div div div p div p empty not-empty div div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div p div div div p div p empty not-empty div div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div p div div div p div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div p div div div p div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div p div div div p div p empty not-empty div p a div { color: red; width: 100%; } div div div div p div div div p div div div p div div div p div p empty not-empty div p a div div { color: red; width: 100%; } div div div div p div div div p div div div p div div div p div p empty not-empty div p a div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div p div div div p div p empty not-empty div p a div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div p div div div p div p empty not-empty div p a div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div p div div div p div p empty not-empty div p a div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div p div div div p div p empty not-empty div p a div div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div div div p div div div p div p empty not-empty div p a div div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div p div div div p div p empty not-empty div p a div div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div p div div div p div p empty not-empty div p a div div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div p div div div p div p empty not-empty div p a div div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div p div div div p div p empty not-empty div p a div div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div div div p div div div p div p empty not-empty div p a div div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div p div div div p div p empty not-empty div p a div div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div p div div div p div p empty not-empty div p a div div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div p div div div p div p empty not-empty div p a div div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div p div div div p div p empty not-empty div p a div div div { color: red; width: 100%; } div div div div p div div div p div div div p div div div p div p empty not-empty div p a div div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div p div div div p div p empty not-empty div p a div div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div p div div div p div p empty not-empty div p a div div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div p div div div p div p empty not-empty div p a div div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div p div div div p div p empty not-empty div p a div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div p div div div p div p empty not-empty div p a div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div p div div div p div p empty not-empty div p a div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div p div div div p div p empty not-empty div p a div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div p div div div p div p empty not-empty div p a div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div div div p div div div p div p empty not-empty div p a div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div p div div div p div p empty not-empty div p a div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div p div div div p div p empty not-empty div p a div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div p div div div p div p empty not-empty div p a div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div p div div div p div p empty not-empty div p a div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div div div p div div div p div p empty not-empty div p a div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div p div div div p div p empty not-empty div p a div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div p div div div p div p empty not-empty div p a div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div p div div div p div p empty not-empty div p a div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div p div div div p div p empty not-empty div p a div div { color: red; width: 100%; } div div div div p div div div p div div div p div div div p div p empty not-empty div p a div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div p div div div p div p empty not-empty div p a div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div p div div div p div p empty not-empty div p a div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div p div div div p div p empty not-empty div p a div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div p div div div p div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div p div div div p div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div p div div div p div p empty not-empty div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div div div p div div div p div p empty not-empty div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div p div div div p div p empty not-empty div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div p div div div p div p empty not-empty div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div p div div div p div p empty not-empty div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div p div div div p div p empty not-empty div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div div div p div div div p div p empty not-empty div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div p div div div p div p empty not-empty div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div p div div div p div p empty not-empty div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div p div div div p div p empty not-empty div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div p div div div p div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div { color: red; width: 100%; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div { color: red; width: 100%; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div { color: red; width: 100%; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div p a div { color: red; width: 100%; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div p a div div { color: red; width: 100%; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div p a div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div p a div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div p a div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div p a div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div p a div div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div p a div div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div p a div div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div p a div div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div p a div div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div p a div div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div p a div div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div p a div div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div p a div div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div p a div div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div p a div div div { color: red; width: 100%; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div p a div div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div p a div div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div p a div div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div p a div div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div p a div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div p a div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div p a div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div p a div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div p a div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div p a div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div p a div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div p a div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div p a div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div p a div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div p a div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div p a div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div p a div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div p a div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div p a div div { color: red; width: 100%; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div p a div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div p a div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div p a div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div p a div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div { color: red; width: 100%; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div { color: red; width: 100%; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div div { color: red; width: 100%; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div p a div { color: red; width: 100%; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div p a div div { color: red; width: 100%; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div p a div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div p a div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div p a div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div p a div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div p a div div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div p a div div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div p a div div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div p a div div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div p a div div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div p a div div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div p a div div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div p a div div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div p a div div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div p a div div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div p a div div div { color: red; width: 100%; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div p a div div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div p a div div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div p a div div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div p a div div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div p a div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div p a div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div p a div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div p a div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div p a div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div p a div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div p a div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div p a div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div p a div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div p a div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div p a div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div p a div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div p a div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div p a div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div p a div div { color: red; width: 100%; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div p a div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div p a div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div p a div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div p a div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div { color: red; width: 100%; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div p div { color: red; width: 100%; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div p div div { color: red; width: 100%; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div p div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div p div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div p div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div p div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div p div div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div p div div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div p div div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div p div div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div p div div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div p div div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div p div div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div p div div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div p div div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div p div div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div p div div div { color: red; width: 100%; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div p div div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div p div div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div p div div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div p div div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div p div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div p div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div p div p a div { color: red; width: 100%; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div p div p a div div { color: red; width: 100%; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div p div p a div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div p div p a div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div p div p a div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div p div p a div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div p div p a div div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div p div p a div div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div p div p a div div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div p div p a div div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div p div p a div div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div p div p a div div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div p div p a div div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div p div p a div div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div p div p a div div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div p div p a div div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div p div p a div div div { color: red; width: 100%; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div p div p a div div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div p div p a div div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div p div p a div div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div p div p a div div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div p div p a div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div p div p a div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div p div p a div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div p div p a div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div p div p a div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div p div p a div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div p div p a div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div p div p a div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div p div p a div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div p div p a div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div p div p a div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div p div p a div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div p div p a div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div p div p a div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div p div p a div div { color: red; width: 100%; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div p div p a div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div p div p a div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div p div p a div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div p div p a div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div p div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div p div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div p div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div p div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div p div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div p div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div p div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div p div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div p div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div p div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div p div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div p div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div p div div { color: red; width: 100%; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div p div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div p div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div p div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div p div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div { color: red; width: 100%; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div p div div div p div div { color: red; width: 100%; } div div div div p div div div p div div div p div div div p div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div p div div div p div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div p div div div p div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div p div div div p div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div p div div { color: red; width: 100%; } div div div div p div div div p div div div p div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div p div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div p div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div p div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div { color: red; width: 100%; } div div div div p div div div p div div div div div { color: red; width: 100%; } div div div div p div div div p div div div div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div div div div div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div div div div div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div div { color: red; width: 100%; } div div div div p div div div p div div div div div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div p a div { color: red; width: 100%; } div div div div p div div div p div div div div p a div div { color: red; width: 100%; } div div div div p div div div p div div div div p a div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div p a div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div p a div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div p a div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div p a div div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div div div div p a div div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div p a div div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div p a div div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div p a div div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div p a div div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div div div div p a div div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div p a div div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div p a div div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div p a div div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div p a div div div { color: red; width: 100%; } div div div div p div div div p div div div div p a div div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div p a div div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div p a div div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div p a div div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div p a div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div p a div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div p a div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div p a div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div p a div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div div div div p a div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div p a div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div p a div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div p a div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div p a div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div div div div p a div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div p a div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div p a div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div p a div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div p a div div { color: red; width: 100%; } div div div div p div div div p div div div div p a div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div p a div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div p a div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div p a div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div div div div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div div div div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div { color: red; width: 100%; } div div div div p div div div p div div div div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div p a div { color: red; width: 100%; } div div div div p div div div p div div div div div p div p a div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div p a div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div p a div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div p a div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div p a div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div p a div div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div div div div div p div p a div div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div p a div div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div p a div div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div p a div div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div p a div div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div p a div div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div p a div div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div p a div div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div p a div div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div p a div div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div p a div div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div p a div div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div p a div div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div p a div div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div p a div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div p a div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div p a div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div p a div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div p a div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div div div div div p div p a div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div p a div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div p a div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div p a div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div p a div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div p a div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div p a div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div p a div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div p a div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div p a div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div p a div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div p a div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div p a div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div p a div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div div div div div p div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div p a div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div p a div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div p a div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div p a div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div p a div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div p a div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div p a div div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div p a div div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div p a div div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div p a div div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div p a div div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div p a div div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div p a div div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div p a div div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div p a div div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div p a div div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div p a div div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div p a div div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div p a div div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div p a div div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div p a div div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div p a div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div p a div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div p a div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div p a div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div p a div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div p a div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div p a div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div p a div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div p a div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div p a div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div p a div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div p a div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div p a div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div p a div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div p a div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div p a div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div p a div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div p a div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div p a div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div p div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div p div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div p div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div p div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div p div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div p div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div p div div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div p div div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div p div div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div p div div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div p div div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div p div div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div p div div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div p div div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div p div div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div p div div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div p div div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div p div div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div p div div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div p div div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div p div div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div p div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div p div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div p div p a div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div p div p a div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div p div p a div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div p div p a div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div p div p a div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div p div p a div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div p div p a div div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div p div p a div div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div p div p a div div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div p div p a div div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div p div p a div div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div p div p a div div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div p div p a div div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div p div p a div div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div p div p a div div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div p div p a div div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div p div p a div div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div p div p a div div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div p div p a div div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div p div p a div div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div p div p a div div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div p div p a div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div p div p a div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div p div p a div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div p div p a div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div p div p a div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div p div p a div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div p div p a div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div p div p a div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div p div p a div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div p div p a div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div p div p a div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div p div p a div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div p div p a div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div p div p a div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div p div p a div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div p div p a div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div p div p a div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div p div p a div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div p div p a div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div p div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div p div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div p a div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div p a div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div p a div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div p a div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div p a div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div p a div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div p a div div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div p a div div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div p a div div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div p a div div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div p a div div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div p a div div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div p a div div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div p a div div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div p a div div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div p a div div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div p a div div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div p a div div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div p a div div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div p a div div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div p a div div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div p a div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div p a div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div p a div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div p a div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div p a div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div p a div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div p a div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div p a div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div p a div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div p a div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div p a div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div p a div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div p a div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div p a div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div p a div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div p a div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div p a div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div p a div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div p a div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div p a div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div p a div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div p a div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div p a div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div p a div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div p a div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div p a div div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div p a div div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div p a div div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div p a div div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div p a div div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div p a div div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div p a div div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div p a div div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div p a div div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div p a div div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div p a div div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div p a div div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div p a div div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div p a div div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div p a div div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div p a div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div p a div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div p a div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div p a div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div p a div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div p a div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div p a div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div p a div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div p a div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div p a div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div p a div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div p a div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div p a div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div p a div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div p a div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div p a div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div p a div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div p a div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div p a div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div p a div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div p a div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div p a div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div p a div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div p a div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div p a div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div p a div div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div p a div div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div p a div div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div p a div div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div p a div div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div p a div div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div p a div div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div p a div div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div p a div div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div p a div div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div p a div div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div p a div div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div p a div div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div p a div div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div p a div div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div p a div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div p a div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div p a div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div p a div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div p a div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div p a div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div p a div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div p a div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div p a div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div p a div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div p a div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div p a div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div p a div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div p a div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div p a div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div p a div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div p a div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div p a div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div p a div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div p div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div p div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div p div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div p div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div p div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div p div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div p div div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div p div div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div p div div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div p div div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div p div div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div p div div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div p div div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div p div div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div p div div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div p div div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div p div div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div p div div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div p div div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div p div div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div p div div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div p div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div p div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div p div p a div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div p div p a div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div p div p a div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div p div p a div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div p div p a div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div p div p a div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div p div p a div div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div p div p a div div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div p div p a div div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div p div p a div div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div p div p a div div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div p div p a div div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div p div p a div div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div p div p a div div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div p div p a div div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div p div p a div div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div p div p a div div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div p div p a div div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div p div p a div div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div p div p a div div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div p div p a div div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div p div p a div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div p div p a div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div p div p a div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div p div p a div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div p div p a div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div p div p a div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div p div p a div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div p div p a div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div p div p a div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div p div p a div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div p div p a div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div p div p a div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div p div p a div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div p div p a div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div p div p a div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div p div p a div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div p div p a div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div p div p a div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div p div p a div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div p div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div p div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div p div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div p div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div p div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div p div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div p div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div p div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div p div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div p div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div p div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div p div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div p div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div p div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div p div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div p div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div p div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div p div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div p div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div p div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div p div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div p div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div p a div { color: red; width: 100%; } div div div div p div div div p div div div div div p div p a div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div p a div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div p a div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div p a div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div p a div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div p a div div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div div div div div p div p a div div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div p a div div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div p a div div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div p a div div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div p a div div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div p a div div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div p a div div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div p a div div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div p a div div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div p a div div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div p a div div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div p a div div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div p a div div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div p a div div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div p a div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div p a div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div p a div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div p a div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div p a div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div div div div div p div p a div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div p a div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div p a div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div p a div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div p a div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div p a div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div p a div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div p a div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div p a div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div p a div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div p a div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div p a div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div p a div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div p a div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div div div div div p div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div p div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div p div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div p div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div p div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div p div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div p div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div p div div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div p div div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div p div div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div p div div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div p div div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div p div div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div p div div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div p div div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div p div div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div p div div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div p div div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div p div div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div p div div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div p div div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div p div div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div p div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div p div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div p div p a div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div p div p a div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div p div p a div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div p div p a div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div p div p a div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div p div p a div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div p div p a div div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div p div p a div div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div p div p a div div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div p div p a div div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div p div p a div div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div p div p a div div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div p div p a div div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div p div p a div div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div p div p a div div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div p div p a div div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div p div p a div div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div p div p a div div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div p div p a div div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div p div p a div div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div p div p a div div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div p div p a div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div p div p a div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div p div p a div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div p div p a div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div p div p a div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div p div p a div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div p div p a div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div p div p a div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div p div p a div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div p div p a div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div p div p a div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div p div p a div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div p div p a div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div p div p a div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div p div p a div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div p div p a div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div p div p a div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div p div p a div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div p div p a div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div p div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div p div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div p div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div p div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div p div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div p div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div p div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div p div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div p div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div p div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div p div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div p div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div p div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div p div div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div p div div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div p div div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div p div div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div p div div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div p div div div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div p div div div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div p div div div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div p div div div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div p div div div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div p div div div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div p div div div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div p div div div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div p div div div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div p div div div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div p div div div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div p div div div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div p div div div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div p div div div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div p div div div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div p div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div p div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div p div div p a div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div p div div p a div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div p div div p a div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div p div div p a div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div p div div p a div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div p div div p a div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div p div div p a div div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div p div div p a div div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div p div div p a div div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div p div div p a div div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div p div div p a div div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div p div div p a div div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div p div div p a div div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div p div div p a div div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div p div div p a div div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div p div div p a div div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div p div div p a div div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div p div div p a div div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div p div div p a div div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div p div div p a div div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div p div div p a div div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div p div div p a div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div p div div p a div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div p div div p a div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div p div div p a div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div p div div p a div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div p div div p a div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div p div div p a div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div p div div p a div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div p div div p a div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div p div div p a div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div p div div p a div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div p div div p a div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div p div div p a div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div p div div p a div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div p div div p a div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div p div div p a div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div p div div p a div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div p div div p a div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div p div div p a div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div p div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div p div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div p div div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div p div div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div p div div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div p div div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div p div div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div p div div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div p div div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div p div div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div p div div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div p div div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div p div div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div p div div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div p div div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div p div div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div p div div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div p div div div p div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div p div div div p div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div p div div div p div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div p div div div p div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div p div div div p div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div p div div div p div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div p div div div p div div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div p div div div p div div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div p div div div p div div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div p div div div p div div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div p div div div p div div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div p div div div p div div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div p div div div p div div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div p div div div p div div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div p div div div p div div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div p div div div p div div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div p div div div p div div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div p div div div p div div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div p div div div p div div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div p div div div p div div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div p div div div p div div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div p div div div p div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div p div div div p div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div p div div div p div p a div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div p div div div p div p a div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div p div div div p div p a div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div p div div div p div p a div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div p div div div p div p a div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div p div div div p div p a div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div p div div div p div p a div div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div p div div div p div p a div div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div p div div div p div p a div div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div p div div div p div p a div div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div p div div div p div p a div div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div p div div div p div p a div div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div p div div div p div p a div div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div p div div div p div p a div div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div p div div div p div p a div div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div p div div div p div p a div div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div p div div div p div p a div div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div p div div div p div p a div div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div p div div div p div p a div div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div p div div div p div p a div div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div p div div div p div p a div div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div p div div div p div p a div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div p div div div p div p a div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div p div div div p div p a div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div p div div div p div p a div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div p div div div p div p a div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div p div div div p div p a div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div p div div div p div p a div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div p div div div p div p a div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div p div div div p div p a div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div p div div div p div p a div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div p div div div p div p a div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div p div div div p div p a div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div p div div div p div p a div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div p div div div p div p a div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div p div div div p div p a div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div p div div div p div p a div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div p div div div p div p a div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div p div div div p div p a div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div p div div div p div p a div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div p a div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div p a div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div p a div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div p a div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div p a div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div p a div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div p a div div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div p a div div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div p a div div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div p a div div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div p a div div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div p a div div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div p a div div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div p a div div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div p a div div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div p a div div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div p a div div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div p a div div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div p a div div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div p a div div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div p a div div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div p a div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div p a div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div p a div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div p a div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div p a div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div p a div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div p a div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div p a div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div p a div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div p a div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div p a div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div p a div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div p a div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div p a div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div p a div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div p a div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div p a div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div p a div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div p a div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div p a div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div p a div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div p a div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div p a div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div p a div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div p a div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div p a div div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div p a div div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div p a div div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div p a div div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div p a div div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div p a div div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div p a div div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div p a div div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div p a div div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div p a div div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div p a div div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div p a div div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div p a div div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div p a div div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div p a div div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div p a div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div p a div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div p a div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div p a div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div p a div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div p a div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div p a div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div p a div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div p a div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div p a div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div p a div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div p a div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div p a div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div p a div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div p a div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div p a div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div p a div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div p a div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div p a div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div div div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div div div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div div div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div div div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div div div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div div div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div div div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div div div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div div div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div div div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div div div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div div div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div div div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div div div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div div div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div div p a div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div div p a div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div div p a div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div div p a div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div div p a div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div div p a div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div div p a div div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div div p a div div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div div p a div div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div div p a div div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div div p a div div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div div p a div div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div div p a div div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div div p a div div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div div p a div div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div div p a div div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div div p a div div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div div p a div div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div div p a div div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div div p a div div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div div p a div div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div div p a div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div div p a div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div div p a div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div div p a div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div div p a div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div div p a div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div div p a div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div div p a div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div div p a div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div div p a div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div div p a div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div div p a div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div div p a div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div div p a div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div div p a div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div div p a div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div div p a div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div div p a div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div div p a div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div div div p div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div div div p div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div div div p div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div div div p div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div div div p div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div div div p div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div div div p div div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div div div p div div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div div div p div div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div div div p div div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div div div p div div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div div div p div div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div div div p div div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div div div p div div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div div div p div div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div div div p div div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div div div p div div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div div div p div div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div div div p div div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div div div p div div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div div div p div div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div div div p div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div div div p div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div div div p div p a div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div div div p div p a div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div div div p div p a div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div div div p div p a div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div div div p div p a div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div div div p div p a div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div div div p div p a div div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div div div p div p a div div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div div div p div p a div div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div div div p div p a div div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div div div p div p a div div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div div div p div p a div div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div div div p div p a div div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div div div p div p a div div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div div div p div p a div div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div div div p div p a div div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div div div p div p a div div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div div div p div p a div div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div div div p div p a div div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div div div p div p a div div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div div div p div p a div div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div div div p div p a div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div div div p div p a div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div div div p div p a div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div div div p div p a div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div div div p div p a div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div div div p div p a div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div div div p div p a div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div div div p div p a div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div div div p div p a div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div div div p div p a div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div div div p div p a div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div div div p div p a div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div div div p div p a div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div div div p div p a div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div div div p div p a div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div div div p div p a div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div div div p div p a div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div div div p div p a div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div div div p div p a div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div div div p div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div div div p div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div div div p div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div div div p div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div div div p div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div div div p div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div div div p div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div div div p div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div div div p div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div div div p div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div div div p div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div div div p div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div div div p div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div div div p div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div div div p div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div div div p div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div div div p div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div p div div div p div p empty not-empty div div p div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div p div div div p div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div p div div div p div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div p div div div p div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div p div div div p div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div p div div div p div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div p div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div p div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div p div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div p div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div p div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div p a div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div p a div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div p a div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div p a div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div p a div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div p a div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div p a div div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div p a div div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div p a div div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div p a div div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div p a div div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div p a div div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div p a div div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div p a div div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div p a div div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div p a div div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div p a div div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div p a div div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div p a div div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div p a div div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div p a div div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div p a div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div p a div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div p a div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div p a div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div p a div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div p a div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div p a div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div p a div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div p a div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div p a div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div p a div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div p a div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div p a div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div p a div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div p a div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div p a div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div p a div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div p a div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div p a div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div p a div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div p a div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div p a div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div p a div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div p a div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div p a div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div p a div div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div p a div div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div p a div div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div p a div div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div p a div div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div p a div div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div p a div div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div p a div div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div p a div div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div p a div div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div p a div div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div p a div div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div p a div div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div p a div div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div p a div div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div p a div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div p a div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div p a div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div p a div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div p a div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div p a div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div p a div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div p a div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div p a div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div p a div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div p a div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div p a div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div p a div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div p a div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div p a div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div p a div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div p a div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div p a div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div p a div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div p a div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div p a div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div p a div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div p a div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div p a div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div p a div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div p a div div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div p a div div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div p a div div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div p a div div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div p a div div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div p a div div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div p a div div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div p a div div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div p a div div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div p a div div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div p a div div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div p a div div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div p a div div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div p a div div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div p a div div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div p a div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div p a div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div p a div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div p a div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div p a div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div p a div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div p a div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div p a div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div p a div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div p a div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div p a div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div p a div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div p a div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div p a div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div p a div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div p a div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div p a div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div p a div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div p a div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div p a div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div p a div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div p a div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div p a div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div p a div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div p a div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div p a div div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div p a div div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div p a div div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div p a div div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div p a div div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div p a div div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div p a div div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div p a div div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div p a div div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div p a div div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div p a div div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div p a div div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div p a div div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div p a div div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div p a div div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div p a div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div p a div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div p a div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div p a div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div p a div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div p a div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div p a div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div p a div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div p a div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div p a div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div p a div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div p a div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div p a div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div p a div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div p a div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div p a div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div p a div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div p a div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div p a div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div p a div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div p a div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div p a div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div p a div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div p a div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div p a div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div p a div div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div p a div div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div p a div div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div p a div div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div p a div div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div p a div div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div p a div div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div p a div div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div p a div div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div p a div div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div p a div div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div p a div div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div p a div div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div p a div div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div p a div div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div p a div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div p a div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div p a div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div p a div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div p a div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div p a div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div p a div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div p a div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div p a div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div p a div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div p a div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div p a div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div p a div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div p a div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div p a div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div p a div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div p a div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div p a div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div p a div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div p a div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div p a div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div p a div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div p a div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div p a div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div p a div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div p a div div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div p a div div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div p a div div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div p a div div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div p a div div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div p a div div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div p a div div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div p a div div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div p a div div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div p a div div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div p a div div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div p a div div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div p a div div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div p a div div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div p a div div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div p a div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div p a div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div p a div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div p a div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div p a div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div p a div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div p a div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div p a div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div p a div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div p a div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div p a div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div p a div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div p a div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div p a div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div p a div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div p a div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div p a div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div p a div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div p a div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div div div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div div div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div div div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div div div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div div div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div div div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div div div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div div div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div div div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div div div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div div div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div div div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div div div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div div div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div div div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div div p a div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div div p a div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div div p a div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div div p a div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div div p a div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div div p a div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div div p a div div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div div p a div div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div div p a div div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div div p a div div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div div p a div div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div div p a div div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div div p a div div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div div p a div div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div div p a div div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div div p a div div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div div p a div div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div div p a div div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div div p a div div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div div p a div div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div div p a div div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div div p a div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div div p a div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div div p a div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div div p a div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div div p a div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div div p a div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div div p a div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div div p a div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div div p a div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div div p a div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div div p a div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div div p a div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div div p a div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div div p a div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div div p a div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div div p a div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div div p a div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div div p a div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div div p a div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div div div p div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div div div p div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div div div p div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div div div p div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div div div p div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div div div p div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div div div p div div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div div div p div div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div div div p div div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div div div p div div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div div div p div div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div div div p div div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div div div p div div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div div div p div div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div div div p div div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div div div p div div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div div div p div div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div div div p div div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div div div p div div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div div div p div div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div div div p div div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div div div p div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div div div p div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div div div p div p a div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div div div p div p a div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div div div p div p a div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div div div p div p a div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div div div p div p a div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div div div p div p a div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div div div p div p a div div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div div div p div p a div div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div div div p div p a div div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div div div p div p a div div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div div div p div p a div div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div div div p div p a div div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div div div p div p a div div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div div div p div p a div div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div div div p div p a div div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div div div p div p a div div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div div div p div p a div div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div div div p div p a div div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div div div p div p a div div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div div div p div p a div div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div div div p div p a div div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div div div p div p a div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div div div p div p a div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div div div p div p a div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div div div p div p a div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div div div p div p a div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div div div p div p a div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div div div p div p a div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div div div p div p a div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div div div p div p a div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div div div p div p a div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div div div p div p a div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div div div p div p a div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div div div p div p a div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div div div p div p a div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div div div p div p a div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div div div p div p a div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div div div p div p a div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div div div p div p a div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div div div p div p a div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div div div p div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div div div p div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div div div p div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div div div p div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div div div p div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div div div p div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div div div p div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div div div p div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div div div p div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div div div p div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div div div p div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div div div p div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div div div p div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div div div p div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div div div p div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div div div p div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div div div p div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div p empty not-empty div div p div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div p a div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div p a div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div p a div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div p a div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div p a div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div p a div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div p a div div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div p a div div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div p a div div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div p a div div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div p a div div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div p a div div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div p a div div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div p a div div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div p a div div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div p a div div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div p a div div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div p a div div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div p a div div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div p a div div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div p a div div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div p a div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div p a div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div p a div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div p a div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div p a div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div p a div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div p a div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div p a div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div p a div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div p a div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div p a div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div p a div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div p a div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div p a div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div p a div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div p a div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div p a div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div p a div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div p a div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div p a div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div p a div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div p a div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div p a div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div p a div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div p a div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div p a div div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div p a div div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div p a div div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div p a div div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div p a div div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div p a div div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div p a div div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div p a div div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div p a div div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div p a div div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div p a div div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div p a div div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div p a div div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div p a div div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div p a div div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div p a div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div p a div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div p a div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div p a div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div p a div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div p a div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div p a div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div p a div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div p a div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div p a div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div p a div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div p a div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div p a div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div p a div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div p a div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div p a div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div p a div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div p a div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div p a div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div p a div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div p a div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div p a div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div p a div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div p a div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div p a div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div p a div div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div p a div div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div p a div div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div p a div div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div p a div div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div p a div div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div p a div div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div p a div div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div p a div div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div p a div div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div p a div div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div p a div div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div p a div div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div p a div div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div p a div div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div p a div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div p a div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div p a div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div p a div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div p a div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div p a div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div p a div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div p a div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div p a div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div p a div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div p a div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div p a div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div p a div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div p a div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div p a div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div p a div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div p a div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div p a div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div p a div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p a div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p a div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p a div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p a div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p a div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p a div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p a div div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p a div div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p a div div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p a div div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p a div div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p a div div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p a div div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p a div div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p a div div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p a div div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p a div div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p a div div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p a div div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p a div div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p a div div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p a div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p a div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p a div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p a div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p a div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p a div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p a div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p a div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p a div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p a div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p a div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p a div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p a div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p a div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p a div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p a div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p a div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p a div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p a div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div p a div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div p a div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div p a div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div p a div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div p a div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div p a div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div p a div div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div p a div div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div p a div div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div p a div div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div p a div div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div p a div div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div p a div div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div p a div div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div p a div div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div p a div div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div p a div div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div p a div div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div p a div div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div p a div div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div p a div div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div p a div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div p a div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div p a div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div p a div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div p a div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div p a div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div p a div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div p a div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div p a div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div p a div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div p a div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div p a div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div p a div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div p a div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div p a div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div p a div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div p a div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div p a div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div p a div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div p a div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div p a div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div p a div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div p a div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div p a div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div p a div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div p a div div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div p a div div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div p a div div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div p a div div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div p a div div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div p a div div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div p a div div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div p a div div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div p a div div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div p a div div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div p a div div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div p a div div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div p a div div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div p a div div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div p a div div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div p a div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div p a div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div p a div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div p a div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div p a div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div p a div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div p a div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div p a div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div p a div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div p a div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div p a div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div p a div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div p a div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div p a div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div p a div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div p a div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div p a div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div p a div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div p a div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div p a div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div p a div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div p a div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div p a div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div p a div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div p a div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div p a div div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div p a div div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div p a div div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div p a div div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div p a div div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div p a div div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div p a div div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div p a div div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div p a div div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div p a div div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div p a div div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div p a div div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div p a div div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div p a div div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div p a div div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div p a div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div p a div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div p a div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div p a div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div p a div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div p a div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div p a div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div p a div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div p a div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div p a div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div p a div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div p a div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div p a div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div p a div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div p a div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div p a div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div p a div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div p a div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div p a div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div p div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div p div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div p div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div p div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div p div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div p div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div p div div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div p div div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div p div div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div p div div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div p div div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div p div div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div p div div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div p div div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div p div div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div p div div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div p div div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div p div div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div p div div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div p div div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div p div div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div p div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div p div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div p div p a div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div p div p a div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div p div p a div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div p div p a div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div p div p a div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div p div p a div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div p div p a div div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div p div p a div div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div p div p a div div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div p div p a div div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div p div p a div div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div p div p a div div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div p div p a div div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div p div p a div div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div p div p a div div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div p div p a div div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div p div p a div div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div p div p a div div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div p div p a div div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div p div p a div div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div p div p a div div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div p div p a div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div p div p a div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div p div p a div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div p div p a div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div p div p a div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div p div p a div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div p div p a div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div p div p a div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div p div p a div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div p div p a div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div p div p a div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div p div p a div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div p div p a div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div p div p a div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div p div p a div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div p div p a div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div p div p a div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div p div p a div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div p div p a div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div p div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div p div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div p div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div p div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div p div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div p div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div p div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div p div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div p div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div p div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div p div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div p div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div p div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div p div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div p div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div p div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div div p div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div p empty not-empty div div p div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div div p div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div p div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div p a div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div p a div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div p a div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div p a div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div p a div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div p a div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div p a div div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div p a div div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div p a div div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div p a div div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div p a div div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div p a div div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div p a div div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div p a div div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div p a div div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div p a div div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div p a div div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div p a div div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div p a div div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div p a div div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div p a div div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div p a div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div p a div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div p a div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div p a div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div p a div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div p a div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div p a div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div p a div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div p a div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div p a div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div p a div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div p a div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div p a div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div p a div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div p a div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div p a div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div p a div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div p a div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div p a div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div p a div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div p a div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div p a div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div p a div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div p a div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div p a div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div p a div div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div p a div div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div p a div div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div p a div div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div p a div div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div p a div div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div p a div div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div p a div div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div p a div div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div p a div div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div p a div div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div p a div div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div p a div div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div p a div div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div p a div div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div p a div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div p a div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div p a div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div p a div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div p a div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div p a div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div p a div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div p a div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div p a div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div p a div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div p a div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div p a div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div p a div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div p a div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div p a div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div p a div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div p a div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div p a div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div p a div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div p a div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div p a div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div p a div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div p a div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div p a div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div p a div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div p a div div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div p a div div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div p a div div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div p a div div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div p a div div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div p a div div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div p a div div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div p a div div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div p a div div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div p a div div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div p a div div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div p a div div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div p a div div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div p a div div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div p a div div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div p a div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div p a div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div p a div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div p a div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div p a div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div p a div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div p a div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div p a div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div p a div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div p a div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div p a div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div p a div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div p a div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div p a div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div p a div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div p a div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div p a div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div p a div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div p a div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p a div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p a div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p a div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p a div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p a div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p a div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p a div div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p a div div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p a div div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p a div div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p a div div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p a div div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p a div div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p a div div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p a div div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p a div div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p a div div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p a div div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p a div div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p a div div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p a div div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p a div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p a div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p a div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p a div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p a div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p a div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p a div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p a div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p a div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p a div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p a div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p a div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p a div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p a div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p a div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p a div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p a div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p a div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p a div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div p a div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div p a div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div p a div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div p a div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div p a div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div p a div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div p a div div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div p a div div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div p a div div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div p a div div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div p a div div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div p a div div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div p a div div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div p a div div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div p a div div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div p a div div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div p a div div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div p a div div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div p a div div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div p a div div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div p a div div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div p a div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div p a div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div p a div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div p a div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div p a div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div p a div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div p a div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div p a div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div p a div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div p a div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div p a div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div p a div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div p a div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div p a div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div p a div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div p a div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div p a div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div p a div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div p a div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div p a div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div p a div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div p a div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div p a div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div p a div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div p a div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div p a div div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div p a div div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div p a div div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div p a div div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div p a div div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div p a div div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div p a div div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div p a div div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div p a div div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div p a div div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div p a div div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div p a div div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div p a div div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div p a div div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div p a div div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div p a div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div p a div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div p a div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div p a div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div p a div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div p a div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div p a div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div p a div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div p a div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div p a div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div p a div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div p a div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div p a div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div p a div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div p a div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div p a div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div p a div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div p a div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div p a div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div p a div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div p a div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div p a div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div p a div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div p a div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div p a div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div p a div div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div p a div div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div p a div div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div p a div div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div p a div div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div p a div div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div p a div div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div p a div div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div p a div div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div p a div div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div p a div div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div p a div div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div p a div div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div p a div div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div p a div div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div p a div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div p a div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div p a div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div p a div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div p a div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div p a div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div p a div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div p a div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div p a div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div p a div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div p a div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div p a div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div p a div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div p a div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div p a div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div p a div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div p a div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div p a div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div p a div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div p div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div p div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div p div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div p div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div p div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div p div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div p div div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div p div div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div p div div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div p div div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div p div div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div p div div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div p div div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div p div div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div p div div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div p div div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div p div div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div p div div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div p div div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div p div div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div p div div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div p div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div p div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div p div p a div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div p div p a div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div p div p a div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div p div p a div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div p div p a div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div p div p a div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div p div p a div div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div p div p a div div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div p div p a div div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div p div p a div div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div p div p a div div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div p div p a div div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div p div p a div div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div p div p a div div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div p div p a div div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div p div p a div div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div p div p a div div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div p div p a div div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div p div p a div div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div p div p a div div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div p div p a div div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div p div p a div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div p div p a div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div p div p a div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div p div p a div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div p div p a div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div p div p a div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div p div p a div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div p div p a div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div p div p a div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div p div p a div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div p div p a div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div p div p a div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div p div p a div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div p div p a div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div p div p a div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div p div p a div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div p div p a div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div p div p a div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div p div p a div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div p div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div p div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div p div p empty not-empty div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div p div p empty not-empty div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div p div p empty not-empty div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div p div p empty not-empty div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div p div p empty not-empty div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div p div p empty not-empty div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div p div p empty not-empty div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div p div p empty not-empty div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div p div p empty not-empty div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div p div p empty not-empty div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div p div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div p div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div p div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div p div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div div p div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div p empty not-empty div div p div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div div p div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div div p div div div div div p div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div div p div div div div div p div div div div p div div { color: red; width: 100%; } div div div div p div div div p div div div div div p div div div div p div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div div p div div div div div p div div div div p div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div div p div div div div div p div div div div p div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div div p div div div div div p div div div div p div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } div div div div p div div { color: red; width: 100%; } div div div div p div div p { margin: a b c; padding: 10px 5px; foo: "hello"; } div div div div p div div p a { display: inline-block; padding: 5px; color: goodbye; } div div div div p div div p empty not-empty { background: lightgray; border: 1px solid blue; } div div div div p div div p empty not-empty span { display: block; -webkit-box-sizing: border-box; } sass-spec-libsass-3.6.3/spec/scss/hyphen-interpolated.hrx000066400000000000000000000001661355712145100235040ustar00rootroot00000000000000<===> input.scss div { foo: -hux-#{2+3}; bar: hux-#{2+3}; } <===> output.css div { foo: -hux-5; bar: hux-5; } sass-spec-libsass-3.6.3/spec/scss/ie-backslash.hrx000066400000000000000000000002561355712145100220470ustar00rootroot00000000000000<===> options.yml --- :todo: - sass/libsass#2700 <===> input.scss div { background-color: darken(red, 10%) \9; } <===> output.css div { background-color: #cc0000 \9 ; } sass-spec-libsass-3.6.3/spec/scss/ie-functions.hrx000066400000000000000000000127461355712145100221330ustar00rootroot00000000000000<===> input.scss @mixin ie-opacity($opacity) { opacity: $opacity / 100; filter: alpha(opacity=$opacity); bilter: alpha(opacity=$opacity); kilter: type-of(opacity=$opacity); left: expression(document.body.clientWidth/2-oDiv.offsetWidth/2); flop: expression(document.body.clientHeight/2-oDiv.offsetHeight/2); } $startColor: red; $endColor: green; foo { filter: progid:Microsoft.foo.bar.Baz(flip=#{foo + bar}, bang=#00ff00cc); something: blah(hux = mumble); blah: progid:something.something(flip=foobar, bang=#abc); blah: progid:bar.hux(); blah: type-of(hux = mumble); @include ie-opacity(.5); left: expression(document.body.clientWidth/4); filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#{ie-hex-str($startColor)}', endColorstr='#{ie-hex-str($endColor)}', GradientType=1); } .parser { filter: progid:DXImageTransform.Microsoft.Alpha(opacity=20); filter: progid:DXImageTransform.Microsoft.MotionBlur(strength=50) progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1); filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#550000FF, endColorstr=#55FFFF00); filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1) progid:DXImageTransform.Microsoft.Alpha(opacity=50) progid:DXImageTransform.Microsoft.Blur(strength=10); filter: progid:DXImageTransform.Microsoft.Wave(strength=100) progid:DXImageTransform.Microsoft.CheckerBoard(duration=4); filter: progid:DXImageTransform.Microsoft.Wave(strength=100) progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1) progid:DXImageTransform.Microsoft.Iris(irisstyle='STAR', duration=4); filter: progid:DXImageTransform.Microsoft.MotionBlur(strength=13, direction=310) progid:DXImageTransform.Microsoft.Blur(pixelradius=2) progid:DXImageTransform.Microsoft.Wheel(duration=3); filter: progid:DXImageTransform.Microsoft.gradient(enabled='false', startColorstr=#550000FF, endColorstr=#55FFFF00); } <===> output.css foo { filter: progid:Microsoft.foo.bar.Baz(flip=foobar, bang=#00ff00cc); something: blah(hux=mumble); blah: progid:something.something(flip=foobar, bang=#abc); blah: progid:bar.hux(); blah: string; opacity: 0.005; filter: alpha(opacity=0.5); bilter: alpha(opacity=0.5); kilter: string; left: expression(document.body.clientWidth/2-oDiv.offsetWidth/2); flop: expression(document.body.clientHeight/2-oDiv.offsetHeight/2); left: expression(document.body.clientWidth/4); filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFFF0000', endColorstr='#FF008000', GradientType=1); } .parser { filter: progid:DXImageTransform.Microsoft.Alpha(opacity=20); filter: progid:DXImageTransform.Microsoft.MotionBlur(strength=50) progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1); filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#550000FF, endColorstr=#55FFFF00); filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1) progid:DXImageTransform.Microsoft.Alpha(opacity=50) progid:DXImageTransform.Microsoft.Blur(strength=10); filter: progid:DXImageTransform.Microsoft.Wave(strength=100) progid:DXImageTransform.Microsoft.CheckerBoard(duration=4); filter: progid:DXImageTransform.Microsoft.Wave(strength=100) progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1) progid:DXImageTransform.Microsoft.Iris(irisstyle='STAR', duration=4); filter: progid:DXImageTransform.Microsoft.MotionBlur(strength=13, direction=310) progid:DXImageTransform.Microsoft.Blur(pixelradius=2) progid:DXImageTransform.Microsoft.Wheel(duration=3); filter: progid:DXImageTransform.Microsoft.gradient(enabled='false', startColorstr=#550000FF, endColorstr=#55FFFF00); } <===> output-dart-sass.css foo { filter: progid:Microsoft.foo.bar.Baz(flip=foobar, bang=#00ff00cc); something: blah(hux=mumble); blah: progid:something.something(flip=foobar, bang=#abc); blah: progid:bar.hux(); blah: string; opacity: 0.005; filter: alpha(opacity=0.5); bilter: alpha(opacity=0.5); kilter: string; left: expression(document.body.clientWidth/2-oDiv.offsetWidth/2); flop: expression(document.body.clientHeight/2-oDiv.offsetHeight/2); left: expression(document.body.clientWidth/4); filter: progid:DXImageTransform.Microsoft.gradient(startColorstr="#FFFF0000", endColorstr="#FF008000", GradientType=1); } .parser { filter: progid:DXImageTransform.Microsoft.Alpha(opacity=20); filter: progid:DXImageTransform.Microsoft.MotionBlur(strength=50) progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1); filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#550000FF, endColorstr=#55FFFF00); filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1) progid:DXImageTransform.Microsoft.Alpha(opacity=50) progid:DXImageTransform.Microsoft.Blur(strength=10); filter: progid:DXImageTransform.Microsoft.Wave(strength=100) progid:DXImageTransform.Microsoft.CheckerBoard(duration=4); filter: progid:DXImageTransform.Microsoft.Wave(strength=100) progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1) progid:DXImageTransform.Microsoft.Iris(irisstyle="STAR", duration=4); filter: progid:DXImageTransform.Microsoft.MotionBlur(strength=13, direction=310) progid:DXImageTransform.Microsoft.Blur(pixelradius=2) progid:DXImageTransform.Microsoft.Wheel(duration=3); filter: progid:DXImageTransform.Microsoft.gradient(enabled="false", startColorstr=#550000FF, endColorstr=#55FFFF00); } sass-spec-libsass-3.6.3/spec/scss/if-in-mixin.hrx000066400000000000000000000005511355712145100216430ustar00rootroot00000000000000<===> input.scss $x: true; @mixin foobar() { @if $x { $x: false !global; content: foo; } @else { $x: true !global; content: bar; } } div { @include foobar(); @include foobar(); @include foobar(); $x: true !global; @include foobar(); } <===> output.css div { content: foo; content: bar; content: foo; content: foo; } sass-spec-libsass-3.6.3/spec/scss/if-in-propset.hrx000066400000000000000000000003061355712145100222110ustar00rootroot00000000000000<===> input.scss div { prop: { a: "hello"; b: "goodbye"; @if true { c: "badbye"; } } } <===> output.css div { prop-a: "hello"; prop-b: "goodbye"; prop-c: "badbye"; } sass-spec-libsass-3.6.3/spec/scss/if.hrx000066400000000000000000000005771355712145100201250ustar00rootroot00000000000000<===> input.scss @if false { div { color: red; } } @else if true { span { color: blue; } } div { @if true { color: green; } @if false { height: 10px; } @else if false { height: 20px; } @else if false { height: 30px; } @else { height: 40px; } } <===> output.css span { color: blue; } div { color: green; height: 40px; } sass-spec-libsass-3.6.3/spec/scss/if_directive.hrx000066400000000000000000000001461355712145100221530ustar00rootroot00000000000000<===> input.scss @if "foo" != "foo" {foo {a: b}} @else {bar {a: b}} <===> output.css bar { a: b; } sass-spec-libsass-3.6.3/spec/scss/imp.hrx000066400000000000000000000001151355712145100203000ustar00rootroot00000000000000<===> input.scss div { color: red; } <===> output.css div { color: red; } sass-spec-libsass-3.6.3/spec/scss/important-in-arglist.hrx000066400000000000000000000004051355712145100236010ustar00rootroot00000000000000<===> input.scss @mixin foo($x) { style: $x; } div { @include foo(0px 0px 0px 0px #ef8086 inset !important); fludge: foo bar ! important hux; } <===> output.css div { style: 0px 0px 0px 0px #ef8086 inset !important; fludge: foo bar !important hux; } sass-spec-libsass-3.6.3/spec/scss/important.hrx000066400000000000000000000002301355712145100215260ustar00rootroot00000000000000<===> input.scss div { color: red ! important; width: 5px ! important; } <===> output.css div { color: red !important; width: 5px !important; } sass-spec-libsass-3.6.3/spec/scss/interpolated-selectors.hrx000066400000000000000000000001371355712145100242120ustar00rootroot00000000000000<===> input.scss foo#{bar} hux { color: red; } <===> output.css foobar hux { color: red; } sass-spec-libsass-3.6.3/spec/scss/interpolated-strings.hrx000066400000000000000000000003571355712145100237040ustar00rootroot00000000000000<===> input.scss $x: ecks; $y: why; div { blah: "hey #{$x} ho"; blee: hey#{$y}ho; bluh: "foo #{$x}"; bleg: foo#{"hey"}bar; } <===> output.css div { blah: "hey ecks ho"; blee: heywhyho; bluh: "foo ecks"; bleg: fooheybar; } sass-spec-libsass-3.6.3/spec/scss/interpolation-operators-precedence.hrx000066400000000000000000000026431355712145100265210ustar00rootroot00000000000000<===> options.yml --- :todo: - libsass <===> input.scss .test { a01: (#{a}+5.0% + 2); a02: (#{a}+ 5.0% + 2); a03: (#{a} +5.0% + 2); a04: (#{a} + 5.0% + 2); b01: (5 + 2.0%+#{a}); b02: (5 + 2.0%+ #{a}); b03: (5 + 2.0% +#{a}); b04: (5 + 2.0% + #{a}); c01: (#{a} +5.0% + 2); c02: (#{a} -5.0% + 2); c03: (#{a} /5.0% + 2); c04: (#{a} *5.0% + 2); c05: (#{a} +5.0% - 2); c06: (#{a} -5.0% - 2); c07: (#{a} /5.0% - 2); c08: (#{a} *5.0% - 2); c09: (#{a} +5.0% / 2); c10: (#{a} -5.0% / 2); c11: (#{a} /5.0% / 2); c12: (#{a} *5.0% / 2); c13: (#{a} +5.0% * 2); c14: (#{a} -5.0% * 2); c15: (#{a} /5.0% * 2); c16: (#{a} *5.0% * 2); d01: (5 + 2.0% +#{a}); d02: (5 + 2.0% -#{a}); d03: (5 + 2.0% /#{a}); d04: (5 + 2.0% *#{a}); d05: (5 - 2.0% +#{a}); d06: (5 - 2.0% -#{a}); d07: (5 - 2.0% /#{a}); d08: (5 - 2.0% *#{a}); d09: (5% / 2.0 +#{a}); d10: (5% / 2.0 -#{a}); d11: (5% / 2.0 /#{a}); d12: (5% / 2.0 *#{a}); d13: (5 * 2.0% +#{a}); d14: (5 * 2.0% -#{a}); d15: (5 * 2.0% /#{a}); d16: (5 * 2.0% *#{a}); e01: (#{a} ==5.0% == 2); e02: (#{a} >5.0% > 2); e03: (#{a} <5.0% < 2); e04: (#{a} >=5.0% >= 2); e05: (#{a} <=5.0% <= 2); e06: (#{a} !=5.0% != 2); } <===> error Error: Undefined operation: "a times 5%". <===> error-dart-sass Error: Undefined operation "a * 5%". , 13 | c04: (#{a} *5.0% + 2); | ^^^^^^^^^^ ' input.scss 13:9 root stylesheet sass-spec-libsass-3.6.3/spec/scss/interpolation.hrx000066400000000000000000000002041355712145100224010ustar00rootroot00000000000000<===> input.scss $bar : "#foo"; ul li#{$bar} a span.label { foo: bar; } <===> output.css ul li#foo a span.label { foo: bar; } sass-spec-libsass-3.6.3/spec/scss/interpolation_with_bracket_on_next_line.hrx000066400000000000000000000001271355712145100276740ustar00rootroot00000000000000<===> input.scss a.#{"foo"} b {color: red} <===> output.css a.foo b { color: red; } sass-spec-libsass-3.6.3/spec/scss/keyword_args_in_functions.hrx000066400000000000000000000002031355712145100247670ustar00rootroot00000000000000<===> input.scss .keyed { color: rgba($color: #a7c, $alpha: 0.4) } <===> output.css .keyed { color: rgba(170, 119, 204, 0.4); } sass-spec-libsass-3.6.3/spec/scss/lang.hrx000066400000000000000000000053501355712145100204420ustar00rootroot00000000000000<===> input.scss h1:lang(as),h1:lang(bn),h1:lang(gu),h1:lang(hi),h1:lang(kn),h1:lang(ml),h1:lang(mr),h1:lang(or),h1:lang(pa),h1:lang(sa),h1:lang(ta),h1:lang(te) { line-height:1.5em !important } h2:lang(as),h3:lang(as),h4:lang(as),h5:lang(as),h6:lang(as),h2:lang(bn),h3:lang(bn),h4:lang(bn),h5:lang(bn),h6:lang(bn),h2:lang(gu),h3:lang(gu),h4:lang(gu),h5:lang(gu),h6:lang(gu),h2:lang(hi),h3:lang(hi),h4:lang(hi),h5:lang(hi),h6:lang(hi),h2:lang(kn),h3:lang(kn),h4:lang(kn),h5:lang(kn),h6:lang(kn),h2:lang(ml),h3:lang(ml),h4:lang(ml),h5:lang(ml),h6:lang(ml),h2:lang(mr),h3:lang(mr),h4:lang(mr),h5:lang(mr),h6:lang(mr),h2:lang(or),h3:lang(or),h4:lang(or),h5:lang(or),h6:lang(or),h2:lang(pa),h3:lang(pa),h4:lang(pa),h5:lang(pa),h6:lang(pa),h2:lang(sa),h3:lang(sa),h4:lang(sa),h5:lang(sa),h6:lang(sa),h2:lang(ta),h3:lang(ta),h4:lang(ta),h5:lang(ta),h6:lang(ta),h2:lang(te),h3:lang(te),h4:lang(te),h5:lang(te),h6:lang(te) { line-height:1.2em } ol:lang(bcc) li,ol:lang(bqi) li,ol:lang(fa) li,ol:lang(glk) li,ol:lang(kk-arab) li,ol:lang(mzn) li { list-style-type:-moz-persian;list-style-type:persian } ol:lang(ckb) li { list-style-type:-moz-arabic-indic;list-style-type:arabic-indic } ol:lang(as) li,ol:lang(bn) li{ list-style-type:-moz-bengali;list-style-type:bengali } ol:lang(or) li { list-style-type:-moz-oriya;list-style-type:oriya } <===> output.css h1:lang(as), h1:lang(bn), h1:lang(gu), h1:lang(hi), h1:lang(kn), h1:lang(ml), h1:lang(mr), h1:lang(or), h1:lang(pa), h1:lang(sa), h1:lang(ta), h1:lang(te) { line-height: 1.5em !important; } h2:lang(as), h3:lang(as), h4:lang(as), h5:lang(as), h6:lang(as), h2:lang(bn), h3:lang(bn), h4:lang(bn), h5:lang(bn), h6:lang(bn), h2:lang(gu), h3:lang(gu), h4:lang(gu), h5:lang(gu), h6:lang(gu), h2:lang(hi), h3:lang(hi), h4:lang(hi), h5:lang(hi), h6:lang(hi), h2:lang(kn), h3:lang(kn), h4:lang(kn), h5:lang(kn), h6:lang(kn), h2:lang(ml), h3:lang(ml), h4:lang(ml), h5:lang(ml), h6:lang(ml), h2:lang(mr), h3:lang(mr), h4:lang(mr), h5:lang(mr), h6:lang(mr), h2:lang(or), h3:lang(or), h4:lang(or), h5:lang(or), h6:lang(or), h2:lang(pa), h3:lang(pa), h4:lang(pa), h5:lang(pa), h6:lang(pa), h2:lang(sa), h3:lang(sa), h4:lang(sa), h5:lang(sa), h6:lang(sa), h2:lang(ta), h3:lang(ta), h4:lang(ta), h5:lang(ta), h6:lang(ta), h2:lang(te), h3:lang(te), h4:lang(te), h5:lang(te), h6:lang(te) { line-height: 1.2em; } ol:lang(bcc) li, ol:lang(bqi) li, ol:lang(fa) li, ol:lang(glk) li, ol:lang(kk-arab) li, ol:lang(mzn) li { list-style-type: -moz-persian; list-style-type: persian; } ol:lang(ckb) li { list-style-type: -moz-arabic-indic; list-style-type: arabic-indic; } ol:lang(as) li, ol:lang(bn) li { list-style-type: -moz-bengali; list-style-type: bengali; } ol:lang(or) li { list-style-type: -moz-oriya; list-style-type: oriya; } sass-spec-libsass-3.6.3/spec/scss/line_comment_in_script.hrx000066400000000000000000000001311355712145100242340ustar00rootroot00000000000000<===> input.scss foo {a: 1 + // flang } blang } <===> output.css foo { a: 1blang; } sass-spec-libsass-3.6.3/spec/scss/long-selector.hrx000066400000000000000000000045511355712145100223000ustar00rootroot00000000000000<===> input.scss html, body, div, span, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, ab, br, address, cite, code, del, dfn, em, img, ins, kbd, q, samp, small, strong, su, b, sup, var, b, u, i, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, tab, le, caption, tbody, tfoot, thead, tr, th, td { border: 0; font-size: 100%; font: inherit; margin: 0; padding: 0; vertical-align: baseline; hey, ho, hoo { blah: bloo; blee: bleh; } } <===> output.css html, body, div, span, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, ab, br, address, cite, code, del, dfn, em, img, ins, kbd, q, samp, small, strong, su, b, sup, var, b, u, i, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, tab, le, caption, tbody, tfoot, thead, tr, th, td { border: 0; font-size: 100%; font: inherit; margin: 0; padding: 0; vertical-align: baseline; } html hey, html ho, html hoo, body hey, body ho, body hoo, div hey, div ho, div hoo, span hey, span ho, span hoo, iframe hey, iframe ho, iframe hoo, h1 hey, h1 ho, h1 hoo, h2 hey, h2 ho, h2 hoo, h3 hey, h3 ho, h3 hoo, h4 hey, h4 ho, h4 hoo, h5 hey, h5 ho, h5 hoo, h6 hey, h6 ho, h6 hoo, p hey, p ho, p hoo, blockquote hey, blockquote ho, blockquote hoo, pre hey, pre ho, pre hoo, a hey, a ho, a hoo, ab hey, ab ho, ab hoo, br hey, br ho, br hoo, address hey, address ho, address hoo, cite hey, cite ho, cite hoo, code hey, code ho, code hoo, del hey, del ho, del hoo, dfn hey, dfn ho, dfn hoo, em hey, em ho, em hoo, img hey, img ho, img hoo, ins hey, ins ho, ins hoo, kbd hey, kbd ho, kbd hoo, q hey, q ho, q hoo, samp hey, samp ho, samp hoo, small hey, small ho, small hoo, strong hey, strong ho, strong hoo, su hey, su ho, su hoo, b hey, b ho, b hoo, sup hey, sup ho, sup hoo, var hey, var ho, var hoo, b hey, b ho, b hoo, u hey, u ho, u hoo, i hey, i ho, i hoo, dl hey, dl ho, dl hoo, dt hey, dt ho, dt hoo, dd hey, dd ho, dd hoo, ol hey, ol ho, ol hoo, ul hey, ul ho, ul hoo, li hey, li ho, li hoo, fieldset hey, fieldset ho, fieldset hoo, form hey, form ho, form hoo, label hey, label ho, label hoo, legend hey, legend ho, legend hoo, tab hey, tab ho, tab hoo, le hey, le ho, le hoo, caption hey, caption ho, caption hoo, tbody hey, tbody ho, tbody hoo, tfoot hey, tfoot ho, tfoot hoo, thead hey, thead ho, thead hoo, tr hey, tr ho, tr hoo, th hey, th ho, th hoo, td hey, td ho, td hoo { blah: bloo; blee: bleh; } sass-spec-libsass-3.6.3/spec/scss/media/000077500000000000000000000000001355712145100200525ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/scss/media/interpolated.hrx000066400000000000000000000011601355712145100232650ustar00rootroot00000000000000<===> input.scss // You can interpolate into a media type. @media bar#{12} {x {y: z}} // Media queries should be reparsed after interpolation is resolved. @media #{"only screen"} and #{"(min-width: 700px)"} and #{"(max-width: "+"1920px)"} { x {y: z} } // Queries don't have to fully parse before interpolation is resolved. @media scr#{"een, pri"}nt a#{"nd (max-width: 300px)"} {x {y: z}} <===> output.css @media bar12 { x { y: z; } } @media only screen and (min-width: 700px) and (max-width: 1920px) { x { y: z; } } @media screen, print and (max-width: 300px) { x { y: z; } } sass-spec-libsass-3.6.3/spec/scss/media/nesting/000077500000000000000000000000001355712145100215215ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/scss/media/nesting/merged.hrx000066400000000000000000000073561355712145100235220ustar00rootroot00000000000000<===> options.yml --- :todo: - sass/libsass#2695 <===> input.scss // Media queries can be nested within one another. The intersection of the two // queries will be generated. @media screen { a {b: c} @media (color) {x {y: z}} // The "all and" prefix shouldn't change the semantics. @media all and (color) {x {y: z}} } // Features always go to the end of a query, even if they're at an outer nesting // level. @media (color) { a {b: c} @media screen {x {y: z}} } @media all and (color) { a {b: c} @media screen {x {y: z}} } // Different features can be intersected. @media (max-width: 300px) { a {b: c} @media (min-width: 200px) {x {y: z}} @media all and (min-width: 200px) {q {r: s}} } @media all and (max-width: 300px) { a {b: c} @media (min-width: 200px) {x {y: z}} @media all and (min-width: 200px) {q {r: s}} } // Unlike `not`, the `only` keyword is preserved through intersection. @media only screen { a {b: c} @media (color) {x {y: z}} @media all and (color) {q {r: s}} } // The intersection of `not screen` and `print` is just `print`. @media not screen { a {b: c} @media print {x {y: z}} } @media print { a {b: c} @media not screen {x {y: z}} } // The intersection of `not screen` with `not screen and (color)` is the // narrower `not screen and (color)`. @media not screen { a {b: c} @media not screen and (color) {x {y: z}} } @media not screen and (color) { a {b: c} @media not screen {x {y: z}} } // The same is true if `print` has additional features. @media not screen { a {b: c} @media print and (color) {x {y: z}} } @media print and (color) { a {b: c} @media not screen {x {y: z}} } // It's also true if `screen` has additional features. @media not screen and (color) { a {b: c} @media print {x {y: z}} } @media print { a {b: c} @media not screen and (color) {x {y: z}} } // If a rule has multiple queries and they're all mergeable, merge them all as a // cross-product. @media screen, print { a {b: c} @media (color), (grid) { x {y: z}; } } <===> output.css @media screen { a { b: c; } } @media screen and (color) { x { y: z; } } @media screen and (color) { x { y: z; } } @media (color) { a { b: c; } } @media screen and (color) { x { y: z; } } @media all and (color) { a { b: c; } } @media screen and (color) { x { y: z; } } @media (max-width: 300px) { a { b: c; } } @media (max-width: 300px) and (min-width: 200px) { x { y: z; } } @media (max-width: 300px) and (min-width: 200px) { q { r: s; } } @media all and (max-width: 300px) { a { b: c; } } @media (max-width: 300px) and (min-width: 200px) { x { y: z; } } @media all and (max-width: 300px) and (min-width: 200px) { q { r: s; } } @media only screen { a { b: c; } } @media only screen and (color) { x { y: z; } } @media only screen and (color) { q { r: s; } } @media not screen { a { b: c; } } @media print { x { y: z; } } @media print { a { b: c; } } @media print { x { y: z; } } @media not screen { a { b: c; } } @media not screen and (color) { x { y: z; } } @media not screen and (color) { a { b: c; } } @media not screen and (color) { x { y: z; } } @media not screen { a { b: c; } } @media print and (color) { x { y: z; } } @media print and (color) { a { b: c; } } @media print and (color) { x { y: z; } } @media not screen and (color) { a { b: c; } } @media print { x { y: z; } } @media print { a { b: c; } } @media print { x { y: z; } } @media screen, print { a { b: c; } } @media screen and (color), screen and (grid), print and (color), print and (grid) { x { y: z; } } sass-spec-libsass-3.6.3/spec/scss/media/nesting/merged_and_retained.hrx000066400000000000000000000007021355712145100262030ustar00rootroot00000000000000<===> input.scss @media (retained: before) { a {b: c} @media (a: b) { x {y: z} } } // Regression test for sass/dart-sass#453 @media (retained: after) { @media (a: b) { x {y: z} } a {b: c} } <===> output.css @media (retained: before) { a { b: c; } } @media (retained: before) and (a: b) { x { y: z; } } @media (retained: after) and (a: b) { x { y: z; } } @media (retained: after) { a { b: c; } } sass-spec-libsass-3.6.3/spec/scss/media/nesting/removed.hrx000066400000000000000000000034101355712145100237030ustar00rootroot00000000000000<===> input.scss // The intersection of two different media types is empty, so they're eliminated. @media screen { a {b: c} @media print {x {y: z}} } // The intersection of `not screen` and `screen` is empty. @media not screen { a {b: c} @media screen {x {y: z}} } @media screen { a {b: c} @media not screen {x {y: z}} } // That's true even if `screen` has features. @media screen and (color) { a {b: c} @media not screen {x {y: z}} } @media not screen { a {b: c} @media screen and (color) {x {y: z}} } // In fact, the intersection of `not X` and `X` is empty for all `X`. @media not screen and (color) { a {b: c} @media screen and (color) {x {y: z}} } @media screen and (color) { a {b: c} @media not screen and (color) {x {y: z}} } // This intersection is empty even though the queries aren't identical, because // `not screen` matches a superset of the contexts `screen and (color)` matches. @media screen and (color) { a {b: c} @media not screen {x {y: z}} } @media not screen { a {b: c} @media screen and (color) {x {y: z}} } // If a rule has multiple queries and some have empty intersections, remove them // and merge the rest. @media screen, print { a {b: c} @media speech, (grid) { x {y: z}; } } <===> output.css @media screen { a { b: c; } } @media not screen { a { b: c; } } @media screen { a { b: c; } } @media screen and (color) { a { b: c; } } @media not screen { a { b: c; } } @media not screen and (color) { a { b: c; } } @media screen and (color) { a { b: c; } } @media screen and (color) { a { b: c; } } @media not screen { a { b: c; } } @media screen, print { a { b: c; } } @media screen and (grid), print and (grid) { x { y: z; } } sass-spec-libsass-3.6.3/spec/scss/media/nesting/retained.hrx000066400000000000000000000070761355712145100240510ustar00rootroot00000000000000<===> options.yml --- :todo: - sass/libsass#2694 <===> input.scss // There's no way to generate the intersection of these queries. We could write // `not screen and (color)`, but that actually means "neither `screen` nor // `(color)`" rather than "not `screen` but yes `(color)`. However, because they // do *have* a meaningful intersection, we output them nested for browsers that // support nesting natively. // // The latest spec allows us to generate `not screen and not (color)` here, // which would work, but no browsers support it yet. @media not screen { a {b: c} @media (color) {x {y: z}} // The "all and" prefix shouldn't change the semantics. @media all and (color) {q {r: s}} } @media (color) { a {b: c} @media not screen {x {y: z}} } @media all and (color) { a {b: c} @media not screen {x {y: z}} } // The unification of these would be `screen and not (color)`, which isn't yet // supported. @media screen { a {b: c} @media not all and (color) {x {y: z}} } @media not all and (color) { a {b: c} @media screen {x {y: z}} } // `not screen and (color)` means `not (screen and (color))`, so it could still // overlap with just `screen` in the case of a screen media without color. @media not screen and (color) { a {b: c} @media screen {x {y: z}} } @media screen { a {b: c} @media not screen and (color) {x {y: z}} } // `not screen and (color)` and `screen and (grid)` are both true for screen // user agents with a grid output device and no color support. @media not screen and (color) { a {b: c} @media screen and (grid) {x {y: z}} } @media screen and (grid) { a {b: c} @media not screen and (color) {x {y: z}} } // `not screen` and `not print` allows any media type other than those. @media not screen { a {b: c} @media not print {x {y: z}} } // `not screen and (color)` and `not screen and (grid)` allows screen media, but // only if it has *neither* color nor grid support. @media not screen and (color) { a {b: c} @media not screen and (grid) {x {y: z}} } // If a rule has multiple queries and any of them can't be merged, none of them // should be. This avoids duplicating the output and ensures that all code is // evaluated in a unique media query context in case we ever provide access to // that. @media screen, not screen { a {b: c} @media (color) {x {y: z}} } <===> output.css @media not screen { a { b: c; } @media (color) { x { y: z; } } @media all and (color) { q { r: s; } } } @media (color) { a { b: c; } @media not screen { x { y: z; } } } @media all and (color) { a { b: c; } @media not screen { x { y: z; } } } @media screen { a { b: c; } @media not all and (color) { x { y: z; } } } @media not all and (color) { a { b: c; } @media screen { x { y: z; } } } @media not screen and (color) { a { b: c; } @media screen { x { y: z; } } } @media screen { a { b: c; } @media not screen and (color) { x { y: z; } } } @media not screen and (color) { a { b: c; } @media screen and (grid) { x { y: z; } } } @media screen and (grid) { a { b: c; } @media not screen and (color) { x { y: z; } } } @media not screen { a { b: c; } @media not print { x { y: z; } } } @media not screen and (color) { a { b: c; } @media not screen and (grid) { x { y: z; } } } @media screen, not screen { a { b: c; } @media (color) { x { y: z; } } } sass-spec-libsass-3.6.3/spec/scss/media/script_features.hrx000066400000000000000000000007731355712145100240060ustar00rootroot00000000000000<===> input.scss $foo: 3; $bar: 4; // Media features are special-cased to allow raw script without interpolation. @media only screen and (max-width: $foo) and (min-width: $bar) {x {y: z}} // Not just variables, but full script $vals: 1 2 3; @media screen and (max-width: 1 + 2) and (min-width: 5 + 6 + nth($vals, 2)) {x {y: z}} <===> output.css @media only screen and (max-width: 3) and (min-width: 4) { x { y: z; } } @media screen and (max-width: 3) and (min-width: 13) { x { y: z; } } sass-spec-libsass-3.6.3/spec/scss/mixin-content-selectors.hrx000066400000000000000000000004161355712145100243140ustar00rootroot00000000000000<===> input.scss @mixin foo($x: 1) { foo-sel { @content; } } div { $x: hey; @include foo() { bar { color: red; hux { msg: $x; } } } } <===> output.css div foo-sel bar { color: red; } div foo-sel bar hux { msg: hey; } sass-spec-libsass-3.6.3/spec/scss/mixin-content-with-no-block.hrx000066400000000000000000000002651355712145100247700ustar00rootroot00000000000000<===> input.scss @mixin foo { .foo { color: red; @content; } } div.a { @include foo() { hey: now; } } <===> output.css div.a .foo { color: red; hey: now; } sass-spec-libsass-3.6.3/spec/scss/mixin-content.hrx000066400000000000000000000030251355712145100223120ustar00rootroot00000000000000<===> input.scss @mixin foo() { name: foo; @content; @include bar() { stuff: content for bar; @content; } } @mixin bar() { name: bar; @content; } div { /* with a content block */ @include foo() { stuff: content for foo; } /* without */ @include foo(); } @mixin foo() { $size: 80%; div { color: red; @content; background: blue; width: $size; @include bar() { color: orange; @content; } } } @mixin bar() { form { @content; } } span { $size: 1.2em; color: green; @include foo() { @media fudge { p { font-weight: bold; font-size: $size; a { text-decoration: underline; } } } } } @mixin apply-to-ie6-only { * html { @content; } } @include apply-to-ie6-only { #logo { background-image: url(/logo.gif); } } <===> output.css div { /* with a content block */ name: foo; stuff: content for foo; name: bar; stuff: content for bar; stuff: content for foo; /* without */ name: foo; name: bar; stuff: content for bar; } span { color: green; } span div { color: red; background: blue; width: 80%; } @media fudge { span div p { font-weight: bold; font-size: 1.2em; } span div p a { text-decoration: underline; } } span div form { color: orange; } @media fudge { span div form p { font-weight: bold; font-size: 1.2em; } span div form p a { text-decoration: underline; } } * html #logo { background-image: url(/logo.gif); } sass-spec-libsass-3.6.3/spec/scss/mixin_with_keyword_args.hrx000066400000000000000000000004471355712145100244620ustar00rootroot00000000000000<===> input.scss @mixin a-mixin($required, $arg1: default-val1, $arg2: default-val2) { required: $required; arg1: $arg1; arg2: $arg2; } .mixed { @include a-mixin(foo, $arg2: non-default-val2); } <===> output.css .mixed { required: foo; arg1: default-val1; arg2: non-default-val2; } sass-spec-libsass-3.6.3/spec/scss/mixins_with_args.hrx000066400000000000000000000002121355712145100230670ustar00rootroot00000000000000<===> input.scss @mixin foo($a, $b) { a: $a; b: $b; } .foo {@include foo(bar, 12px)} <===> output.css .foo { a: bar; b: 12px; } sass-spec-libsass-3.6.3/spec/scss/mixins_with_empty_args.hrx000066400000000000000000000001361355712145100243120ustar00rootroot00000000000000<===> input.scss @mixin foo {a: b} .foo {@include foo();} <===> output.css .foo { a: b; } sass-spec-libsass-3.6.3/spec/scss/multiline-var.hrx000066400000000000000000000002621355712145100223060ustar00rootroot00000000000000<===> input.scss foo { $var1: 1 + 2; $var2: true and false; $var3: a b c; a: $var1; // b: $var2; c: $var3; } <===> output.css foo { a: 3; c: a b c; } sass-spec-libsass-3.6.3/spec/scss/multiline_var.hrx000066400000000000000000000002741355712145100223730ustar00rootroot00000000000000<===> input.scss foo { $var1: 1 + 2; $var2: true and false; $var3: a b c; a: $var1; b: $var2; c: $var3; } <===> output.css foo { a: 3; b: false; c: a b c; } sass-spec-libsass-3.6.3/spec/scss/multiple-operators.hrx000066400000000000000000000002311355712145100233610ustar00rootroot00000000000000<===> input.scss $x: 2; $y: 1; @function getResult() { @return true; } .test { a: $x > $y == getResult(); } <===> output.css .test { a: true; } sass-spec-libsass-3.6.3/spec/scss/namespace_properties.hrx000066400000000000000000000002231355712145100237230ustar00rootroot00000000000000<===> input.scss foo { bar: baz; bang: { bip: 1px; bop: bar;}} <===> output.css foo { bar: baz; bang-bip: 1px; bang-bop: bar; } sass-spec-libsass-3.6.3/spec/scss/namespace_properties_with_value.hrx000066400000000000000000000002131355712145100261510ustar00rootroot00000000000000<===> input.scss foo { bar: baz { bip: bop; bing: bop; }} <===> output.css foo { bar: baz; bar-bip: bop; bar-bing: bop; } sass-spec-libsass-3.6.3/spec/scss/negation.hrx000066400000000000000000000003511355712145100213210ustar00rootroot00000000000000<===> input.scss .asdf { $bwidth: 52px; left: -$bwidth/3; right: (1/3); center: (10000/3); blah: (20/8); } <===> output.css .asdf { left: -17.3333333333px; right: 0.3333333333; center: 3333.3333333333; blah: 2.5; } sass-spec-libsass-3.6.3/spec/scss/nested-extend.hrx000066400000000000000000000016041355712145100222660ustar00rootroot00000000000000<===> input.scss .sprites-nav { color: red; } .sprites-nav_up { color: green; } .mw_nav_button { float: right; width: 30px; height: 30px; margin: 10px 10px 10px 0; overflow: hidden; &[data-ur-state="disabled"] { @extend .sprites-nav; } &[data-ur-state="enabled"] { @extend .sprites-nav_up; } } <===> output.css .sprites-nav, .mw_nav_button[data-ur-state="disabled"] { color: red; } .sprites-nav_up, .mw_nav_button[data-ur-state="enabled"] { color: green; } .mw_nav_button { float: right; width: 30px; height: 30px; margin: 10px 10px 10px 0; overflow: hidden; } <===> output-dart-sass.css .sprites-nav, .mw_nav_button[data-ur-state=disabled] { color: red; } .sprites-nav_up, .mw_nav_button[data-ur-state=enabled] { color: green; } .mw_nav_button { float: right; width: 30px; height: 30px; margin: 10px 10px 10px 0; overflow: hidden; } sass-spec-libsass-3.6.3/spec/scss/nested_namespace_properties.hrx000066400000000000000000000002761355712145100252750ustar00rootroot00000000000000<===> input.scss foo { bar: baz; bang: { bip: 1px; bop: bar; blat:{baf:bort}}} <===> output.css foo { bar: baz; bang-bip: 1px; bang-bop: bar; bang-blat-baf: bort; } sass-spec-libsass-3.6.3/spec/scss/nested_rules.hrx000066400000000000000000000002021355712145100222040ustar00rootroot00000000000000<===> input.scss foo { bar {baz {a: b}} bang {bip {a: b}}} <===> output.css foo bar baz { a: b; } foo bang bip { a: b; } sass-spec-libsass-3.6.3/spec/scss/nested_rules_with_declarations.hrx000066400000000000000000000005071355712145100257770ustar00rootroot00000000000000<===> input.scss foo { ump: nump; grump: clump; bar { blat: bang; habit: rabbit; baz {a: b} bip {c: d}} bibble { bap {e: f}}} <===> output.css foo { ump: nump; grump: clump; } foo bar { blat: bang; habit: rabbit; } foo bar baz { a: b; } foo bar bip { c: d; } foo bibble bap { e: f; } sass-spec-libsass-3.6.3/spec/scss/nested_rules_with_fancy_selectors.hrx000066400000000000000000000002331355712145100265060ustar00rootroot00000000000000<===> input.scss foo { .bar {a: b} :baz {c: d} bang:bop {e: f}} <===> output.css foo .bar { a: b; } foo :baz { c: d; } foo bang:bop { e: f; } sass-spec-libsass-3.6.3/spec/scss/newlines_in_selectors.hrx000066400000000000000000000002751355712145100241170ustar00rootroot00000000000000<===> options.yml --- :ignore_for: - dart-sass <===> input.scss foo, bar baz { bang, bip bop {a: b}} <===> output.css foo bang, foo bip bop, bar baz bang, bar baz bip bop { a: b; } sass-spec-libsass-3.6.3/spec/scss/no_namespace_properties_without_space.hrx000066400000000000000000000001411355712145100273540ustar00rootroot00000000000000<===> input.scss foo { bar:baz { bip: bop }} <===> output.css foo bar:baz { bip: bop; } sass-spec-libsass-3.6.3/spec/scss/null.hrx000066400000000000000000000011341355712145100204670ustar00rootroot00000000000000<===> input.scss $x: 2; div { $x: null; a: length(null null null); b: #{null}; d: type-of($x); e: null == null; f: -null; g: -fudge; h: (null null null); i: froo(null, 4); j: (null), (null), 3, 4; k: length(((null), (null), 3, 4)); a2: length($x $x $x); b2: #{$x}; e2: $x == null; f2: -$x; h2: ($x $x $x); i2: froo($x, 4); j2: ($x), ($x), 3, 4; k2: length((($x), ($x), 3, 4)); } <===> output.css div { a: 3; d: null; e: true; f: -null; g: -fudge; i: froo(, 4); j: 3, 4; k: 4; a2: 3; e2: true; f2: -; i2: froo(, 4); j2: 3, 4; k2: 4; } sass-spec-libsass-3.6.3/spec/scss/numbers.hrx000066400000000000000000000002441355712145100211710ustar00rootroot00000000000000<===> input.scss div { width: 10px; height: 20%; blah: 12; color: #abc; } <===> output.css div { width: 10px; height: 20%; blah: 12; color: #abc; } sass-spec-libsass-3.6.3/spec/scss/one_line_comments.hrx000066400000000000000000000001571355712145100232160ustar00rootroot00000000000000<===> input.scss .foo bar[val="//"] { baz: bang; //} } <===> output.css .foo bar[val="//"] { baz: bang; } sass-spec-libsass-3.6.3/spec/scss/parent_selectors.hrx000066400000000000000000000001741355712145100230740ustar00rootroot00000000000000<===> input.scss foo { &:hover {a: b} bar &.baz {c: d}} <===> output.css foo:hover { a: b; } bar foo.baz { c: d; } sass-spec-libsass-3.6.3/spec/scss/passing_all_as_keyword_args_in_opposite_order.hrx000066400000000000000000000005171355712145100310630ustar00rootroot00000000000000<===> input.scss @mixin a-mixin($required, $arg1: default-val1, $arg2: default-val2) { required: $required; arg1: $arg1; arg2: $arg2; } .mixed { @include a-mixin($arg2: non-default-val2, $arg1: non-default-val1, $required: foo); } <===> output.css .mixed { required: foo; arg1: non-default-val1; arg2: non-default-val2; } sass-spec-libsass-3.6.3/spec/scss/passing_required_args_as_a_keyword_arg.hrx000066400000000000000000000004251355712145100274570ustar00rootroot00000000000000<===> input.scss @mixin a-mixin($required, $arg1: default-val1, $arg2: default-val2) { required: $required; arg1: $arg1; arg2: $arg2; } .mixed { @include a-mixin($required: foo); } <===> output.css .mixed { required: foo; arg1: default-val1; arg2: default-val2; } sass-spec-libsass-3.6.3/spec/scss/percentages.hrx000066400000000000000000000006231355712145100220170ustar00rootroot00000000000000<===> input.scss div { width: 10% + 20%; height: 10% - 20%; width: 10% + 10; width: 10 + 10%; height: 10% - 10; height: 10 - 10%; blah: (20% / 4%); flah: 12 * 75%; grah: 75% * 12; // hwah: (24 / 8%); nyah: (35% / 7); } <===> output.css div { width: 30%; height: -10%; width: 20%; width: 20%; height: 0%; height: 0%; blah: 5; flah: 900%; grah: 900%; nyah: 5%; } sass-spec-libsass-3.6.3/spec/scss/placeholder-with-media.hrx000066400000000000000000000003111355712145100240210ustar00rootroot00000000000000<===> input.scss %a { @media only screen and (max-width: 100px) { color: red; } } b { @extend %a; } <===> output.css @media only screen and (max-width: 100px) { b { color: red; } } sass-spec-libsass-3.6.3/spec/scss/placeholder.hrx000066400000000000000000000003201355712145100217730ustar00rootroot00000000000000<===> input.scss %x { color: red; } foo { width: 10px; @extend %x; } hux { height: 12px; @extend %x; } <===> output.css hux, foo { color: red; } foo { width: 10px; } hux { height: 12px; } sass-spec-libsass-3.6.3/spec/scss/precision.hrx000066400000000000000000000003141355712145100215070ustar00rootroot00000000000000<===> input.scss div { a: (20/3); b: (5/2); c: (9/3); d: (20/-3); e: (-5/2); f: -(9/3); } <===> output.css div { a: 6.6666666667; b: 2.5; c: 3; d: -6.6666666667; e: -2.5; f: -3; } sass-spec-libsass-3.6.3/spec/scss/prop_name_interpolation_after_hyphen.hrx000066400000000000000000000001201355712145100271720ustar00rootroot00000000000000<===> input.scss a { -#{"foo"}-bar: b; } <===> output.css a { -foo-bar: b; } sass-spec-libsass-3.6.3/spec/scss/prop_name_only_interpolation.hrx000066400000000000000000000001321355712145100255020ustar00rootroot00000000000000<===> input.scss foo {#{"baz" + "bang"}: blip} <===> output.css foo { bazbang: blip; } sass-spec-libsass-3.6.3/spec/scss/property_interpolation_at_dashes.hrx000066400000000000000000000001621355712145100263630ustar00rootroot00000000000000<===> input.scss $a : a; $b : b; div { -foo-#{$a}-#{$b}-foo: foo } <===> output.css div { -foo-a-b-foo: foo; } sass-spec-libsass-3.6.3/spec/scss/quotes-in-interpolated-strings.hrx000066400000000000000000000004071355712145100256220ustar00rootroot00000000000000<===> input.scss $bar: "bar"; $foobar: "foo#{$bar}"; #{$bar} { #{$bar}: #{$bar}; #{$bar}: $bar; } foobar { #{$foobar}: #{$foobar}; #{$foobar}: $foobar; } <===> output.css bar { bar: bar; bar: "bar"; } foobar { foobar: foobar; foobar: "foobar"; } sass-spec-libsass-3.6.3/spec/scss/retina-image.hrx000066400000000000000000000014761355712145100220700ustar00rootroot00000000000000<===> input.scss @mixin retina-image($filename, $background-size, $extension: png, $retina-filename: null, $asset-pipeline: false) { @if $asset-pipeline { background-image: image_url($filename + "." + $extension); } @else { background-image: url($filename + "." + $extension); } @include hidpi { @if $asset-pipeline { @if $retina-filename { background-image: image_url($retina-filename + "." + $extension); } @else { background-image: image_url($filename + "@2x" + "." + $extension); } } @else { @if $retina-filename { background-image: url($retina-filename + "." + $extension); } @else { background-image: url($filename + "@2x" + "." + $extension); } } background-size: $background-size; } } <===> output.css sass-spec-libsass-3.6.3/spec/scss/sass_script.hrx000066400000000000000000000002301355712145100220460ustar00rootroot00000000000000<===> input.scss foo { a: 1 + 2; b: 1 - 2; c: foo + bar; d: floor(12.3px); } <===> output.css foo { a: 3; b: -1; c: foobar; d: 12px; } sass-spec-libsass-3.6.3/spec/scss/selector_interpolation_at_attr_beginning.hrx000066400000000000000000000001341355712145100300410ustar00rootroot00000000000000<===> input.scss $zzz: zzz; [#{$zzz}=foo] { a: b; } <===> output.css [zzz=foo] { a: b; } sass-spec-libsass-3.6.3/spec/scss/selector_interpolation_at_class_begininng.hrx000066400000000000000000000001221355712145100301710ustar00rootroot00000000000000<===> input.scss $zzz: zzz; .#{$zzz} { a: b; } <===> output.css .zzz { a: b; } sass-spec-libsass-3.6.3/spec/scss/selector_interpolation_at_id_begininng.hrx000066400000000000000000000001221355712145100274600ustar00rootroot00000000000000<===> input.scss $zzz: zzz; ##{$zzz} { a: b; } <===> output.css #zzz { a: b; } sass-spec-libsass-3.6.3/spec/scss/selector_interpolation_at_pseudo_begininng.hrx000066400000000000000000000001401355712145100303630ustar00rootroot00000000000000<===> input.scss $zzz: zzz; :#{$zzz}::#{$zzz} { a: b; } <===> output.css :zzz::zzz { a: b; } sass-spec-libsass-3.6.3/spec/scss/selector_interpolation_in_pseudoclass.hrx000066400000000000000000000001421355712145100273750ustar00rootroot00000000000000<===> input.scss foo:nth-child(#{5 + "n"}) {a: b} <===> output.css foo:nth-child(5n) { a: b; } sass-spec-libsass-3.6.3/spec/scss/several_namespace_properties.hrx000066400000000000000000000003501355712145100254450ustar00rootroot00000000000000<===> input.scss foo { bar: baz; bang: { bip: 1px; bop: bar;} buzz: { fram: "foo"; frum: moo; } } <===> output.css foo { bar: baz; bang-bip: 1px; bang-bop: bar; buzz-fram: "foo"; buzz-frum: moo; } sass-spec-libsass-3.6.3/spec/scss/simple-inheritance.hrx000066400000000000000000000023441355712145100233010ustar00rootroot00000000000000<===> input.scss earth { mammal, bird { blood: warm; } } earth { mammal { produces-milk: true; } } @mixin mammal-says($message) { @extend mammal; says: $message; } dog { @include mammal-says("Woof!"); } cat { @include mammal-says("Meow."); } horse, naysayer { @include mammal-says("Nay."); } [hey] { a: b; } ho { @extend [hey]; c: d; } fancy outer space vehicle { insides: advanced; } new american mars rover { wheels: big; @extend vehicle; } foo { something: whatever; } a b c { blah: blah; @extend foo; } d e f { blah: blah; } g { @extend f; bloo: bloo; } <===> output.css earth mammal, earth horse, earth naysayer, earth cat, earth dog, earth bird { blood: warm; } earth mammal, earth horse, earth naysayer, earth cat, earth dog { produces-milk: true; } dog { says: "Woof!"; } cat { says: "Meow."; } horse, naysayer { says: "Nay."; } [hey], ho { a: b; } ho { c: d; } fancy outer space vehicle, fancy outer space new american mars rover, new american mars fancy outer space rover { insides: advanced; } new american mars rover { wheels: big; } foo, a b c { something: whatever; } a b c { blah: blah; } d e f, d e g { blah: blah; } g { bloo: bloo; } sass-spec-libsass-3.6.3/spec/scss/simple-lists.hrx000066400000000000000000000002451355712145100221440ustar00rootroot00000000000000<===> input.scss div { hey: a, b, c, d; ho: a b c d; ha: unquote("a, b, c, d"); } <===> output.css div { hey: a, b, c, d; ho: a b c d; ha: a, b, c, d; } sass-spec-libsass-3.6.3/spec/scss/star_plus_and_parent.hrx000066400000000000000000000001221355712145100237200ustar00rootroot00000000000000<===> input.scss foo {*+html & {a: b}} <===> output.css * + html foo { a: b; } sass-spec-libsass-3.6.3/spec/scss/strings.hrx000066400000000000000000000005061355712145100212100ustar00rootroot00000000000000<===> input.scss div { content: blang + 1; content: 1 + blang; content: "blang" + 1; content: 1 + "blang"; content: bar + "foo"; content: "quoted" + unquoted; } <===> output.css div { content: blang1; content: 1blang; content: "blang1"; content: "1blang"; content: barfoo; content: "quotedunquoted"; } sass-spec-libsass-3.6.3/spec/scss/url_import.hrx000066400000000000000000000001241355712145100217070ustar00rootroot00000000000000<===> input.scss @import url(fonts.sass); <===> output.css @import url(fonts.sass); sass-spec-libsass-3.6.3/spec/scss/variables.hrx000066400000000000000000000002051355712145100214630ustar00rootroot00000000000000<===> input.scss foo { $var: 2; $another-var: 4; a: $var; b: $var + $another-var;} <===> output.css foo { a: 2; b: 6; } sass-spec-libsass-3.6.3/spec/scss/vars.hrx000066400000000000000000000002371355712145100204730ustar00rootroot00000000000000<===> input.scss $x: hello; $y: 1/2 3/4 (2+3); div { content: 1 2 $x; content: $y; } <===> output.css div { content: 1 2 hello; content: 1/2 3/4 5; } sass-spec-libsass-3.6.3/spec/scss/weird-selectors.hrx000066400000000000000000000003341355712145100226310ustar00rootroot00000000000000<===> input.scss > > E { color: red; } E > > { color: red; } > > E > > { > > F > > { color: red; } } <===> output.css > > E { color: red; } E > > { color: red; } > > E > > > > F > > { color: red; } sass-spec-libsass-3.6.3/spec/scss/weird_added_space.hrx000066400000000000000000000001521355712145100231220ustar00rootroot00000000000000<===> input.scss $value : bip; foo { bar: -moz-#{$value}; } <===> output.css foo { bar: -moz-bip; } sass-spec-libsass-3.6.3/spec/scss/while.hrx000066400000000000000000000003661355712145100206330ustar00rootroot00000000000000<===> input.scss div { $x : true; @while $x { stuff: 1; more-stuff: 2; even-more-stuff: 3; lets-stop-now: 4; $x: false; } } <===> output.css div { stuff: 1; more-stuff: 2; even-more-stuff: 3; lets-stop-now: 4; } sass-spec-libsass-3.6.3/spec/scss/while_directive.hrx000066400000000000000000000002171355712145100226640ustar00rootroot00000000000000<===> input.scss $i: 1; .foo { @while $i != 5 { a: $i; $i: $i + 1; } } <===> output.css .foo { a: 1; a: 2; a: 3; a: 4; } sass-spec-libsass-3.6.3/spec/scss/while_in_functions.hrx000066400000000000000000000002321355712145100234010ustar00rootroot00000000000000<===> input.scss @function test-while() { $x : true; @while $x { @return $x } } div { y: test-while(); } <===> output.css div { y: true; } sass-spec-libsass-3.6.3/spec/scss/while_without_condition.hrx000066400000000000000000000004601355712145100244570ustar00rootroot00000000000000<===> input.scss @while { } <===> error Error: Invalid CSS after "@while ": expected expression (e.g. 1px, bold), was "{" on line 1 of input.scss Use --trace for backtrace. <===> error-dart-sass Error: Expected expression. , 1 | @while { | ^ ' input.scss 1:8 root stylesheet sass-spec-libsass-3.6.3/spec/scss/zero-compression.hrx000066400000000000000000000005031355712145100230320ustar00rootroot00000000000000<===> input.scss $orig: 0.12em; $value: (0.12em); $score: (item-height: 0.12em); foo { tst-1: 0 -#{0.12em}; tst-2: 0 -#{$orig}; tst-3: 0 -#{$value}; tst-4: 0 -#{map-get($score, item-height)}; } <===> output.css foo { tst-1: 0 -0.12em; tst-2: 0 -0.12em; tst-3: 0 -0.12em; tst-4: 0 -0.12em; } sass-spec-libsass-3.6.3/spec/selectors/000077500000000000000000000000001355712145100200235ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/selectors/attribute.hrx000066400000000000000000000002541355712145100225520ustar00rootroot00000000000000<===> regression/trailing_dot/input.scss // See https://github.com/sass/dart-sass/issues/598 [a="b."] {x: y} <===> regression/trailing_dot/output.css [a="b."] { x: y; } sass-spec-libsass-3.6.3/spec/selectors/placeholder_in_pseudo.hrx000066400000000000000000000005361355712145100251010ustar00rootroot00000000000000<===> options.yml --- :todo: - libsass <===> input.scss // Style rules with placeholders should only be deleted if they can't match // *any* real elements. a:matches(%b) {x: y} a:matches(%b, c) {x: y} a:not(%b) {x: y} a:not(%b, c) {x: y} :not(%b) {x: y} <===> output.css a:matches(c) { x: y; } a { x: y; } a:not(c) { x: y; } * { x: y; } sass-spec-libsass-3.6.3/spec/test.scss000066400000000000000000000000071355712145100176710ustar00rootroot00000000000000a{b:c} sass-spec-libsass-3.6.3/spec/values/000077500000000000000000000000001355712145100173175ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/values/colors/000077500000000000000000000000001355712145100206205ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/values/colors/alpha_hex/000077500000000000000000000000001355712145100225515ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/values/colors/alpha_hex/initial_digit.hrx000066400000000000000000000012501355712145100261030ustar00rootroot00000000000000<===> input.scss a { four-digit: #0123; eight-digit: #98765432; // Verify that the color channels are set correctly. four-digit-red: red(#0123); four-digit-green: green(#0123); four-digit-blue: blue(#0123); four-digit-alpha: alpha(#0123); eight-digit-red: red(#98765432); eight-digit-green: green(#98765432); eight-digit-blue: blue(#98765432); eight-digit-alpha: alpha(#98765432); } <===> output.css a { four-digit: #0123; eight-digit: #98765432; four-digit-red: 0; four-digit-green: 17; four-digit-blue: 34; four-digit-alpha: 0.2; eight-digit-red: 152; eight-digit-green: 118; eight-digit-blue: 84; eight-digit-alpha: 0.1960784314; } sass-spec-libsass-3.6.3/spec/values/colors/alpha_hex/initial_letter.hrx000066400000000000000000000012661355712145100263110ustar00rootroot00000000000000<===> input.scss a { four-digit: #AbCd; eight-digit: #aBcDeF12; // Verify that the color channels are set correctly. four-digit-red: red(#abcd); four-digit-green: green(#abcd); four-digit-blue: blue(#abcd); four-digit-alpha: alpha(#abcd); eight-digit-red: red(#ABCDEF12); eight-digit-green: green(#ABCDEF12); eight-digit-blue: blue(#ABCDEF12); eight-digit-alpha: alpha(#ABCDEF12); } <===> output.css a { four-digit: #AbCd; eight-digit: #aBcDeF12; four-digit-red: 170; four-digit-green: 187; four-digit-blue: 204; four-digit-alpha: 0.8666666667; eight-digit-red: 171; eight-digit-green: 205; eight-digit-blue: 239; eight-digit-alpha: 0.0705882353; } sass-spec-libsass-3.6.3/spec/values/colors/alpha_hex/options.yml000066400000000000000000000000221355712145100247610ustar00rootroot00000000000000--- :precision: 10sass-spec-libsass-3.6.3/spec/values/identifiers/000077500000000000000000000000001355712145100216245ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/values/identifiers/escape/000077500000000000000000000000001355712145100230645ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/values/identifiers/escape/README.md000066400000000000000000000002431355712145100243420ustar00rootroot00000000000000Escaped code points in identifiers are converted to a normal form but left as escapes, so that they're distinct from unquoted strings that contain raw characters. sass-spec-libsass-3.6.3/spec/values/identifiers/escape/normalize/000077500000000000000000000000001355712145100250645ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/values/identifiers/escape/normalize/input.scss000066400000000000000000000017621355712145100271260ustar00rootroot00000000000000.normalize { // TODO: remove unnecessary parentheses when we're no longer testing against // Ruby Sass. name-start-char: (ax \61x \61 x \061x \0061x \00061x); name-start-char-non-hex: (\xx); name-start-char-non-ascii: (☃x \☃x \2603x); name-char-in-middle: (a\2dx a\-x); name-char-at-start: (\2dx \-x); digit-in-middle: (a\31x a\31 x); digit-at-start: (\31x \31 x); non-printable: (\0x \1x \2x \3x \4x \5x \6x \7x \8x \Bx \Ex \Fx \10x \11x \12x \13x \14x \15x \16x \17x \18x \19x \1Ax \1Bx \1Cx \1Dx \1Ex \1Fx \7Fx); newline: (\ax \cx \dx); tab: (\ x \9x); // The beginning of an interpolated identifier should escape name-start chars, // but inner sections should not. name-char-interpolation-beginning: \-#{foo}; name-char-interpolation-middle: #{foo}\-#{bar}; name-char-interpolation-end: #{foo}\-; // Regression test for sass/ruby-sass#94 raw-escaped-tab: \ ; } // Regression test for sass/ruby-sass#96 @media screen\9 { x {y: z} } selector\9 { x: y; } sass-spec-libsass-3.6.3/spec/values/identifiers/escape/normalize/options.yml000066400000000000000000000000371355712145100273020ustar00rootroot00000000000000--- :todo: - sass/libsass#2700 sass-spec-libsass-3.6.3/spec/values/identifiers/escape/normalize/output-ruby-sass.css000066400000000000000000000013031355712145100310610ustar00rootroot00000000000000@charset "UTF-8"; .normalize { name-start-char: ax ax ax ax ax ax; name-start-char-non-hex: xx; name-start-char-non-ascii: ☃x ☃x ☃x; name-char-in-middle: a-x a-x; name-char-at-start: \-x \-x; digit-in-middle: a1x a1x; digit-at-start: \31 x \31 x; non-printable: \0 x \1 x \2 x \3 x \4 x \5 x \6 x \7 x \8 x \b x \e x \f x \10 x \11 x \12 x \13 x \14 x \15 x \16 x \17 x \18 x \19 x \1a x \1b x \1c x \1d x \1e x \1f x \7f x; newline: \a x \c x \d x; tab: \9 x \9 x; name-char-interpolation-beginning: \-foo; name-char-interpolation-middle: foo-bar; name-char-interpolation-end: foo-; raw-escaped-tab: \ ; } @media screen\9 { x { y: z; } } selector\9 { x: y; } sass-spec-libsass-3.6.3/spec/values/identifiers/escape/normalize/output.css000066400000000000000000000013041355712145100271340ustar00rootroot00000000000000@charset "UTF-8"; .normalize { name-start-char: ax ax ax ax ax ax; name-start-char-non-hex: xx; name-start-char-non-ascii: ☃x ☃x ☃x; name-char-in-middle: a-x a-x; name-char-at-start: \-x \-x; digit-in-middle: a1x a1x; digit-at-start: \31 x \31 x; non-printable: \0 x \1 x \2 x \3 x \4 x \5 x \6 x \7 x \8 x \b x \e x \f x \10 x \11 x \12 x \13 x \14 x \15 x \16 x \17 x \18 x \19 x \1a x \1b x \1c x \1d x \1e x \1f x \7f x; newline: \a x \c x \d x; tab: \9 x \9 x; name-char-interpolation-beginning: \-foo; name-char-interpolation-middle: foo-bar; name-char-interpolation-end: foo-; raw-escaped-tab: \9 ; } @media screen\9 { x { y: z; } } selector\9 { x: y; } sass-spec-libsass-3.6.3/spec/values/identifiers/escape/options.yml000066400000000000000000000000371355712145100253020ustar00rootroot00000000000000--- :todo: - sass/libsass#2700 sass-spec-libsass-3.6.3/spec/values/identifiers/escape/script.hrx000066400000000000000000000014021355712145100251100ustar00rootroot00000000000000<===> options.yml --- :todo: - sass/libsass#2700 <===> input.scss // SassScript functions operate on the normalized form of the identifier. .script { unescaped-str-length: str-length(ax) str-length(\61x) str-length(\00061 x); escaped-str-length: str-length(\1Ax) str-length(\0001A x); unescaped-slice: str-slice(xaz, 2, 2) str-slice(x\61z, 2, 2) str-slice(x\00061 z, 2, 2); escaped-slice: str-slice(x\1Az, 2, 5) str-slice(x\0001A z, 2, 5); unescaped-quote: quote(ax) quote(\61x) quote(\00061 x); escaped-quote: quote(\1Ax) quote(\0001A x); } <===> output.css .script { unescaped-str-length: 2 2 2; escaped-str-length: 5 5; unescaped-slice: a a a; escaped-slice: \1a \1a ; unescaped-quote: "ax" "ax" "ax"; escaped-quote: "\\1a x" "\\1a x"; } sass-spec-libsass-3.6.3/spec/values/ids.hrx000066400000000000000000000015021355712145100206170ustar00rootroot00000000000000<===> input.scss // The CSS nav-up property and its siblings allow ID tokens in their values, so // Sass parses any tokens that start with a "#" followed by an identifier as an // ID if it can't be parsed as a color. a { // These IDs are the wrong number of letters to be a hex color. two-letters: #ab; five-letters: #abcde; seven-letters: #abcdefa; nine-letters: #abcdefabc; // These IDs contain letters outside the hexadecimal gamut. three-letters-not-hex: #axc; four-letters-not-hex: #axcd; six-letters-not-hex: #abcxde; eight-letters-not-hex: #abcxdefa; } <===> output.css a { two-letters: #ab; five-letters: #abcde; seven-letters: #abcdefa; nine-letters: #abcdefabc; three-letters-not-hex: #axc; four-letters-not-hex: #axcd; six-letters-not-hex: #abcxde; eight-letters-not-hex: #abcxdefa; } sass-spec-libsass-3.6.3/spec/values/lists/000077500000000000000000000000001355712145100204555ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/values/lists/brackets.hrx000066400000000000000000000030651355712145100230020ustar00rootroot00000000000000<===> input.scss .bracketed-lists { empty: []; single: [foo]; multiple: [foo, bar]; nested: [[foo], [[bar, baz]]]; space-separated: [foo bar baz]; trailing-comma: [foo, bar,]; // List functions treat it like a list. nth-comma: nth([foo, bar], 2); nth-space: nth([foo bar], 2); comma-separator: list-separator([foo, bar]); space-separator: list-separator([foo bar]); // List functions preserve bracketedness. set-nth: set-nth([foo, bar, baz], 2, qux); append: append([foo, bar], baz); append-with-separator: append([foo, bar], baz, $separator: space); // Inspection produces valid input. This also verifies that nested lists of // various sorts are parsed properly. inspect-empty: inspect([]); inspect-simple: inspect([foo, bar]); inspect-nested-bracketed: inspect([[foo]]); inspect-nested-unbracketed: inspect([(foo bar)]); inspect-nested-unbracketed-comma: inspect([foo bar,]); inspect-nested-unbracketed-singleton: inspect([(foo,)]); } <===> output.css .bracketed-lists { empty: []; single: [foo]; multiple: [foo, bar]; nested: [[foo], [[bar, baz]]]; space-separated: [foo bar baz]; trailing-comma: [foo, bar]; nth-comma: bar; nth-space: bar; comma-separator: comma; space-separator: space; set-nth: [foo, qux, baz]; append: [foo, bar, baz]; append-with-separator: [foo bar baz]; inspect-empty: []; inspect-simple: [foo, bar]; inspect-nested-bracketed: [[foo]]; inspect-nested-unbracketed: [(foo bar)]; inspect-nested-unbracketed-comma: [foo bar,]; inspect-nested-unbracketed-singleton: [(foo,)]; } sass-spec-libsass-3.6.3/spec/values/lists/equality.hrx000066400000000000000000000006301355712145100230340ustar00rootroot00000000000000<===> input.scss a { @if [foo bar]==[foo bar] { t1: t; } @else { f1: f; } @if [foo bar]==[foo, bar] { t2: t; } @else { f2: f; } @if [foo bar]==(foo bar) { t3: t; } @else { f3: f; } @if [] == [] { t4: t; } @else { f4: f; } @if [] == () { t5: t; } @else { f5: f; } } <===> output.css a { t1: t; f2: f; f3: f; t4: t; f5: f; } sass-spec-libsass-3.6.3/spec/values/maps/000077500000000000000000000000001355712145100202575ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/values/maps/duplicate-keys.hrx000066400000000000000000000005301355712145100237230ustar00rootroot00000000000000<===> input.scss $map: ( alpha: 1, beta: 2, gamma: 3, delta: ( eta: 5, eta: 6, ), ); <===> error Error: Duplicate key "eta" in map (eta: 5, eta: 6). on line 5 of input.scss Use --trace for backtrace. <===> error-dart-sass Error: Duplicate key. , 7 | eta: 6, | ^^^ ' input.scss 7:5 root stylesheet sass-spec-libsass-3.6.3/spec/values/maps/errors.hrx000066400000000000000000000005101355712145100223120ustar00rootroot00000000000000<===> input.scss $map: ( foo: bar ); test { baz: $map; } <===> error Error: (foo: bar) isn't a valid CSS value. on line 2 of input.scss Use --trace for backtrace. <===> error-dart-sass Error: (foo: bar) isn't a valid CSS value. , 2 | test { baz: $map; } | ^^^^ ' input.scss 2:13 root stylesheet sass-spec-libsass-3.6.3/spec/values/maps/invalid-key.hrx000066400000000000000000000007451355712145100232240ustar00rootroot00000000000000<===> input.scss $id: inspect((a,b:c)...) <===> error Error: Invalid CSS after "$id: inspect((a,b": expected ")", was ":c)...)" on line 1 of input.scss Use --trace for backtrace. <===> error-dart-sass Error: expected ")". , 1 | $id: inspect((a,b:c)...) | ^ ' input.scss 1:18 root stylesheet <===> error-libsass Error: Invalid CSS after "$id: inspect((a,b:": expected ")", was "c)...)" on line 1 of input.scss Use --trace for backtrace. sass-spec-libsass-3.6.3/spec/values/maps/length.hrx000066400000000000000000000001611355712145100222610ustar00rootroot00000000000000<===> input.scss $map: (aaa: 100, bbb: 200, ccc: 300); a { b: length($map); } <===> output.css a { b: 3; } sass-spec-libsass-3.6.3/spec/values/maps/map-values.hrx000066400000000000000000000002421355712145100230520ustar00rootroot00000000000000<===> input.scss div { foo: map-values((foo: 1, bar: 2)); foo: map-values((foo: 1, bar: 2, baz: 2)); } <===> output.css div { foo: 1, 2; foo: 1, 2, 2; } sass-spec-libsass-3.6.3/spec/values/numbers/000077500000000000000000000000001355712145100207725ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/values/numbers/units/000077500000000000000000000000001355712145100221345ustar00rootroot00000000000000sass-spec-libsass-3.6.3/spec/values/numbers/units/multiple.hrx000066400000000000000000000062351355712145100245200ustar00rootroot00000000000000<===> input.scss .multiple { // Sass units that are multiplied and divided along with the values. multiple-numerators: inspect(1px * 1rad); multiple-denominators: inspect((1 / 1px / 1rad)); divide-by-multiple-numerators: inspect(1 / (1px * 1rad)); divide-by-multiple-denominators: inspect(1 / (1 / 1px / 1rad)); // Units that appear in both the numerator and denominator cancel out, leaving // remaining units in place. $number: 1px * 1rad / 1ms / 1Hz; multiplication-cancels-denominator: inspect($number * 1ms); multiplication-cancels-denominator-twice: inspect($number * (1ms * 1Hz)); multiplication-cancels-numerator: inspect($number * (1 / 1px)); multiplication-cancels-numerator-twice: inspect($number * (1 / 1px / 1rad)); multiplication-cancels-both: inspect($number * (1ms / 1px)); division-cancels-numerator: inspect($number / 1rad); division-cancels-numerator-twice: inspect($number / (1px * 1rad)); division-cancels-denominator: inspect($number / (1 / 1ms)); division-cancels-denominator-twice: inspect($number / (1 / 1ms / 1Hz)); division-cancels-both: inspect($number / (1px / 1ms)); // Units cancel if they're compatible, even if they aren't identical. multiplication-cancels-compatible: inspect($number * 1s); division-cancels-compatible: inspect($number / 1in); // Units cancel even if they're totally unknown to Sass. $number: 1foo * 1bar / 1baz / 1qux; multiplication-cancels-unknown: inspect($number * 1baz); division-cancels-unknown: inspect($number / 1foo); } <===> output.css .multiple { multiple-numerators: 1px*rad; multiple-denominators: 1/px*rad; divide-by-multiple-numerators: 1/px*rad; divide-by-multiple-denominators: 1px*rad; multiplication-cancels-denominator: 1px*rad/Hz; multiplication-cancels-denominator-twice: 1px*rad; multiplication-cancels-numerator: 1rad/Hz*ms; multiplication-cancels-numerator-twice: 1/Hz*ms; multiplication-cancels-both: 1rad/Hz; division-cancels-numerator: 1px/Hz*ms; division-cancels-numerator-twice: 1/Hz*ms; division-cancels-denominator: 1px*rad/Hz; division-cancels-denominator-twice: 1px*rad; division-cancels-both: 1rad/Hz; multiplication-cancels-compatible: 1000px*rad/Hz; division-cancels-compatible: 0.0104166667rad/Hz*ms; multiplication-cancels-unknown: 1bar*foo/qux; division-cancels-unknown: 1bar/baz*qux; } <===> output-dart-sass.css .multiple { multiple-numerators: 1px*rad; multiple-denominators: 1(px*rad)^-1; divide-by-multiple-numerators: 1(px*rad)^-1; divide-by-multiple-denominators: 1px*rad; multiplication-cancels-denominator: 1px*rad/Hz; multiplication-cancels-denominator-twice: 1px*rad; multiplication-cancels-numerator: 1rad/ms*Hz; multiplication-cancels-numerator-twice: 1(ms*Hz)^-1; multiplication-cancels-both: 1rad/Hz; division-cancels-numerator: 1px/ms*Hz; division-cancels-numerator-twice: 1(ms*Hz)^-1; division-cancels-denominator: 1px*rad/Hz; division-cancels-denominator-twice: 1px*rad; division-cancels-both: 1rad/Hz; multiplication-cancels-compatible: 1000px*rad/Hz; division-cancels-compatible: 0.0104166667rad/ms*Hz; multiplication-cancels-unknown: 1foo*bar/qux; division-cancels-unknown: 1bar/baz*qux; } sass-spec-libsass-3.6.3/spec/variables.hrx000066400000000000000000000023311355712145100205120ustar00rootroot00000000000000<===> global/first_declaration/options.yml --- :warning_todo: - sass/libsass#2834 <===> ================================================================================ <===> global/first_declaration/top_level/input.scss $var: value !global; a {b: $var} <===> global/first_declaration/top_level/output.css a { b: value; } <===> global/first_declaration/top_level/warning DEPRECATION WARNING: As of Dart Sass 2.0.0, !global assignments won't be able to declare new variables. Since this assignment is at the root of the stylesheet, the !global flag is unnecessary and can safely be removed. , 1 | $var: value !global; | ^^^^^^^^^^^^^^^^^^^ ' input.scss 1:1 root stylesheet <===> ================================================================================ <===> global/first_declaration/nested/input.scss x {$var: value !global} a {b: $var} <===> global/first_declaration/nested/output.css a { b: value; } <===> global/first_declaration/nested/warning DEPRECATION WARNING: As of Dart Sass 2.0.0, !global assignments won't be able to declare new variables. Consider adding `$var: null` at the root of the stylesheet. , 1 | x {$var: value !global} | ^^^^^^^^^^^^^^^^^^^ ' input.scss 1:4 root stylesheet sass-spec-libsass-3.6.3/test_all_impls.sh000077500000000000000000000004701355712145100204410ustar00rootroot00000000000000#!/bin/bash set -v export DIR=$(dirname $0) for GEMFILE in $(ls $DIR/Gemfile*) do if [[ $GEMFILE != *"lock"* ]] then export BUNDLE_GEMFILE=$GEMFILE bundle install --no-deployment || exit 1 bundle update sass || exit 1 bundle exec sass-spec.rb || exit 1 fi done # TODO: Test libsass here sass-spec-libsass-3.6.3/tests/000077500000000000000000000000001355712145100162305ustar00rootroot00000000000000sass-spec-libsass-3.6.3/tests/spec_helper.rb000066400000000000000000000000571355712145100210500ustar00rootroot00000000000000# frozen_string_literal: true require 'rspec' sass-spec-libsass-3.6.3/tests/test_case_metadata_spec.rb000066400000000000000000000036111355712145100234020ustar00rootroot00000000000000# frozen_string_literal: true require_relative 'spec_helper' require 'sass_spec' def create_options_yaml(folder, dictionary) FileUtils.mkdir_p("tests/fixtures/#{folder}") File.write("tests/fixtures/#{folder}/options.yml", dictionary.to_yaml) end def cleanup(folder) FileUtils.remove_dir("tests/fixtures/#{folder}") end describe SassSpec::TestCaseMetadata do context 'should ignore impl when given ignore_for' do before { create_options_yaml('ignore', ignore_for: ['dart_sass']) } after { cleanup('ignore') } subject { SassSpec::TestCaseMetadata.new(SassSpec::Directory.new('tests/fixtures/ignore')).ignore_for?('dart_sass') } it { is_expected.to be true } end context 'should ignore impl when given only_on' do before { create_options_yaml('only_on', only_on: ['dart_sass']) } after { cleanup('only_on') } subject { SassSpec::TestCaseMetadata.new(SassSpec::Directory.new('tests/fixtures/only_on')).ignore_for?('libsass') } it { is_expected.to be true } end context 'should have precision' do before { create_options_yaml('precision', precision: 10) } after { cleanup('precision') } subject { SassSpec::TestCaseMetadata.new(SassSpec::Directory.new('tests/fixtures/precision')).precision } it { is_expected.to eq 10 } end context 'should have todos for an impl' do before { create_options_yaml('todo', todo: ['sass/libsass#2342']) } after { cleanup('todo') } subject { SassSpec::TestCaseMetadata.new(SassSpec::Directory.new('tests/fixtures/todo')).todo?('libsass') } it { is_expected.to be true } end context 'should have warning todos for an impl' do before { create_options_yaml('warning', warning_todo: ['sass/libsass#2342']) } after { cleanup('warning') } subject { SassSpec::TestCaseMetadata.new(SassSpec::Directory.new('tests/fixtures/warning')).warning_todo?('libsass') } it { is_expected.to be true } end end sass-spec-libsass-3.6.3/tools/000077500000000000000000000000001355712145100162265ustar00rootroot00000000000000sass-spec-libsass-3.6.3/tools/.gitignore000066400000000000000000000000071355712145100202130ustar00rootroot00000000000000/*.scsssass-spec-libsass-3.6.3/tools/README.md000066400000000000000000000005121355712145100175030ustar00rootroot00000000000000## gen_libsass_todo ```bash $ gen_libsass_todo # [remote] $ gen_libsass_todo 2014 mgreter ``` - create a new branch from master - read spec test from `$ISSUE.scss` - create folder and necessary files - call spec runner to generate the test - add files to git and create commit - optionally push to the given remote sass-spec-libsass-3.6.3/tools/gen_libsass_todo.cmd000066400000000000000000000030511355712145100222300ustar00rootroot00000000000000@echo off SETLOCAL SET EXEC=%~0 SET ISSUE=%1 REM split exec into parts For %%F IN ("%EXEC%") do ( Set FOLDER=%%~dpF Set NAME=%%~nxF ) REM test if we have an issue nr if [%1] == [] GOTO :NoIssue SET SPECS=%FOLDER%..\spec if not exist "%ISSUE%.scss" ( echo input source not found: %ISSUE%.scss goto :End ) SET GITCMD=git -C "%FOLDER%.." %GITCMD% fetch --all %GITCMD% checkout -f -B todo/issue_%ISSUE% master if exist "%SPECS%\libsass-closed-issues\issue_%ISSUE%" GOTO :IsClosed if exist "%SPECS%\libsass-closed-issues\issue_%ISSUE%.hrx" GOTO :IsClosed if not exist "%SPECS%\libsass-todo-issues\issue_%ISSUE%" ( mkdir "%SPECS%\libsass-todo-issues\issue_%ISSUE%" ) set ROOT=%SPECS%\libsass-todo-issues\issue_%ISSUE% copy %ISSUE%.scss %ROOT%\input.scss sass %ROOT%\input.scss %ROOT%\output.css ^ --no-source-map if exist "%ROOT%.hrx" del %ROOT%.hrx echo ^<===^> input.scss >> %ROOT%.hrx type %ROOT%\input.scss >> %ROOT%.hrx echo ^<===^> output.css >> %ROOT%.hrx type %ROOT%\output.css >> %ROOT%.hrx del %ROOT%\input.scss del %ROOT%\output.css dos2unix %ROOT%.hrx %GITCMD% add %ROOT%.hrx %GITCMD% commit -m "Add todo spec test for libsass issue %ISSUE%" ^ -m "" -m "https://github.com/sass/libsass/issues/%ISSUE%" echo You may push the branch to your remote repository now if [%2] == [] GOTO :End echo Going to push to remote %2 %GITCMD% push %2 todo/issue_%ISSUE% GOTO :End :IsClosed echo Issue seems to be closed already :NoIssue echo Please pass an issue number GOTO :End :End sass-spec-libsass-3.6.3/tools/skipped-for-impl.sh000077500000000000000000000020121355712145100217420ustar00rootroot00000000000000#!/bin/bash -e # Exits with exit code 0 if the tests should be skipped for the current # implementation, and exit code 1 otherwise. This allows pull requests to # include e.g. "Skip dart-sass" if a connected Dart Sass pull request is also in # flight. Multiple implementations can also be skipped: "Skip libsass, # ruby-sass". if [ "$TRAVIS_PULL_REQUEST" == "false" ]; then >&2 echo "TRAVIS_PULL_REQUEST: $TRAVIS_PULL_REQUEST." >&2 echo "Not skipping." exit 1 fi >&2 echo "Fetching pull request $TRAVIS_PULL_REQUEST..." url=https://api.github.com/repos/sass/sass-spec/pulls/$TRAVIS_PULL_REQUEST if [ -z "$GITHUB_AUTH" ]; then >&2 echo "Fetching pull request info without authentication" JSON=$(curl -L -sS $url) else >&2 echo "Fetching pull request info as sassbot" JSON=$(curl -u "sassbot:$GITHUB_AUTH" -L -sS $url) fi >&2 echo "$JSON" RE_SKIP="[Ss]kip\>[a-z, -]*\<$IMPL" if [[ $JSON =~ $RE_SKIP ]]; then >&2 echo "Skipping $IMPL." exit 0 else >&2 echo "Pull request doesn't skip $IMPL." exit 1 fi