├── .classpath ├── .gitattributes ├── .gitignore ├── .project ├── .settings ├── gradle │ └── org.springsource.ide.eclipse.gradle.core.prefs ├── org.eclipse.buildship.core.prefs ├── org.eclipse.core.resources.prefs └── org.eclipse.jdt.core.prefs ├── .travis.yml ├── README.md ├── build.gradle ├── gradle └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat ├── lib └── jsr305.jar ├── license.txt ├── package.json ├── src └── com │ └── inet │ └── lib │ └── less │ ├── ColorUtils.java │ ├── Comment.java │ ├── CompressCssFormatter.java │ ├── CssAtRule.java │ ├── CssFormatter.java │ ├── CssMediaOutput.java │ ├── CssOutput.java │ ├── CssPlainOutput.java │ ├── CssRuleOutput.java │ ├── CustomFunctionColorizeImage.java │ ├── CustomLessFunction.java │ ├── DefaultedHashMap.java │ ├── Expression.java │ ├── Formattable.java │ ├── FormattableContainer.java │ ├── FunctionExpression.java │ ├── HSL.java │ ├── HSV.java │ ├── HashMultimap.java │ ├── JavaScriptBindings.java │ ├── JavaScriptContext.java │ ├── JavaScriptExpression.java │ ├── JavaScriptObject.java │ ├── LazyImport.java │ ├── Less.java │ ├── LessException.java │ ├── LessExtend.java │ ├── LessExtendMap.java │ ├── LessExtendResult.java │ ├── LessFilePosition.java │ ├── LessLookAheadReader.java │ ├── LessObject.java │ ├── LessParser.java │ ├── Mixin.java │ ├── MixinMatch.java │ ├── Operation.java │ ├── ParameterOutOfBoundsException.java │ ├── ReaderFactory.java │ ├── ReferenceInfo.java │ ├── RegExp.java │ ├── Rule.java │ ├── RuleProperty.java │ ├── SelectorTokenizer.java │ ├── SelectorUtils.java │ ├── StringBuilderPool.java │ ├── UrlUtils.java │ ├── ValueExpression.java │ └── VariableExpression.java └── test └── com └── inet └── lib └── less ├── ErrorTest.java ├── LessTest.java ├── RewriteUrls ├── all.css ├── local.css ├── main.jpg ├── main.less ├── off.css ├── subfolder1 │ ├── image.jpg │ ├── sub1.less │ ├── subfolder2 │ │ ├── sub.jpg │ │ └── sub2.less │ └── test.jpg └── test.jpg ├── RewriteUrlsTest.java └── samples ├── bootstrap ├── LICENSE ├── bootstrap-3.3.1.css ├── bootstrap-3.3.1.less ├── bootstrap-3.3.1 │ ├── .csscomb.json │ ├── .csslintrc │ ├── alerts.less │ ├── badges.less │ ├── bootstrap.less │ ├── breadcrumbs.less │ ├── button-groups.less │ ├── buttons.less │ ├── carousel.less │ ├── close.less │ ├── code.less │ ├── component-animations.less │ ├── dropdowns.less │ ├── forms.less │ ├── glyphicons.less │ ├── grid.less │ ├── input-groups.less │ ├── jumbotron.less │ ├── labels.less │ ├── list-group.less │ ├── media.less │ ├── mixins.less │ ├── mixins │ │ ├── alerts.less │ │ ├── background-variant.less │ │ ├── border-radius.less │ │ ├── buttons.less │ │ ├── center-block.less │ │ ├── clearfix.less │ │ ├── forms.less │ │ ├── gradients.less │ │ ├── grid-framework.less │ │ ├── grid.less │ │ ├── hide-text.less │ │ ├── image.less │ │ ├── labels.less │ │ ├── list-group.less │ │ ├── nav-divider.less │ │ ├── nav-vertical-align.less │ │ ├── opacity.less │ │ ├── pagination.less │ │ ├── panels.less │ │ ├── progress-bar.less │ │ ├── reset-filter.less │ │ ├── resize.less │ │ ├── responsive-visibility.less │ │ ├── size.less │ │ ├── tab-focus.less │ │ ├── table-row.less │ │ ├── text-emphasis.less │ │ ├── text-overflow.less │ │ └── vendor-prefixes.less │ ├── modals.less │ ├── navbar.less │ ├── navs.less │ ├── normalize.less │ ├── pager.less │ ├── pagination.less │ ├── panels.less │ ├── popovers.less │ ├── print.less │ ├── progress-bars.less │ ├── responsive-embed.less │ ├── responsive-utilities.less │ ├── scaffolding.less │ ├── tables.less │ ├── theme.less │ ├── thumbnails.less │ ├── tooltip.less │ ├── type.less │ ├── utilities.less │ ├── variables.less │ └── wells.less └── corporate │ ├── corporate_importants.less │ ├── corporate_variables.less │ ├── corporatedesign_basic.less │ ├── images-sprite.less │ ├── template_css.less │ └── template_variables.less ├── custom ├── colorize-image.1.8.css ├── colorize-image.css ├── colorize-image.less ├── disconnect.png └── eye-white.png ├── general ├── anchorURL.css ├── anchorURL.less ├── colors.css ├── colors.css_x ├── colors.less ├── colors2.css ├── colors2.less ├── css_guards.css ├── css_guards.less ├── doubleRule.css ├── doubleRule.css_x ├── doubleRule.less ├── doubleRule2.css ├── doubleRule2.css_x ├── doubleRule2.less ├── escaped-arguments.css ├── escaped-arguments.less ├── extend-special.css ├── extend-special.less ├── guard.css ├── guard.less ├── import.css ├── import.less ├── import │ ├── importReferences.css │ ├── importReferences.less │ ├── importReferences2.css │ ├── importReferences2.less │ ├── media.less │ ├── media_imports.css │ └── media_imports.less ├── importOptional.css ├── importOptional.less ├── important.css ├── important.less ├── inlineMode.css ├── inlineMode.less ├── loop.css ├── loop.less ├── minus.css ├── minus.less ├── parent-selectors.css ├── parent-selectors.less ├── parenthesis.css ├── parenthesis.less ├── scope │ ├── scope1.css │ ├── scope1.less │ ├── scope2.css │ ├── scope2.less │ ├── scope3.css │ ├── scope3.less │ ├── scope4.css │ ├── scope4.less │ ├── scope5.css │ ├── scope5.less │ ├── scope6.css │ ├── scope6.less │ ├── scope7.css │ ├── scope7.less │ ├── scope8.css │ ├── scope8.less │ ├── scope9.css │ └── scope9.less ├── selectorWithQuotes.css ├── selectorWithQuotes.less ├── slash.css ├── slash.less ├── svgGradient.css └── svgGradient.less ├── less_org_doc ├── ParentSelectors │ ├── MultipleAnd1.css │ ├── MultipleAnd1.less │ ├── MultipleAnd2.css │ ├── MultipleAnd2.less │ ├── base.css │ └── base.less ├── extends │ ├── InsideMedia.css │ ├── InsideMedia.less │ ├── all.css │ ├── all.less │ ├── base.css │ ├── base.less │ ├── element.css │ └── element.less ├── guards │ ├── conditional.css │ ├── conditional.less │ ├── css_guards.css │ ├── css_guards.less │ ├── list.css │ ├── list.less │ ├── logical_operators.css │ └── logical_operators.less ├── license.txt ├── list │ ├── range.css │ └── range.less ├── logical │ ├── if1.css │ ├── if1.less │ ├── if2.css │ └── if2.less ├── mixins │ ├── MultipleParameters.css │ ├── MultipleParameters.less │ ├── as_function.css │ ├── as_function.less │ ├── as_function2.css │ ├── as_function2.less │ ├── base.css │ ├── base.css_x │ ├── base.less │ ├── colon.css │ ├── colon.less │ ├── important.css │ ├── important.css_x │ ├── important.less │ ├── namespaces.css │ ├── namespaces.css_x │ ├── namespaces.less │ ├── outputting.css │ ├── outputting.css_x │ ├── outputting.less │ ├── parametric.css │ ├── parametric.less │ ├── root.css │ ├── root.less │ ├── selectors.css │ ├── selectors.css_x │ └── selectors.less └── overview │ ├── bubbling_non_conditional.css │ ├── bubbling_non_conditional.css_x │ ├── bubbling_non_conditional.less │ ├── comments.css │ ├── comments.css_x │ ├── comments.less │ ├── functions.css │ ├── functions.css_x │ ├── functions.less │ ├── media.css │ ├── media.css_x │ ├── media.less │ ├── mixins.css │ ├── mixins.css_x │ ├── mixins.less │ ├── namespace.css │ ├── namespace.css_x │ ├── namespace.less │ ├── nested_rules.css │ ├── nested_rules.css_x │ ├── nested_rules.less │ ├── operations.css │ ├── operations.css_x │ ├── operations.less │ ├── pseudo_selector.css │ ├── pseudo_selector.css_x │ ├── pseudo_selector.less │ ├── scope.css │ ├── scope.css_x │ ├── scope.less │ ├── variables.css │ ├── variables.css_x │ └── variables.less └── less_org_tests ├── LICENSE ├── data ├── data-uri-fail.png ├── image.jpg └── page.html └── less ├── charsets.css ├── charsets.less ├── colors.css ├── colors.less ├── comments.css ├── comments.less ├── compression ├── compression.css └── compression.less ├── css-3.css ├── css-3.less ├── css-escapes.css ├── css-escapes.less ├── css.css ├── css.less ├── empty.css ├── empty.less ├── extend-chaining.css ├── extend-chaining.less ├── extend-clearfix.css ├── extend-clearfix.less ├── extend-exact.css ├── extend-exact.less ├── extend-media.css ├── extend-media.less ├── extend-nest.css ├── extend-nest.less ├── extend-selector.css ├── extend-selector.less ├── extend.css ├── extend.less ├── extract-and-length.css ├── extract-and-length.less ├── functions.css ├── functions.less ├── ie-filters.css ├── ie-filters.less ├── import-inline.css ├── import-inline.less ├── import-interpolation.css ├── import-interpolation.less ├── import-once.css ├── import-once.less ├── import.css ├── import.less ├── import ├── deeper │ └── import-once-test-a.less ├── import-and-relative-paths-test.less ├── import-charset-test.less ├── import-interpolation.less ├── import-interpolation2.less ├── import-once-test-c.less ├── import-reference.less ├── import-test-a.less ├── import-test-b.less ├── import-test-c.less ├── import-test-d.css ├── import-test-e.less ├── import-test-f.less ├── imports │ ├── font.less │ └── logo.less ├── invalid-css.less └── urls.less ├── javascript.css ├── javascript.less ├── lazy-eval.css ├── lazy-eval.less ├── legacy ├── legacy.css └── legacy.less ├── mixins-guards-default-func.css ├── mixins-guards-default-func.less ├── mixins-important.css ├── mixins-important.less ├── mixins-named-args.css ├── mixins-named-args.less ├── mixins-nested.css ├── mixins-nested.less ├── mixins-pattern.css ├── mixins-pattern.less ├── no-output.css ├── no-output.less ├── operations.css ├── operations.less ├── parens.css ├── parens.less ├── rulesets.css ├── rulesets.less ├── selectors.css ├── selectors.less ├── static-urls ├── urls.css └── urls.less ├── strings.css ├── strings.less ├── url-args ├── urls.css └── urls.less ├── urls.css ├── urls.less ├── variables-in-at-rules.css ├── variables-in-at-rules.less ├── variables.css ├── variables.less ├── whitespace.css └── whitespace.less /.classpath: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | # Auto detect text files and perform LF normalization 2 | * text=auto 3 | 4 | # Images 5 | *.gif binary 6 | *.ico binary 7 | *.jpg binary 8 | *.jpeg binary 9 | *.png binary 10 | *.webp binary 11 | 12 | # Custom for Visual Studio 13 | *.cs diff=csharp 14 | 15 | # Standard to msysgit 16 | *.doc diff=astextplain 17 | *.DOC diff=astextplain 18 | *.docx diff=astextplain 19 | *.DOCX diff=astextplain 20 | *.dot diff=astextplain 21 | *.DOT diff=astextplain 22 | *.pdf diff=astextplain 23 | *.PDF diff=astextplain 24 | *.rtf diff=astextplain 25 | *.RTF diff=astextplain 26 | 27 | *.java text eol=lf 28 | *.java diff=java 29 | 30 | *.html text eol=lf 31 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | /build/ 3 | /.gradle/ 4 | /node_modules/ 5 | -------------------------------------------------------------------------------- /.project: -------------------------------------------------------------------------------- 1 | 2 | 3 | JLessC 4 | 5 | 6 | 7 | 8 | 9 | org.eclipse.jdt.core.javabuilder 10 | 11 | 12 | 13 | 14 | org.eclipse.buildship.core.gradleprojectbuilder 15 | 16 | 17 | 18 | 19 | 20 | org.eclipse.jdt.core.javanature 21 | org.eclipse.buildship.core.gradleprojectnature 22 | 23 | 24 | -------------------------------------------------------------------------------- /.settings/gradle/org.springsource.ide.eclipse.gradle.core.prefs: -------------------------------------------------------------------------------- 1 | #org.springsource.ide.eclipse.gradle.core.preferences.GradleProjectPreferences 2 | #Tue Feb 17 19:44:27 CET 2015 3 | build.family.org.gradle.tooling.model.eclipse.HierarchicalEclipseProject=; 4 | org.springsource.ide.eclipse.gradle.classpath.enableSorting=false 5 | org.springsource.ide.eclipse.gradle.rootprojectloc= 6 | -------------------------------------------------------------------------------- /.settings/org.eclipse.buildship.core.prefs: -------------------------------------------------------------------------------- 1 | connection.project.dir= 2 | eclipse.preferences.version=1 3 | -------------------------------------------------------------------------------- /.settings/org.eclipse.core.resources.prefs: -------------------------------------------------------------------------------- 1 | eclipse.preferences.version=1 2 | encoding/=UTF8 3 | -------------------------------------------------------------------------------- /.settings/org.eclipse.jdt.core.prefs: -------------------------------------------------------------------------------- 1 | eclipse.preferences.version=1 2 | org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled 3 | org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate 4 | org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7 5 | org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve 6 | org.eclipse.jdt.core.compiler.compliance=1.7 7 | org.eclipse.jdt.core.compiler.debug.lineNumber=generate 8 | org.eclipse.jdt.core.compiler.debug.localVariable=generate 9 | org.eclipse.jdt.core.compiler.debug.sourceFile=generate 10 | org.eclipse.jdt.core.compiler.problem.assertIdentifier=error 11 | org.eclipse.jdt.core.compiler.problem.enumIdentifier=error 12 | org.eclipse.jdt.core.compiler.source=1.7 13 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | # Use docker-based build environment (instead of openvz) 2 | dist: trusty 3 | sudo: false 4 | 5 | language: java 6 | jdk: 7 | - oraclejdk8 8 | # - oraclejdk9 9 | # - openjdk10 10 | - openjdk11 11 | - openjdk12 12 | - openjdk14 13 | # - openjdk-ea 14 | 15 | script: ./gradlew -Djdk.tls.client.protocols="TLSv1,TLSv1.1,TLSv1.2" --stacktrace check benchmark 16 | -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/i-net-software/jlessc/78cbb93bec45d7992b34565f8ff6a5265b7fc49e/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionBase=GRADLE_USER_HOME 2 | distributionPath=wrapper/dists 3 | zipStoreBase=GRADLE_USER_HOME 4 | zipStorePath=wrapper/dists 5 | distributionUrl=https\://services.gradle.org/distributions/gradle-4.10.2-bin.zip 6 | -------------------------------------------------------------------------------- /lib/jsr305.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/i-net-software/jlessc/78cbb93bec45d7992b34565f8ff6a5265b7fc49e/lib/jsr305.jar -------------------------------------------------------------------------------- /license.txt: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2014 Volker Berlin 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in 13 | all copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | THE SOFTWARE. 22 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "JLessCTest", 3 | "version": "1.0.0", 4 | "description": "Test Suite for nodeJS based less compilation", 5 | "author": "i-net software", 6 | "private": true, 7 | "devDependencies": { 8 | "less": "^2.5.0" 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/com/inet/lib/less/Comment.java: -------------------------------------------------------------------------------- 1 | /** 2 | * MIT License (MIT) 3 | * 4 | * Copyright (c) 2014 - 2018 Volker Berlin 5 | * 6 | * Permission is hereby granted, free of charge, to any person obtaining a copy 7 | * of this software and associated documentation files (the "Software"), to deal 8 | * in the Software without restriction, including without limitation the rights 9 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | * copies of the Software, and to permit persons to whom the Software is 11 | * furnished to do so, subject to the following conditions: 12 | * 13 | * The above copyright notice and this permission notice shall be included in 14 | * all copies or substantial portions of the Software. 15 | * 16 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | * UT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 22 | * THE SOFTWARE. 23 | * 24 | * @author Volker Berlin 25 | * @license: The MIT license 26 | */ 27 | package com.inet.lib.less; 28 | 29 | /** 30 | * A comment in the less file. 31 | */ 32 | class Comment implements Formattable { 33 | 34 | private String msg; 35 | 36 | /** 37 | * Create a new instance of Comment. 38 | * @param msg the comment text 39 | */ 40 | Comment( String msg ) { 41 | this.msg = msg; 42 | } 43 | 44 | /** 45 | * {@inheritDoc} 46 | */ 47 | @Override 48 | public final int getType() { 49 | return COMMENT; 50 | } 51 | 52 | /** 53 | * {@inheritDoc} 54 | */ 55 | @Override 56 | public void prepare( CssFormatter formatter ) { 57 | // nothing 58 | } 59 | 60 | /** 61 | * {@inheritDoc} 62 | */ 63 | @Override 64 | public void appendTo( CssFormatter formatter ) { 65 | formatter.comment( msg ); 66 | } 67 | 68 | } 69 | -------------------------------------------------------------------------------- /src/com/inet/lib/less/CssOutput.java: -------------------------------------------------------------------------------- 1 | /** 2 | * MIT License (MIT) 3 | * 4 | * Copyright (c) 2014 - 2015 Volker Berlin 5 | * 6 | * Permission is hereby granted, free of charge, to any person obtaining a copy 7 | * of this software and associated documentation files (the "Software"), to deal 8 | * in the Software without restriction, including without limitation the rights 9 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | * copies of the Software, and to permit persons to whom the Software is 11 | * furnished to do so, subject to the following conditions: 12 | * 13 | * The above copyright notice and this permission notice shall be included in 14 | * all copies or substantial portions of the Software. 15 | * 16 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | * UT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 22 | * THE SOFTWARE. 23 | * 24 | * @author Volker Berlin 25 | * @license: The MIT license 26 | */ 27 | package com.inet.lib.less; 28 | 29 | 30 | /** 31 | * Container for formatted CSS result. 32 | */ 33 | abstract class CssOutput { 34 | 35 | /** 36 | * Write the this output to the target 37 | * @param target the target 38 | * @param lessExtends all extends in the less 39 | * @param formatter a formatter 40 | */ 41 | abstract void appendTo( StringBuilder target, LessExtendMap lessExtends, CssFormatter formatter ); 42 | 43 | /** 44 | * If this output has content 45 | * 46 | * @param lessExtends 47 | * current extends container 48 | * @return true, if there is content 49 | */ 50 | abstract boolean hasContent( LessExtendMap lessExtends ); 51 | 52 | /** 53 | * Get the selectors of this rule. 54 | * 55 | * @return the selectors 56 | */ 57 | abstract String[] getSelectors(); 58 | 59 | /** 60 | * Get the native output buffer 61 | * 62 | * @return the buffer 63 | */ 64 | abstract StringBuilder getOutput(); 65 | } 66 | -------------------------------------------------------------------------------- /src/com/inet/lib/less/CustomLessFunction.java: -------------------------------------------------------------------------------- 1 | /** 2 | * MIT License (MIT) 3 | * 4 | * Copyright (c) 2020 Volker Berlin 5 | * 6 | * Permission is hereby granted, free of charge, to any person obtaining a copy 7 | * of this software and associated documentation files (the "Software"), to deal 8 | * in the Software without restriction, including without limitation the rights 9 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | * copies of the Software, and to permit persons to whom the Software is 11 | * furnished to do so, subject to the following conditions: 12 | * 13 | * The above copyright notice and this permission notice shall be included in 14 | * all copies or substantial portions of the Software. 15 | * 16 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | * UT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 22 | * THE SOFTWARE. 23 | * 24 | * @author Volker Berlin 25 | * @license: The MIT license 26 | */ 27 | package com.inet.lib.less; 28 | 29 | import java.util.List; 30 | 31 | /** 32 | * Interface to simple extends the less syntax with exotic functions without forking the JLessC project. 33 | */ 34 | public interface CustomLessFunction { 35 | 36 | /** 37 | * Append this custom function to formatter 38 | * 39 | * @param formatter 40 | * current formatter 41 | * @param parameters 42 | * the parameters. 43 | * @throws Exception 44 | * if any error occur it can throw any exception 45 | */ 46 | public void appendTo( CssFormatter formatter, List parameters ) throws Exception; 47 | } 48 | -------------------------------------------------------------------------------- /src/com/inet/lib/less/DefaultedHashMap.java: -------------------------------------------------------------------------------- 1 | /** 2 | * MIT License (MIT) 3 | * 4 | * Copyright (c) 2014 - 2015 Volker Berlin 5 | * 6 | * Permission is hereby granted, free of charge, to any person obtaining a copy 7 | * of this software and associated documentation files (the "Software"), to deal 8 | * in the Software without restriction, including without limitation the rights 9 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | * copies of the Software, and to permit persons to whom the Software is 11 | * furnished to do so, subject to the following conditions: 12 | * 13 | * The above copyright notice and this permission notice shall be included in 14 | * all copies or substantial portions of the Software. 15 | * 16 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | * UT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 22 | * THE SOFTWARE. 23 | * 24 | * @author Volker Berlin 25 | * @license: The MIT license 26 | */ 27 | package com.inet.lib.less; 28 | 29 | import java.util.HashMap; 30 | import java.util.Map; 31 | 32 | import javax.annotation.Nonnull; 33 | 34 | /** 35 | * HashMap with default values. 36 | * 37 | * @param 38 | * the type of keys maintained by this map 39 | * @param 40 | * the type of mapped values 41 | */ 42 | class DefaultedHashMap extends HashMap { 43 | 44 | private final Map defaultValues; 45 | 46 | /** 47 | * Create a new instance. The default values are referenced and not copied. 48 | * 49 | * @param defaultValues 50 | * the default values 51 | */ 52 | DefaultedHashMap( @Nonnull Map defaultValues ) { 53 | this.defaultValues = defaultValues; 54 | } 55 | 56 | /** 57 | * {@inheritDoc} 58 | */ 59 | @Override 60 | public V get( Object key ) { 61 | V value = super.get( key ); 62 | if( value != null ) { 63 | return value; 64 | } 65 | return defaultValues.get( key ); 66 | } 67 | } 68 | -------------------------------------------------------------------------------- /src/com/inet/lib/less/Formattable.java: -------------------------------------------------------------------------------- 1 | /** 2 | * MIT License (MIT) 3 | * 4 | * Copyright (c) 2014 - 2018 Volker Berlin 5 | * 6 | * Permission is hereby granted, free of charge, to any person obtaining a copy 7 | * of this software and associated documentation files (the "Software"), to deal 8 | * in the Software without restriction, including without limitation the rights 9 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | * copies of the Software, and to permit persons to whom the Software is 11 | * furnished to do so, subject to the following conditions: 12 | * 13 | * The above copyright notice and this permission notice shall be included in 14 | * all copies or substantial portions of the Software. 15 | * 16 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | * UT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 22 | * THE SOFTWARE. 23 | * 24 | * @author Volker Berlin 25 | * @license: The MIT license 26 | */ 27 | package com.inet.lib.less; 28 | 29 | /** 30 | * An object that can be print as CSS. 31 | */ 32 | interface Formattable { 33 | 34 | static final int PROPERTY = 0; 35 | static final int RULE = 1; 36 | static final int MIXIN = 2; 37 | static final int EXPRESSION = 3; 38 | static final int COMMENT = 4; 39 | static final int CSS_AT_RULE = 5; 40 | static final int EXTENDS = 6; 41 | static final int REFERENCE_INFO = 7; 42 | 43 | /** 44 | * The type of formattable. Can be used in switches 45 | * @return the type 46 | */ 47 | int getType(); 48 | 49 | /** 50 | * Prepare/evaluate global stuctures 51 | * 52 | * @param formatter 53 | * the CCS target 54 | */ 55 | void prepare( CssFormatter formatter ); 56 | 57 | /** 58 | * Write the object to the CSS output 59 | * 60 | * @param formatter 61 | * the CCS target 62 | */ 63 | void appendTo( CssFormatter formatter ); 64 | } 65 | -------------------------------------------------------------------------------- /src/com/inet/lib/less/FormattableContainer.java: -------------------------------------------------------------------------------- 1 | /** 2 | * MIT License (MIT) 3 | * 4 | * Copyright (c) 2014 - 2018 Volker Berlin 5 | * 6 | * Permission is hereby granted, free of charge, to any person obtaining a copy 7 | * of this software and associated documentation files (the "Software"), to deal 8 | * in the Software without restriction, including without limitation the rights 9 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | * copies of the Software, and to permit persons to whom the Software is 11 | * furnished to do so, subject to the following conditions: 12 | * 13 | * The above copyright notice and this permission notice shall be included in 14 | * all copies or substantial portions of the Software. 15 | * 16 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | * UT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 22 | * THE SOFTWARE. 23 | * 24 | * @author Volker Berlin 25 | * @license: The MIT license 26 | */ 27 | package com.inet.lib.less; 28 | 29 | import java.util.HashMap; 30 | 31 | /** 32 | * A interface of for sharing feature between root and rules. 33 | */ 34 | interface FormattableContainer { 35 | 36 | /** 37 | * Add a formattable to this container 38 | * @param formattable the formattable object 39 | */ 40 | void add( Formattable formattable ); 41 | 42 | /** 43 | * Get the container for variables of this container. 44 | * @return the variables 45 | */ 46 | HashMap getVariables(); 47 | 48 | /** 49 | * Get the map of registered mixin rules for the current scope. 50 | * 51 | * @return the map 52 | */ 53 | HashMultimap getMixins(); 54 | } 55 | -------------------------------------------------------------------------------- /src/com/inet/lib/less/HSL.java: -------------------------------------------------------------------------------- 1 | /** 2 | * MIT License (MIT) 3 | * 4 | * Copyright (c) 2014 - 2020 Volker Berlin 5 | * 6 | * Permission is hereby granted, free of charge, to any person obtaining a copy 7 | * of this software and associated documentation files (the "Software"), to deal 8 | * in the Software without restriction, including without limitation the rights 9 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | * copies of the Software, and to permit persons to whom the Software is 11 | * furnished to do so, subject to the following conditions: 12 | * 13 | * The above copyright notice and this permission notice shall be included in 14 | * all copies or substantial portions of the Software. 15 | * 16 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | * UT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 22 | * THE SOFTWARE. 23 | * 24 | * @author Volker Berlin 25 | * @license: The MIT license 26 | */ 27 | package com.inet.lib.less; 28 | 29 | /** 30 | * A HSL color value. 31 | */ 32 | public class HSL { 33 | 34 | public double h, s, l, a; 35 | 36 | /** 37 | * Create a new color value. 38 | * @param h hue value 39 | * @param s saturation 40 | * @param l lightness 41 | * @param a alpha 42 | */ 43 | public HSL( double h, double s, double l, double a ) { 44 | this.h = h; 45 | this.s = s; 46 | this.l = l; 47 | this.a = a; 48 | } 49 | 50 | } 51 | -------------------------------------------------------------------------------- /src/com/inet/lib/less/HSV.java: -------------------------------------------------------------------------------- 1 | /** 2 | * MIT License (MIT) 3 | * 4 | * Copyright (c) 2015 Volker Berlin 5 | * 6 | * Permission is hereby granted, free of charge, to any person obtaining a copy 7 | * of this software and associated documentation files (the "Software"), to deal 8 | * in the Software without restriction, including without limitation the rights 9 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | * copies of the Software, and to permit persons to whom the Software is 11 | * furnished to do so, subject to the following conditions: 12 | * 13 | * The above copyright notice and this permission notice shall be included in 14 | * all copies or substantial portions of the Software. 15 | * 16 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | * UT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 22 | * THE SOFTWARE. 23 | * 24 | * @author Volker Berlin 25 | * @license: The MIT license 26 | */ 27 | package com.inet.lib.less; 28 | 29 | /** 30 | * A HSV color value. 31 | */ 32 | class HSV { 33 | 34 | double h, s, v, a; 35 | 36 | /** 37 | * Create a new color value. 38 | * @param h hue value 39 | * @param s saturation 40 | * @param v value 41 | * @param a alpha 42 | */ 43 | public HSV( double h, double s, double v, double a ) { 44 | this.h = h; 45 | this.s = s; 46 | this.v = v; 47 | this.a = a; 48 | } 49 | 50 | } 51 | -------------------------------------------------------------------------------- /src/com/inet/lib/less/JavaScriptObject.java: -------------------------------------------------------------------------------- 1 | /** 2 | * MIT License (MIT) 3 | * 4 | * Copyright (c) 2015 Volker Berlin 5 | * 6 | * Permission is hereby granted, free of charge, to any person obtaining a copy 7 | * of this software and associated documentation files (the "Software"), to deal 8 | * in the Software without restriction, including without limitation the rights 9 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | * copies of the Software, and to permit persons to whom the Software is 11 | * furnished to do so, subject to the following conditions: 12 | * 13 | * The above copyright notice and this permission notice shall be included in 14 | * all copies or substantial portions of the Software. 15 | * 16 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | * UT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 22 | * THE SOFTWARE. 23 | * 24 | * @author Volker Berlin 25 | * @license: The MIT license 26 | */ 27 | package com.inet.lib.less; 28 | 29 | /** 30 | * Wrapper class to accessible a variable through scripting engine. Must be public. Lesscss expected that the values are accessible through the method toJS(). 31 | */ 32 | public class JavaScriptObject { 33 | 34 | private Object obj; 35 | 36 | /** 37 | * New wrapper object. 38 | * @param obj the native value 39 | */ 40 | JavaScriptObject( Object obj ) { 41 | this.obj = obj; 42 | } 43 | 44 | /** 45 | * Unwrap method. Must be public. 46 | * @return the value 47 | */ 48 | public Object toJS() { 49 | return obj; 50 | } 51 | 52 | /** 53 | * {@inheritDoc} 54 | */ 55 | @Override 56 | public String toString() { 57 | return obj.toString(); 58 | } 59 | } 60 | -------------------------------------------------------------------------------- /src/com/inet/lib/less/LessExtendResult.java: -------------------------------------------------------------------------------- 1 | /** 2 | * MIT License (MIT) 3 | * 4 | * Copyright (c) 2014 - 2015 Volker Berlin 5 | * 6 | * Permission is hereby granted, free of charge, to any person obtaining a copy 7 | * of this software and associated documentation files (the "Software"), to deal 8 | * in the Software without restriction, including without limitation the rights 9 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | * copies of the Software, and to permit persons to whom the Software is 11 | * furnished to do so, subject to the following conditions: 12 | * 13 | * The above copyright notice and this permission notice shall be included in 14 | * all copies or substantial portions of the Software. 15 | * 16 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | * UT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 22 | * THE SOFTWARE. 23 | * 24 | * @author Volker Berlin 25 | * @license: The MIT license 26 | */ 27 | package com.inet.lib.less; 28 | 29 | /** 30 | * An executed less expression with the selector of the caller. 31 | */ 32 | class LessExtendResult { 33 | 34 | private final String[] mainSelector; 35 | 36 | private final String extendingSelector; 37 | 38 | /** 39 | * Create a new instance. 40 | * @param mainSelector the main selectors of the extend 41 | * @param extendingSelector the extends selector 42 | */ 43 | LessExtendResult( String[] mainSelector, String extendingSelector ) { 44 | this.mainSelector = mainSelector; 45 | this.extendingSelector = extendingSelector; 46 | } 47 | 48 | /** 49 | * Get the main selectors. 50 | * @return the selectors 51 | */ 52 | String[] getSelectors() { 53 | return mainSelector; 54 | } 55 | 56 | /** 57 | * Get the extending selectors. 58 | * @return the selectors. 59 | */ 60 | String getExtendingSelector() { 61 | return extendingSelector; 62 | } 63 | } 64 | -------------------------------------------------------------------------------- /src/com/inet/lib/less/ParameterOutOfBoundsException.java: -------------------------------------------------------------------------------- 1 | /** 2 | * MIT License (MIT) 3 | * 4 | * Copyright (c) 2014 - 2015 Volker Berlin 5 | * 6 | * Permission is hereby granted, free of charge, to any person obtaining a copy 7 | * of this software and associated documentation files (the "Software"), to deal 8 | * in the Software without restriction, including without limitation the rights 9 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | * copies of the Software, and to permit persons to whom the Software is 11 | * furnished to do so, subject to the following conditions: 12 | * 13 | * The above copyright notice and this permission notice shall be included in 14 | * all copies or substantial portions of the Software. 15 | * 16 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | * UT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 22 | * THE SOFTWARE. 23 | * 24 | * @author Volker Berlin 25 | * @license: The MIT license 26 | */ 27 | package com.inet.lib.less; 28 | 29 | /** 30 | * A special exception for canceling of evaluating a function. 31 | */ 32 | class ParameterOutOfBoundsException extends IndexOutOfBoundsException { 33 | 34 | } 35 | -------------------------------------------------------------------------------- /src/com/inet/lib/less/StringBuilderPool.java: -------------------------------------------------------------------------------- 1 | /** 2 | * MIT License (MIT) 3 | * 4 | * Copyright (c) 2015 Volker Berlin 5 | * 6 | * Permission is hereby granted, free of charge, to any person obtaining a copy 7 | * of this software and associated documentation files (the "Software"), to deal 8 | * in the Software without restriction, including without limitation the rights 9 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | * copies of the Software, and to permit persons to whom the Software is 11 | * furnished to do so, subject to the following conditions: 12 | * 13 | * The above copyright notice and this permission notice shall be included in 14 | * all copies or substantial portions of the Software. 15 | * 16 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | * UT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 22 | * THE SOFTWARE. 23 | * 24 | * @author Volker Berlin 25 | * @license: The MIT license 26 | */ 27 | package com.inet.lib.less; 28 | 29 | import java.util.ArrayDeque; 30 | 31 | import javax.annotation.Nonnull; 32 | 33 | /** 34 | * A pool for StringBuilders to reduce the allocation of new objects. 35 | */ 36 | final class StringBuilderPool { 37 | 38 | private final ArrayDeque pool = new ArrayDeque(); 39 | 40 | /** 41 | * Get a StringBuilder 42 | * @return a StringBuilder 43 | */ 44 | @Nonnull 45 | StringBuilder get() { 46 | if( pool.size() == 0 ) { 47 | return new StringBuilder(); 48 | } else { 49 | StringBuilder builder = pool.pollLast(); 50 | builder.setLength( 0 ); 51 | return builder; 52 | } 53 | } 54 | 55 | /** 56 | * Return a StringBuilder to the pool. 57 | * @param builder a StringBuilder 58 | */ 59 | void free( StringBuilder builder ) { 60 | pool.addLast( builder ); 61 | } 62 | } 63 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/RewriteUrls/all.css: -------------------------------------------------------------------------------- 1 | .rule2 { 2 | url1: url('subfolder1/image.jpg'); 3 | url2: url("data:image/jpeg;base64,bm90IGFjdHVhbGx5IGEganBlZyBmaWxlCg=="); 4 | url3: url('subfolder1/subfolder2/subfolder1/image.jpg'); 5 | url4: url("data:image/jpeg;base64,bm90IGFjdHVhbGx5IGEganBlZyBmaWxlCg=="); 6 | url5: url('subfolder1/DoesNotExists.jpg'); 7 | url6: url('subfolder1/subfolder2/subfolder1/DoesNotExists.jpg'); 8 | url7: url('main.jpg'); 9 | url8: url("data:image/jpeg;base64,bm90IGFjdHVhbGx5IGEganBlZyBmaWxlCg=="); 10 | url9: url('http://test.com'); 11 | } 12 | .rule1 { 13 | url1: url('subfolder1/image.jpg'); 14 | url2: url("data:image/jpeg;base64,bm90IGFjdHVhbGx5IGEganBlZyBmaWxlCg=="); 15 | url3: url('subfolder1/subfolder1/image.jpg'); 16 | url4: url("data:image/jpeg;base64,bm90IGFjdHVhbGx5IGEganBlZyBmaWxlCg=="); 17 | url5: url('subfolder1/DoesNotExists.jpg'); 18 | url6: url('subfolder1/subfolder1/DoesNotExists.jpg'); 19 | url7: url("data:image/jpeg;base64,bm90IGFjdHVhbGx5IGEganBlZyBmaWxlCg=="); 20 | url8: url('main.jpg'); 21 | url9: url("data:image/jpeg;base64,bm90IGFjdHVhbGx5IGEganBlZyBmaWxlCg=="); 22 | url10: url("data:image/jpeg;base64,bm90IGFjdHVhbGx5IGEganBlZyBmaWxlCg=="); 23 | url11: url('/main.jpg'); 24 | url12: url('subfolder1/subfolder2/sub.jpg'); 25 | url13: url("data:image/jpeg;base64,bm90IGFjdHVhbGx5IGEganBlZyBmaWxlCg=="); 26 | url14: url("data:image/jpeg;base64,dGhpcyBpcyBpbiB0aGUgc3ViZm9sZGVy"); 27 | url15: url("data:image/jpeg;base64,dGhpcyBpcyBpbiB0aGUgbWFpbg=="); 28 | url16: url('subfolder1/test.jpg'); 29 | url17: url('test.jpg'); 30 | } 31 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/RewriteUrls/local.css: -------------------------------------------------------------------------------- 1 | .rule2 { 2 | url1: url('subfolder1/image.jpg'); 3 | url2: url("data:image/jpeg;base64,bm90IGFjdHVhbGx5IGEganBlZyBmaWxlCg=="); 4 | url3: url('subfolder1/image.jpg'); 5 | url4: url("data:image/jpeg;base64,bm90IGFjdHVhbGx5IGEganBlZyBmaWxlCg=="); 6 | url5: url('subfolder1/DoesNotExists.jpg'); 7 | url6: url('subfolder1/DoesNotExists.jpg'); 8 | url7: url('main.jpg'); 9 | url8: url("data:image/jpeg;base64,bm90IGFjdHVhbGx5IGEganBlZyBmaWxlCg=="); 10 | url9: url('http://test.com'); 11 | } 12 | .rule1 { 13 | url1: url('image.jpg'); 14 | url2: url("data:image/jpeg;base64,bm90IGFjdHVhbGx5IGEganBlZyBmaWxlCg=="); 15 | url3: url('subfolder1/image.jpg'); 16 | url4: url("data:image/jpeg;base64,bm90IGFjdHVhbGx5IGEganBlZyBmaWxlCg=="); 17 | url5: url('DoesNotExists.jpg'); 18 | url6: url('subfolder1/DoesNotExists.jpg'); 19 | url7: url("data:image/jpeg;base64,bm90IGFjdHVhbGx5IGEganBlZyBmaWxlCg=="); 20 | url8: url('main.jpg'); 21 | url9: url("data:image/jpeg;base64,bm90IGFjdHVhbGx5IGEganBlZyBmaWxlCg=="); 22 | url10: url("data:image/jpeg;base64,bm90IGFjdHVhbGx5IGEganBlZyBmaWxlCg=="); 23 | url11: url('/main.jpg'); 24 | url12: url('subfolder2/sub.jpg'); 25 | url13: url("data:image/jpeg;base64,bm90IGFjdHVhbGx5IGEganBlZyBmaWxlCg=="); 26 | url14: url("data:image/jpeg;base64,dGhpcyBpcyBpbiB0aGUgc3ViZm9sZGVy"); 27 | url15: url("data:image/jpeg;base64,dGhpcyBpcyBpbiB0aGUgbWFpbg=="); 28 | url16: url('test.jpg'); 29 | url17: url('test.jpg'); 30 | } 31 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/RewriteUrls/main.jpg: -------------------------------------------------------------------------------- 1 | not actually a jpeg file 2 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/RewriteUrls/main.less: -------------------------------------------------------------------------------- 1 | @import 'subfolder1/sub1.less'; -------------------------------------------------------------------------------- /test/com/inet/lib/less/RewriteUrls/off.css: -------------------------------------------------------------------------------- 1 | .rule2 { 2 | url1: url('../image.jpg'); 3 | url2: url("data:image/jpeg;base64,bm90IGFjdHVhbGx5IGEganBlZyBmaWxlCg=="); 4 | url3: url('subfolder1/image.jpg'); 5 | url4: url("data:image/jpeg;base64,bm90IGFjdHVhbGx5IGEganBlZyBmaWxlCg=="); 6 | url5: url('../DoesNotExists.jpg'); 7 | url6: url('subfolder1/DoesNotExists.jpg'); 8 | url7: url('../../main.jpg'); 9 | url8: url("data:image/jpeg;base64,bm90IGFjdHVhbGx5IGEganBlZyBmaWxlCg=="); 10 | url9: url('http://test.com'); 11 | } 12 | .rule1 { 13 | url1: url('image.jpg'); 14 | url2: url("data:image/jpeg;base64,bm90IGFjdHVhbGx5IGEganBlZyBmaWxlCg=="); 15 | url3: url('subfolder1/image.jpg'); 16 | url4: url("data:image/jpeg;base64,bm90IGFjdHVhbGx5IGEganBlZyBmaWxlCg=="); 17 | url5: url('DoesNotExists.jpg'); 18 | url6: url('subfolder1/DoesNotExists.jpg'); 19 | url7: url("data:image/jpeg;base64,bm90IGFjdHVhbGx5IGEganBlZyBmaWxlCg=="); 20 | url8: url('../main.jpg'); 21 | url9: url("data:image/jpeg;base64,bm90IGFjdHVhbGx5IGEganBlZyBmaWxlCg=="); 22 | url10: url("data:image/jpeg;base64,bm90IGFjdHVhbGx5IGEganBlZyBmaWxlCg=="); 23 | url11: url('/main.jpg'); 24 | url12: url('subfolder2/sub.jpg'); 25 | url13: url("data:image/jpeg;base64,bm90IGFjdHVhbGx5IGEganBlZyBmaWxlCg=="); 26 | url14: url("data:image/jpeg;base64,dGhpcyBpcyBpbiB0aGUgbWFpbg=="); 27 | url15: url("data:image/jpeg;base64,dGhpcyBpcyBpbiB0aGUgbWFpbg=="); 28 | url16: url('test.jpg'); 29 | url17: url('../test.jpg'); 30 | } 31 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/RewriteUrls/subfolder1/image.jpg: -------------------------------------------------------------------------------- 1 | not actually a jpeg file 2 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/RewriteUrls/subfolder1/sub1.less: -------------------------------------------------------------------------------- 1 | @import 'subfolder2/sub2.less'; 2 | 3 | .rule1 { 4 | url1: url('image.jpg'); 5 | url2: data-uri('image.jpg'); 6 | url3: url('subfolder1/image.jpg'); 7 | url4: data-uri('subfolder1/image.jpg'); 8 | url5: data-uri('DoesNotExists.jpg'); 9 | url6: data-uri('subfolder1/DoesNotExists.jpg'); 10 | url7: url("data:image/jpeg;base64,bm90IGFjdHVhbGx5IGEganBlZyBmaWxlCg=="); 11 | url8: url('../main.jpg'); 12 | url9: data-uri('../main.jpg'); 13 | url10: data-uri('/main.jpg'); 14 | url11: url('/main.jpg'); 15 | url12: url('subfolder2/sub.jpg'); 16 | url13: data-uri('subfolder2/sub.jpg'); 17 | url14: data-uri('test.jpg'); 18 | url15: data-uri('../test.jpg'); 19 | url16: url('test.jpg'); 20 | url17: url('../test.jpg'); 21 | } -------------------------------------------------------------------------------- /test/com/inet/lib/less/RewriteUrls/subfolder1/subfolder2/sub.jpg: -------------------------------------------------------------------------------- 1 | not actually a jpeg file 2 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/RewriteUrls/subfolder1/subfolder2/sub2.less: -------------------------------------------------------------------------------- 1 | .rule2 { 2 | url1: url('../image.jpg'); 3 | url2: data-uri('../image.jpg'); 4 | url3: url('subfolder1/image.jpg'); 5 | url4: data-uri('subfolder1/image.jpg'); 6 | url5: data-uri('../DoesNotExists.jpg'); 7 | url6: data-uri('subfolder1/DoesNotExists.jpg'); 8 | url7: url('../../main.jpg'); 9 | url8: data-uri('../../main.jpg'); 10 | url9: url('http://test.com'); 11 | } -------------------------------------------------------------------------------- /test/com/inet/lib/less/RewriteUrls/subfolder1/test.jpg: -------------------------------------------------------------------------------- 1 | this is in the subfolder -------------------------------------------------------------------------------- /test/com/inet/lib/less/RewriteUrls/test.jpg: -------------------------------------------------------------------------------- 1 | this is in the main -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/bootstrap/LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2011-2014 Twitter, Inc 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in 13 | all copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | THE SOFTWARE. 22 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/bootstrap/bootstrap-3.3.1.less: -------------------------------------------------------------------------------- 1 | @import "bootstrap-3.3.1/bootstrap.less"; 2 | @import "corporate/corporatedesign_basic.less"; 3 | @import "corporate/corporate_variables.less"; 4 | @import "corporate/template_variables.less"; 5 | @import "corporate/template_css.less"; 6 | @import "corporate/images-sprite.less"; 7 | @import "corporate/corporate_importants.less"; 8 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/bootstrap/bootstrap-3.3.1/.csslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "adjoining-classes": false, 3 | "box-sizing": false, 4 | "box-model": false, 5 | "compatible-vendor-prefixes": false, 6 | "floats": false, 7 | "font-sizes": false, 8 | "gradients": false, 9 | "important": false, 10 | "known-properties": false, 11 | "outline-none": false, 12 | "qualified-headings": false, 13 | "regex-selectors": false, 14 | "shorthand": false, 15 | "text-indent": false, 16 | "unique-headings": false, 17 | "universal-selector": false, 18 | "unqualified-attributes": false 19 | } 20 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/bootstrap/bootstrap-3.3.1/alerts.less: -------------------------------------------------------------------------------- 1 | // 2 | // Alerts 3 | // -------------------------------------------------- 4 | 5 | 6 | // Base styles 7 | // ------------------------- 8 | 9 | .alert { 10 | padding: @alert-padding; 11 | margin-bottom: @line-height-computed; 12 | border: 1px solid transparent; 13 | border-radius: @alert-border-radius; 14 | 15 | // Headings for larger alerts 16 | h4 { 17 | margin-top: 0; 18 | // Specified for the h4 to prevent conflicts of changing @headings-color 19 | color: inherit; 20 | } 21 | // Provide class for links that match alerts 22 | .alert-link { 23 | font-weight: @alert-link-font-weight; 24 | } 25 | 26 | // Improve alignment and spacing of inner content 27 | > p, 28 | > ul { 29 | margin-bottom: 0; 30 | } 31 | > p + p { 32 | margin-top: 5px; 33 | } 34 | } 35 | 36 | // Dismissible alerts 37 | // 38 | // Expand the right padding and account for the close button's positioning. 39 | 40 | .alert-dismissable, // The misspelled .alert-dismissable was deprecated in 3.2.0. 41 | .alert-dismissible { 42 | padding-right: (@alert-padding + 20); 43 | 44 | // Adjust close link position 45 | .close { 46 | position: relative; 47 | top: -2px; 48 | right: -21px; 49 | color: inherit; 50 | } 51 | } 52 | 53 | // Alternate styles 54 | // 55 | // Generate contextual modifier classes for colorizing the alert. 56 | 57 | .alert-success { 58 | .alert-variant(@alert-success-bg; @alert-success-border; @alert-success-text); 59 | } 60 | .alert-info { 61 | .alert-variant(@alert-info-bg; @alert-info-border; @alert-info-text); 62 | } 63 | .alert-warning { 64 | .alert-variant(@alert-warning-bg; @alert-warning-border; @alert-warning-text); 65 | } 66 | .alert-danger { 67 | .alert-variant(@alert-danger-bg; @alert-danger-border; @alert-danger-text); 68 | } 69 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/bootstrap/bootstrap-3.3.1/badges.less: -------------------------------------------------------------------------------- 1 | // 2 | // Badges 3 | // -------------------------------------------------- 4 | 5 | 6 | // Base class 7 | .badge { 8 | display: inline-block; 9 | min-width: 10px; 10 | padding: 3px 7px; 11 | font-size: @font-size-small; 12 | font-weight: @badge-font-weight; 13 | color: @badge-color; 14 | line-height: @badge-line-height; 15 | vertical-align: baseline; 16 | white-space: nowrap; 17 | text-align: center; 18 | background-color: @badge-bg; 19 | border-radius: @badge-border-radius; 20 | 21 | // Empty badges collapse automatically (not available in IE8) 22 | &:empty { 23 | display: none; 24 | } 25 | 26 | // Quick fix for badges in buttons 27 | .btn & { 28 | position: relative; 29 | top: -1px; 30 | } 31 | .btn-xs & { 32 | top: 0; 33 | padding: 1px 5px; 34 | } 35 | 36 | // Hover state, but only for links 37 | a& { 38 | &:hover, 39 | &:focus { 40 | color: @badge-link-hover-color; 41 | text-decoration: none; 42 | cursor: pointer; 43 | } 44 | } 45 | 46 | // Account for badges in navs 47 | .list-group-item.active > &, 48 | .nav-pills > .active > a > & { 49 | color: @badge-active-color; 50 | background-color: @badge-active-bg; 51 | } 52 | .list-group-item > & { 53 | float: right; 54 | } 55 | .list-group-item > & + & { 56 | margin-right: 5px; 57 | } 58 | .nav-pills > li > a > & { 59 | margin-left: 3px; 60 | } 61 | } 62 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/bootstrap/bootstrap-3.3.1/bootstrap.less: -------------------------------------------------------------------------------- 1 | // Core variables and mixins 2 | @import "variables.less"; 3 | @import "mixins.less"; 4 | 5 | // Reset and dependencies 6 | @import "normalize.less"; 7 | @import "print.less"; 8 | @import "glyphicons.less"; 9 | 10 | // Core CSS 11 | @import "scaffolding.less"; 12 | @import "type.less"; 13 | @import "code.less"; 14 | @import "grid.less"; 15 | @import "tables.less"; 16 | @import "forms.less"; 17 | @import "buttons.less"; 18 | 19 | // Components 20 | @import "component-animations.less"; 21 | @import "dropdowns.less"; 22 | @import "button-groups.less"; 23 | @import "input-groups.less"; 24 | @import "navs.less"; 25 | @import "navbar.less"; 26 | @import "breadcrumbs.less"; 27 | @import "pagination.less"; 28 | @import "pager.less"; 29 | @import "labels.less"; 30 | @import "badges.less"; 31 | @import "jumbotron.less"; 32 | @import "thumbnails.less"; 33 | @import "alerts.less"; 34 | @import "progress-bars.less"; 35 | @import "media.less"; 36 | @import "list-group.less"; 37 | @import "panels.less"; 38 | @import "responsive-embed.less"; 39 | @import "wells.less"; 40 | @import "close.less"; 41 | 42 | // Components w/ JavaScript 43 | @import "modals.less"; 44 | @import "tooltip.less"; 45 | @import "popovers.less"; 46 | @import "carousel.less"; 47 | 48 | // Utility classes 49 | @import "utilities.less"; 50 | @import "responsive-utilities.less"; 51 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/bootstrap/bootstrap-3.3.1/breadcrumbs.less: -------------------------------------------------------------------------------- 1 | // 2 | // Breadcrumbs 3 | // -------------------------------------------------- 4 | 5 | 6 | .breadcrumb { 7 | padding: @breadcrumb-padding-vertical @breadcrumb-padding-horizontal; 8 | margin-bottom: @line-height-computed; 9 | list-style: none; 10 | background-color: @breadcrumb-bg; 11 | border-radius: @border-radius-base; 12 | 13 | > li { 14 | display: inline-block; 15 | 16 | + li:before { 17 | content: "@{breadcrumb-separator}\00a0"; // Unicode space added since inline-block means non-collapsing white-space 18 | padding: 0 5px; 19 | color: @breadcrumb-color; 20 | } 21 | } 22 | 23 | > .active { 24 | color: @breadcrumb-active-color; 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/bootstrap/bootstrap-3.3.1/close.less: -------------------------------------------------------------------------------- 1 | // 2 | // Close icons 3 | // -------------------------------------------------- 4 | 5 | 6 | .close { 7 | float: right; 8 | font-size: (@font-size-base * 1.5); 9 | font-weight: @close-font-weight; 10 | line-height: 1; 11 | color: @close-color; 12 | text-shadow: @close-text-shadow; 13 | .opacity(.2); 14 | 15 | &:hover, 16 | &:focus { 17 | color: @close-color; 18 | text-decoration: none; 19 | cursor: pointer; 20 | .opacity(.5); 21 | } 22 | 23 | // Additional properties for button version 24 | // iOS requires the button element instead of an anchor tag. 25 | // If you want the anchor version, it requires `href="#"`. 26 | button& { 27 | padding: 0; 28 | cursor: pointer; 29 | background: transparent; 30 | border: 0; 31 | -webkit-appearance: none; 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/bootstrap/bootstrap-3.3.1/code.less: -------------------------------------------------------------------------------- 1 | // 2 | // Code (inline and block) 3 | // -------------------------------------------------- 4 | 5 | 6 | // Inline and block code styles 7 | code, 8 | kbd, 9 | pre, 10 | samp { 11 | font-family: @font-family-monospace; 12 | } 13 | 14 | // Inline code 15 | code { 16 | padding: 2px 4px; 17 | font-size: 90%; 18 | color: @code-color; 19 | background-color: @code-bg; 20 | border-radius: @border-radius-base; 21 | } 22 | 23 | // User input typically entered via keyboard 24 | kbd { 25 | padding: 2px 4px; 26 | font-size: 90%; 27 | color: @kbd-color; 28 | background-color: @kbd-bg; 29 | border-radius: @border-radius-small; 30 | box-shadow: inset 0 -1px 0 rgba(0,0,0,.25); 31 | 32 | kbd { 33 | padding: 0; 34 | font-size: 100%; 35 | font-weight: bold; 36 | box-shadow: none; 37 | } 38 | } 39 | 40 | // Blocks of code 41 | pre { 42 | display: block; 43 | padding: ((@line-height-computed - 1) / 2); 44 | margin: 0 0 (@line-height-computed / 2); 45 | font-size: (@font-size-base - 1); // 14px to 13px 46 | line-height: @line-height-base; 47 | word-break: break-all; 48 | word-wrap: break-word; 49 | color: @pre-color; 50 | background-color: @pre-bg; 51 | border: 1px solid @pre-border-color; 52 | border-radius: @border-radius-base; 53 | 54 | // Account for some code outputs that place code tags in pre tags 55 | code { 56 | padding: 0; 57 | font-size: inherit; 58 | color: inherit; 59 | white-space: pre-wrap; 60 | background-color: transparent; 61 | border-radius: 0; 62 | } 63 | } 64 | 65 | // Enable scrollable blocks of code 66 | .pre-scrollable { 67 | max-height: @pre-scrollable-max-height; 68 | overflow-y: scroll; 69 | } 70 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/bootstrap/bootstrap-3.3.1/component-animations.less: -------------------------------------------------------------------------------- 1 | // 2 | // Component animations 3 | // -------------------------------------------------- 4 | 5 | // Heads up! 6 | // 7 | // We don't use the `.opacity()` mixin here since it causes a bug with text 8 | // fields in IE7-8. Source: https://github.com/twbs/bootstrap/pull/3552. 9 | 10 | .fade { 11 | opacity: 0; 12 | .transition(opacity .15s linear); 13 | &.in { 14 | opacity: 1; 15 | } 16 | } 17 | 18 | .collapse { 19 | display: none; 20 | visibility: hidden; 21 | 22 | &.in { display: block; visibility: visible; } 23 | tr&.in { display: table-row; } 24 | tbody&.in { display: table-row-group; } 25 | } 26 | 27 | .collapsing { 28 | position: relative; 29 | height: 0; 30 | overflow: hidden; 31 | .transition-property(~"height, visibility"); 32 | .transition-duration(.35s); 33 | .transition-timing-function(ease); 34 | } 35 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/bootstrap/bootstrap-3.3.1/grid.less: -------------------------------------------------------------------------------- 1 | // 2 | // Grid system 3 | // -------------------------------------------------- 4 | 5 | 6 | // Container widths 7 | // 8 | // Set the container width, and override it for fixed navbars in media queries. 9 | 10 | .container { 11 | .container-fixed(); 12 | 13 | @media (min-width: @screen-sm-min) { 14 | width: @container-sm; 15 | } 16 | @media (min-width: @screen-md-min) { 17 | width: @container-md; 18 | } 19 | @media (min-width: @screen-lg-min) { 20 | width: @container-lg; 21 | } 22 | } 23 | 24 | 25 | // Fluid container 26 | // 27 | // Utilizes the mixin meant for fixed width containers, but without any defined 28 | // width for fluid, full width layouts. 29 | 30 | .container-fluid { 31 | .container-fixed(); 32 | } 33 | 34 | 35 | // Row 36 | // 37 | // Rows contain and clear the floats of your columns. 38 | 39 | .row { 40 | .make-row(); 41 | } 42 | 43 | 44 | // Columns 45 | // 46 | // Common styles for small and large grid columns 47 | 48 | .make-grid-columns(); 49 | 50 | 51 | // Extra small grid 52 | // 53 | // Columns, offsets, pushes, and pulls for extra small devices like 54 | // smartphones. 55 | 56 | .make-grid(xs); 57 | 58 | 59 | // Small grid 60 | // 61 | // Columns, offsets, pushes, and pulls for the small device range, from phones 62 | // to tablets. 63 | 64 | @media (min-width: @screen-sm-min) { 65 | .make-grid(sm); 66 | } 67 | 68 | 69 | // Medium grid 70 | // 71 | // Columns, offsets, pushes, and pulls for the desktop device range. 72 | 73 | @media (min-width: @screen-md-min) { 74 | .make-grid(md); 75 | } 76 | 77 | 78 | // Large grid 79 | // 80 | // Columns, offsets, pushes, and pulls for the large desktop device range. 81 | 82 | @media (min-width: @screen-lg-min) { 83 | .make-grid(lg); 84 | } 85 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/bootstrap/bootstrap-3.3.1/jumbotron.less: -------------------------------------------------------------------------------- 1 | // 2 | // Jumbotron 3 | // -------------------------------------------------- 4 | 5 | 6 | .jumbotron { 7 | padding: @jumbotron-padding (@jumbotron-padding / 2); 8 | margin-bottom: @jumbotron-padding; 9 | color: @jumbotron-color; 10 | background-color: @jumbotron-bg; 11 | 12 | h1, 13 | .h1 { 14 | color: @jumbotron-heading-color; 15 | } 16 | p { 17 | margin-bottom: (@jumbotron-padding / 2); 18 | font-size: @jumbotron-font-size; 19 | font-weight: 200; 20 | } 21 | 22 | > hr { 23 | border-top-color: darken(@jumbotron-bg, 10%); 24 | } 25 | 26 | .container &, 27 | .container-fluid & { 28 | border-radius: @border-radius-large; // Only round corners at higher resolutions if contained in a container 29 | } 30 | 31 | .container { 32 | max-width: 100%; 33 | } 34 | 35 | @media screen and (min-width: @screen-sm-min) { 36 | padding: (@jumbotron-padding * 1.6) 0; 37 | 38 | .container &, 39 | .container-fluid & { 40 | padding-left: (@jumbotron-padding * 2); 41 | padding-right: (@jumbotron-padding * 2); 42 | } 43 | 44 | h1, 45 | .h1 { 46 | font-size: (@font-size-base * 4.5); 47 | } 48 | } 49 | } 50 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/bootstrap/bootstrap-3.3.1/labels.less: -------------------------------------------------------------------------------- 1 | // 2 | // Labels 3 | // -------------------------------------------------- 4 | 5 | .label { 6 | display: inline; 7 | padding: .2em .6em .3em; 8 | font-size: 75%; 9 | font-weight: bold; 10 | line-height: 1; 11 | color: @label-color; 12 | text-align: center; 13 | white-space: nowrap; 14 | vertical-align: baseline; 15 | border-radius: .25em; 16 | 17 | // Add hover effects, but only for links 18 | a& { 19 | &:hover, 20 | &:focus { 21 | color: @label-link-hover-color; 22 | text-decoration: none; 23 | cursor: pointer; 24 | } 25 | } 26 | 27 | // Empty labels collapse automatically (not available in IE8) 28 | &:empty { 29 | display: none; 30 | } 31 | 32 | // Quick fix for labels in buttons 33 | .btn & { 34 | position: relative; 35 | top: -1px; 36 | } 37 | } 38 | 39 | // Colors 40 | // Contextual variations (linked labels get darker on :hover) 41 | 42 | .label-default { 43 | .label-variant(@label-default-bg); 44 | } 45 | 46 | .label-primary { 47 | .label-variant(@label-primary-bg); 48 | } 49 | 50 | .label-success { 51 | .label-variant(@label-success-bg); 52 | } 53 | 54 | .label-info { 55 | .label-variant(@label-info-bg); 56 | } 57 | 58 | .label-warning { 59 | .label-variant(@label-warning-bg); 60 | } 61 | 62 | .label-danger { 63 | .label-variant(@label-danger-bg); 64 | } 65 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/bootstrap/bootstrap-3.3.1/media.less: -------------------------------------------------------------------------------- 1 | .media { 2 | // Proper spacing between instances of .media 3 | margin-top: 15px; 4 | 5 | &:first-child { 6 | margin-top: 0; 7 | } 8 | } 9 | 10 | .media-right, 11 | .media > .pull-right { 12 | padding-left: 10px; 13 | } 14 | 15 | .media-left, 16 | .media > .pull-left { 17 | padding-right: 10px; 18 | } 19 | 20 | .media-left, 21 | .media-right, 22 | .media-body { 23 | display: table-cell; 24 | vertical-align: top; 25 | } 26 | 27 | .media-middle { 28 | vertical-align: middle; 29 | } 30 | 31 | .media-bottom { 32 | vertical-align: bottom; 33 | } 34 | 35 | // Reset margins on headings for tighter default spacing 36 | .media-heading { 37 | margin-top: 0; 38 | margin-bottom: 5px; 39 | } 40 | 41 | // Media list variation 42 | // 43 | // Undo default ul/ol styles 44 | .media-list { 45 | padding-left: 0; 46 | list-style: none; 47 | } 48 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/bootstrap/bootstrap-3.3.1/mixins.less: -------------------------------------------------------------------------------- 1 | // Mixins 2 | // -------------------------------------------------- 3 | 4 | // Utilities 5 | @import "mixins/hide-text.less"; 6 | @import "mixins/opacity.less"; 7 | @import "mixins/image.less"; 8 | @import "mixins/labels.less"; 9 | @import "mixins/reset-filter.less"; 10 | @import "mixins/resize.less"; 11 | @import "mixins/responsive-visibility.less"; 12 | @import "mixins/size.less"; 13 | @import "mixins/tab-focus.less"; 14 | @import "mixins/text-emphasis.less"; 15 | @import "mixins/text-overflow.less"; 16 | @import "mixins/vendor-prefixes.less"; 17 | 18 | // Components 19 | @import "mixins/alerts.less"; 20 | @import "mixins/buttons.less"; 21 | @import "mixins/panels.less"; 22 | @import "mixins/pagination.less"; 23 | @import "mixins/list-group.less"; 24 | @import "mixins/nav-divider.less"; 25 | @import "mixins/forms.less"; 26 | @import "mixins/progress-bar.less"; 27 | @import "mixins/table-row.less"; 28 | 29 | // Skins 30 | @import "mixins/background-variant.less"; 31 | @import "mixins/border-radius.less"; 32 | @import "mixins/gradients.less"; 33 | 34 | // Layout 35 | @import "mixins/clearfix.less"; 36 | @import "mixins/center-block.less"; 37 | @import "mixins/nav-vertical-align.less"; 38 | @import "mixins/grid-framework.less"; 39 | @import "mixins/grid.less"; 40 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/bootstrap/bootstrap-3.3.1/mixins/alerts.less: -------------------------------------------------------------------------------- 1 | // Alerts 2 | 3 | .alert-variant(@background; @border; @text-color) { 4 | background-color: @background; 5 | border-color: @border; 6 | color: @text-color; 7 | 8 | hr { 9 | border-top-color: darken(@border, 5%); 10 | } 11 | .alert-link { 12 | color: darken(@text-color, 10%); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/bootstrap/bootstrap-3.3.1/mixins/background-variant.less: -------------------------------------------------------------------------------- 1 | // Contextual backgrounds 2 | 3 | .bg-variant(@color) { 4 | background-color: @color; 5 | a&:hover { 6 | background-color: darken(@color, 10%); 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/bootstrap/bootstrap-3.3.1/mixins/border-radius.less: -------------------------------------------------------------------------------- 1 | // Single side border-radius 2 | 3 | .border-top-radius(@radius) { 4 | border-top-right-radius: @radius; 5 | border-top-left-radius: @radius; 6 | } 7 | .border-right-radius(@radius) { 8 | border-bottom-right-radius: @radius; 9 | border-top-right-radius: @radius; 10 | } 11 | .border-bottom-radius(@radius) { 12 | border-bottom-right-radius: @radius; 13 | border-bottom-left-radius: @radius; 14 | } 15 | .border-left-radius(@radius) { 16 | border-bottom-left-radius: @radius; 17 | border-top-left-radius: @radius; 18 | } 19 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/bootstrap/bootstrap-3.3.1/mixins/buttons.less: -------------------------------------------------------------------------------- 1 | // Button variants 2 | // 3 | // Easily pump out default styles, as well as :hover, :focus, :active, 4 | // and disabled options for all buttons 5 | 6 | .button-variant(@color; @background; @border) { 7 | color: @color; 8 | background-color: @background; 9 | border-color: @border; 10 | 11 | &:hover, 12 | &:focus, 13 | &.focus, 14 | &:active, 15 | &.active, 16 | .open > .dropdown-toggle& { 17 | color: @color; 18 | background-color: darken(@background, 10%); 19 | border-color: darken(@border, 12%); 20 | } 21 | &:active, 22 | &.active, 23 | .open > .dropdown-toggle& { 24 | background-image: none; 25 | } 26 | &.disabled, 27 | &[disabled], 28 | fieldset[disabled] & { 29 | &, 30 | &:hover, 31 | &:focus, 32 | &.focus, 33 | &:active, 34 | &.active { 35 | background-color: @background; 36 | border-color: @border; 37 | } 38 | } 39 | 40 | .badge { 41 | color: @background; 42 | background-color: @color; 43 | } 44 | } 45 | 46 | // Button sizes 47 | .button-size(@padding-vertical; @padding-horizontal; @font-size; @line-height; @border-radius) { 48 | padding: @padding-vertical @padding-horizontal; 49 | font-size: @font-size; 50 | line-height: @line-height; 51 | border-radius: @border-radius; 52 | } 53 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/bootstrap/bootstrap-3.3.1/mixins/center-block.less: -------------------------------------------------------------------------------- 1 | // Center-align a block level element 2 | 3 | .center-block() { 4 | display: block; 5 | margin-left: auto; 6 | margin-right: auto; 7 | } 8 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/bootstrap/bootstrap-3.3.1/mixins/clearfix.less: -------------------------------------------------------------------------------- 1 | // Clearfix 2 | // 3 | // For modern browsers 4 | // 1. The space content is one way to avoid an Opera bug when the 5 | // contenteditable attribute is included anywhere else in the document. 6 | // Otherwise it causes space to appear at the top and bottom of elements 7 | // that are clearfixed. 8 | // 2. The use of `table` rather than `block` is only necessary if using 9 | // `:before` to contain the top-margins of child elements. 10 | // 11 | // Source: http://nicolasgallagher.com/micro-clearfix-hack/ 12 | 13 | .clearfix() { 14 | &:before, 15 | &:after { 16 | content: " "; // 1 17 | display: table; // 2 18 | } 19 | &:after { 20 | clear: both; 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/bootstrap/bootstrap-3.3.1/mixins/hide-text.less: -------------------------------------------------------------------------------- 1 | // CSS image replacement 2 | // 3 | // Heads up! v3 launched with with only `.hide-text()`, but per our pattern for 4 | // mixins being reused as classes with the same name, this doesn't hold up. As 5 | // of v3.0.1 we have added `.text-hide()` and deprecated `.hide-text()`. 6 | // 7 | // Source: https://github.com/h5bp/html5-boilerplate/commit/aa0396eae757 8 | 9 | // Deprecated as of v3.0.1 (will be removed in v4) 10 | .hide-text() { 11 | font: ~"0/0" a; 12 | color: transparent; 13 | text-shadow: none; 14 | background-color: transparent; 15 | border: 0; 16 | } 17 | 18 | // New mixin to use as of v3.0.1 19 | .text-hide() { 20 | .hide-text(); 21 | } 22 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/bootstrap/bootstrap-3.3.1/mixins/image.less: -------------------------------------------------------------------------------- 1 | // Image Mixins 2 | // - Responsive image 3 | // - Retina image 4 | 5 | 6 | // Responsive image 7 | // 8 | // Keep images from scaling beyond the width of their parents. 9 | .img-responsive(@display: block) { 10 | display: @display; 11 | max-width: 100%; // Part 1: Set a maximum relative to the parent 12 | height: auto; // Part 2: Scale the height according to the width, otherwise you get stretching 13 | } 14 | 15 | 16 | // Retina image 17 | // 18 | // Short retina mixin for setting background-image and -size. Note that the 19 | // spelling of `min--moz-device-pixel-ratio` is intentional. 20 | .img-retina(@file-1x; @file-2x; @width-1x; @height-1x) { 21 | background-image: url("@{file-1x}"); 22 | 23 | @media 24 | only screen and (-webkit-min-device-pixel-ratio: 2), 25 | only screen and ( min--moz-device-pixel-ratio: 2), 26 | only screen and ( -o-min-device-pixel-ratio: 2/1), 27 | only screen and ( min-device-pixel-ratio: 2), 28 | only screen and ( min-resolution: 192dpi), 29 | only screen and ( min-resolution: 2dppx) { 30 | background-image: url("@{file-2x}"); 31 | background-size: @width-1x @height-1x; 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/bootstrap/bootstrap-3.3.1/mixins/labels.less: -------------------------------------------------------------------------------- 1 | // Labels 2 | 3 | .label-variant(@color) { 4 | background-color: @color; 5 | 6 | &[href] { 7 | &:hover, 8 | &:focus { 9 | background-color: darken(@color, 10%); 10 | } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/bootstrap/bootstrap-3.3.1/mixins/list-group.less: -------------------------------------------------------------------------------- 1 | // List Groups 2 | 3 | .list-group-item-variant(@state; @background; @color) { 4 | .list-group-item-@{state} { 5 | color: @color; 6 | background-color: @background; 7 | 8 | a& { 9 | color: @color; 10 | 11 | .list-group-item-heading { 12 | color: inherit; 13 | } 14 | 15 | &:hover, 16 | &:focus { 17 | color: @color; 18 | background-color: darken(@background, 5%); 19 | } 20 | &.active, 21 | &.active:hover, 22 | &.active:focus { 23 | color: #fff; 24 | background-color: @color; 25 | border-color: @color; 26 | } 27 | } 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/bootstrap/bootstrap-3.3.1/mixins/nav-divider.less: -------------------------------------------------------------------------------- 1 | // Horizontal dividers 2 | // 3 | // Dividers (basically an hr) within dropdowns and nav lists 4 | 5 | .nav-divider(@color: #e5e5e5) { 6 | height: 1px; 7 | margin: ((@line-height-computed / 2) - 1) 0; 8 | overflow: hidden; 9 | background-color: @color; 10 | } 11 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/bootstrap/bootstrap-3.3.1/mixins/nav-vertical-align.less: -------------------------------------------------------------------------------- 1 | // Navbar vertical align 2 | // 3 | // Vertically center elements in the navbar. 4 | // Example: an element has a height of 30px, so write out `.navbar-vertical-align(30px);` to calculate the appropriate top margin. 5 | 6 | .navbar-vertical-align(@element-height) { 7 | margin-top: ((@navbar-height - @element-height) / 2); 8 | margin-bottom: ((@navbar-height - @element-height) / 2); 9 | } 10 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/bootstrap/bootstrap-3.3.1/mixins/opacity.less: -------------------------------------------------------------------------------- 1 | // Opacity 2 | 3 | .opacity(@opacity) { 4 | opacity: @opacity; 5 | // IE8 filter 6 | @opacity-ie: (@opacity * 100); 7 | filter: ~"alpha(opacity=@{opacity-ie})"; 8 | } 9 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/bootstrap/bootstrap-3.3.1/mixins/pagination.less: -------------------------------------------------------------------------------- 1 | // Pagination 2 | 3 | .pagination-size(@padding-vertical; @padding-horizontal; @font-size; @border-radius) { 4 | > li { 5 | > a, 6 | > span { 7 | padding: @padding-vertical @padding-horizontal; 8 | font-size: @font-size; 9 | } 10 | &:first-child { 11 | > a, 12 | > span { 13 | .border-left-radius(@border-radius); 14 | } 15 | } 16 | &:last-child { 17 | > a, 18 | > span { 19 | .border-right-radius(@border-radius); 20 | } 21 | } 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/bootstrap/bootstrap-3.3.1/mixins/panels.less: -------------------------------------------------------------------------------- 1 | // Panels 2 | 3 | .panel-variant(@border; @heading-text-color; @heading-bg-color; @heading-border) { 4 | border-color: @border; 5 | 6 | & > .panel-heading { 7 | color: @heading-text-color; 8 | background-color: @heading-bg-color; 9 | border-color: @heading-border; 10 | 11 | + .panel-collapse > .panel-body { 12 | border-top-color: @border; 13 | } 14 | .badge { 15 | color: @heading-bg-color; 16 | background-color: @heading-text-color; 17 | } 18 | } 19 | & > .panel-footer { 20 | + .panel-collapse > .panel-body { 21 | border-bottom-color: @border; 22 | } 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/bootstrap/bootstrap-3.3.1/mixins/progress-bar.less: -------------------------------------------------------------------------------- 1 | // Progress bars 2 | 3 | .progress-bar-variant(@color) { 4 | background-color: @color; 5 | 6 | // Deprecated parent class requirement as of v3.2.0 7 | .progress-striped & { 8 | #gradient > .striped(); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/bootstrap/bootstrap-3.3.1/mixins/reset-filter.less: -------------------------------------------------------------------------------- 1 | // Reset filters for IE 2 | // 3 | // When you need to remove a gradient background, do not forget to use this to reset 4 | // the IE filter for IE9 and below. 5 | 6 | .reset-filter() { 7 | filter: e(%("progid:DXImageTransform.Microsoft.gradient(enabled = false)")); 8 | } 9 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/bootstrap/bootstrap-3.3.1/mixins/resize.less: -------------------------------------------------------------------------------- 1 | // Resize anything 2 | 3 | .resizable(@direction) { 4 | resize: @direction; // Options: horizontal, vertical, both 5 | overflow: auto; // Per CSS3 UI, `resize` only applies when `overflow` isn't `visible` 6 | } 7 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/bootstrap/bootstrap-3.3.1/mixins/responsive-visibility.less: -------------------------------------------------------------------------------- 1 | // Responsive utilities 2 | 3 | // 4 | // More easily include all the states for responsive-utilities.less. 5 | .responsive-visibility() { 6 | display: block !important; 7 | table& { display: table; } 8 | tr& { display: table-row !important; } 9 | th&, 10 | td& { display: table-cell !important; } 11 | } 12 | 13 | .responsive-invisibility() { 14 | display: none !important; 15 | } 16 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/bootstrap/bootstrap-3.3.1/mixins/size.less: -------------------------------------------------------------------------------- 1 | // Sizing shortcuts 2 | 3 | .size(@width; @height) { 4 | width: @width; 5 | height: @height; 6 | } 7 | 8 | .square(@size) { 9 | .size(@size; @size); 10 | } 11 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/bootstrap/bootstrap-3.3.1/mixins/tab-focus.less: -------------------------------------------------------------------------------- 1 | // WebKit-style focus 2 | 3 | .tab-focus() { 4 | // Default 5 | outline: thin dotted; 6 | // WebKit 7 | outline: 5px auto -webkit-focus-ring-color; 8 | outline-offset: -2px; 9 | } 10 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/bootstrap/bootstrap-3.3.1/mixins/table-row.less: -------------------------------------------------------------------------------- 1 | // Tables 2 | 3 | .table-row-variant(@state; @background) { 4 | // Exact selectors below required to override `.table-striped` and prevent 5 | // inheritance to nested tables. 6 | .table > thead > tr, 7 | .table > tbody > tr, 8 | .table > tfoot > tr { 9 | > td.@{state}, 10 | > th.@{state}, 11 | &.@{state} > td, 12 | &.@{state} > th { 13 | background-color: @background; 14 | } 15 | } 16 | 17 | // Hover states for `.table-hover` 18 | // Note: this is not available for cells or rows within `thead` or `tfoot`. 19 | .table-hover > tbody > tr { 20 | > td.@{state}:hover, 21 | > th.@{state}:hover, 22 | &.@{state}:hover > td, 23 | &:hover > .@{state}, 24 | &.@{state}:hover > th { 25 | background-color: darken(@background, 5%); 26 | } 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/bootstrap/bootstrap-3.3.1/mixins/text-emphasis.less: -------------------------------------------------------------------------------- 1 | // Typography 2 | 3 | .text-emphasis-variant(@color) { 4 | color: @color; 5 | a&:hover { 6 | color: darken(@color, 10%); 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/bootstrap/bootstrap-3.3.1/mixins/text-overflow.less: -------------------------------------------------------------------------------- 1 | // Text overflow 2 | // Requires inline-block or block for proper styling 3 | 4 | .text-overflow() { 5 | overflow: hidden; 6 | text-overflow: ellipsis; 7 | white-space: nowrap; 8 | } 9 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/bootstrap/bootstrap-3.3.1/pager.less: -------------------------------------------------------------------------------- 1 | // 2 | // Pager pagination 3 | // -------------------------------------------------- 4 | 5 | 6 | .pager { 7 | padding-left: 0; 8 | margin: @line-height-computed 0; 9 | list-style: none; 10 | text-align: center; 11 | &:extend(.clearfix all); 12 | li { 13 | display: inline; 14 | > a, 15 | > span { 16 | display: inline-block; 17 | padding: 5px 14px; 18 | background-color: @pager-bg; 19 | border: 1px solid @pager-border; 20 | border-radius: @pager-border-radius; 21 | } 22 | 23 | > a:hover, 24 | > a:focus { 25 | text-decoration: none; 26 | background-color: @pager-hover-bg; 27 | } 28 | } 29 | 30 | .next { 31 | > a, 32 | > span { 33 | float: right; 34 | } 35 | } 36 | 37 | .previous { 38 | > a, 39 | > span { 40 | float: left; 41 | } 42 | } 43 | 44 | .disabled { 45 | > a, 46 | > a:hover, 47 | > a:focus, 48 | > span { 49 | color: @pager-disabled-color; 50 | background-color: @pager-bg; 51 | cursor: @cursor-disabled; 52 | } 53 | } 54 | } 55 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/bootstrap/bootstrap-3.3.1/progress-bars.less: -------------------------------------------------------------------------------- 1 | // 2 | // Progress bars 3 | // -------------------------------------------------- 4 | 5 | 6 | // Bar animations 7 | // ------------------------- 8 | 9 | // WebKit 10 | @-webkit-keyframes progress-bar-stripes { 11 | from { background-position: 40px 0; } 12 | to { background-position: 0 0; } 13 | } 14 | 15 | // Spec and IE10+ 16 | @keyframes progress-bar-stripes { 17 | from { background-position: 40px 0; } 18 | to { background-position: 0 0; } 19 | } 20 | 21 | 22 | // Bar itself 23 | // ------------------------- 24 | 25 | // Outer container 26 | .progress { 27 | overflow: hidden; 28 | height: @line-height-computed; 29 | margin-bottom: @line-height-computed; 30 | background-color: @progress-bg; 31 | border-radius: @progress-border-radius; 32 | .box-shadow(inset 0 1px 2px rgba(0,0,0,.1)); 33 | } 34 | 35 | // Bar of progress 36 | .progress-bar { 37 | float: left; 38 | width: 0%; 39 | height: 100%; 40 | font-size: @font-size-small; 41 | line-height: @line-height-computed; 42 | color: @progress-bar-color; 43 | text-align: center; 44 | background-color: @progress-bar-bg; 45 | .box-shadow(inset 0 -1px 0 rgba(0,0,0,.15)); 46 | .transition(width .6s ease); 47 | } 48 | 49 | // Striped bars 50 | // 51 | // `.progress-striped .progress-bar` is deprecated as of v3.2.0 in favor of the 52 | // `.progress-bar-striped` class, which you just add to an existing 53 | // `.progress-bar`. 54 | .progress-striped .progress-bar, 55 | .progress-bar-striped { 56 | #gradient > .striped(); 57 | background-size: 40px 40px; 58 | } 59 | 60 | // Call animation for the active one 61 | // 62 | // `.progress.active .progress-bar` is deprecated as of v3.2.0 in favor of the 63 | // `.progress-bar.active` approach. 64 | .progress.active .progress-bar, 65 | .progress-bar.active { 66 | .animation(progress-bar-stripes 2s linear infinite); 67 | } 68 | 69 | 70 | // Variations 71 | // ------------------------- 72 | 73 | .progress-bar-success { 74 | .progress-bar-variant(@progress-bar-success-bg); 75 | } 76 | 77 | .progress-bar-info { 78 | .progress-bar-variant(@progress-bar-info-bg); 79 | } 80 | 81 | .progress-bar-warning { 82 | .progress-bar-variant(@progress-bar-warning-bg); 83 | } 84 | 85 | .progress-bar-danger { 86 | .progress-bar-variant(@progress-bar-danger-bg); 87 | } 88 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/bootstrap/bootstrap-3.3.1/responsive-embed.less: -------------------------------------------------------------------------------- 1 | // Embeds responsive 2 | // 3 | // Credit: Nicolas Gallagher and SUIT CSS. 4 | 5 | .embed-responsive { 6 | position: relative; 7 | display: block; 8 | height: 0; 9 | padding: 0; 10 | overflow: hidden; 11 | 12 | .embed-responsive-item, 13 | iframe, 14 | embed, 15 | object, 16 | video { 17 | position: absolute; 18 | top: 0; 19 | left: 0; 20 | bottom: 0; 21 | height: 100%; 22 | width: 100%; 23 | border: 0; 24 | } 25 | 26 | // Modifier class for 16:9 aspect ratio 27 | &.embed-responsive-16by9 { 28 | padding-bottom: 56.25%; 29 | } 30 | 31 | // Modifier class for 4:3 aspect ratio 32 | &.embed-responsive-4by3 { 33 | padding-bottom: 75%; 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/bootstrap/bootstrap-3.3.1/thumbnails.less: -------------------------------------------------------------------------------- 1 | // 2 | // Thumbnails 3 | // -------------------------------------------------- 4 | 5 | 6 | // Mixin and adjust the regular image class 7 | .thumbnail { 8 | display: block; 9 | padding: @thumbnail-padding; 10 | margin-bottom: @line-height-computed; 11 | line-height: @line-height-base; 12 | background-color: @thumbnail-bg; 13 | border: 1px solid @thumbnail-border; 14 | border-radius: @thumbnail-border-radius; 15 | .transition(border .2s ease-in-out); 16 | 17 | > img, 18 | a > img { 19 | &:extend(.img-responsive); 20 | margin-left: auto; 21 | margin-right: auto; 22 | } 23 | 24 | // Add a hover state for linked versions only 25 | a&:hover, 26 | a&:focus, 27 | a&.active { 28 | border-color: @link-color; 29 | } 30 | 31 | // Image captions 32 | .caption { 33 | padding: @thumbnail-caption-padding; 34 | color: @thumbnail-caption-color; 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/bootstrap/bootstrap-3.3.1/utilities.less: -------------------------------------------------------------------------------- 1 | // 2 | // Utility classes 3 | // -------------------------------------------------- 4 | 5 | 6 | // Floats 7 | // ------------------------- 8 | 9 | .clearfix { 10 | .clearfix(); 11 | } 12 | .center-block { 13 | .center-block(); 14 | } 15 | .pull-right { 16 | float: right !important; 17 | } 18 | .pull-left { 19 | float: left !important; 20 | } 21 | 22 | 23 | // Toggling content 24 | // ------------------------- 25 | 26 | // Note: Deprecated .hide in favor of .hidden or .sr-only (as appropriate) in v3.0.1 27 | .hide { 28 | display: none !important; 29 | } 30 | .show { 31 | display: block !important; 32 | } 33 | .invisible { 34 | visibility: hidden; 35 | } 36 | .text-hide { 37 | .text-hide(); 38 | } 39 | 40 | 41 | // Hide from screenreaders and browsers 42 | // 43 | // Credit: HTML5 Boilerplate 44 | 45 | .hidden { 46 | display: none !important; 47 | visibility: hidden !important; 48 | } 49 | 50 | 51 | // For Affix plugin 52 | // ------------------------- 53 | 54 | .affix { 55 | position: fixed; 56 | } 57 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/bootstrap/bootstrap-3.3.1/wells.less: -------------------------------------------------------------------------------- 1 | // 2 | // Wells 3 | // -------------------------------------------------- 4 | 5 | 6 | // Base class 7 | .well { 8 | min-height: 20px; 9 | padding: 19px; 10 | margin-bottom: 20px; 11 | background-color: @well-bg; 12 | border: 1px solid @well-border; 13 | border-radius: @border-radius-base; 14 | .box-shadow(inset 0 1px 1px rgba(0,0,0,.05)); 15 | blockquote { 16 | border-color: #ddd; 17 | border-color: rgba(0,0,0,.15); 18 | } 19 | } 20 | 21 | // Sizes 22 | .well-lg { 23 | padding: 24px; 24 | border-radius: @border-radius-large; 25 | } 26 | .well-sm { 27 | padding: 9px; 28 | border-radius: @border-radius-small; 29 | } 30 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/bootstrap/corporate/corporatedesign_basic.less: -------------------------------------------------------------------------------- 1 | // Color Scheme 2 | @base-color: #333333; 3 | @primary-color: #428bca; 4 | @success-color: #5cb85c; 5 | @warning-color: #f0ad4e; 6 | @danger-color: #d9534f; 7 | @selection-color: #fdf5c1; 8 | 9 | // Font 10 | @font-color: #111111; 11 | @font-size: 12px; 12 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/bootstrap/corporate/template_variables.less: -------------------------------------------------------------------------------- 1 | /********************************************************************** 2 | Local ScreenSize and Color Defintions 3 | *********************************************************************/ 4 | 5 | @display-mobile: ~"(max-width: " @screen-xs-max ~")"; 6 | @display-not-mobile: ~"(min-width: " @screen-xs-max ~")"; 7 | @display-tablet: ~"(min-width: " @screen-xs-max ~") and (max-width: " @screen-sm-max ~")"; 8 | @display-desktop: ~"(min-width: " @screen-sm-max ~") and (max-width: " @screen-md-max ~")"; 9 | @display-desktop-full-page: ~"(min-width: " @screen-lg-min ~")"; 10 | 11 | @panel-default-heading-bg: @base-lightest; 12 | @panel-default-border: @base-color; 13 | 14 | @popover-title-bg: @base-lightest; 15 | @popover-bg: @base-lightest; 16 | @popover-arrow-color: @base-lightest; 17 | 18 | @footer-color: lighten(@body-bg, 5%); 19 | 20 | /** 21 | * Color Scheme 22 | **/ 23 | @base-color: #D2D5D8; 24 | @primary-color: #516492; 25 | @success-color: #00B700; 26 | @warning-color: #f0ad4e; 27 | @danger-color: #d9534f; 28 | @selection-color: #D9E6FB; 29 | 30 | // Font 31 | @font-color: #111111; 32 | @font-size: 13px; 33 | @headings-color: desaturate( lighten( @text-color, 30% ), 20% ); 34 | 35 | // 36 | @selection-color-hover: #eff6ff; 37 | @table-bg-hover: @selection-color-hover; 38 | @base-border: hsl(hue(@base-color),saturation(@base-color)*0.8,(100-lightness(@base-color))*0.3+lightness(@base-color)); -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/custom/colorize-image.less: -------------------------------------------------------------------------------- 1 | .image { 2 | a: colorize-image( "../less_org_tests/data/data-uri-fail.png", red, green); 3 | b: colorize-image( "disconnect.png", lightblue, darkblue); 4 | c: colorize-image( "eye-white.png", lightgray, darkgray); 5 | } -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/custom/disconnect.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/i-net-software/jlessc/78cbb93bec45d7992b34565f8ff6a5265b7fc49e/test/com/inet/lib/less/samples/custom/disconnect.png -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/custom/eye-white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/i-net-software/jlessc/78cbb93bec45d7992b34565f8ff6a5265b7fc49e/test/com/inet/lib/less/samples/custom/eye-white.png -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/general/anchorURL.css: -------------------------------------------------------------------------------- 1 | .blur { 2 | filter: url(#wherearemyglasses); 3 | } 4 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/general/anchorURL.less: -------------------------------------------------------------------------------- 1 | .blur { filter: url(#wherearemyglasses); } 2 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/general/colors.css_x: -------------------------------------------------------------------------------- 1 | colors{a:#f0f8ff;b:#faebd7;c:#0ff;d:#7fffd4;e:#f0ffff;f:#f5f5dc;g:#ffe4c4;h:#000;i:#ffebcd;j:#00f;k:#8a2be2;l:#a52a2a;m:#deb887;n:#5f9ea0;o:#7fff00;p:#d2691e;q:#ff7f50;r:#6495ed;s:#fff8dc;t:#dc143c;v:#0ff;w:#00008b;x:#008b8b;y:#b8860b;z:#a9a9a9;a:#a9a9a9;b:#006400;c:#bdb76b;d:#8b008b;e:#556b2f;f:#ff8c00;g:#9932cc;h:#8b0000;i:#e9967a;j:#8fbc8f;k:#483d8b;l:#2f4f4f;m:#2f4f4f;n:#00ced1;o:#9400d3;p:#ff1493;q:#00bfff;r:#696969;s:#696969;t:#1e90ff;u:#b22222;v:#fffaf0;w:#228b22;x:#f0f;y:#dcdcdc;z:#f8f8ff;a:#ffd700;b:#daa520;c:#808080;d:#808080;e:#008000;f:#adff2f;g:#f0fff0;h:#ff69b4;i:#cd5c5c;j:#4b0082;k:#fffff0;l:#f0e68c;m:#e6e6fa;n:#fff0f5;o:#7cfc00;p:#fffacd;q:#add8e6;r:#f08080;s:#e0ffff;t:#fafad2;u:#d3d3d3;v:#d3d3d3;w:#90ee90;x:#ffb6c1;y:#ffa07a;z:#20b2aa;a:#87cefa;b:#789;c:#789;d:#b0c4de;e:#ffffe0;f:#0f0;g:#32cd32;h:#faf0e6;i:#f0f;j:#800000;k:#66cdaa;l:#0000cd;m:#ba55d3;n:#9370d8;o:#3cb371;p:#7b68ee;q:#00fa9a;r:#48d1cc;s:#c71585;t:#191970;u:#f5fffa;v:#ffe4e1;w:#ffe4b5;x:#ffdead;y:#000080;z:#fdf5e6;a:#808000;b:#6b8e23;c:#ffa500;d:#ff4500;e:#da70d6;f:#eee8aa;g:#98fb98;h:#afeeee;i:#d87093;j:#ffefd5;k:#ffdab9;l:#cd853f;m:#ffc0cb;n:#dda0dd;o:#b0e0e6;p:#800080;q:#f00;r:#bc8f8f;s:#4169e1;t:#8b4513;u:#fa8072;v:#f4a460;w:#2e8b57;x:#fff5ee;y:#a0522d;z:#c0c0c0;a:#87ceeb;b:#6a5acd;c:#708090;d:#708090;e:#fffafa;f:#00ff7f;g:#4682b4;h:#d2b48c;i:#008080;j:#d8bfd8;k:#ff6347;l:#40e0d0;m:#ee82ee;n:#f5deb3;o:#fff;p:#f5f5f5;q:#ff0;r:#9acd32} -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/general/colors2.css: -------------------------------------------------------------------------------- 1 | colors { 2 | a: #000A; 3 | b: #001122AA; 4 | c: #NoColor; 5 | } 6 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/general/colors2.less: -------------------------------------------------------------------------------- 1 | colors { 2 | a: #000A; 3 | b: #001122AA; 4 | c: #NoColor; 5 | } 6 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/general/css_guards.css: -------------------------------------------------------------------------------- 1 | .menubtn-small1 span { 2 | abc: 1; 3 | } 4 | .menubtn-small2 span { 5 | abc: 2; 6 | } 7 | .menubtn-small3 span { 8 | abc: 3; 9 | } 10 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/general/css_guards.less: -------------------------------------------------------------------------------- 1 | .menubtn-small1 span when (@font-size > 15) { 2 | abc: 1; 3 | } 4 | .menubtn-small2 span when(@font-size > 15) { 5 | abc: 2; 6 | } 7 | .menubtn-small3 span when(@font-size < 15), not(@font-size < 15) { 8 | abc: 3; 9 | } 10 | 11 | @font-size: 16; 12 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/general/doubleRule.css: -------------------------------------------------------------------------------- 1 | body { 2 | color: #fff; 3 | background: #fff; 4 | } 5 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/general/doubleRule.css_x: -------------------------------------------------------------------------------- 1 | body{color:#fff;background:#fff} -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/general/doubleRule.less: -------------------------------------------------------------------------------- 1 | body { color: #fff; } 2 | body { background: #fff; } 3 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/general/doubleRule2.css: -------------------------------------------------------------------------------- 1 | @supports selector { 2 | surrounding .parentclass { 3 | background: red; 4 | } 5 | surrounding .parentclass .element { 6 | display: flex; 7 | } 8 | surrounding .parentclass .another { 9 | border-color: green; 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/general/doubleRule2.css_x: -------------------------------------------------------------------------------- 1 | @supports selector{surrounding .parentclass{background:#f00}surrounding .parentclass .element{display:flex}surrounding .parentclass .another{border-color:#008000}} -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/general/doubleRule2.less: -------------------------------------------------------------------------------- 1 | surrounding { 2 | @supports selector { 3 | .parentclass { 4 | background: red; 5 | 6 | .element { 7 | display: flex; 8 | } 9 | 10 | .another { 11 | border-color: green; 12 | } 13 | } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/general/escaped-arguments.css: -------------------------------------------------------------------------------- 1 | .xyz { 2 | box-shadow: #999 2px 2px 10px 0px; 3 | } 4 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/general/escaped-arguments.less: -------------------------------------------------------------------------------- 1 | .box-shadow(...) { 2 | @process: ~"@{arguments}"; 3 | box-shadow: @process; 4 | } 5 | 6 | .xyz { 7 | .box-shadow(#999 2px 2px 10px 0px); 8 | } -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/general/extend-special.css: -------------------------------------------------------------------------------- 1 | @media only screen and (max-width: 768px) { 2 | .main > first > second:before { 3 | foo: 3; 4 | } 5 | } 6 | .foo > bar, 7 | foo > bar { 8 | color: red; 9 | } 10 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/general/extend-special.less: -------------------------------------------------------------------------------- 1 | .mixin() { 2 | &:before { 3 | &:extend(.foo > bar); 4 | foo: 3; 5 | } 6 | } 7 | .main { 8 | @media only screen and (max-width: 768px) { 9 | > first { 10 | > second { 11 | .mixin(); 12 | } 13 | } 14 | } 15 | } 16 | .foo { 17 | > bar { 18 | color: red; 19 | } 20 | } 21 | foo:extend(.foo all) {} 22 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/general/guard.css: -------------------------------------------------------------------------------- 1 | .greater { 2 | gt: 5; 3 | ge: 5; 4 | eg: 5; 5 | gt: 'z'; 6 | ge: 'z'; 7 | eg: 'z'; 8 | } 9 | .equals { 10 | ge: 0; 11 | eg: 0; 12 | e: 0; 13 | le: 0; 14 | el: 0; 15 | ge: 'b'; 16 | eg: 'b'; 17 | e: 'b'; 18 | le: 'b'; 19 | el: 'b'; 20 | ge: black; 21 | eg: black; 22 | e: black; 23 | le: black; 24 | el: black; 25 | } 26 | .lesser { 27 | le: -4; 28 | el: -4; 29 | lt: -4; 30 | le: 'a'; 31 | el: 'a'; 32 | lt: 'a'; 33 | } 34 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/general/guard.less: -------------------------------------------------------------------------------- 1 | .mix (@a,@b) when (@a > @b) { 2 | gt: @a; 3 | } 4 | .mix (@a,@b) when (@a >= @b) { 5 | ge: @a; 6 | } 7 | .mix (@a,@b) when (@a => @b) { 8 | eg: @a; 9 | } 10 | .mix (@a,@b) when (@a = @b) { 11 | e: @a; 12 | } 13 | .mix (@a,@b) when (@a <= @b) { 14 | le: @a; 15 | } 16 | .mix (@a,@b) when (@a =< @b) { 17 | el: @a; 18 | } 19 | .mix (@a,@b) when (@a < @b) { 20 | lt: @a; 21 | } 22 | .greater { 23 | .mix(5,0); 24 | .mix('z','a'); 25 | .mix(#fff,#000); 26 | } 27 | .equals { 28 | .mix(0,0); 29 | .mix('b','b'); 30 | .mix(black,#000); 31 | } 32 | .lesser { 33 | .mix(-4,0); 34 | .mix('a','b'); 35 | .mix(#000,#fff); 36 | } 37 | 38 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/general/import.css: -------------------------------------------------------------------------------- 1 | .values { 2 | a: "a"; 3 | b: "b"; 4 | } 5 | .values .slash { 6 | font: 1.5/2; 7 | a: 1.5; 8 | b: 1.5; 9 | e: a/b; 10 | f: a/b; 11 | g: a/b; 12 | h: a/b; 13 | font: 3/2; 14 | } 15 | .values .slash2 { 16 | background: url("img.jpg") center/100px; 17 | background: url(abc/img.jpg); 18 | } 19 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/general/import.less: -------------------------------------------------------------------------------- 1 | .values { 2 | a: "a"; 3 | @import "slash.less"; 4 | b: "b"; 5 | } -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/general/import/importReferences.css: -------------------------------------------------------------------------------- 1 | .a.b.navbar, 2 | .navbar.c { 3 | color: orange; 4 | } 5 | .navbar:hover { 6 | color: green; 7 | } 8 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/general/import/importReferences.less: -------------------------------------------------------------------------------- 1 | @import (reference) "../../less_org_doc/extends/all.less"; 2 | 3 | .navbar:extend(.test all) {} 4 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/general/import/importReferences2.css: -------------------------------------------------------------------------------- 1 | .test { 2 | color: orange; 3 | } 4 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/general/import/importReferences2.less: -------------------------------------------------------------------------------- 1 | @import (reference) "../../less_org_doc/extends/all.less"; 2 | 3 | .test { 4 | color: @color; 5 | } 6 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/general/import/media.less: -------------------------------------------------------------------------------- 1 | @media screen { 2 | .media_screen { 3 | @a: "screen"; 4 | content: @a; 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/general/import/media_imports.css: -------------------------------------------------------------------------------- 1 | @media screen { 2 | .import_scope .media_screen { 3 | content: "screen"; 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/general/import/media_imports.less: -------------------------------------------------------------------------------- 1 | .import_scope { 2 | @import "media.less"; 3 | } 4 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/general/importOptional.css: -------------------------------------------------------------------------------- 1 | .slash { 2 | font: 1.5/2; 3 | a: 1.5; 4 | b: 1.5; 5 | e: a/b; 6 | f: a/b; 7 | g: a/b; 8 | h: a/b; 9 | font: 3/2; 10 | } 11 | .slash2 { 12 | background: url("img.jpg") center/100px; 13 | background: url(abc/img.jpg); 14 | } 15 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/general/importOptional.less: -------------------------------------------------------------------------------- 1 | @import (optional) "DoesNotExists.less"; 2 | @import (optional) "slash.less"; 3 | 4 | @DoesNotExists2: "DoesNotExists2"; 5 | @import (optional) "@{DoesNotExists2}.less"; 6 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/general/important.css: -------------------------------------------------------------------------------- 1 | #important { 2 | color1: #FFFFFF !important; 3 | color2: #FFFFFF !important; 4 | color3: #777777 !important; 5 | color4: #343434 !important; 6 | } 7 | .imp0 { 8 | a: 0 !important; 9 | } 10 | .imp1 { 11 | a: 1 !important; 12 | } 13 | .imp2 { 14 | a: 2 !important; 15 | } 16 | .imp3 { 17 | a: 3 !important; 18 | } 19 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/general/important.less: -------------------------------------------------------------------------------- 1 | #important { 2 | color1: #FFFFFF!important; 3 | color2: #FFFFFF !important; 4 | color3: #777777 ! important; 5 | color4: #333 + 1 !important; 6 | } 7 | 8 | // import for mixins with different syntax 9 | 10 | .imp0 { 11 | .mixin! important; 12 | } 13 | .imp1 { 14 | .mixin (1) !important; 15 | } 16 | .imp2 { 17 | .mixin (2) ! important; 18 | } 19 | 20 | // ignore important in mixin name 21 | .imp3 { 22 | .mixin_important(3); 23 | } 24 | 25 | .mixin (@a:0) { 26 | a:@a; 27 | } 28 | .mixin_important (@a) { 29 | a:@a !important; 30 | } 31 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/general/inlineMode.css: -------------------------------------------------------------------------------- 1 | .text { 2 | background-image: url('../base/images/some.png'); 3 | } 4 | .text1 { 5 | background-image: url(/img/lock@basePath.png); 6 | } 7 | .text2 { 8 | background-image: url(a@basePath); 9 | } 10 | .text3 { 11 | background-image: url("base/"); 12 | } 13 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/general/inlineMode.less: -------------------------------------------------------------------------------- 1 | @basePath: "base/"; 2 | @relativeImagePath: "../@{basePath}images/"; 3 | .text { 4 | background-image: url('@{relativeImagePath}some.png'); 5 | } 6 | .text1 { 7 | background-image: url(/img/lock@basePath.png); 8 | } 9 | .text2 { 10 | background-image: url(a@basePath); 11 | } 12 | .text3 { 13 | background-image: url(@basePath); 14 | } 15 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/general/loop.css: -------------------------------------------------------------------------------- 1 | .col-xs-1, .col-sm-1, .col-md-1, .col-lg-1, .col-xs-2, .col-sm-2, .col-md-2, .col-lg-2 { 2 | position: relative; 3 | min-height: 1px; 4 | padding-left: 15px; 5 | padding-right: 15px; 6 | } 7 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/general/loop.less: -------------------------------------------------------------------------------- 1 | .make-grid-columns(); 2 | 3 | .make-grid-columns() { 4 | // Common styles for all sizes of grid columns, widths 1-12 5 | .col(@index) when (@index = 1) { // initial 6 | @item: ~".col-xs-@{index}, .col-sm-@{index}, .col-md-@{index}, .col-lg-@{index}"; 7 | .col((@index + 1), @item); 8 | } 9 | .col(@index, @list) when (@index =< @grid-columns) { // general; "=<" isn't a typo 10 | @item: ~".col-xs-@{index}, .col-sm-@{index}, .col-md-@{index}, .col-lg-@{index}"; 11 | .col((@index + 1), ~"@{list}, @{item}"); 12 | } 13 | .col(@index, @list) when (@index > @grid-columns) { // terminal 14 | @{list} { 15 | position: relative; 16 | // Prevent columns from collapsing when empty 17 | min-height: 1px; 18 | // Inner gutter via padding 19 | padding-left: (@grid-gutter-width / 2); 20 | padding-right: (@grid-gutter-width / 2); 21 | } 22 | } 23 | .col(1); // kickstart it 24 | } 25 | 26 | 27 | //## Define your custom responsive grid. 28 | 29 | //** Number of columns in the grid. 30 | @grid-columns: 2; 31 | //** Padding between columns. Gets divided in half for the left and right. 32 | @grid-gutter-width: 30px; 33 | // Navbar collapse 34 | //** Point at which the navbar becomes uncollapsed. 35 | @grid-float-breakpoint: @screen-sm-min; 36 | //** Point at which the navbar begins collapsing. 37 | @grid-float-breakpoint-max: (@grid-float-breakpoint - 1); 38 | 39 | // Small screen / tablet 40 | // Note: Deprecated @screen-sm and @screen-tablet as of v3.0.1 41 | @screen-sm: 768px; 42 | @screen-sm-min: @screen-sm; 43 | @screen-tablet: @screen-sm-min; 44 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/general/minus.css: -------------------------------------------------------------------------------- 1 | .text-primary { 2 | unicode-range: U+0???, U+0-7F, U+A5; 3 | listparms: inset 0 -1px 0; 4 | height: 5px; 5 | width: -7px; 6 | top: 7px; 7 | bottom: 9px; 8 | background-position: 0px -20px; 9 | padding-top: 36; 10 | padding-bottom1: -19; 11 | padding-bottom2: -19; 12 | padding-bottom3: -19; 13 | -moz-transition: -moz-transform "-abc"; 14 | abc: 2 -1; 15 | def: 1; 16 | uvw: 1; 17 | xyz: 1; 18 | xxx: 1; 19 | yyy: 1; 20 | background-image: -webkit-linear-gradient(#123456, #654321); 21 | function1: -floor(-2.3); 22 | function2: - -3; 23 | function3: -floor(-2.3); 24 | function4: 3; 25 | calcWithSpace: calc(100% - 98px); 26 | calcCompact: calc(100%-98px); 27 | calcVariable: calc(90% -10px); 28 | calcNested: calc(100% - (2 * 2em)); 29 | calcEscaped: calc(100% - (2 * 2em)); 30 | margin: 0 -12; 31 | } 32 | :root { 33 | --main-bg-color: pink; 34 | } 35 | body { 36 | background-color: var(--main-bg-color); 37 | } 38 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/general/minus.less: -------------------------------------------------------------------------------- 1 | @line-height-computed: -36; 2 | .text-primary { 3 | unicode-range: U+0???, U+0-7F, U+A5; 4 | listparms: inset 0 -1px 0; 5 | height: 6px-1px; 6 | width: -6px-1px; 7 | top: -(-6px-1px); 8 | bottom: (10px / 2px+6px-1px*2); 9 | background-position: -0px -20px; 10 | padding-top: -@line-height-computed; 11 | padding-bottom1: ((@line-height-computed / 2) - 1); 12 | padding-bottom2: (@line-height-computed / 2) - 1; 13 | padding-bottom3: @line-height-computed / 2 - 1; 14 | -moz-transition: -moz-transform "-abc"; 15 | abc: 2 -1; 16 | def: 2-1; 17 | uvw: (2 - 1); 18 | xyz: 2 - 1; 19 | xxx: 2 - 1; 20 | yyy: 2- 1; 21 | background-image: -webkit-linear-gradient( #123456, #654321); // Safari 5.1-6, Chrome 10+ 22 | function1: -floor(-2.3); 23 | function2: - floor(-2.3); 24 | function3: (-floor(-2.3)); 25 | function4: (0-floor(-2.3)); 26 | 27 | calcWithSpace: calc(100% - 98px); 28 | calcCompact: calc(100%-98px); 29 | @a : 90%; 30 | @b : 10px; 31 | calcVariable: calc(@a -@b); 32 | calcNested: calc(100% - (2 * 2em)); 33 | calcEscaped: calc(~"100% - (2 * 2em)"); 34 | margin: 0 -((@line-height-computed / 2) + 30); 35 | } 36 | :root { 37 | --main-bg-color: pink; 38 | } 39 | body { 40 | background-color: var(--main-bg-color); 41 | } -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/general/parent-selectors.css: -------------------------------------------------------------------------------- 1 | .foo .bar { 2 | color: blue; 3 | } 4 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/general/parent-selectors.less: -------------------------------------------------------------------------------- 1 | .foo { 2 | & { 3 | .bar { 4 | color: blue; 5 | } 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/general/parenthesis.css: -------------------------------------------------------------------------------- 1 | .container-fixed { 2 | abc: 23; 3 | } 4 | @media only screen and (min-resolution: 192dpi) { 5 | .container-fixed { 6 | background-size: 123 456; 7 | } 8 | } 9 | @container sidebar (width > 400px) { 10 | .container-fixed { 11 | back-color: red; 12 | } 13 | } 14 | @media print { 15 | .visible-print { 16 | display: block !important; 17 | } 18 | table.visible-print { 19 | display: table; 20 | } 21 | tr.visible-print { 22 | display: table-row !important; 23 | } 24 | th.visible-print, 25 | td.visible-print { 26 | display: table-cell !important; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/general/parenthesis.less: -------------------------------------------------------------------------------- 1 | .container-fixed { 2 | abc: 23; 3 | &:extend(.clearfix all); 4 | @media 5 | only screen and ( min-resolution: 192dpi) { 6 | background-size: 123 456; 7 | } 8 | @container sidebar (width > 400px) { 9 | back-color: red; 10 | } 11 | } 12 | 13 | .responsive-visibility() { 14 | display: block !important; 15 | table& { display: table; } 16 | tr& { display: table-row !important; } 17 | th&, 18 | td& { display: table-cell !important; } 19 | } 20 | 21 | .visible-print { 22 | @media print { 23 | .responsive-visibility(); 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/general/scope/scope1.css: -------------------------------------------------------------------------------- 1 | .input-lg { 2 | font-size: 26px; 3 | font-size2: 26px; 4 | font-size3: 13px; 5 | } 6 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/general/scope/scope1.less: -------------------------------------------------------------------------------- 1 | .input-size( @font-size ) { 2 | font-size: @font-size; 3 | } 4 | .input-size2( @font-size) { 5 | font-size2: @font-size; 6 | } 7 | 8 | .input-lg { 9 | .input-size( @font-size-large ); 10 | .input-size2( @font-size-large ); 11 | font-size3: @font-size; 12 | } 13 | 14 | @font-size: 13px; 15 | @font-size-large: @font-size * 2; 16 | 17 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/general/scope/scope2.css: -------------------------------------------------------------------------------- 1 | .input-lg { 2 | font-size: 26px; 3 | font-size2: 52px; 4 | font-size3: 26px; 5 | } 6 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/general/scope/scope2.less: -------------------------------------------------------------------------------- 1 | .input-size( @font-size1 ) { 2 | @font-size: @font-size1; 3 | font-size: @font-size; 4 | } 5 | .input-size2( @font-size ) { 6 | font-size2: @font-size; 7 | } 8 | 9 | .input-lg { 10 | .input-size( @font-size-large ); 11 | .input-size2( @font-size-large ); 12 | font-size3: @font-size; 13 | } 14 | 15 | @font-size: 13px; 16 | @font-size-large: @font-size * 2; 17 | 18 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/general/scope/scope3.css: -------------------------------------------------------------------------------- 1 | .testPollution { 2 | a: 'no-pollution'; 3 | b: 'no-pollution'; 4 | } 5 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/general/scope/scope3.less: -------------------------------------------------------------------------------- 1 | .polluteMixin() { 2 | @a: 'pollution'; 3 | } 4 | .testPollution { 5 | @a: 'no-pollution'; 6 | a: @a; 7 | .polluteMixin(); 8 | b: @a; 9 | } 10 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/general/scope/scope4.css: -------------------------------------------------------------------------------- 1 | .tiny-scope { 2 | color: #989; 3 | } 4 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/general/scope/scope4.less: -------------------------------------------------------------------------------- 1 | @mix: none; 2 | 3 | .mixin { 4 | @mix: #989; 5 | } 6 | @mix: blue; 7 | .tiny-scope { 8 | .mixin; 9 | color: @mix; // #989 10 | } 11 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/general/scope/scope5.css: -------------------------------------------------------------------------------- 1 | .heightIsSet { 2 | height3: 2; 3 | height3: 1; 4 | height2: 2; 5 | height1: 2; 6 | } 7 | /*.abc { 8 | height2: @height2; 9 | height1: @height1; 10 | }*/ 11 | .heightIsSet { 12 | height: 1024px; 13 | } 14 | .useHeightInMixinCall { 15 | mixin-height: 1024px; 16 | } 17 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/general/scope/scope5.less: -------------------------------------------------------------------------------- 1 | .setHeight1(@h) { 2 | @height1: @h; 3 | } 4 | 5 | .setHeight2(@h) { 6 | @height2: @h; 7 | .setHeight1(@height2); 8 | height3: @height1; 9 | } 10 | 11 | //@height1: 0; 12 | //@height2: 0; 13 | 14 | .heightIsSet { 15 | .setHeight2(2); 16 | .setHeight2(1); 17 | 18 | height2: @height2; 19 | height1: @height1; 20 | } 21 | 22 | /*.abc { 23 | height2: @height2; 24 | height1: @height1; 25 | }*/ 26 | .setHeight(@h) { 27 | @height: 1024px; 28 | } 29 | .useHeightInMixinCall(@h) { 30 | .useHeightInMixinCall { 31 | mixin-height: @h; 32 | } 33 | } 34 | @mainHeight: 50%; 35 | .setHeight(@mainHeight); 36 | .heightIsSet { 37 | height: @height; 38 | } 39 | .useHeightInMixinCall(@height); 40 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/general/scope/scope6.css: -------------------------------------------------------------------------------- 1 | .close { 2 | opacity: 0.2; 3 | filter: alpha(opacity=20); 4 | } 5 | .close:focus { 6 | opacity: 0.5; 7 | filter: alpha(opacity=50); 8 | } 9 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/general/scope/scope6.less: -------------------------------------------------------------------------------- 1 | .close { 2 | .opacity(.2); 3 | 4 | &:focus { 5 | .opacity(.5); 6 | } 7 | } 8 | .opacity(@opacity) { 9 | opacity: @opacity; 10 | @opacity-ie: (@opacity * 100); 11 | filter: ~"alpha(opacity=@{opacity-ie})"; 12 | } 13 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/general/scope/scope7.css: -------------------------------------------------------------------------------- 1 | body { 2 | context-px-size: 10; 3 | } 4 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/general/scope/scope7.less: -------------------------------------------------------------------------------- 1 | @context-px-size: 10; 2 | 3 | .font-size(@context-px-size: @context-px-size) { 4 | context-px-size: @context-px-size; 5 | } 6 | 7 | body { 8 | .font-size(); 9 | } -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/general/scope/scope8.css: -------------------------------------------------------------------------------- 1 | .icon { 2 | display: block; 3 | } 4 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/general/scope/scope8.less: -------------------------------------------------------------------------------- 1 | .fa() { 2 | display: block; 3 | } 4 | .non-existing { 5 | .fa() { 6 | display: inline; 7 | } 8 | } 9 | .icon { 10 | .fa; 11 | } 12 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/general/scope/scope9.css: -------------------------------------------------------------------------------- 1 | .icon { 2 | a: 1; 3 | b: 2; 4 | } 5 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/general/scope/scope9.less: -------------------------------------------------------------------------------- 1 | .fa() { 2 | a: 1; 3 | } 4 | .lazy { 5 | .fa() { 6 | b: 2; 7 | } 8 | } 9 | .icon { 10 | .fa; 11 | } 12 | .lazy(); 13 | 14 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/general/selectorWithQuotes.css: -------------------------------------------------------------------------------- 1 | div[comment="/*foo*/"] { 2 | background: #ffff00; 3 | } 4 | div[data-test='foo,bar'] { 5 | cursor: default; 6 | } 7 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/general/selectorWithQuotes.less: -------------------------------------------------------------------------------- 1 | div[comment="/*foo*/"] { 2 | background: #ffff00; 3 | } 4 | div[data-test='foo,bar'] { 5 | cursor: default; 6 | } 7 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/general/slash.css: -------------------------------------------------------------------------------- 1 | .slash { 2 | font: 1.5/2; 3 | a: 1.5; 4 | b: 1.5; 5 | e: a/b; 6 | f: a/b; 7 | g: a/b; 8 | h: a/b; 9 | font: 3/2; 10 | } 11 | .slash2 { 12 | background: url("img.jpg") center/100px; 13 | background: url(abc/img.jpg); 14 | } 15 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/general/slash.less: -------------------------------------------------------------------------------- 1 | // comment 2 | .slash { 3 | @a: 3 / 2; 4 | font:@a/2; 5 | a: @a; 6 | b: 3 / 2; 7 | e: a / b; 8 | f: a/ b; 9 | g: a /b; 10 | h: a/b; 11 | font:3/2; 12 | } 13 | .slash2 { 14 | background: url("img.jpg") center / 100px; 15 | background: url(abc/img.jpg); 16 | } -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/general/svgGradient.css: -------------------------------------------------------------------------------- 1 | .svg { 2 | x: #c4c4c4; 3 | a: url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/PjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2ZXJzaW9uPSIxLjEiIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIHZpZXdCb3g9IjAgMCAxIDEiIHByZXNlcnZlQXNwZWN0UmF0aW89Im5vbmUiPjxyYWRpYWxHcmFkaWVudCBpZD0iZ3JhZGllbnQiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIiBjeD0iNTAlIiBjeT0iNTAlIiByPSI3NSUiPjxzdG9wIG9mZnNldD0iMCUiIHN0b3AtY29sb3I9IiMwMDAwMDAiLz48c3RvcCBvZmZzZXQ9IjEwMCUiIHN0b3AtY29sb3I9IiNmZmZmZmYiLz48L3JhZGlhbEdyYWRpZW50PjxyZWN0IHg9Ii01MCIgeT0iLTUwIiB3aWR0aD0iMTAxIiBoZWlnaHQ9IjEwMSIgZmlsbD0idXJsKCNncmFkaWVudCkiIC8+PC9zdmc+'); 4 | b: url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/PjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2ZXJzaW9uPSIxLjEiIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIHZpZXdCb3g9IjAgMCAxIDEiIHByZXNlcnZlQXNwZWN0UmF0aW89Im5vbmUiPjxyYWRpYWxHcmFkaWVudCBpZD0iZ3JhZGllbnQiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIiBjeD0iNTAlIiBjeT0iNTAlIiByPSI3NSUiPjxzdG9wIG9mZnNldD0iMCUiIHN0b3AtY29sb3I9IiMwMDAwMDAiLz48c3RvcCBvZmZzZXQ9IjEwMCUiIHN0b3AtY29sb3I9IiNmZmZmZmYiLz48L3JhZGlhbEdyYWRpZW50PjxyZWN0IHg9Ii01MCIgeT0iLTUwIiB3aWR0aD0iMTAxIiBoZWlnaHQ9IjEwMSIgZmlsbD0idXJsKCNncmFkaWVudCkiIC8+PC9zdmc+'); 5 | } 6 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/general/svgGradient.less: -------------------------------------------------------------------------------- 1 | .svg { 2 | x: mix(black, white) + #444; 3 | a: svg-gradient(ellipse, black, white); 4 | b: svg-gradient(ellipse at center, black, white); 5 | } -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/less_org_doc/ParentSelectors/MultipleAnd1.css: -------------------------------------------------------------------------------- 1 | .link + .link { 2 | color: red; 3 | } 4 | .link .link { 5 | color: green; 6 | } 7 | .link.link { 8 | color: blue; 9 | } 10 | .link, 11 | .linkish { 12 | color: cyan; 13 | } 14 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/less_org_doc/ParentSelectors/MultipleAnd1.less: -------------------------------------------------------------------------------- 1 | .link { 2 | & + & { 3 | color: red; 4 | } 5 | 6 | & & { 7 | color: green; 8 | } 9 | 10 | && { 11 | color: blue; 12 | } 13 | 14 | &, &ish { 15 | color: cyan; 16 | } 17 | } -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/less_org_doc/ParentSelectors/MultipleAnd2.css: -------------------------------------------------------------------------------- 1 | .link + .link, 2 | .link + a, 3 | a + .link, 4 | a + a { 5 | color: red; 6 | } 7 | .link .link, 8 | .link a, 9 | a .link, 10 | a a { 11 | color: green; 12 | } 13 | .link.link, 14 | .linka, 15 | a.link, 16 | aa { 17 | color: blue; 18 | } 19 | .link, 20 | a, 21 | .linkish, 22 | aish { 23 | color: cyan; 24 | } 25 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/less_org_doc/ParentSelectors/MultipleAnd2.less: -------------------------------------------------------------------------------- 1 | .link, a { 2 | & + & { 3 | color: red; 4 | } 5 | 6 | & & { 7 | color: green; 8 | } 9 | 10 | && { 11 | color: blue; 12 | } 13 | 14 | &, &ish { 15 | color: cyan; 16 | } 17 | } -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/less_org_doc/ParentSelectors/base.css: -------------------------------------------------------------------------------- 1 | .button-ok { 2 | background-image: url("ok.png"); 3 | } 4 | .button-cancel { 5 | background-image: url("cancel.png"); 6 | } 7 | .button-custom { 8 | background-image: url("custom.png"); 9 | } 10 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/less_org_doc/ParentSelectors/base.less: -------------------------------------------------------------------------------- 1 | .button { 2 | &-ok { 3 | background-image: url("ok.png"); 4 | } 5 | &-cancel { 6 | background-image: url("cancel.png"); 7 | } 8 | 9 | &-custom { 10 | background-image: url("custom.png"); 11 | } 12 | } -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/less_org_doc/extends/InsideMedia.css: -------------------------------------------------------------------------------- 1 | @media print { 2 | .selector, 3 | .screenClass { 4 | color: black; 5 | } 6 | } 7 | .selector { 8 | color: red; 9 | } 10 | @media screen { 11 | .selector { 12 | color: blue; 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/less_org_doc/extends/InsideMedia.less: -------------------------------------------------------------------------------- 1 | @media print { 2 | .screenClass:extend(.selector) {} // extend inside media 3 | .selector { // this will be matched - it is in the same media 4 | color: black; 5 | } 6 | } 7 | .selector { // ruleset on top of style sheet - extend ignores it 8 | color: red; 9 | } 10 | @media screen { 11 | .selector { // ruleset inside another media - extend ignores it 12 | color: blue; 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/less_org_doc/extends/all.css: -------------------------------------------------------------------------------- 1 | .a.b.test, 2 | .test.c, 3 | .a.b.replacement, 4 | .replacement.c { 5 | color: orange; 6 | } 7 | .test:hover, 8 | .replacement:hover { 9 | color: green; 10 | } 11 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/less_org_doc/extends/all.less: -------------------------------------------------------------------------------- 1 | @color: orange; 2 | 3 | .a.b.test, 4 | .test.c { 5 | color: @color; 6 | } 7 | .test { 8 | &:hover { 9 | color: green; 10 | } 11 | } 12 | 13 | .replacement:extend(.test all) {} 14 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/less_org_doc/extends/base.css: -------------------------------------------------------------------------------- 1 | nav ul { 2 | background: blue; 3 | } 4 | .inline, 5 | nav ul { 6 | color: red; 7 | } 8 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/less_org_doc/extends/base.less: -------------------------------------------------------------------------------- 1 | nav ul { 2 | &:extend(.inline); 3 | background: blue; 4 | } 5 | .inline { 6 | color: red; 7 | } -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/less_org_doc/extends/element.css: -------------------------------------------------------------------------------- 1 | h1, 2 | h2 { 3 | font-size: 20px; 4 | } 5 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/less_org_doc/extends/element.less: -------------------------------------------------------------------------------- 1 | h1 { 2 | font-size: 20px; 3 | } 4 | h2 { 5 | &:extend(h1); 6 | } 7 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/less_org_doc/guards/conditional.css: -------------------------------------------------------------------------------- 1 | .class1 { 2 | background-color: black; 3 | color: #ddd; 4 | } 5 | .class2 { 6 | background-color: white; 7 | color: #555; 8 | } 9 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/less_org_doc/guards/conditional.less: -------------------------------------------------------------------------------- 1 | .mixin (@a) when (lightness(@a) >= 50%) { 2 | background-color: black; 3 | } 4 | .mixin (@a) when (lightness(@a) < 50%) { 5 | background-color: white; 6 | } 7 | .mixin (@a) { 8 | color: @a; 9 | } 10 | .class1 { .mixin(#ddd) } 11 | .class2 { .mixin(#555) } -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/less_org_doc/guards/css_guards.css: -------------------------------------------------------------------------------- 1 | button { 2 | color: white; 3 | } 4 | span { 5 | color: white; 6 | } 7 | a { 8 | color: blue; 9 | } 10 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/less_org_doc/guards/css_guards.less: -------------------------------------------------------------------------------- 1 | @my-option: true; 2 | @width: 40; 3 | 4 | button when (@my-option = true) { 5 | color: white; 6 | } 7 | 8 | & when not (@width) { 9 | span { 10 | color: white; 11 | } 12 | a { 13 | color: blue; 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/less_org_doc/guards/list.css: -------------------------------------------------------------------------------- 1 | .svy-sidenav-dropdown.sn-level-1:not(.svy-navitem-selected) { 2 | padding: 0px 1px; 3 | } 4 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/less_org_doc/guards/list.less: -------------------------------------------------------------------------------- 1 | @sidenav-selected-border-width: 0px 1px; 2 | .svy-sidenav-dropdown.sn-level-1:not(.svy-navitem-selected) when not(@sidenav-selected-border-width = 0) { 3 | padding: @sidenav-selected-border-width 4 | } -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/less_org_doc/guards/logical_operators.css: -------------------------------------------------------------------------------- 1 | .class1 { 2 | largevalue: -15; 3 | } 4 | .class3 { 5 | value: 5; 6 | } 7 | .class4 { 8 | value: 15; 9 | largevalue: 15; 10 | } 11 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/less_org_doc/guards/logical_operators.less: -------------------------------------------------------------------------------- 1 | .mixin (@a) when (isnumber(@a)) and (@a > 0) { 2 | value: @a; 3 | } 4 | .mixin (@a) when (@a > 10), (@a < -10) { 5 | largevalue: @a; 6 | } 7 | 8 | .class1 { .mixin(-15) } 9 | .class2 { .mixin(-5) } 10 | .class3 { .mixin(5) } 11 | .class4 { .mixin(15) } -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/less_org_doc/license.txt: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2014 Alexis Sellier, the LESS Core Team, Contributors. 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in 13 | all copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | THE SOFTWARE. 22 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/less_org_doc/list/range.css: -------------------------------------------------------------------------------- 1 | simple { 2 | value: 1 2 3 4; 3 | length: 4; 4 | } 5 | full { 6 | value: 10px 20px 30px; 7 | length: 3; 8 | } 9 | empty { 10 | value: ; 11 | length: 0; 12 | } 13 | floating { 14 | value: 1.4 1.6 1.8 2 2.2 2.4 2.6 2.8 3 3.2; 15 | length: 10; 16 | } 17 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/less_org_doc/list/range.less: -------------------------------------------------------------------------------- 1 | simple { 2 | @list: range(4); 3 | value: @list; 4 | length: length( @list ); 5 | } 6 | full { 7 | @list: range(10px, 30px, 10); 8 | value: @list; 9 | length: length( @list ); 10 | } 11 | empty { 12 | @list: range(10, 5); 13 | value: @list; 14 | length: length( @list ); 15 | } 16 | floating { 17 | @list: range(1.4, 3.4, 0.2); 18 | value: @list; 19 | length: length( @list ); 20 | } -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/less_org_doc/logical/if1.css: -------------------------------------------------------------------------------- 1 | div { 2 | margin: 0; 3 | color: black; 4 | } 5 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/less_org_doc/logical/if1.less: -------------------------------------------------------------------------------- 1 | @some: foo; 2 | 3 | div { 4 | margin: if((2 > 1), 0, 3px); 5 | color: if((iscolor(@some)), darken(@some, 10%), black); 6 | } 7 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/less_org_doc/logical/if2.css: -------------------------------------------------------------------------------- 1 | .if { 2 | a: bar; 3 | b: foo; 4 | c: foo; 5 | d: blue; 6 | e: blue; 7 | } 8 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/less_org_doc/logical/if2.less: -------------------------------------------------------------------------------- 1 | .if { 2 | a: if(not (true), foo, bar); 3 | b: if((true) and (2 > 1), foo, bar); 4 | c: if((false) or (isstring("boo!")), foo, bar); 5 | d: if(2 > 1, blue, green); 6 | e: if((2 > 1), blue, green); 7 | } 8 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/less_org_doc/mixins/MultipleParameters.css: -------------------------------------------------------------------------------- 1 | .some .selector div { 2 | color-1: #008000; 3 | color-2: #008000; 4 | padding-2: 2; 5 | } 6 | .dummyParameter { 7 | color-1: 1, 2, 3; 8 | color-2: 1, 2, 3; 9 | padding-2: 2; 10 | } 11 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/less_org_doc/mixins/MultipleParameters.less: -------------------------------------------------------------------------------- 1 | .mixin() { 2 | color-0: green; 3 | } 4 | .mixin(@color) { 5 | color-1: @color; 6 | } 7 | .mixin(@color; @padding:2) { 8 | color-2: @color; 9 | padding-2: @padding; 10 | } 11 | .mixin(@color; @padding; @margin: 2) { 12 | color-3: @color; 13 | padding-3: @padding; 14 | margin: @margin @margin @margin @margin; 15 | } 16 | .some .selector div { 17 | .mixin(#008000); 18 | } 19 | .dummyParameter { 20 | .mixin(1, 2, 3;) 21 | } 22 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/less_org_doc/mixins/as_function.css: -------------------------------------------------------------------------------- 1 | .caller { 2 | width: 100%; 3 | height: 200px; 4 | } 5 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/less_org_doc/mixins/as_function.less: -------------------------------------------------------------------------------- 1 | .mixin() { 2 | @width: 100%; 3 | @height: 200px; 4 | } 5 | 6 | .caller { 7 | .mixin(); 8 | width: @width; 9 | height: @height; 10 | } 11 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/less_org_doc/mixins/as_function2.css: -------------------------------------------------------------------------------- 1 | div { 2 | padding: 33px; 3 | } 4 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/less_org_doc/mixins/as_function2.less: -------------------------------------------------------------------------------- 1 | .average(@x, @y) { 2 | @average: ((@x + @y) / 2); 3 | } 4 | 5 | div { 6 | .average(16px, 50px); // "call" the mixin 7 | padding: @average; // use its "return" value 8 | } 9 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/less_org_doc/mixins/base.css: -------------------------------------------------------------------------------- 1 | .a, 2 | #b { 3 | color: red; 4 | } 5 | .mixin-class { 6 | color: red; 7 | } 8 | .mixin-id { 9 | color: red; 10 | } 11 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/less_org_doc/mixins/base.css_x: -------------------------------------------------------------------------------- 1 | .a,#b{color:#f00}.mixin-class{color:#f00}.mixin-id{color:#f00} -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/less_org_doc/mixins/base.less: -------------------------------------------------------------------------------- 1 | .a, #b { 2 | color: red; 3 | } 4 | .mixin-class { 5 | .a(); 6 | } 7 | .mixin-id { 8 | #b(); 9 | } 10 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/less_org_doc/mixins/colon.css: -------------------------------------------------------------------------------- 1 | a { 2 | color: hover; 3 | display: hover; 4 | } 5 | a color:hover { 6 | color: green; 7 | } 8 | a display :hover { 9 | color: red; 10 | } 11 | a display *:not(:last-child) { 12 | color: blue; 13 | } 14 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/less_org_doc/mixins/colon.less: -------------------------------------------------------------------------------- 1 | a { 2 | color:hover; 3 | display :hover; 4 | color:hover { 5 | color: green; 6 | } 7 | display :hover { 8 | color: red; 9 | } 10 | display *:not(:last-child) { 11 | color: blue; 12 | } 13 | } -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/less_org_doc/mixins/important.css: -------------------------------------------------------------------------------- 1 | .unimportant { 2 | background: #f5f5f5; 3 | color: #900; 4 | } 5 | .important { 6 | background: #f5f5f5 !important; 7 | color: #900 !important; 8 | } 9 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/less_org_doc/mixins/important.css_x: -------------------------------------------------------------------------------- 1 | .unimportant{background:#f5f5f5;color:#900}.important{background:#f5f5f5 !important;color:#900 !important} -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/less_org_doc/mixins/important.less: -------------------------------------------------------------------------------- 1 | .foo (@bg: #f5f5f5, @color: #900) { 2 | background: @bg; 3 | color: @color; 4 | } 5 | .unimportant { 6 | .foo(); 7 | } 8 | .important { 9 | .foo() !important; 10 | } -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/less_org_doc/mixins/namespaces.css: -------------------------------------------------------------------------------- 1 | #outer .inner { 2 | color: red; 3 | } 4 | .c { 5 | color: red; 6 | } 7 | .d { 8 | color: red; 9 | } 10 | .e { 11 | color: red; 12 | } 13 | .f { 14 | color: red; 15 | } 16 | .g { 17 | color: red; 18 | } 19 | .h { 20 | color: red; 21 | } 22 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/less_org_doc/mixins/namespaces.css_x: -------------------------------------------------------------------------------- 1 | #outer .inner{color:#f00}.c{color:#f00}.d{color:#f00}.e{color:#f00}.f{color:#f00}.g{color:#f00}.h{color:#f00} -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/less_org_doc/mixins/namespaces.less: -------------------------------------------------------------------------------- 1 | #outer { 2 | .inner { 3 | color: red; 4 | } 5 | } 6 | 7 | // all do the same thing 8 | .c{ 9 | #outer > .inner; 10 | } 11 | .d{ 12 | #outer > .inner(); 13 | } 14 | .e{ 15 | #outer .inner; 16 | } 17 | .f{ 18 | #outer .inner(); 19 | } 20 | .g{ 21 | #outer.inner; 22 | } 23 | .h{ 24 | #outer.inner(); 25 | } 26 | 27 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/less_org_doc/mixins/outputting.css: -------------------------------------------------------------------------------- 1 | .my-mixin { 2 | color: black; 3 | } 4 | .class { 5 | color: black; 6 | background: white; 7 | } 8 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/less_org_doc/mixins/outputting.css_x: -------------------------------------------------------------------------------- 1 | .my-mixin{color:#000}.class{color:#000;background:#fff} -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/less_org_doc/mixins/outputting.less: -------------------------------------------------------------------------------- 1 | .my-mixin { 2 | color: black; 3 | } 4 | .my-other-mixin() { 5 | background: white; 6 | } 7 | .class { 8 | .my-mixin; 9 | .my-other-mixin; 10 | } -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/less_org_doc/mixins/parametric.css: -------------------------------------------------------------------------------- 1 | #header { 2 | -webkit-border-radius: 4px; 3 | -moz-border-radius: 4px; 4 | border-radius: 4px; 5 | } 6 | .button { 7 | -webkit-border-radius: 6px; 8 | -moz-border-radius: 6px; 9 | border-radius: 6px; 10 | } 11 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/less_org_doc/mixins/parametric.less: -------------------------------------------------------------------------------- 1 | .border-radius(@radius) { 2 | -webkit-border-radius: @radius; 3 | -moz-border-radius: @radius; 4 | border-radius: @radius; 5 | } 6 | 7 | 8 | #header { 9 | .border-radius(4px); 10 | } 11 | .button { 12 | .border-radius(6px); 13 | } -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/less_org_doc/mixins/root.css: -------------------------------------------------------------------------------- 1 | /* mixin1 */ 2 | .abc { 3 | position: top; 4 | } 5 | /* mixin2 */ 6 | .xyz .foo { 7 | position: bottom; 8 | } 9 | /* mixin3 */ 10 | .foo { 11 | position: relative; 12 | } 13 | /* mixin4 */ 14 | .foo { 15 | position: bottom; 16 | position: relative; 17 | } 18 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/less_org_doc/mixins/root.less: -------------------------------------------------------------------------------- 1 | .mixin1() { 2 | .abc { 3 | position: top; 4 | } 5 | } 6 | /* mixin1 */ 7 | .mixin1; 8 | 9 | .mixin2() { 10 | .xyz { 11 | .foo { 12 | position: bottom; 13 | } 14 | } 15 | } 16 | /* mixin2 */ 17 | .mixin2; 18 | 19 | .mixin3() { 20 | .xyz() { 21 | .foo { 22 | position: relative; 23 | } 24 | } 25 | .xyz; 26 | } 27 | /* mixin3 */ 28 | .mixin3; 29 | 30 | .mixin4() { 31 | .bar() { 32 | .bla { 33 | position: absolute; 34 | } 35 | } 36 | .xyz; 37 | } 38 | /* mixin4 */ 39 | .mixin4; 40 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/less_org_doc/mixins/selectors.css: -------------------------------------------------------------------------------- 1 | button:hover { 2 | border: 1px solid red; 3 | } 4 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/less_org_doc/mixins/selectors.css_x: -------------------------------------------------------------------------------- 1 | button:hover{border:1px solid #f00} -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/less_org_doc/mixins/selectors.less: -------------------------------------------------------------------------------- 1 | .my-hover-mixin() { 2 | &:hover { 3 | border: 1px solid red; 4 | } 5 | } 6 | button { 7 | .my-hover-mixin(); 8 | } -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/less_org_doc/overview/bubbling_non_conditional.css: -------------------------------------------------------------------------------- 1 | #a { 2 | color: blue; 3 | padding: 2 2 2 2; 4 | } 5 | @font-face { 6 | src: made-up-url; 7 | } 8 | @keyframes foobar { 9 | from { 10 | opacity: 1; 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/less_org_doc/overview/bubbling_non_conditional.css_x: -------------------------------------------------------------------------------- 1 | #a{color:#00f;padding:2 2 2 2}@font-face{src:made-up-url}@keyframes foobar{from{opacity:1}} -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/less_org_doc/overview/bubbling_non_conditional.less: -------------------------------------------------------------------------------- 1 | #a { 2 | color: blue; 3 | @font-face { 4 | src: made-up-url; 5 | } 6 | padding: 2 2 2 2; 7 | @keyframes foobar { 8 | from { opacity: 1; } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/less_org_doc/overview/comments.css: -------------------------------------------------------------------------------- 1 | /* One hell of a block 2 | style comment! */ 3 | .class { 4 | color: white; 5 | /* in block */ 6 | } 7 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/less_org_doc/overview/comments.css_x: -------------------------------------------------------------------------------- 1 | .class{color:#fff} -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/less_org_doc/overview/comments.less: -------------------------------------------------------------------------------- 1 | /* One hell of a block 2 | style comment! */ 3 | @var: red; 4 | 5 | // Get in line! 6 | @var: white; 7 | .class /* in block */ { 8 | color: @var; // in line 9 | // in line 10 | /* in block */ 11 | } 12 | // last line comment -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/less_org_doc/overview/functions.css: -------------------------------------------------------------------------------- 1 | .class { 2 | width: 50%; 3 | color: #f6430f; 4 | background-color: #f8b38d; 5 | } 6 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/less_org_doc/overview/functions.css_x: -------------------------------------------------------------------------------- 1 | .class{width:50%;color:#f6430f;background-color:#f8b38d} -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/less_org_doc/overview/functions.less: -------------------------------------------------------------------------------- 1 | @base: #f04615; 2 | @width: 0.5; 3 | 4 | .class { 5 | width: percentage(@width); // returns `50%` 6 | color: saturate(@base, 5%); 7 | background-color: spin(lighten(@base, 25%), 8); 8 | } -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/less_org_doc/overview/media.css: -------------------------------------------------------------------------------- 1 | @media screen { 2 | .screencolor { 3 | color: green; 4 | } 5 | } 6 | @media screen and (min-width:768px) { 7 | .screencolor { 8 | color: red; 9 | } 10 | } 11 | @media tv { 12 | .screencolor { 13 | color: black; 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/less_org_doc/overview/media.css_x: -------------------------------------------------------------------------------- 1 | @media screen{.screencolor{color:#008000}}@media screen and (min-width:768px){.screencolor{color:#f00}}@media tv{.screencolor{color:#000}} -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/less_org_doc/overview/media.less: -------------------------------------------------------------------------------- 1 | .screencolor{ 2 | @media screen { 3 | color: green; 4 | @media (min-width:768px) { 5 | color: red; 6 | } 7 | } 8 | @media tv { 9 | color: black; 10 | } 11 | } -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/less_org_doc/overview/mixins.css: -------------------------------------------------------------------------------- 1 | .bordered { 2 | border-top: dotted 1px black; 3 | border-bottom: solid 2px black; 4 | } 5 | #menu a { 6 | color: #111; 7 | border-top: dotted 1px black; 8 | border-bottom: solid 2px black; 9 | } 10 | .post a { 11 | color: red; 12 | border-top: dotted 1px black; 13 | border-bottom: solid 2px black; 14 | } 15 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/less_org_doc/overview/mixins.css_x: -------------------------------------------------------------------------------- 1 | .bordered{border-top:dotted 1px #000;border-bottom:solid 2px #000}#menu a{color:#111;border-top:dotted 1px #000;border-bottom:solid 2px #000}.post a{color:#f00;border-top:dotted 1px #000;border-bottom:solid 2px #000} -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/less_org_doc/overview/mixins.less: -------------------------------------------------------------------------------- 1 | .bordered { 2 | border-top: dotted 1px black; 3 | border-bottom: solid 2px black; 4 | } 5 | 6 | #menu a { 7 | color: #111; 8 | .bordered; 9 | } 10 | 11 | .post a { 12 | color: red; 13 | .bordered; 14 | } -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/less_org_doc/overview/namespace.css: -------------------------------------------------------------------------------- 1 | #bundle .button { 2 | display: block; 3 | border: 1px solid black; 4 | background-color: grey; 5 | } 6 | #bundle .button:hover { 7 | background-color: white; 8 | } 9 | #header a { 10 | color: orange; 11 | display: block; 12 | border: 1px solid black; 13 | background-color: grey; 14 | } 15 | #header a:hover { 16 | background-color: white; 17 | } 18 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/less_org_doc/overview/namespace.css_x: -------------------------------------------------------------------------------- 1 | #bundle .button{display:block;border:1px solid #000;background-color:#808080}#bundle .button:hover{background-color:#fff}#header a{color:#ffa500;display:block;border:1px solid #000;background-color:#808080}#header a:hover{background-color:#fff} -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/less_org_doc/overview/namespace.less: -------------------------------------------------------------------------------- 1 | #bundle { 2 | .button { 3 | display: block; 4 | border: 1px solid black; 5 | background-color: grey; 6 | &:hover { 7 | background-color: white 8 | } 9 | } 10 | } 11 | #header a { 12 | color: orange; 13 | #bundle > .button; 14 | } -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/less_org_doc/overview/nested_rules.css: -------------------------------------------------------------------------------- 1 | #header { 2 | color: black; 3 | } 4 | #header .navigation { 5 | font-size: 12px; 6 | } 7 | #header .logo { 8 | width: 300px; 9 | } 10 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/less_org_doc/overview/nested_rules.css_x: -------------------------------------------------------------------------------- 1 | #header{color:#000}#header .navigation{font-size:12px}#header .logo{width:300px} -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/less_org_doc/overview/nested_rules.less: -------------------------------------------------------------------------------- 1 | #header { 2 | color: black; 3 | .navigation { 4 | font-size: 12px; 5 | } 6 | .logo { 7 | width: 300px; 8 | } 9 | } -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/less_org_doc/overview/operations.css: -------------------------------------------------------------------------------- 1 | #abc { 2 | color: #222222; 3 | background-color: #234567; 4 | height: 65%; 5 | } 6 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/less_org_doc/overview/operations.css_x: -------------------------------------------------------------------------------- 1 | #abc{color:#222;background-color:#234567;height:65%} -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/less_org_doc/overview/operations.less: -------------------------------------------------------------------------------- 1 | @base: 5%; 2 | @filler: @base * 2; 3 | @other: @base + @filler; 4 | @base-color: #123456; 5 | 6 | #abc { 7 | color: #888 / 4; 8 | background-color: @base-color + #111; 9 | height: 100% / 2 + @other; 10 | } -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/less_org_doc/overview/pseudo_selector.css: -------------------------------------------------------------------------------- 1 | .clearfix { 2 | display: block; 3 | zoom: 1; 4 | } 5 | .clearfix:after { 6 | content: " "; 7 | display: block; 8 | font-size: 0; 9 | height: 0; 10 | clear: both; 11 | visibility: hidden; 12 | } 13 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/less_org_doc/overview/pseudo_selector.css_x: -------------------------------------------------------------------------------- 1 | .clearfix{display:block;zoom:1}.clearfix:after{content:" ";display:block;font-size:0;height:0;clear:both;visibility:hidden} -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/less_org_doc/overview/pseudo_selector.less: -------------------------------------------------------------------------------- 1 | .clearfix { 2 | display: block; 3 | zoom: 1; 4 | 5 | &:after { 6 | content: " "; 7 | display: block; 8 | font-size: 0; 9 | height: 0; 10 | clear: both; 11 | visibility: hidden; 12 | } 13 | } -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/less_org_doc/overview/scope.css: -------------------------------------------------------------------------------- 1 | #page #header { 2 | color: white; 3 | } 4 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/less_org_doc/overview/scope.css_x: -------------------------------------------------------------------------------- 1 | #page #header{color:#fff} -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/less_org_doc/overview/scope.less: -------------------------------------------------------------------------------- 1 | @var: red; 2 | 3 | #page { 4 | #header { 5 | color: @var; // white 6 | } 7 | @var: white; 8 | } 9 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/less_org_doc/overview/variables.css: -------------------------------------------------------------------------------- 1 | #header { 2 | color: #6c94be; 3 | } 4 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/less_org_doc/overview/variables.css_x: -------------------------------------------------------------------------------- 1 | #header{color:#6c94be} -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/less_org_doc/overview/variables.less: -------------------------------------------------------------------------------- 1 | @nice-blue: #5B83AD;; 2 | @light-blue: @nice-blue + #111; 3 | 4 | #header { 5 | color: @light-blue; 6 | } -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/less_org_tests/data/data-uri-fail.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/i-net-software/jlessc/78cbb93bec45d7992b34565f8ff6a5265b7fc49e/test/com/inet/lib/less/samples/less_org_tests/data/data-uri-fail.png -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/less_org_tests/data/image.jpg: -------------------------------------------------------------------------------- 1 | not actually a jpeg file 2 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/less_org_tests/data/page.html: -------------------------------------------------------------------------------- 1 |

This page is 100% Awesome.

2 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/less_org_tests/less/charsets.css: -------------------------------------------------------------------------------- 1 | @charset "UTF-8"; 2 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/less_org_tests/less/charsets.less: -------------------------------------------------------------------------------- 1 | @charset "UTF-8"; 2 | 3 | @import "import/import-charset-test"; -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/less_org_tests/less/colors.css: -------------------------------------------------------------------------------- 1 | #yelow #short { 2 | color: #fea; 3 | } 4 | #yelow #long { 5 | color: #ffeeaa; 6 | } 7 | #yelow #rgba { 8 | color: rgba(255, 238, 170, 0.1); 9 | } 10 | #yelow #argb { 11 | color: #1affeeaa; 12 | } 13 | #blue #short { 14 | color: #00f; 15 | } 16 | #blue #long { 17 | color: #0000ff; 18 | } 19 | #blue #rgba { 20 | color: rgba(0, 0, 255, 0.1); 21 | } 22 | #blue #argb { 23 | color: #1a0000ff; 24 | } 25 | #alpha #hsla { 26 | color: rgba(61, 45, 41, 0.6); 27 | } 28 | #overflow .a { 29 | color: #000000; 30 | } 31 | #overflow .b { 32 | color: #ffffff; 33 | } 34 | #overflow .c { 35 | color: #ffffff; 36 | } 37 | #overflow .d { 38 | color: #00ff00; 39 | } 40 | #overflow .e { 41 | color: rgba(0, 31, 255, 0.42); 42 | } 43 | #grey { 44 | color: #c8c8c8; 45 | } 46 | #333333 { 47 | color: #333333; 48 | } 49 | #808080 { 50 | color: #808080; 51 | } 52 | #00ff00 { 53 | color: #00ff00; 54 | } 55 | .lightenblue { 56 | color: #3333ff; 57 | } 58 | .darkenblue { 59 | color: #0000cc; 60 | } 61 | .unknowncolors { 62 | color: blue2; 63 | border: 2px solid superred; 64 | } 65 | .transparent { 66 | color: transparent; 67 | background-color: transparent; 68 | } 69 | #alpha #fromvar { 70 | opacity: 0.7; 71 | } 72 | #alpha #short { 73 | opacity: 1; 74 | } 75 | #alpha #long { 76 | opacity: 1; 77 | } 78 | #alpha #rgba { 79 | opacity: 0.2; 80 | } 81 | #alpha #hsl { 82 | opacity: 1; 83 | } 84 | #percentage { 85 | color: 255; 86 | border-color: rgba(255, 0, 0, 0.5); 87 | } 88 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/less_org_tests/less/colors.less: -------------------------------------------------------------------------------- 1 | #yelow { 2 | #short { 3 | color: #fea; 4 | } 5 | #long { 6 | color: #ffeeaa; 7 | } 8 | #rgba { 9 | color: rgba(255, 238, 170, 0.1); 10 | } 11 | #argb { 12 | color: argb(rgba(255, 238, 170, 0.1)); 13 | } 14 | } 15 | 16 | #blue { 17 | #short { 18 | color: #00f; 19 | } 20 | #long { 21 | color: #0000ff; 22 | } 23 | #rgba { 24 | color: rgba(0, 0, 255, 0.1); 25 | } 26 | #argb { 27 | color: argb(rgba(0, 0, 255, 0.1)); 28 | } 29 | } 30 | 31 | #alpha #hsla { 32 | color: hsla(11, 20%, 20%, 0.6); 33 | } 34 | 35 | #overflow { 36 | .a { color: (#111111 - #444444); } // #000000 37 | .b { color: (#eee + #fff); } // #ffffff 38 | .c { color: (#aaa * 3); } // #ffffff 39 | .d { color: (#00ee00 + #009900); } // #00ff00 40 | .e { color: rgba(-99.9, 31.4159, 321, 0.42); } 41 | } 42 | 43 | #grey { 44 | color: rgb(200, 200, 200); 45 | } 46 | 47 | #333333 { 48 | color: rgb(20%, 20%, 20%); 49 | } 50 | 51 | #808080 { 52 | color: hsl(50, 0%, 50%); 53 | } 54 | 55 | #00ff00 { 56 | color: hsl(120, 100%, 50%); 57 | } 58 | 59 | .lightenblue { 60 | color: lighten(blue, 10%); 61 | } 62 | 63 | .darkenblue { 64 | color: darken(blue, 10%); 65 | } 66 | 67 | .unknowncolors { 68 | color: blue2; 69 | border: 2px solid superred; 70 | } 71 | 72 | .transparent { 73 | color: transparent; 74 | background-color: rgba(0, 0, 0, 0); 75 | } 76 | #alpha { 77 | @colorvar: rgba(150, 200, 150, 0.7); 78 | #fromvar { 79 | opacity: alpha(@colorvar); 80 | } 81 | #short { 82 | opacity: alpha(#aaa); 83 | } 84 | #long { 85 | opacity: alpha(#bababa); 86 | } 87 | #rgba { 88 | opacity: alpha(rgba(50, 120, 95, 0.2)); 89 | } 90 | #hsl { 91 | opacity: alpha(hsl(120, 100%, 50%)); 92 | } 93 | } 94 | 95 | #percentage { 96 | color: red(rgb(100%, 0, 0)); 97 | border-color: rgba(100%, 0, 0, 50%); 98 | } 99 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/less_org_tests/less/comments.css: -------------------------------------------------------------------------------- 1 | /******************\ 2 | * * 3 | * Comment Header * 4 | * * 5 | \******************/ 6 | /* 7 | 8 | Comment 9 | 10 | */ 11 | /* 12 | * Comment Test 13 | * 14 | * - cloudhead (http://cloudhead.net) 15 | * 16 | */ 17 | /* Colors 18 | * ------ 19 | * #EDF8FC (background blue) 20 | * #166C89 (darkest blue) 21 | * 22 | * Text: 23 | * #333 (standard text) // A comment within a comment! 24 | * #1F9EC9 (standard link) 25 | * 26 | */ 27 | /* @group Variables 28 | ------------------- */ 29 | #comments, 30 | .comments { 31 | /**/ 32 | color: red; 33 | /* A C-style comment */ 34 | /* A C-style comment */ 35 | background-color: orange; 36 | font-size: 12px; 37 | /* lost comment */ 38 | content: "content"; 39 | border: 1px solid black; 40 | padding: 0; 41 | margin: 2em; 42 | } 43 | /* commented out 44 | #more-comments { 45 | color: grey; 46 | } 47 | */ 48 | .selector, 49 | .lots, 50 | .comments { 51 | color: grey, orange; 52 | -webkit-border-radius: 2px; 53 | -moz-border-radius: 8px; 54 | } 55 | .test { 56 | color: 1px; 57 | } 58 | #last { 59 | color: blue; 60 | } 61 | /* */ 62 | /* { */ 63 | /* */ 64 | /* */ 65 | /* */ 66 | #div { 67 | color: #A33; 68 | } 69 | /* } */ 70 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/less_org_tests/less/comments.less: -------------------------------------------------------------------------------- 1 | /******************\ 2 | * * 3 | * Comment Header * 4 | * * 5 | \******************/ 6 | 7 | /* 8 | 9 | Comment 10 | 11 | */ 12 | 13 | /* 14 | * Comment Test 15 | * 16 | * - cloudhead (http://cloudhead.net) 17 | * 18 | */ 19 | 20 | //////////////// 21 | @var: "content"; 22 | //////////////// 23 | 24 | /* Colors 25 | * ------ 26 | * #EDF8FC (background blue) 27 | * #166C89 (darkest blue) 28 | * 29 | * Text: 30 | * #333 (standard text) // A comment within a comment! 31 | * #1F9EC9 (standard link) 32 | * 33 | */ 34 | 35 | /* @group Variables 36 | ------------------- */ 37 | #comments /* boo *//* boo again*/, 38 | //.commented_out1 39 | //.commented_out2 40 | //.commented_out3 41 | .comments //end of comments1 42 | //end of comments2 43 | { 44 | /**/ // An empty comment 45 | color: red; /* A C-style comment */ /* A C-style comment */ 46 | background-color: orange; // A little comment 47 | font-size: 12px; 48 | 49 | /* lost comment */ content: @var; 50 | 51 | border: 1px solid black; 52 | 53 | // padding & margin // 54 | padding: 0; // }{ '" 55 | margin: 2em; 56 | } // 57 | 58 | /* commented out 59 | #more-comments { 60 | color: grey; 61 | } 62 | */ 63 | 64 | .selector /* .with */, .lots, /* of */ .comments { 65 | color: grey, /* blue */ orange; 66 | -webkit-border-radius: 2px /* webkit only */; 67 | -moz-border-radius: (2px * 4) /* moz only with operation */; 68 | } 69 | 70 | .mixin_def_with_colors(@a: white, // in 71 | @b: 1px //put in @b - causes problems! ---> 72 | ) // the 73 | when (@a = white) { 74 | .test { 75 | color: @b; 76 | } 77 | } 78 | .mixin_def_with_colors(); 79 | 80 | #last { color: blue } 81 | // 82 | 83 | /* *//* { *//* *//* *//* */#div { color:#A33; }/* } */ 84 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/less_org_tests/less/compression/compression.css: -------------------------------------------------------------------------------- 1 | #colours{color1:#fea;color2:#fea;color3:rgba(255,238,170,.1);string:"#ffeeaa";/*! but not this type 2 | Note preserved whitespace 3 | */}dimensions{val:.1px;val:0;val:4cm;val:.2;val:5;angles-must-have-unit:0deg;durations-must-have-unit:0s;length-doesnt-have-unit:0;width:auto\9}@page{marks:none;@top-left-corner{vertical-align:top}@top-left{vertical-align:top}}.shadow ^ .dom,body ^^ .shadow{display:done} -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/less_org_tests/less/compression/compression.less: -------------------------------------------------------------------------------- 1 | #colours { 2 | color1: #fea; 3 | color2: #ffeeaa; 4 | color3: rgba(255, 238, 170, 0.1); 5 | @color1: #fea; 6 | string: "@{color1}"; 7 | /* comments are stripped */ 8 | // both types! 9 | /*! but not this type 10 | Note preserved whitespace 11 | */ 12 | } 13 | dimensions { 14 | val: 0.1px; 15 | val: 0em; 16 | val: 4cm; 17 | val: 0.2; 18 | val: 5; 19 | angles-must-have-unit: 0deg; 20 | durations-must-have-unit: 0s; 21 | length-doesnt-have-unit: 0px; 22 | width: auto\9; 23 | } 24 | @page { 25 | marks: none; 26 | @top-left-corner { 27 | vertical-align: top; 28 | } 29 | @top-left { 30 | vertical-align: top; 31 | } 32 | } 33 | .shadow ^ .dom, 34 | body ^^ .shadow { 35 | display: done; 36 | } 37 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/less_org_tests/less/css-escapes.css: -------------------------------------------------------------------------------- 1 | .escape\|random\|char { 2 | color: red; 3 | } 4 | .mixin\!tUp { 5 | font-weight: bold; 6 | } 7 | .\34 04 { 8 | background: red; 9 | } 10 | .\34 04 strong { 11 | color: fuchsia; 12 | font-weight: bold; 13 | } 14 | .trailingTest\+ { 15 | color: red; 16 | } 17 | /* This hideous test of hideousness checks for the selector "blockquote" with various permutations of hex escapes */ 18 | \62\6c\6f \63 \6B \0071 \000075o\74 e { 19 | color: silver; 20 | } 21 | [ng\:cloak], 22 | ng\:form { 23 | display: none; 24 | } 25 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/less_org_tests/less/css-escapes.less: -------------------------------------------------------------------------------- 1 | @ugly: fuchsia; 2 | 3 | .escape\|random\|char { 4 | color: red; 5 | } 6 | 7 | .mixin\!tUp { 8 | font-weight: bold; 9 | } 10 | 11 | // class="404" 12 | .\34 04 { 13 | background: red; 14 | 15 | strong { 16 | color: @ugly; 17 | .mixin\!tUp; 18 | } 19 | } 20 | 21 | .trailingTest\+ { 22 | color: red; 23 | } 24 | 25 | /* This hideous test of hideousness checks for the selector "blockquote" with various permutations of hex escapes */ 26 | \62\6c\6f \63 \6B \0071 \000075o\74 e { 27 | color: silver; 28 | } 29 | 30 | [ng\:cloak], 31 | ng\:form { 32 | display: none; 33 | } 34 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/less_org_tests/less/css.css: -------------------------------------------------------------------------------- 1 | @charset "utf-8"; 2 | div { 3 | color: black; 4 | width: 99%; 5 | } 6 | * { 7 | min-width: 45em; 8 | } 9 | h1, 10 | h2 > a > p, 11 | h3 { 12 | color: none; 13 | } 14 | div.class { 15 | color: blue; 16 | } 17 | div#id { 18 | color: green; 19 | } 20 | .class#id { 21 | color: purple; 22 | } 23 | .one.two.three { 24 | color: grey; 25 | } 26 | @media print { 27 | * { 28 | font-size: 3em; 29 | } 30 | } 31 | @media screen { 32 | * { 33 | font-size: 10px; 34 | } 35 | } 36 | @font-face { 37 | font-family: 'Garamond Pro'; 38 | } 39 | a:hover, 40 | a:link { 41 | color: #999; 42 | } 43 | p, 44 | p:first-child { 45 | text-transform: none; 46 | } 47 | q:lang(no) { 48 | quotes: none; 49 | } 50 | p + h1 { 51 | font-size: 2.2em; 52 | } 53 | #shorthands { 54 | border: 1px solid #000; 55 | font: 12px/16px Arial; 56 | font: 100%/16px Arial; 57 | margin: 1px 0; 58 | padding: 0 auto; 59 | } 60 | #more-shorthands { 61 | margin: 0; 62 | padding: 1px 0 2px 0; 63 | font: normal small/20px 'Trebuchet MS', Verdana, sans-serif; 64 | font: 0/0 a; 65 | border-radius: 0.5px; 66 | } 67 | .misc { 68 | -moz-border-radius: 2px; 69 | display: -moz-inline-stack; 70 | width: 0.1em; 71 | background-color: #009998; 72 | background: -webkit-gradient(linear, left top, left bottom, from(red), to(blue)); 73 | margin: ; 74 | filter: alpha(opacity=100); 75 | width: auto\9; 76 | } 77 | .misc .nested-multiple { 78 | multiple-semi-colons: yes; 79 | } 80 | #important { 81 | color: red !important; 82 | width: 100% !important; 83 | height: 20px !important; 84 | } 85 | @font-face { 86 | font-family: font-a; 87 | } 88 | @font-face { 89 | font-family: font-b; 90 | } 91 | .æøå { 92 | margin: 0; 93 | } 94 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/less_org_tests/less/css.less: -------------------------------------------------------------------------------- 1 | @charset "utf-8"; 2 | div { color: black; } 3 | div { width: 99%; } 4 | 5 | * { 6 | min-width: 45em; 7 | } 8 | 9 | h1, h2 > a > p, h3 { 10 | color: none; 11 | } 12 | 13 | div.class { 14 | color: blue; 15 | } 16 | 17 | div#id { 18 | color: green; 19 | } 20 | 21 | .class#id { 22 | color: purple; 23 | } 24 | 25 | .one.two.three { 26 | color: grey; 27 | } 28 | 29 | @media print { 30 | * { 31 | font-size: 3em; 32 | } 33 | } 34 | 35 | @media screen { 36 | * { 37 | font-size: 10px; 38 | } 39 | } 40 | 41 | @font-face { 42 | font-family: 'Garamond Pro'; 43 | } 44 | 45 | a:hover, a:link { 46 | color: #999; 47 | } 48 | 49 | p, p:first-child { 50 | text-transform: none; 51 | } 52 | 53 | q:lang(no) { 54 | quotes: none; 55 | } 56 | 57 | p + h1 { 58 | font-size: +2.2em; 59 | } 60 | 61 | #shorthands { 62 | border: 1px solid #000; 63 | font: 12px/16px Arial; 64 | font: 100%/16px Arial; 65 | margin: 1px 0; 66 | padding: 0 auto; 67 | } 68 | 69 | #more-shorthands { 70 | margin: 0; 71 | padding: 1px 0 2px 0; 72 | font: normal small/20px 'Trebuchet MS', Verdana, sans-serif; 73 | font: 0/0 a; 74 | border-radius: 5px / 10px; 75 | } 76 | 77 | .misc { 78 | -moz-border-radius: 2px; 79 | display: -moz-inline-stack; 80 | width: .1em; 81 | background-color: #009998; 82 | background: -webkit-gradient(linear, left top, left bottom, from(red), to(blue)); 83 | margin: ; 84 | .nested-multiple { 85 | multiple-semi-colons: yes;;;;;; 86 | }; 87 | filter: alpha(opacity=100); 88 | width: auto\9; 89 | } 90 | 91 | #important { 92 | color: red !important; 93 | width: 100%!important; 94 | height: 20px ! important; 95 | } 96 | 97 | .def-font(@name) { 98 | @font-face { 99 | font-family: @name 100 | } 101 | } 102 | 103 | .def-font(font-a); 104 | .def-font(font-b); 105 | 106 | .æøå { 107 | margin: 0; 108 | } 109 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/less_org_tests/less/empty.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/i-net-software/jlessc/78cbb93bec45d7992b34565f8ff6a5265b7fc49e/test/com/inet/lib/less/samples/less_org_tests/less/empty.css -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/less_org_tests/less/empty.less: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/i-net-software/jlessc/78cbb93bec45d7992b34565f8ff6a5265b7fc49e/test/com/inet/lib/less/samples/less_org_tests/less/empty.less -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/less_org_tests/less/extend-chaining.css: -------------------------------------------------------------------------------- 1 | .a, 2 | .b, 3 | .c { 4 | color: black; 5 | } 6 | .f, 7 | .e, 8 | .d { 9 | color: black; 10 | } 11 | .g.h, 12 | .i.j.h, 13 | .k.j.h { 14 | color: black; 15 | } 16 | .i.j, 17 | .k.j { 18 | color: white; 19 | } 20 | .l, 21 | .m, 22 | .n, 23 | .o, 24 | .p, 25 | .q, 26 | .r, 27 | .s, 28 | .t { 29 | color: black; 30 | } 31 | .u, 32 | .v.u.v { 33 | color: black; 34 | } 35 | .w, 36 | .v.w.v { 37 | color: black; 38 | } 39 | .x, 40 | .y, 41 | .z { 42 | color: x; 43 | } 44 | .y, 45 | .z, 46 | .x { 47 | color: y; 48 | } 49 | .z, 50 | .x, 51 | .y { 52 | color: z; 53 | } 54 | .va, 55 | .vb, 56 | .vc { 57 | color: black; 58 | } 59 | .vb, 60 | .vc { 61 | color: white; 62 | } 63 | @media tv { 64 | .ma, 65 | .mb, 66 | .mc { 67 | color: black; 68 | } 69 | .md, 70 | .ma, 71 | .mb, 72 | .mc { 73 | color: white; 74 | } 75 | } 76 | @media tv and plasma { 77 | .me, 78 | .mf { 79 | background: red; 80 | } 81 | } 82 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/less_org_tests/less/extend-chaining.less: -------------------------------------------------------------------------------- 1 | //very simple chaining 2 | .a { 3 | color: black; 4 | } 5 | .b:extend(.a) {} 6 | .c:extend(.b) {} 7 | 8 | //very simple chaining, ordering not important 9 | 10 | .d:extend(.e) {} 11 | .e:extend(.f) {} 12 | .f { 13 | color: black; 14 | } 15 | 16 | //extend with all 17 | 18 | .g.h { 19 | color: black; 20 | } 21 | .i.j:extend(.g all) { 22 | color: white; 23 | } 24 | .k:extend(.i all) {} 25 | 26 | //extend multi-chaining 27 | 28 | .l { 29 | color: black; 30 | } 31 | .m:extend(.l){} 32 | .n:extend(.m){} 33 | .o:extend(.n){} 34 | .p:extend(.o){} 35 | .q:extend(.p){} 36 | .r:extend(.q){} 37 | .s:extend(.r){} 38 | .t:extend(.s){} 39 | 40 | // self referencing is ignored 41 | 42 | .u {color: black;} 43 | .v.u.v:extend(.u all){} 44 | 45 | // circular reference because the new extend product will match the existing extend 46 | 47 | .w:extend(.w) {color: black;} 48 | .v.w.v:extend(.w all){} 49 | 50 | // classic circular references 51 | 52 | .x:extend(.z) { 53 | color: x; 54 | } 55 | .y:extend(.x) { 56 | color: y; 57 | } 58 | .z:extend(.y) { 59 | color: z; 60 | } 61 | 62 | //very simple chaining, but with the extend inside the ruleset 63 | .va { 64 | color: black; 65 | } 66 | .vb { 67 | &:extend(.va); 68 | color: white; 69 | } 70 | .vc { 71 | &:extend(.vb); 72 | } 73 | 74 | // media queries - dont extend outside, do extend inside 75 | 76 | @media tv { 77 | .ma:extend(.a,.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,.md) { 78 | color: black; 79 | } 80 | .md { 81 | color: white; 82 | } 83 | @media plasma { 84 | .me, .mf { 85 | &:extend(.mb,.md); 86 | background: red; 87 | } 88 | } 89 | } 90 | .mb:extend(.ma) {}; 91 | .mc:extend(.mb) {}; -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/less_org_tests/less/extend-clearfix.css: -------------------------------------------------------------------------------- 1 | .clearfix, 2 | .foo, 3 | .bar { 4 | *zoom: 1; 5 | } 6 | .clearfix:after, 7 | .foo:after, 8 | .bar:after { 9 | content: ''; 10 | display: block; 11 | clear: both; 12 | height: 0; 13 | } 14 | .foo { 15 | color: red; 16 | } 17 | .bar { 18 | color: blue; 19 | } 20 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/less_org_tests/less/extend-clearfix.less: -------------------------------------------------------------------------------- 1 | .clearfix { 2 | *zoom: 1; 3 | &:after { 4 | content: ''; 5 | display: block; 6 | clear: both; 7 | height: 0; 8 | } 9 | } 10 | 11 | .foo { 12 | &:extend(.clearfix all); 13 | color: red; 14 | } 15 | 16 | .bar { 17 | &:extend(.clearfix all); 18 | color: blue; 19 | } 20 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/less_org_tests/less/extend-exact.css: -------------------------------------------------------------------------------- 1 | .replace.replace .replace, 2 | .c.replace + .replace .replace, 3 | .replace.replace .c, 4 | .c.replace + .replace .c, 5 | .rep_ace { 6 | prop: copy-paste-replace; 7 | } 8 | .a .b .c { 9 | prop: not_effected; 10 | } 11 | .a, 12 | .effected { 13 | prop: is_effected; 14 | } 15 | .a .b { 16 | prop: not_effected; 17 | } 18 | .a .b.c { 19 | prop: not_effected; 20 | } 21 | .c .b .a, 22 | .a .b .a, 23 | .c .a .a, 24 | .a .a .a, 25 | .c .b .c, 26 | .a .b .c, 27 | .c .a .c, 28 | .a .a .c { 29 | prop: not_effected; 30 | } 31 | .e.e, 32 | .dbl { 33 | prop: extend-double; 34 | } 35 | .e.e:hover { 36 | hover: not-extended; 37 | } 38 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/less_org_tests/less/extend-exact.less: -------------------------------------------------------------------------------- 1 | .replace.replace, 2 | .c.replace + .replace { 3 | .replace, 4 | .c { 5 | prop: copy-paste-replace; 6 | } 7 | } 8 | .rep_ace:extend(.replace.replace .replace) {} 9 | 10 | .a .b .c { 11 | prop: not_effected; 12 | } 13 | 14 | .a { 15 | prop: is_effected; 16 | .b { 17 | prop: not_effected; 18 | } 19 | .b.c { 20 | prop: not_effected; 21 | } 22 | } 23 | 24 | .c, .a { 25 | .b, .a { 26 | .a, .c { 27 | prop: not_effected; 28 | } 29 | } 30 | } 31 | 32 | .effected { 33 | &:extend(.a); 34 | &:extend(.b); 35 | &:extend(.c); 36 | } 37 | 38 | .e { 39 | && { 40 | prop: extend-double; 41 | &:hover { 42 | hover: not-extended; 43 | } 44 | } 45 | } 46 | .dbl:extend(.e.e) {} 47 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/less_org_tests/less/extend-media.css: -------------------------------------------------------------------------------- 1 | .ext1 .ext2, 2 | .all .ext2 { 3 | background: black; 4 | } 5 | @media tv { 6 | .ext1 .ext3, 7 | .tv-lowres .ext3, 8 | .all .ext3 { 9 | color: white; 10 | } 11 | .tv-lowres { 12 | background: blue; 13 | } 14 | } 15 | @media tv and hires { 16 | .ext1 .ext4, 17 | .tv-hires .ext4, 18 | .all .ext4 { 19 | color: green; 20 | } 21 | .tv-hires { 22 | background: red; 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/less_org_tests/less/extend-media.less: -------------------------------------------------------------------------------- 1 | .ext1 .ext2 { 2 | background: black; 3 | } 4 | 5 | @media tv { 6 | .ext1 .ext3 { 7 | color: white; 8 | } 9 | .tv-lowres :extend(.ext1 all) { 10 | background: blue; 11 | } 12 | @media hires { 13 | .ext1 .ext4 { 14 | color: green; 15 | } 16 | .tv-hires :extend(.ext1 all) { 17 | background: red; 18 | } 19 | } 20 | } 21 | 22 | .all:extend(.ext1 all) { 23 | 24 | } -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/less_org_tests/less/extend-nest.less: -------------------------------------------------------------------------------- 1 | .sidebar { 2 | width: 300px; 3 | background: red; 4 | 5 | .box { 6 | background: #FFF; 7 | border: 1px solid #000; 8 | margin: 10px 0; 9 | } 10 | } 11 | 12 | .sidebar2 { 13 | &:extend(.sidebar all); 14 | background: blue; 15 | } 16 | 17 | .type1 { 18 | .sidebar3 { 19 | &:extend(.sidebar all); 20 | background: green; 21 | } 22 | } 23 | 24 | .type2 { 25 | &.sidebar4 { 26 | &:extend(.sidebar all); 27 | background: red; 28 | } 29 | } 30 | 31 | .button { 32 | color: black; 33 | &:hover { 34 | color: white; 35 | } 36 | } 37 | .submit { 38 | &:extend(.button); 39 | &:hover:extend(.button:hover) {} 40 | } 41 | 42 | .nomatch { 43 | &:hover:extend(.button :hover) {} 44 | } 45 | 46 | .button2 { 47 | :hover { 48 | nested: white; 49 | } 50 | } 51 | .button2 :hover { 52 | notnested: black; 53 | } 54 | 55 | .nomatch :extend(.button2:hover) {} 56 | 57 | .amp-test-a, 58 | .amp-test-b { 59 | .amp-test-c &.amp-test-d&.amp-test-e { 60 | .amp-test-f&+&.amp-test-g:extend(.amp-test-h) {} 61 | } 62 | } 63 | .amp-test-h { 64 | test: extended by masses of selectors; 65 | } -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/less_org_tests/less/extend-selector.css: -------------------------------------------------------------------------------- 1 | .error, 2 | .badError { 3 | border: 1px #f00; 4 | background: #fdd; 5 | } 6 | .error.intrusion, 7 | .badError.intrusion { 8 | font-size: 1.3em; 9 | font-weight: bold; 10 | } 11 | .intrusion .error, 12 | .intrusion .badError { 13 | display: none; 14 | } 15 | .badError { 16 | border-width: 3px; 17 | } 18 | .foo .bar, 19 | .foo .baz, 20 | .ext1 .ext2 .bar, 21 | .ext3 .bar, 22 | .ext4 .bar, 23 | .ext1 .ext2 .baz, 24 | .ext3 .baz, 25 | .ext4 .baz { 26 | display: none; 27 | } 28 | div.ext5, 29 | .ext6 > .ext5, 30 | div.ext7, 31 | .ext6 > .ext7 { 32 | width: 100px; 33 | } 34 | .ext, 35 | .a .c, 36 | .b .c { 37 | test: 1; 38 | } 39 | .a, 40 | .b { 41 | test: 2; 42 | } 43 | .a .c, 44 | .b .c { 45 | test: 3; 46 | } 47 | .a .c .d, 48 | .b .c .d { 49 | test: 4; 50 | } 51 | .replace.replace .replace, 52 | .c.replace + .replace .replace, 53 | .replace.replace .c, 54 | .c.replace + .replace .c, 55 | .rep_ace.rep_ace .rep_ace, 56 | .c.rep_ace + .rep_ace .rep_ace, 57 | .rep_ace.rep_ace .c, 58 | .c.rep_ace + .rep_ace .c { 59 | prop: copy-paste-replace; 60 | } 61 | .attributes [data="test"], 62 | .attributes .attributes .attribute-test { 63 | extend: attributes; 64 | } 65 | .attributes [data], 66 | .attributes .attributes .attribute-test2 { 67 | extend: attributes2; 68 | } 69 | .attributes [data="test3"], 70 | .attributes .attributes .attribute-test { 71 | extend: attributes2; 72 | } 73 | .header .header-nav, 74 | .footer .footer-nav { 75 | background: red; 76 | } 77 | .header .header-nav:before, 78 | .footer .footer-nav:before { 79 | background: blue; 80 | } 81 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/less_org_tests/less/extend-selector.less: -------------------------------------------------------------------------------- 1 | .error { 2 | border: 1px #f00; 3 | background: #fdd; 4 | } 5 | .error.intrusion { 6 | font-size: 1.3em; 7 | font-weight: bold; 8 | } 9 | .intrusion .error { 10 | display: none; 11 | } 12 | .badError:extend(.error all) { 13 | border-width: 3px; 14 | } 15 | 16 | .foo .bar, .foo .baz { 17 | display: none; 18 | } 19 | 20 | .ext1 .ext2 21 | :extend(.foo all) { 22 | } 23 | 24 | .ext3:extend(.foo all), 25 | .ext4:extend(.foo all) { 26 | } 27 | 28 | div.ext5, 29 | .ext6 > .ext5 { 30 | width: 100px; 31 | } 32 | 33 | .should-not-exist-in-output, 34 | .ext7:extend(.ext5 all) { 35 | } 36 | 37 | .ext { 38 | test: 1; 39 | } 40 | // same as 41 | // .a .c:extend(.ext all) 42 | // .b .c:extend(.ext all) 43 | // .a .c .d 44 | // .b .c .d 45 | .a, .b { 46 | test: 2; 47 | .c:extend(.ext all) { 48 | test: 3; 49 | .d { 50 | test: 4; 51 | } 52 | } 53 | } 54 | 55 | .replace.replace, 56 | .c.replace + .replace { 57 | .replace, 58 | .c { 59 | prop: copy-paste-replace; 60 | } 61 | } 62 | .rep_ace:extend(.replace all) {} 63 | 64 | .attributes { 65 | [data="test"] { 66 | extend: attributes; 67 | } 68 | .attribute-test { 69 | &:extend([data="test"] all); 70 | } 71 | [data] { 72 | extend: attributes2; 73 | } 74 | .attribute-test2 { 75 | &:extend([data] all); //you could argue it should match [data="test"]... not for now though... 76 | } 77 | @attr-data: "test3"; 78 | [data=@{attr-data}] { 79 | extend: attributes2; 80 | } 81 | .attribute-test { 82 | &:extend([data="test3"] all); 83 | } 84 | } 85 | 86 | .header { 87 | .header-nav { 88 | background: red; 89 | &:before { 90 | background: blue; 91 | } 92 | } 93 | } 94 | 95 | .footer { 96 | .footer-nav { 97 | &:extend( .header .header-nav all ); 98 | } 99 | } -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/less_org_tests/less/extend.css: -------------------------------------------------------------------------------- 1 | .error, 2 | .badError { 3 | border: 1px #f00; 4 | background: #fdd; 5 | } 6 | .error.intrusion, 7 | .badError.intrusion { 8 | font-size: 1.3em; 9 | font-weight: bold; 10 | } 11 | .intrusion .error, 12 | .intrusion .badError { 13 | display: none; 14 | } 15 | .badError { 16 | border-width: 3px; 17 | } 18 | .foo .bar, 19 | .foo .baz, 20 | .ext1 .ext2 .bar, 21 | .ext3 .bar, 22 | .ext4 .bar, 23 | .foo .ext3, 24 | .foo .ext4, 25 | .ext1 .ext2 .baz, 26 | .ext3 .baz, 27 | .ext4 .baz { 28 | display: none; 29 | } 30 | div.ext5, 31 | .ext6 > .ext5, 32 | div.ext7, 33 | .ext6 > .ext7 { 34 | width: 100px; 35 | } 36 | .ext8.ext9, 37 | .fuu { 38 | result: add-foo; 39 | } 40 | .ext8 .ext9, 41 | .ext8 + .ext9, 42 | .ext8 > .ext9, 43 | .buu, 44 | .zap, 45 | .zoo { 46 | result: bar-matched; 47 | } 48 | .ext8.nomatch { 49 | result: none; 50 | } 51 | .ext8 .ext9, 52 | .buu { 53 | result: match-nested-bar; 54 | } 55 | .ext8.ext9, 56 | .fuu { 57 | result: match-nested-foo; 58 | } 59 | .aa, 60 | .cc { 61 | color: black; 62 | } 63 | .aa .dd, 64 | .aa .ee { 65 | background: red; 66 | } 67 | .bb, 68 | .cc, 69 | .ee, 70 | .ff { 71 | background: red; 72 | } 73 | .bb .bb, 74 | .ff .ff { 75 | color: black; 76 | } 77 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/less_org_tests/less/extend.less: -------------------------------------------------------------------------------- 1 | .error { 2 | border: 1px #f00; 3 | background: #fdd; 4 | } 5 | .error.intrusion { 6 | font-size: 1.3em; 7 | font-weight: bold; 8 | } 9 | .intrusion .error { 10 | display: none; 11 | } 12 | .badError { 13 | &:extend(.error all); 14 | border-width: 3px; 15 | } 16 | 17 | .foo .bar, .foo .baz { 18 | display: none; 19 | } 20 | 21 | .ext1 .ext2 { 22 | &:extend(.foo all); 23 | } 24 | 25 | .ext3, 26 | .ext4 { 27 | &:extend(.foo all); 28 | &:extend(.bar all); 29 | } 30 | 31 | div.ext5, 32 | .ext6 > .ext5 { 33 | width: 100px; 34 | } 35 | 36 | .ext7 { 37 | &:extend(.ext5 all); 38 | } 39 | 40 | .ext8.ext9 { 41 | result: add-foo; 42 | } 43 | .ext8 .ext9, 44 | .ext8 + .ext9, 45 | .ext8 > .ext9 { 46 | result: bar-matched; 47 | } 48 | .ext8.nomatch { 49 | result: none; 50 | } 51 | .ext8 { 52 | .ext9 { 53 | result: match-nested-bar; 54 | } 55 | } 56 | .ext8 { 57 | &.ext9 { 58 | result: match-nested-foo; 59 | } 60 | } 61 | 62 | .fuu:extend(.ext8.ext9 all) {} 63 | .buu:extend(.ext8 .ext9 all) {} 64 | .zap:extend(.ext8 + .ext9 all) {} 65 | .zoo:extend(.ext8 > .ext9 all) {} 66 | 67 | .aa { 68 | color: black; 69 | .dd { 70 | background: red; 71 | } 72 | } 73 | .bb { 74 | background: red; 75 | .bb { 76 | color: black; 77 | } 78 | } 79 | .cc:extend(.aa,.bb) {} 80 | .ee:extend(.dd all,.bb) {} 81 | .ff:extend(.dd,.bb all) {} -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/less_org_tests/less/ie-filters.css: -------------------------------------------------------------------------------- 1 | .nav { 2 | filter: progid:DXImageTransform.Microsoft.Alpha(opacity=20); 3 | filter: progid:DXImageTransform.Microsoft.Alpha(opacity=0); 4 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr="#333333", endColorstr="#000000", GradientType=0); 5 | } 6 | .evalTest1 { 7 | filter: progid:DXImageTransform.Microsoft.Alpha(opacity=30); 8 | filter: progid:DXImageTransform.Microsoft.Alpha(opacity=5); 9 | } 10 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/less_org_tests/less/ie-filters.less: -------------------------------------------------------------------------------- 1 | @fat: 0; 2 | @cloudhead: "#000000"; 3 | 4 | .nav { 5 | filter: progid:DXImageTransform.Microsoft.Alpha(opacity = 20); 6 | filter: progid:DXImageTransform.Microsoft.Alpha(opacity=@fat); 7 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr="#333333", endColorstr=@cloudhead, GradientType=@fat); 8 | } 9 | .evalTest(@arg) { 10 | filter: progid:DXImageTransform.Microsoft.Alpha(opacity=@arg); 11 | } 12 | .evalTest1 { 13 | .evalTest(30); 14 | .evalTest(5); 15 | } -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/less_org_tests/less/import-inline.css: -------------------------------------------------------------------------------- 1 | @media (min-width:600px) { 2 | #css { color: yellow; } 3 | 4 | } 5 | @media (pointer: coarse) { 6 | .ql-snow.ql-toolbar button:hover:not(.ql-active), 7 | } 8 | this isn't very valid CSS. 9 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/less_org_tests/less/import-inline.less: -------------------------------------------------------------------------------- 1 | @import (inline) url("import/import-test-d.css") (min-width:600px); 2 | @import (inline, css) url("import/invalid-css.less"); -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/less_org_tests/less/import-interpolation.css: -------------------------------------------------------------------------------- 1 | body { 2 | width: 100%; 3 | } 4 | .a { 5 | var: test; 6 | } 7 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/less_org_tests/less/import-interpolation.less: -------------------------------------------------------------------------------- 1 | @my_theme: "test"; 2 | 3 | @import "import/import-@{my_theme}-e.less"; 4 | 5 | @import "import/import-@{in}@{terpolation}.less"; 6 | 7 | @in: "in"; 8 | @terpolation: "terpolation"; -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/less_org_tests/less/import-once.css: -------------------------------------------------------------------------------- 1 | #import { 2 | color: red; 3 | } 4 | body { 5 | width: 100%; 6 | } 7 | .test-f { 8 | height: 10px; 9 | } 10 | body { 11 | width: 100%; 12 | } 13 | .test-f { 14 | height: 10px; 15 | } 16 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/less_org_tests/less/import-once.less: -------------------------------------------------------------------------------- 1 | @import "import/import-once-test-c"; 2 | @import "import/import-once-test-c"; 3 | @import "import/import-once-test-c.less"; 4 | @import "import/deeper/import-once-test-a"; 5 | @import (multiple) "import/import-test-f.less"; 6 | @import (multiple) "import/import-test-f.less"; -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/less_org_tests/less/import.css: -------------------------------------------------------------------------------- 1 | @import url(http://fonts.googleapis.com/css?family=Open+Sans); 2 | @import url(/absolute/something.css) screen and (color) and (max-width: 600px); 3 | @import url("//ha.com/file.css") (min-width:100px); 4 | #import-test { 5 | height: 10px; 6 | color: red; 7 | width: 10px; 8 | height: 30%; 9 | } 10 | @media screen and (max-width: 600px) { 11 | body { 12 | width: 100%; 13 | } 14 | } 15 | #import { 16 | color: red; 17 | } 18 | .mixin { 19 | height: 10px; 20 | color: red; 21 | } 22 | @media screen and (max-width: 601px) { 23 | #css { 24 | color: yellow; 25 | } 26 | } 27 | @media screen and (max-width: 602px) { 28 | body { 29 | width: 100%; 30 | } 31 | } 32 | @media screen and (max-width: 603px) { 33 | #css { 34 | color: yellow; 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/less_org_tests/less/import.less: -------------------------------------------------------------------------------- 1 | @import url(http://fonts.googleapis.com/css?family=Open+Sans); 2 | 3 | @import url(/absolute/something.css) screen and (color) and (max-width: 600px); 4 | 5 | @var: 100px; 6 | @import url("//ha.com/file.css") (min-width:@var); 7 | 8 | #import-test { 9 | .mixin; 10 | width: 10px; 11 | height: (@a + 10%); 12 | } 13 | @import "import/import-test-e" screen and (max-width: 600px); 14 | 15 | @import url("import/import-test-a.less"); 16 | 17 | @import (less, multiple) "import/import-test-d.css" screen and (max-width: 601px); 18 | 19 | @import (multiple) "import/import-test-e" screen and (max-width: 602px); 20 | 21 | @import (less, multiple) url("import/import-test-d.css") screen and (max-width: 603px); -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/less_org_tests/less/import/deeper/import-once-test-a.less: -------------------------------------------------------------------------------- 1 | @import "../import-once-test-c"; -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/less_org_tests/less/import/import-and-relative-paths-test.less: -------------------------------------------------------------------------------- 1 | @import "../css/background.css"; 2 | @import "import-test-d.css"; 3 | 4 | @import "imports/logo"; 5 | @import "imports/font"; 6 | 7 | .unquoted-relative-path-bg() { 8 | background-image: url(../../data/image.jpg); 9 | } 10 | .quoted-relative-path-border-image() { 11 | border-image: url('../../data/image.jpg'); 12 | } 13 | 14 | #imported-relative-path { 15 | .unquoted-relative-path-bg; 16 | .quoted-relative-path-border-image; 17 | } -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/less_org_tests/less/import/import-charset-test.less: -------------------------------------------------------------------------------- 1 | @charset "ISO-8859-1"; -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/less_org_tests/less/import/import-interpolation.less: -------------------------------------------------------------------------------- 1 | @import "import-@{in}@{terpolation}2.less"; -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/less_org_tests/less/import/import-interpolation2.less: -------------------------------------------------------------------------------- 1 | .a { 2 | var: test; 3 | } 4 | 5 | @in: "redefined-does-nothing"; -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/less_org_tests/less/import/import-once-test-c.less: -------------------------------------------------------------------------------- 1 | 2 | @c: red; 3 | 4 | #import { 5 | color: @c; 6 | } 7 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/less_org_tests/less/import/import-reference.less: -------------------------------------------------------------------------------- 1 | .z { 2 | color: red; 3 | .c { 4 | color: green; 5 | } 6 | } 7 | .only-with-visible, 8 | .z { 9 | color: green; 10 | &:hover { 11 | color: green; 12 | } 13 | & { 14 | color: green; 15 | } 16 | & + & { 17 | color: green; 18 | .sub { 19 | color: green; 20 | } 21 | } 22 | } 23 | 24 | & { 25 | .hidden { 26 | hidden: true; 27 | } 28 | } 29 | 30 | @media tv { 31 | .hidden { 32 | hidden: true; 33 | } 34 | } 35 | 36 | /* comment is not output */ 37 | 38 | .zz { 39 | .y { 40 | pulled-in: yes; 41 | } 42 | /* comment pulled in */ 43 | } 44 | @max-size: 450px; 45 | .mixin-with-mediaq(@num) { 46 | color: green; 47 | test: @num; 48 | @media (max-size: @max-size) { 49 | color: red; 50 | } 51 | } -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/less_org_tests/less/import/import-test-a.less: -------------------------------------------------------------------------------- 1 | @import "import-test-b.less"; 2 | @a: 20%; 3 | @import "urls.less"; -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/less_org_tests/less/import/import-test-b.less: -------------------------------------------------------------------------------- 1 | @import "import-test-c"; 2 | 3 | @b: 100%; 4 | 5 | .mixin { 6 | height: 10px; 7 | color: @c; 8 | } 9 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/less_org_tests/less/import/import-test-c.less: -------------------------------------------------------------------------------- 1 | 2 | @c: red; 3 | 4 | #import { 5 | color: @c; 6 | } 7 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/less_org_tests/less/import/import-test-d.css: -------------------------------------------------------------------------------- 1 | #css { color: yellow; } 2 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/less_org_tests/less/import/import-test-e.less: -------------------------------------------------------------------------------- 1 | 2 | body { width: 100% } 3 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/less_org_tests/less/import/import-test-f.less: -------------------------------------------------------------------------------- 1 | @import "import-test-e"; 2 | 3 | .test-f { 4 | height: 10px; 5 | } 6 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/less_org_tests/less/import/imports/font.less: -------------------------------------------------------------------------------- 1 | @font-face { 2 | font-family: xecret; 3 | src: url('../assets/xecret.ttf'); 4 | } 5 | 6 | #secret { 7 | font-family: xecret, sans-serif; 8 | } 9 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/less_org_tests/less/import/imports/logo.less: -------------------------------------------------------------------------------- 1 | #logo { 2 | width: 100px; 3 | height: 100px; 4 | background: url('../assets/logo.png'); 5 | } 6 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/less_org_tests/less/import/invalid-css.less: -------------------------------------------------------------------------------- 1 | @media (pointer: coarse) { 2 | .ql-snow.ql-toolbar button:hover:not(.ql-active), 3 | } 4 | this isn't very valid CSS. -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/less_org_tests/less/import/urls.less: -------------------------------------------------------------------------------- 1 | // empty file showing that it loads from the relative path first 2 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/less_org_tests/less/javascript.css: -------------------------------------------------------------------------------- 1 | .eval { 2 | js: 42; 3 | js: 2; 4 | js: "hello world"; 5 | js: 1, 2, 3; 6 | title: "string"; 7 | ternary: true; 8 | multiline: 2; 9 | } 10 | .scope { 11 | var: 42; 12 | escaped: 7px; 13 | } 14 | .vars { 15 | width: 8; 16 | } 17 | .escape-interpol { 18 | width: hello world; 19 | } 20 | .arrays { 21 | ary: "1, 2, 3"; 22 | ary1: "1, 2, 3"; 23 | } 24 | .test-tran { 25 | 1: opacity 0.3s ease-in 0.3s, max-height 0.6s linear, margin-bottom 0.4s linear; 26 | 2: [opacity 0.3s ease-in 0.3s, max-height 0.6s linear, margin-bottom 0.4s linear]; 27 | 3: opacity 0.3s ease-in 0.3s, max-height 0.6s linear, margin-bottom 0.4s linear; 28 | } 29 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/less_org_tests/less/javascript.less: -------------------------------------------------------------------------------- 1 | .eval { 2 | js: `42`; 3 | js: `1 + 1`; 4 | js: `"hello world"`; 5 | js: `[1, 2, 3]`; 6 | title: `typeof "process.title"`; 7 | ternary: `(1 + 1 == 2 ? true : false)`; 8 | multiline: `(function(){var x = 1 + 1; 9 | return x})()`; 10 | } 11 | .scope { 12 | @foo: 42; 13 | var: `parseInt(this.foo.toJS())`; 14 | escaped: ~`2 + 5 + 'px'`; 15 | } 16 | .vars { 17 | @var: `4 + 4`; 18 | width: @var; 19 | } 20 | .escape-interpol { 21 | @world: "world"; 22 | width: ~`"hello" + " " + @{world}`; 23 | } 24 | .arrays { 25 | @ary: 1, 2, 3; 26 | @ary2: 1 2 3; 27 | ary: `@{ary}.join(', ')`; 28 | ary1: `@{ary2}.join(', ')`; 29 | } 30 | .transitions(...) { 31 | @arg: ~`"@{arguments}".replace(/[\[\]]*/g, '')`; 32 | 1: @arg; // rounded to integers 33 | 2: ~`"@{arguments}"`; // rounded to integers 34 | 3: @arguments; // OK 35 | } 36 | .test-tran { 37 | .transitions(opacity 0.3s ease-in 0.3s, max-height 0.6s linear, margin-bottom 0.4s linear;); 38 | } 39 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/less_org_tests/less/lazy-eval.css: -------------------------------------------------------------------------------- 1 | .lazy-eval { 2 | width: 100%; 3 | } 4 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/less_org_tests/less/lazy-eval.less: -------------------------------------------------------------------------------- 1 | @var: @a; 2 | @a: 100%; 3 | 4 | .lazy-eval { 5 | width: @var; 6 | } 7 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/less_org_tests/less/legacy/legacy.css: -------------------------------------------------------------------------------- 1 | @media (-o-min-device-pixel-ratio: 2/1) { 2 | .test-math-and-units { 3 | font: ignores 0/0 rules; 4 | test-division: 7em; 5 | simple: 2px; 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/less_org_tests/less/legacy/legacy.less: -------------------------------------------------------------------------------- 1 | @media (-o-min-device-pixel-ratio: 2/1) { 2 | .test-math-and-units { 3 | font: ignores 0/0 rules; 4 | test-division: 4 / 2 + 5em; 5 | simple: 1px + 1px; 6 | } 7 | } -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/less_org_tests/less/mixins-important.css: -------------------------------------------------------------------------------- 1 | .class { 2 | border: 1; 3 | boxer: 1; 4 | border-width: 1; 5 | border: 2 !important; 6 | boxer: 2 !important; 7 | border-width: 2 !important; 8 | border: 3; 9 | boxer: 3; 10 | border-width: 3; 11 | border: 4 !important; 12 | boxer: 4 !important; 13 | border-width: 4 !important; 14 | border: 5; 15 | boxer: 5; 16 | border-width: 5; 17 | border: 0 !important; 18 | boxer: 0 !important; 19 | border-width: 0 !important; 20 | border: 9 !important; 21 | border: 9; 22 | boxer: 9; 23 | border-width: 9; 24 | } 25 | .class .inner { 26 | test: 1; 27 | test: 2 !important; 28 | test: 3; 29 | test: 4 !important; 30 | test: 5; 31 | test: 0 !important; 32 | test: 9; 33 | } 34 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/less_org_tests/less/mixins-important.less: -------------------------------------------------------------------------------- 1 | .submixin(@a) { 2 | border-width: @a; 3 | } 4 | .mixin (9) { 5 | border: 9 !important; 6 | } 7 | .mixin (@a: 0) { 8 | border: @a; 9 | boxer: @a; 10 | .inner { 11 | test: @a; 12 | } 13 | // comment 14 | .submixin(@a); 15 | } 16 | 17 | .class { 18 | .mixin(1); 19 | .mixin(2) !important; 20 | .mixin(3); 21 | .mixin(4) !important; 22 | .mixin(5); 23 | .mixin !important; 24 | .mixin(9); 25 | } 26 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/less_org_tests/less/mixins-named-args.css: -------------------------------------------------------------------------------- 1 | .named-arg { 2 | color: blue; 3 | width: 5px; 4 | height: 99%; 5 | args: 1px 100%; 6 | text-align: center; 7 | } 8 | .class { 9 | width: 5px; 10 | height: 19%; 11 | args: 1px 20%; 12 | } 13 | .all-args-wrong-args { 14 | width: 10px; 15 | height: 9%; 16 | args: 2px 10%; 17 | } 18 | .named-args2 { 19 | width: 15px; 20 | height: 49%; 21 | color: #646464; 22 | } 23 | .named-args3 { 24 | width: 5px; 25 | height: 29%; 26 | color: #123456; 27 | } 28 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/less_org_tests/less/mixins-named-args.less: -------------------------------------------------------------------------------- 1 | .mixin (@a: 1px, @b: 50%) { 2 | width: (@a * 5); 3 | height: (@b - 1%); 4 | args: @arguments; 5 | } 6 | .mixin (@a: 1px, @b: 50%) when (@b > 75%){ 7 | text-align: center; 8 | } 9 | 10 | .named-arg { 11 | color: blue; 12 | .mixin(@b: 100%); 13 | } 14 | 15 | .class { 16 | @var: 20%; 17 | .mixin(@b: @var); 18 | } 19 | 20 | .all-args-wrong-args { 21 | .mixin(@b: 10%, @a: 2px); 22 | } 23 | 24 | .mixin2 (@a: 1px, @b: 50%, @c: 50) { 25 | width: (@a * 5); 26 | height: (@b - 1%); 27 | color: (#000000 + @c); 28 | } 29 | 30 | .named-args2 { 31 | .mixin2(3px, @c: 100); 32 | } 33 | 34 | .named-args3 { 35 | .mixin2(@b: 30%, @c: #123456); 36 | } -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/less_org_tests/less/mixins-nested.css: -------------------------------------------------------------------------------- 1 | .class .inner { 2 | height: 300; 3 | } 4 | .class .inner .innest { 5 | width: 30; 6 | border-width: 60; 7 | } 8 | .class2 .inner { 9 | height: 600; 10 | } 11 | .class2 .inner .innest { 12 | width: 60; 13 | border-width: 120; 14 | } 15 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/less_org_tests/less/mixins-nested.less: -------------------------------------------------------------------------------- 1 | .mix-inner (@var) { 2 | border-width: @var; 3 | } 4 | 5 | .mix (@a: 10) { 6 | .inner { 7 | height: (@a * 10); 8 | 9 | .innest { 10 | width: @a; 11 | .mix-inner((@a * 2)); 12 | } 13 | } 14 | } 15 | 16 | .class { 17 | .mix(30); 18 | } 19 | 20 | .class2 { 21 | .mix(60); 22 | } 23 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/less_org_tests/less/mixins-pattern.css: -------------------------------------------------------------------------------- 1 | .zero { 2 | variadic: true; 3 | named-variadic: true; 4 | zero: 0; 5 | one: 1; 6 | two: 2; 7 | three: 3; 8 | } 9 | .one { 10 | variadic: true; 11 | named-variadic: true; 12 | one: 1; 13 | one-req: 1; 14 | two: 2; 15 | three: 3; 16 | } 17 | .two { 18 | variadic: true; 19 | named-variadic: true; 20 | two: 2; 21 | three: 3; 22 | } 23 | .three { 24 | variadic: true; 25 | named-variadic: true; 26 | three-req: 3; 27 | three: 3; 28 | } 29 | .left { 30 | left: 1; 31 | } 32 | .right { 33 | right: 1; 34 | } 35 | .border-right { 36 | color: black; 37 | border-right: 4px; 38 | } 39 | .border-left { 40 | color: black; 41 | border-left: 4px; 42 | } 43 | .only-right { 44 | right: 33; 45 | } 46 | .only-left { 47 | left: 33; 48 | } 49 | .left-right { 50 | both: 330; 51 | } 52 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/less_org_tests/less/mixins-pattern.less: -------------------------------------------------------------------------------- 1 | .mixin (...) { 2 | variadic: true; 3 | } 4 | .mixin (@a...) { 5 | named-variadic: true; 6 | } 7 | .mixin () { 8 | zero: 0; 9 | } 10 | .mixin (@a: 1px) { 11 | one: 1; 12 | } 13 | .mixin (@a) { 14 | one-req: 1; 15 | } 16 | .mixin (@a: 1px, @b: 2px) { 17 | two: 2; 18 | } 19 | 20 | .mixin (@a, @b, @c) { 21 | three-req: 3; 22 | } 23 | 24 | .mixin (@a: 1px, @b: 2px, @c: 3px) { 25 | three: 3; 26 | } 27 | 28 | .zero { 29 | .mixin(); 30 | } 31 | 32 | .one { 33 | .mixin(1); 34 | } 35 | 36 | .two { 37 | .mixin(1, 2); 38 | } 39 | 40 | .three { 41 | .mixin(1, 2, 3); 42 | } 43 | 44 | // 45 | 46 | .mixout ('left') { 47 | left: 1; 48 | } 49 | 50 | .mixout ('right') { 51 | right: 1; 52 | } 53 | 54 | .left { 55 | .mixout('left'); 56 | } 57 | .right { 58 | .mixout('right'); 59 | } 60 | 61 | // 62 | 63 | .border (@side, @width) { 64 | color: black; 65 | .border-side(@side, @width); 66 | } 67 | .border-side (left, @w) { 68 | border-left: @w; 69 | } 70 | .border-side (right, @w) { 71 | border-right: @w; 72 | } 73 | 74 | .border-right { 75 | .border(right, 4px); 76 | } 77 | .border-left { 78 | .border(left, 4px); 79 | } 80 | 81 | // 82 | 83 | 84 | .border-radius (@r) { 85 | both: (@r * 10); 86 | } 87 | .border-radius (@r, left) { 88 | left: @r; 89 | } 90 | .border-radius (@r, right) { 91 | right: @r; 92 | } 93 | 94 | .only-right { 95 | .border-radius(33, right); 96 | } 97 | .only-left { 98 | .border-radius(33, left); 99 | } 100 | .left-right { 101 | .border-radius(33); 102 | } 103 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/less_org_tests/less/no-output.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/i-net-software/jlessc/78cbb93bec45d7992b34565f8ff6a5265b7fc49e/test/com/inet/lib/less/samples/less_org_tests/less/no-output.css -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/less_org_tests/less/no-output.less: -------------------------------------------------------------------------------- 1 | .mixin() { 2 | } -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/less_org_tests/less/operations.css: -------------------------------------------------------------------------------- 1 | #operations { 2 | color: #111111; 3 | height: 9px; 4 | width: 3em; 5 | substraction: 0; 6 | division: 1; 7 | } 8 | #operations .spacing { 9 | height: 9px; 10 | width: 3em; 11 | } 12 | .with-variables { 13 | height: 16em; 14 | width: 24em; 15 | size: 1cm; 16 | } 17 | .with-functions { 18 | color: #646464; 19 | color: #ff8080; 20 | color: #c94a4a; 21 | } 22 | .negative { 23 | height: 0px; 24 | width: 4px; 25 | } 26 | .shorthands { 27 | padding: -1px 2px 0 -4px; 28 | } 29 | .rem-dimensions { 30 | font-size: 5.5rem; 31 | } 32 | .colors { 33 | color: #123; 34 | border-color: #334455; 35 | background-color: #000000; 36 | } 37 | .colors .other { 38 | color: #222222; 39 | border-color: #222222; 40 | } 41 | .negations { 42 | variable: -4px; 43 | variable1: 0px; 44 | variable2: 0px; 45 | variable3: 8px; 46 | variable4: 0px; 47 | paren: -4px; 48 | paren2: 16px; 49 | } 50 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/less_org_tests/less/operations.less: -------------------------------------------------------------------------------- 1 | #operations { 2 | color: (#110000 + #000011 + #001100); // #111111 3 | height: (10px / 2px + 6px - 1px * 2); // 9px 4 | width: (2 * 4 - 5em); // 3em 5 | .spacing { 6 | height: (10px / 2px+6px-1px*2); 7 | width: (2 * 4-5em); 8 | } 9 | substraction: (20 - 10 - 5 - 5); // 0 10 | division: (20 / 5 / 4); // 1 11 | } 12 | 13 | @x: 4; 14 | @y: 12em; 15 | 16 | .with-variables { 17 | height: (@x + @y); // 16em 18 | width: (12 + @y); // 24em 19 | size: (5cm - @x); // 1cm 20 | } 21 | 22 | .with-functions { 23 | color: (rgb(200, 200, 200) / 2); 24 | color: (2 * hsl(0, 50%, 50%)); 25 | color: (rgb(10, 10, 10) + hsl(0, 50%, 50%)); 26 | } 27 | 28 | @z: -2; 29 | 30 | .negative { 31 | height: (2px + @z); // 0px 32 | width: (2px - @z); // 4px 33 | } 34 | 35 | .shorthands { 36 | padding: -1px 2px 0 -4px; // 37 | } 38 | 39 | .rem-dimensions { 40 | font-size: (20rem / 5 + 1.5rem); // 5.5rem 41 | } 42 | 43 | .colors { 44 | color: #123; // #112233 45 | border-color: (#234 + #111111); // #334455 46 | background-color: (#222222 - #fff); // #000000 47 | .other { 48 | color: (2 * #111); // #222222 49 | border-color: (#333333 / 3 + #111); // #222222 50 | } 51 | } 52 | 53 | .negations { 54 | @var: 4px; 55 | variable: (-@var); // 4 56 | variable1: (-@var + @var); // 0 57 | variable2: (@var + -@var); // 0 58 | variable3: (@var - -@var); // 8 59 | variable4: (-@var - -@var); // 0 60 | paren: (-(@var)); // -4px 61 | paren2: (-(2 + 2) * -@var); // 16 62 | } 63 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/less_org_tests/less/parens.css: -------------------------------------------------------------------------------- 1 | .parens { 2 | border: 2px solid black; 3 | margin: 1px 3px 16 3; 4 | width: 36; 5 | padding: 2px 36px; 6 | } 7 | .more-parens { 8 | padding: 8 4 4 4px; 9 | width-all: 96; 10 | width-first: 96; 11 | width-keep: 96; 12 | height-keep: 113; 13 | height-all: 113; 14 | height-parts: 113; 15 | margin-keep: 12; 16 | margin-parts: 12; 17 | margin-all: 12; 18 | border-radius-keep: 5px; 19 | border-radius-parts: 1.14285714px; 20 | border-radius-all: 5px; 21 | } 22 | .negative { 23 | neg-var: -1; 24 | neg-var-paren: -1; 25 | } 26 | .nested-parens { 27 | width: 71; 28 | height: 6; 29 | } 30 | .mixed-units { 31 | margin: 2px 4em 1 5pc; 32 | padding: 6px 1em 2px 2; 33 | } 34 | .test-false-negatives { 35 | a: (; 36 | } 37 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/less_org_tests/less/parens.less: -------------------------------------------------------------------------------- 1 | .parens { 2 | @var: 1px; 3 | border: (@var * 2) solid black; 4 | margin: (@var * 1) (@var + 2) (4 * 4) 3; 5 | width: (6 * 6); 6 | padding: 2px (6 * 6px); 7 | } 8 | 9 | .more-parens { 10 | @var: (2 * 2); 11 | padding: (2 * @var) 4 4 (@var * 1px); 12 | width-all: ((@var * @var) * 6); 13 | width-first: ((@var * @var)) * 6; 14 | width-keep: (@var * @var) * 6; 15 | height-keep: (7 * 7) + (8 * 8); 16 | height-all: ((7 * 7) + (8 * 8)); 17 | height-parts: ((7 * 7)) + ((8 * 8)); 18 | margin-keep: (4 * (5 + 5) / 2) - (@var * 2); 19 | margin-parts: ((4 * (5 + 5) / 2)) - ((@var * 2)); 20 | margin-all: ((4 * (5 + 5) / 2) + (-(@var * 2))); 21 | border-radius-keep: 4px * (1 + 1) / @var + 3px; 22 | border-radius-parts: ((4px * (1 + 1))) / ((@var + 3px)); 23 | border-radius-all: (4px * (1 + 1) / @var + 3px); 24 | //margin: (6 * 6)px; 25 | } 26 | 27 | .negative { 28 | @var: 1; 29 | neg-var: -@var; // -1 ? 30 | neg-var-paren: -(@var); // -(1) ? 31 | } 32 | 33 | .nested-parens { 34 | width: 2 * (4 * (2 + (1 + 6))) - 1; 35 | height: ((2 + 3) * (2 + 3) / (9 - 4)) + 1; 36 | } 37 | 38 | .mixed-units { 39 | margin: 2px 4em 1 5pc; 40 | padding: (2px + 4px) 1em 2px 2; 41 | } 42 | 43 | .test-false-negatives { 44 | a: ~"("; 45 | } 46 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/less_org_tests/less/rulesets.css: -------------------------------------------------------------------------------- 1 | #first > .one { 2 | font-size: 2em; 3 | } 4 | #first > .one > #second .two > #deux { 5 | width: 50%; 6 | } 7 | #first > .one > #second .two > #deux #third { 8 | height: 100%; 9 | } 10 | #first > .one > #second .two > #deux #third:focus { 11 | color: black; 12 | } 13 | #first > .one > #second .two > #deux #third:focus #fifth > #sixth .seventh #eighth + #ninth { 14 | color: purple; 15 | } 16 | #first > .one > #second .two > #deux #fourth, 17 | #first > .one > #second .two > #deux #five, 18 | #first > .one > #second .two > #deux #six { 19 | color: #110000; 20 | } 21 | #first > .one > #second .two > #deux #fourth .seven, 22 | #first > .one > #second .two > #deux #five .seven, 23 | #first > .one > #second .two > #deux #six .seven, 24 | #first > .one > #second .two > #deux #fourth .eight > #nine, 25 | #first > .one > #second .two > #deux #five .eight > #nine, 26 | #first > .one > #second .two > #deux #six .eight > #nine { 27 | border: 1px solid black; 28 | } 29 | #first > .one > #second .two > #deux #fourth #ten, 30 | #first > .one > #second .two > #deux #five #ten, 31 | #first > .one > #second .two > #deux #six #ten { 32 | color: red; 33 | } 34 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/less_org_tests/less/rulesets.less: -------------------------------------------------------------------------------- 1 | #first > .one { 2 | > #second .two > #deux { 3 | width: 50%; 4 | #third { 5 | &:focus { 6 | color: black; 7 | #fifth { 8 | > #sixth { 9 | .seventh #eighth { 10 | + #ninth { 11 | color: purple; 12 | } 13 | } 14 | } 15 | } 16 | } 17 | height: 100%; 18 | } 19 | #fourth, #five, #six { 20 | color: #110000; 21 | .seven, .eight > #nine { 22 | border: 1px solid black; 23 | } 24 | #ten { 25 | color: red; 26 | } 27 | } 28 | } 29 | font-size: 2em; 30 | } 31 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/less_org_tests/less/static-urls/urls.css: -------------------------------------------------------------------------------- 1 | @import "../css/background.css"; 2 | @import "import-test-d.css"; 3 | @font-face { 4 | src: url("/fonts/garamond-pro.ttf"); 5 | src: local(Futura-Medium), url(fonts.svg#MyGeometricModern) format("svg"); 6 | } 7 | #shorthands { 8 | background: url("http://www.lesscss.org/spec.html") no-repeat 0 4px; 9 | } 10 | #misc { 11 | background-image: url(images/image.jpg); 12 | } 13 | #data-uri { 14 | background: url(data:image/png;charset=utf-8;base64, 15 | kiVBORw0KGgoAAAANSUhEUgAAABAAAAAQAQMAAAAlPW0iAAAABlBMVEUAAAD/ 16 | k//+l2Z/dAAAAM0lEQVR4nGP4/5/h/1+G/58ZDrAz3D/McH8yw83NDDeNGe4U 17 | kg9C9zwz3gVLMDA/A6P9/AFGGFyjOXZtQAAAAAElFTkSuQmCC); 18 | background-image: url(data:image/x-png,f9difSSFIIGFIFJD1f982FSDKAA9==); 19 | background-image: url(http://fonts.googleapis.com/css?family=\"Rokkitt\":\(400\),700); 20 | } 21 | #svg-data-uri { 22 | background: transparent url('data:image/svg+xml, '); 23 | } 24 | .comma-delimited { 25 | background: url(bg.jpg) no-repeat, url(bg.png) repeat-x top left, url(bg); 26 | } 27 | .values { 28 | url: url('Trebuchet'); 29 | } 30 | #logo { 31 | width: 100px; 32 | height: 100px; 33 | background: url('../assets/logo.png'); 34 | } 35 | @font-face { 36 | font-family: xecret; 37 | src: url('../assets/xecret.ttf'); 38 | } 39 | #secret { 40 | font-family: xecret, sans-serif; 41 | } 42 | #imported-relative-path { 43 | background-image: url(../../data/image.jpg); 44 | border-image: url('../../data/image.jpg'); 45 | } 46 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/less_org_tests/less/static-urls/urls.less: -------------------------------------------------------------------------------- 1 | @font-face { 2 | src: url("/fonts/garamond-pro.ttf"); 3 | src: local(Futura-Medium), 4 | url(fonts.svg#MyGeometricModern) format("svg"); 5 | } 6 | #shorthands { 7 | background: url("http://www.lesscss.org/spec.html") no-repeat 0 4px; 8 | } 9 | #misc { 10 | background-image: url(images/image.jpg); 11 | } 12 | #data-uri { 13 | background: url(data:image/png;charset=utf-8;base64, 14 | kiVBORw0KGgoAAAANSUhEUgAAABAAAAAQAQMAAAAlPW0iAAAABlBMVEUAAAD/ 15 | k//+l2Z/dAAAAM0lEQVR4nGP4/5/h/1+G/58ZDrAz3D/McH8yw83NDDeNGe4U 16 | kg9C9zwz3gVLMDA/A6P9/AFGGFyjOXZtQAAAAAElFTkSuQmCC); 17 | background-image: url(data:image/x-png,f9difSSFIIGFIFJD1f982FSDKAA9==); 18 | background-image: url(http://fonts.googleapis.com/css?family=\"Rokkitt\":\(400\),700); 19 | } 20 | 21 | #svg-data-uri { 22 | background: transparent url('data:image/svg+xml, '); 23 | } 24 | 25 | .comma-delimited { 26 | background: url(bg.jpg) no-repeat, url(bg.png) repeat-x top left, url(bg); 27 | } 28 | .values { 29 | @a: 'Trebuchet'; 30 | url: url(@a); 31 | } 32 | 33 | @import "../import/import-and-relative-paths-test"; 34 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/less_org_tests/less/strings.css: -------------------------------------------------------------------------------- 1 | #strings { 2 | doubleEscape: "\\"; 3 | doubleEscapeVar: "\\"; 4 | background-image: url("http://son-of-a-banana.com"); 5 | quotes: "~" "~"; 6 | content: "#*%:&^,)!.(~*})"; 7 | empty: ""; 8 | brackets: "{" "}"; 9 | escapes: "\"hello\" \\world"; 10 | escapes2: "\"llo"; 11 | } 12 | #comments { 13 | content: "/* hello */ // not-so-secret"; 14 | } 15 | #single-quote { 16 | quotes: "'" "'"; 17 | content: '""#!&""'; 18 | empty: ''; 19 | semi-colon: ';'; 20 | } 21 | #escaped { 22 | filter: DX.Transform.MS.BS.filter(opacity=50); 23 | } 24 | #one-line { 25 | image: url(http://tooks.com); 26 | } 27 | #crazy { 28 | image: url(http://), "}", url("http://}"); 29 | } 30 | #interpolation { 31 | url: "http://lesscss.org/dev/image.jpg"; 32 | url2: "http://lesscss.org/image-256.jpg"; 33 | url3: "http://lesscss.org#445566"; 34 | url4: "http://lesscss.org/hello"; 35 | url5: "http://lesscss.org/54.4px"; 36 | } 37 | .mix-mul-class { 38 | color: #0000ff; 39 | color: #ff0000; 40 | color: #000000; 41 | color: #ffa500; 42 | } 43 | .watermark { 44 | family: Univers, Arial, Verdana, San-Serif; 45 | } 46 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/less_org_tests/less/strings.less: -------------------------------------------------------------------------------- 1 | @doubleEscape: "\\"; 2 | #strings { 3 | doubleEscape: "\\"; 4 | doubleEscapeVar: @doubleEscape; 5 | background-image: url("http://son-of-a-banana.com"); 6 | quotes: "~" "~"; 7 | content: "#*%:&^,)!.(~*})"; 8 | empty: ""; 9 | brackets: "{" "}"; 10 | escapes: "\"hello\" \\world"; 11 | escapes2: "\"llo"; 12 | } 13 | #comments { 14 | content: "/* hello */ // not-so-secret"; 15 | } 16 | #single-quote { 17 | quotes: "'" "'"; 18 | content: '""#!&""'; 19 | empty: ''; 20 | semi-colon: ';'; 21 | } 22 | #escaped { 23 | filter: ~"DX.Transform.MS.BS.filter(opacity=50)"; 24 | } 25 | #one-line { image: url(http://tooks.com) } 26 | #crazy { image: url(http://), "}", url("http://}") } 27 | #interpolation { 28 | @var: '/dev'; 29 | url: "http://lesscss.org@{var}/image.jpg"; 30 | 31 | @var2: 256; 32 | url2: "http://lesscss.org/image-@{var2}.jpg"; 33 | 34 | @var3: #456; 35 | url3: "http://lesscss.org@{var3}"; 36 | 37 | @var4: hello; 38 | url4: "http://lesscss.org/@{var4}"; 39 | 40 | @var5: 54.4px; 41 | url5: "http://lesscss.org/@{var5}"; 42 | } 43 | 44 | // multiple calls with string interpolation 45 | 46 | .mix-mul (@a: green) { 47 | color: ~"@{a}"; 48 | } 49 | .mix-mul-class { 50 | .mix-mul(blue); 51 | .mix-mul(red); 52 | .mix-mul(black); 53 | .mix-mul(orange); 54 | } 55 | 56 | @test: Arial, Verdana, San-Serif; 57 | .watermark { 58 | @family: ~"Univers, @{test}"; 59 | family: @family; 60 | } 61 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/less_org_tests/less/url-args/urls.less: -------------------------------------------------------------------------------- 1 | @font-face { 2 | src: url("/fonts/garamond-pro.ttf"); 3 | src: local(Futura-Medium), 4 | url(fonts.svg#MyGeometricModern) format("svg"); 5 | } 6 | #shorthands { 7 | background: url("http://www.lesscss.org/spec.html") no-repeat 0 4px; 8 | background: url("img.jpg") center / 100px; 9 | background: #fff url(image.png) center / 1px 100px repeat-x scroll content-box padding-box; 10 | } 11 | #misc { 12 | background-image: url(images/image.jpg); 13 | } 14 | #data-uri { 15 | background: url(data:image/png;charset=utf-8;base64, 16 | kiVBORw0KGgoAAAANSUhEUgAAABAAAAAQAQMAAAAlPW0iAAAABlBMVEUAAAD/ 17 | k//+l2Z/dAAAAM0lEQVR4nGP4/5/h/1+G/58ZDrAz3D/McH8yw83NDDeNGe4U 18 | kg9C9zwz3gVLMDA/A6P9/AFGGFyjOXZtQAAAAAElFTkSuQmCC); 19 | background-image: url(data:image/x-png,f9difSSFIIGFIFJD1f982FSDKAA9==); 20 | background-image: url(http://fonts.googleapis.com/css?family=\"Rokkitt\":\(400\),700); 21 | background-image: url("http://fonts.googleapis.com/css?family=\"Rokkitt\":\(400\),700"); 22 | } 23 | 24 | #svg-data-uri { 25 | background: transparent url('data:image/svg+xml, '); 26 | } 27 | 28 | .comma-delimited { 29 | background: url(bg.jpg) no-repeat, url(bg.png) repeat-x top left, url(bg); 30 | } 31 | .values { 32 | @a: 'Trebuchet'; 33 | url: url(@a); 34 | } 35 | 36 | @import "../import/imports/font"; 37 | 38 | #data-uri { 39 | uri: data-uri('image/jpeg;base64', '../../data/image.jpg'); 40 | } 41 | 42 | #data-uri-guess { 43 | uri: data-uri('../../data/image.jpg'); 44 | } 45 | 46 | #data-uri-ascii { 47 | uri-1: data-uri('text/html', '../../data/page.html'); 48 | uri-2: data-uri('../../data/page.html'); 49 | } 50 | 51 | #svg-functions { 52 | background-image: svg-gradient(to bottom, black, white); 53 | background-image: svg-gradient(to bottom, black, orange 3%, white); 54 | @green_5: green 5%; 55 | @orange_percentage: 3%; 56 | @orange_color: orange; 57 | background-image: svg-gradient(to bottom, (mix(black, white) + #444) 1%, @orange_color @orange_percentage, ((@green_5)), white 95%); 58 | } 59 | 60 | #data-uri-with-spaces { 61 | background-image: url( data:image/x-png,f9difSSFIIGFIFJD1f982FSDKAA9==); 62 | background-image: url( ' data:image/x-png,f9difSSFIIGFIFJD1f982FSDKAA9=='); 63 | } 64 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/less_org_tests/less/variables-in-at-rules.css: -------------------------------------------------------------------------------- 1 | @charset "UTF-8"; 2 | @namespace less "http://lesscss.org"; 3 | @keyframes enlarger { 4 | from { 5 | font-size: 12px; 6 | } 7 | to { 8 | font-size: 15px; 9 | } 10 | } 11 | @-webkit-keyframes reducer { 12 | from { 13 | font-size: 13px; 14 | } 15 | to { 16 | font-size: 10px; 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/less_org_tests/less/variables-in-at-rules.less: -------------------------------------------------------------------------------- 1 | 2 | @Eight: 8; 3 | @charset "UTF-@{Eight}"; 4 | 5 | @ns: less; 6 | @namespace @ns "http://lesscss.org"; 7 | 8 | @name: enlarger; 9 | @keyframes @name { 10 | from {font-size: 12px;} 11 | to {font-size: 15px;} 12 | } 13 | 14 | .m(reducer); 15 | .m(@name) { 16 | @-webkit-keyframes @name { 17 | from {font-size: 13px;} 18 | to {font-size: 10px;} 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/less_org_tests/less/variables.css: -------------------------------------------------------------------------------- 1 | .variables { 2 | width: 14cm; 3 | height: 24px; 4 | color: #888; 5 | font-family: "Trebuchet MS", Verdana, sans-serif; 6 | quotes: "~" "~"; 7 | } 8 | .redef { 9 | zero: 0; 10 | } 11 | .redef .inition { 12 | three: 3; 13 | } 14 | .values { 15 | minus-one: -1; 16 | font-family: 'Trebuchet', 'Trebuchet', 'Trebuchet'; 17 | color: #888 !important; 18 | multi: something 'A', B, C, 'Trebuchet'; 19 | } 20 | .variable-names { 21 | name: 'hello'; 22 | } 23 | .alpha { 24 | filter: alpha(opacity=42); 25 | } 26 | .testPollution { 27 | a: 'no-pollution'; 28 | a: 'no-pollution'; 29 | } 30 | .units { 31 | width: 1px; 32 | same-unit-as-previously: 1px; 33 | square-pixel-divided: 1px; 34 | odd-unit: 2; 35 | percentage: 500%; 36 | pixels: 500px; 37 | conversion-metric-a: 30mm; 38 | conversion-metric-b: 3cm; 39 | conversion-imperial: 3in; 40 | custom-unit: 420octocats; 41 | custom-unit-cancelling: 18dogs; 42 | mix-units: 2px; 43 | invalid-units: 1px; 44 | } 45 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/less_org_tests/less/variables.less: -------------------------------------------------------------------------------- 1 | @a: 2; 2 | @x: (@a * @a); 3 | @y: (@x + 1); 4 | @z: (@x * 2 + @y); 5 | @var: -1; 6 | 7 | .variables { 8 | width: (@z + 1cm); // 14cm 9 | } 10 | 11 | @b: @a * 10; 12 | @c: #888; 13 | 14 | @fonts: "Trebuchet MS", Verdana, sans-serif; 15 | @f: @fonts; 16 | 17 | @quotes: "~" "~"; 18 | @q: @quotes; 19 | @onePixel: 1px; 20 | 21 | .variables { 22 | height: (@b + @x + 0px); // 24px 23 | color: @c; 24 | font-family: @f; 25 | quotes: @q; 26 | } 27 | 28 | .redef { 29 | @var: 0; 30 | .inition { 31 | @var: 4; 32 | @var: 2; 33 | three: @var; 34 | @var: 3; 35 | } 36 | zero: @var; 37 | } 38 | 39 | .values { 40 | minus-one: @var; 41 | @a: 'Trebuchet'; 42 | @multi: 'A', B, C; 43 | font-family: @a, @a, @a; 44 | color: @c !important; 45 | multi: something @multi, @a; 46 | } 47 | 48 | .variable-names { 49 | @var: 'hello'; 50 | @name: 'var'; 51 | name: @@name; 52 | } 53 | 54 | .alpha { 55 | @var: 42; 56 | filter: alpha(opacity=@var); 57 | } 58 | 59 | .polluteMixin() { 60 | @a: 'pollution'; 61 | } 62 | .testPollution { 63 | @a: 'no-pollution'; 64 | a: @a; 65 | .polluteMixin(); 66 | a: @a; 67 | } 68 | 69 | .units { 70 | width: @onePixel; 71 | same-unit-as-previously: (@onePixel / @onePixel); 72 | square-pixel-divided: (@onePixel * @onePixel / @onePixel); 73 | odd-unit: unit((@onePixel * 4em / 2cm)); 74 | percentage: (10 * 50%); 75 | pixels: (50px * 10); 76 | conversion-metric-a: (20mm + 1cm); 77 | conversion-metric-b: (1cm + 20mm); 78 | conversion-imperial: (1in + 72pt + 6pc); 79 | custom-unit: (42octocats * 10); 80 | custom-unit-cancelling: (8cats * 9dogs / 4cats); 81 | mix-units: (1px + 1em); 82 | invalid-units: (1px * 1px); 83 | } 84 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/less_org_tests/less/whitespace.css: -------------------------------------------------------------------------------- 1 | .whitespace { 2 | color: white; 3 | color: white; 4 | color: white; 5 | color: white; 6 | color: white; 7 | } 8 | .white, 9 | .space, 10 | .mania { 11 | color: white; 12 | } 13 | .no-semi-column { 14 | color: white; 15 | color: white; 16 | white-space: pre; 17 | border: 2px solid white; 18 | } 19 | .newlines { 20 | background: the, great, wall; 21 | border: 2px solid black; 22 | } 23 | .sel .newline_ws .tab_ws { 24 | color: white; 25 | background-position: 45 -23; 26 | } 27 | -------------------------------------------------------------------------------- /test/com/inet/lib/less/samples/less_org_tests/less/whitespace.less: -------------------------------------------------------------------------------- 1 | 2 | 3 | .whitespace 4 | { color: white; } 5 | 6 | .whitespace 7 | { 8 | color: white; 9 | } 10 | .whitespace 11 | { color: white; } 12 | 13 | .whitespace{color:white;} 14 | .whitespace { color : white ; } 15 | 16 | .white, 17 | .space, 18 | .mania 19 | { color: white; } 20 | 21 | .no-semi-column { color: white } 22 | .no-semi-column { 23 | color: white; 24 | white-space: pre 25 | } 26 | .no-semi-column {border: 2px solid white} 27 | .newlines { 28 | background: the, 29 | great, 30 | wall; 31 | border: 2px 32 | solid 33 | black; 34 | } 35 | .empty { 36 | 37 | } 38 | .sel 39 | .newline_ws .tab_ws { 40 | color: 41 | white; 42 | background-position: 45 43 | -23; 44 | } 45 | --------------------------------------------------------------------------------