diff --git a/test/Fixtures/lessjs-3.13.1/css/3rd-party/bootstrap4.css b/test/Fixtures/lessjs-3.13.1/css/3rd-party/bootstrap4.css new file mode 100644 index 00000000..252ac674 --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/css/3rd-party/bootstrap4.css @@ -0,0 +1,7665 @@ +/*! + * Bootstrap v4.1.1 (https://getbootstrap.com/) + * Copyright 2011-2018 The Bootstrap Authors + * Copyright 2011-2018 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + */ +:root { + --blue: #007bff; + --indigo: #6610f2; + --purple: #6f42c1; + --pink: #e83e8c; + --red: #dc3545; + --orange: #fd7e14; + --yellow: #ffc107; + --green: #28a745; + --teal: #20c997; + --cyan: #17a2b8; + --white: #fff; + --gray: #6c757d; + --gray-dark: #343a40; + --primary: #007bff; + --secondary: #6c757d; + --success: #28a745; + --info: #17a2b8; + --warning: #ffc107; + --danger: #dc3545; + --light: #f8f9fa; + --dark: #343a40; + --breakpoint-xs: 0; + --breakpoint-sm: 576px; + --breakpoint-md: 768px; + --breakpoint-lg: 992px; + --breakpoint-xl: 1200px; + --font-family-sans-serif: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; + --font-family-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; +} +*, +*::before, +*::after { + box-sizing: border-box; +} +html { + font-family: sans-serif; + line-height: 1.15; + -webkit-text-size-adjust: 100%; + -ms-text-size-adjust: 100%; + -ms-overflow-style: scrollbar; + -webkit-tap-highlight-color: transparent; +} +@-ms-viewport { + width: device-width; +} +article, +aside, +figcaption, +figure, +footer, +header, +hgroup, +main, +nav, +section { + display: block; +} +body { + margin: 0; + font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; + font-size: 1rem; + font-weight: 400; + line-height: 1.5; + color: #212529; + text-align: left; + background-color: #fff; +} +[tabindex="-1"]:focus { + outline: 0 !important; +} +hr { + box-sizing: content-box; + height: 0; + overflow: visible; +} +h1, +h2, +h3, +h4, +h5, +h6 { + margin-top: 0; + margin-bottom: 0.5rem; +} +p { + margin-top: 0; + margin-bottom: 1rem; +} +abbr[title], +abbr[data-original-title] { + text-decoration: underline; + text-decoration: underline dotted; + cursor: help; + border-bottom: 0; +} +address { + margin-bottom: 1rem; + font-style: normal; + line-height: inherit; +} +ol, +ul, +dl { + margin-top: 0; + margin-bottom: 1rem; +} +ol ol, +ul ul, +ol ul, +ul ol { + margin-bottom: 0; +} +dt { + font-weight: 700; +} +dd { + margin-bottom: 0.5rem; + margin-left: 0; +} +blockquote { + margin: 0 0 1rem; +} +dfn { + font-style: italic; +} +b, +strong { + font-weight: bolder; +} +small { + font-size: 80%; +} +sub, +sup { + position: relative; + font-size: 75%; + line-height: 0; + vertical-align: baseline; +} +sub { + bottom: -0.25em; +} +sup { + top: -0.5em; +} +a { + color: #007bff; + text-decoration: none; + background-color: transparent; + -webkit-text-decoration-skip: objects; +} +a:hover { + color: #0056b3; + text-decoration: underline; +} +a:not([href]):not([tabindex]) { + color: inherit; + text-decoration: none; +} +a:not([href]):not([tabindex]):hover, +a:not([href]):not([tabindex]):focus { + color: inherit; + text-decoration: none; +} +a:not([href]):not([tabindex]):focus { + outline: 0; +} +pre, +code, +kbd, +samp { + font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; + font-size: 1em; +} +pre { + margin-top: 0; + margin-bottom: 1rem; + overflow: auto; + -ms-overflow-style: scrollbar; +} +figure { + margin: 0 0 1rem; +} +img { + vertical-align: middle; + border-style: none; +} +svg:not(:root) { + overflow: hidden; +} +table { + border-collapse: collapse; +} +caption { + padding-top: 0.75rem; + padding-bottom: 0.75rem; + color: #6c757d; + text-align: left; + caption-side: bottom; +} +th { + text-align: inherit; +} +label { + display: inline-block; + margin-bottom: 0.5rem; +} +button { + border-radius: 0; +} +button:focus { + outline: 1px dotted; + outline: 5px auto -webkit-focus-ring-color; +} +input, +button, +select, +optgroup, +textarea { + margin: 0; + font-family: inherit; + font-size: inherit; + line-height: inherit; +} +button, +input { + overflow: visible; +} +button, +select { + text-transform: none; +} +button, +html [type="button"], +[type="reset"], +[type="submit"] { + -webkit-appearance: button; +} +button::-moz-focus-inner, +[type="button"]::-moz-focus-inner, +[type="reset"]::-moz-focus-inner, +[type="submit"]::-moz-focus-inner { + padding: 0; + border-style: none; +} +input[type="radio"], +input[type="checkbox"] { + box-sizing: border-box; + padding: 0; +} +input[type="date"], +input[type="time"], +input[type="datetime-local"], +input[type="month"] { + -webkit-appearance: listbox; +} +textarea { + overflow: auto; + resize: vertical; +} +fieldset { + min-width: 0; + padding: 0; + margin: 0; + border: 0; +} +legend { + display: block; + width: 100%; + max-width: 100%; + padding: 0; + margin-bottom: 0.5rem; + font-size: 1.5rem; + line-height: inherit; + color: inherit; + white-space: normal; +} +progress { + vertical-align: baseline; +} +[type="number"]::-webkit-inner-spin-button, +[type="number"]::-webkit-outer-spin-button { + height: auto; +} +[type="search"] { + outline-offset: -2px; + -webkit-appearance: none; +} +[type="search"]::-webkit-search-cancel-button, +[type="search"]::-webkit-search-decoration { + -webkit-appearance: none; +} +::-webkit-file-upload-button { + font: inherit; + -webkit-appearance: button; +} +output { + display: inline-block; +} +summary { + display: list-item; + cursor: pointer; +} +template { + display: none; +} +[hidden] { + display: none !important; +} +h1, +h2, +h3, +h4, +h5, +h6, +.h1, +.h2, +.h3, +.h4, +.h5, +.h6 { + margin-bottom: 0.5rem; + font-family: inherit; + font-weight: 500; + line-height: 1.2; + color: inherit; +} +h1, +.h1 { + font-size: 2.5rem; +} +h2, +.h2 { + font-size: 2rem; +} +h3, +.h3 { + font-size: 1.75rem; +} +h4, +.h4 { + font-size: 1.5rem; +} +h5, +.h5 { + font-size: 1.25rem; +} +h6, +.h6 { + font-size: 1rem; +} +.lead { + font-size: 1.25rem; + font-weight: 300; +} +.display-1 { + font-size: 6rem; + font-weight: 300; + line-height: 1.2; +} +.display-2 { + font-size: 5.5rem; + font-weight: 300; + line-height: 1.2; +} +.display-3 { + font-size: 4.5rem; + font-weight: 300; + line-height: 1.2; +} +.display-4 { + font-size: 3.5rem; + font-weight: 300; + line-height: 1.2; +} +hr { + margin-top: 1rem; + margin-bottom: 1rem; + border: 0; + border-top: 1px solid rgba(0, 0, 0, 0.1); +} +small, +.small { + font-size: 80%; + font-weight: 400; +} +mark, +.mark { + padding: 0.2em; + background-color: #fcf8e3; +} +.list-unstyled { + padding-left: 0; + list-style: none; +} +.list-inline { + padding-left: 0; + list-style: none; +} +.list-inline-item { + display: inline-block; +} +.list-inline-item:not(:last-child) { + margin-right: 0.5rem; +} +.initialism { + font-size: 90%; + text-transform: uppercase; +} +.blockquote { + margin-bottom: 1rem; + font-size: 1.25rem; +} +.blockquote-footer { + display: block; + font-size: 80%; + color: #6c757d; +} +.blockquote-footer::before { + content: "\2014 \00A0"; +} +.img-fluid { + max-width: 100%; + height: auto; +} +.img-thumbnail { + padding: 0.25rem; + background-color: #fff; + border: 1px solid #dee2e6; + border-radius: 0.25rem; + max-width: 100%; + height: auto; +} +.figure { + display: inline-block; +} +.figure-img { + margin-bottom: 0.5rem; + line-height: 1; +} +.figure-caption { + font-size: 90%; + color: #6c757d; +} +code { + font-size: 87.5%; + color: #e83e8c; + word-break: break-word; +} +a > code { + color: inherit; +} +kbd { + padding: 0.2rem 0.4rem; + font-size: 87.5%; + color: #fff; + background-color: #212529; + border-radius: 0.2rem; +} +kbd kbd { + padding: 0; + font-size: 100%; + font-weight: 700; +} +pre { + display: block; + font-size: 87.5%; + color: #212529; +} +pre code { + font-size: inherit; + color: inherit; + word-break: normal; +} +.pre-scrollable { + max-height: 340px; + overflow-y: scroll; +} +.container { + width: 100%; + padding-right: 15px; + padding-left: 15px; + margin-right: auto; + margin-left: auto; +} +@media (min-width: 576px) { + .container { + max-width: 540px; + } +} +@media (min-width: 768px) { + .container { + max-width: 720px; + } +} +@media (min-width: 992px) { + .container { + max-width: 960px; + } +} +@media (min-width: 1200px) { + .container { + max-width: 1140px; + } +} +.container-fluid { + width: 100%; + padding-right: 15px; + padding-left: 15px; + margin-right: auto; + margin-left: auto; +} +.row { + display: flex; + flex-wrap: wrap; + margin-right: -15px; + margin-left: -15px; +} +.no-gutters { + margin-right: 0; + margin-left: 0; +} +.no-gutters > .col, +.no-gutters > [class*="col-"] { + padding-right: 0; + padding-left: 0; +} +.grid-column, +.col-1, +.col-2, +.col-3, +.col-4, +.col-5, +.col-6, +.col-7, +.col-8, +.col-9, +.col-10, +.col-11, +.col-12, +.col, +.col-auto, +.col-sm-1, +.col-sm-2, +.col-sm-3, +.col-sm-4, +.col-sm-5, +.col-sm-6, +.col-sm-7, +.col-sm-8, +.col-sm-9, +.col-sm-10, +.col-sm-11, +.col-sm-12, +.col-sm, +.col-sm-auto, +.col-md-1, +.col-md-2, +.col-md-3, +.col-md-4, +.col-md-5, +.col-md-6, +.col-md-7, +.col-md-8, +.col-md-9, +.col-md-10, +.col-md-11, +.col-md-12, +.col-md, +.col-md-auto, +.col-lg-1, +.col-lg-2, +.col-lg-3, +.col-lg-4, +.col-lg-5, +.col-lg-6, +.col-lg-7, +.col-lg-8, +.col-lg-9, +.col-lg-10, +.col-lg-11, +.col-lg-12, +.col-lg, +.col-lg-auto, +.col-xl-1, +.col-xl-2, +.col-xl-3, +.col-xl-4, +.col-xl-5, +.col-xl-6, +.col-xl-7, +.col-xl-8, +.col-xl-9, +.col-xl-10, +.col-xl-11, +.col-xl-12, +.col-xl, +.col-xl-auto { + position: relative; + width: 100%; + min-height: 1px; + padding-right: 15px; + padding-left: 15px; +} +.col { + flex-basis: 0; + flex-grow: 1; + max-width: 100%; +} +.col-auto { + flex: 0 0 auto; + width: auto; + max-width: none; +} +.col-1 { + flex: 0 0 8.33333333%; + max-width: 8.33333333%; +} +.col-2 { + flex: 0 0 16.66666667%; + max-width: 16.66666667%; +} +.col-3 { + flex: 0 0 25%; + max-width: 25%; +} +.col-4 { + flex: 0 0 33.33333333%; + max-width: 33.33333333%; +} +.col-5 { + flex: 0 0 41.66666667%; + max-width: 41.66666667%; +} +.col-6 { + flex: 0 0 50%; + max-width: 50%; +} +.col-7 { + flex: 0 0 58.33333333%; + max-width: 58.33333333%; +} +.col-8 { + flex: 0 0 66.66666667%; + max-width: 66.66666667%; +} +.col-9 { + flex: 0 0 75%; + max-width: 75%; +} +.col-10 { + flex: 0 0 83.33333333%; + max-width: 83.33333333%; +} +.col-11 { + flex: 0 0 91.66666667%; + max-width: 91.66666667%; +} +.col-12 { + flex: 0 0 100%; + max-width: 100%; +} +.order-first { + order: -1; +} +.order-last { + order: 13; +} +.order-0 { + order: 0; +} +.order-1 { + order: 1; +} +.order-2 { + order: 2; +} +.order-3 { + order: 3; +} +.order-4 { + order: 4; +} +.order-5 { + order: 5; +} +.order-6 { + order: 6; +} +.order-7 { + order: 7; +} +.order-8 { + order: 8; +} +.order-9 { + order: 9; +} +.order-10 { + order: 10; +} +.order-11 { + order: 11; +} +.order-12 { + order: 12; +} +.offset-1 { + margin-left: 8.33333333%; +} +.offset-2 { + margin-left: 16.66666667%; +} +.offset-3 { + margin-left: 25%; +} +.offset-4 { + margin-left: 33.33333333%; +} +.offset-5 { + margin-left: 41.66666667%; +} +.offset-6 { + margin-left: 50%; +} +.offset-7 { + margin-left: 58.33333333%; +} +.offset-8 { + margin-left: 66.66666667%; +} +.offset-9 { + margin-left: 75%; +} +.offset-10 { + margin-left: 83.33333333%; +} +.offset-11 { + margin-left: 91.66666667%; +} +@media (min-width: 576px) { + .col-sm { + flex-basis: 0; + flex-grow: 1; + max-width: 100%; + } + .col-sm-auto { + flex: 0 0 auto; + width: auto; + max-width: none; + } + .col-sm-1 { + flex: 0 0 8.33333333%; + max-width: 8.33333333%; + } + .col-sm-2 { + flex: 0 0 16.66666667%; + max-width: 16.66666667%; + } + .col-sm-3 { + flex: 0 0 25%; + max-width: 25%; + } + .col-sm-4 { + flex: 0 0 33.33333333%; + max-width: 33.33333333%; + } + .col-sm-5 { + flex: 0 0 41.66666667%; + max-width: 41.66666667%; + } + .col-sm-6 { + flex: 0 0 50%; + max-width: 50%; + } + .col-sm-7 { + flex: 0 0 58.33333333%; + max-width: 58.33333333%; + } + .col-sm-8 { + flex: 0 0 66.66666667%; + max-width: 66.66666667%; + } + .col-sm-9 { + flex: 0 0 75%; + max-width: 75%; + } + .col-sm-10 { + flex: 0 0 83.33333333%; + max-width: 83.33333333%; + } + .col-sm-11 { + flex: 0 0 91.66666667%; + max-width: 91.66666667%; + } + .col-sm-12 { + flex: 0 0 100%; + max-width: 100%; + } + .order-sm-first { + order: -1; + } + .order-sm-last { + order: 13; + } + .order-sm-0 { + order: 0; + } + .order-sm-1 { + order: 1; + } + .order-sm-2 { + order: 2; + } + .order-sm-3 { + order: 3; + } + .order-sm-4 { + order: 4; + } + .order-sm-5 { + order: 5; + } + .order-sm-6 { + order: 6; + } + .order-sm-7 { + order: 7; + } + .order-sm-8 { + order: 8; + } + .order-sm-9 { + order: 9; + } + .order-sm-10 { + order: 10; + } + .order-sm-11 { + order: 11; + } + .order-sm-12 { + order: 12; + } + .offset-sm-0 { + margin-left: 0; + } + .offset-sm-1 { + margin-left: 8.33333333%; + } + .offset-sm-2 { + margin-left: 16.66666667%; + } + .offset-sm-3 { + margin-left: 25%; + } + .offset-sm-4 { + margin-left: 33.33333333%; + } + .offset-sm-5 { + margin-left: 41.66666667%; + } + .offset-sm-6 { + margin-left: 50%; + } + .offset-sm-7 { + margin-left: 58.33333333%; + } + .offset-sm-8 { + margin-left: 66.66666667%; + } + .offset-sm-9 { + margin-left: 75%; + } + .offset-sm-10 { + margin-left: 83.33333333%; + } + .offset-sm-11 { + margin-left: 91.66666667%; + } +} +@media (min-width: 768px) { + .col-md { + flex-basis: 0; + flex-grow: 1; + max-width: 100%; + } + .col-md-auto { + flex: 0 0 auto; + width: auto; + max-width: none; + } + .col-md-1 { + flex: 0 0 8.33333333%; + max-width: 8.33333333%; + } + .col-md-2 { + flex: 0 0 16.66666667%; + max-width: 16.66666667%; + } + .col-md-3 { + flex: 0 0 25%; + max-width: 25%; + } + .col-md-4 { + flex: 0 0 33.33333333%; + max-width: 33.33333333%; + } + .col-md-5 { + flex: 0 0 41.66666667%; + max-width: 41.66666667%; + } + .col-md-6 { + flex: 0 0 50%; + max-width: 50%; + } + .col-md-7 { + flex: 0 0 58.33333333%; + max-width: 58.33333333%; + } + .col-md-8 { + flex: 0 0 66.66666667%; + max-width: 66.66666667%; + } + .col-md-9 { + flex: 0 0 75%; + max-width: 75%; + } + .col-md-10 { + flex: 0 0 83.33333333%; + max-width: 83.33333333%; + } + .col-md-11 { + flex: 0 0 91.66666667%; + max-width: 91.66666667%; + } + .col-md-12 { + flex: 0 0 100%; + max-width: 100%; + } + .order-md-first { + order: -1; + } + .order-md-last { + order: 13; + } + .order-md-0 { + order: 0; + } + .order-md-1 { + order: 1; + } + .order-md-2 { + order: 2; + } + .order-md-3 { + order: 3; + } + .order-md-4 { + order: 4; + } + .order-md-5 { + order: 5; + } + .order-md-6 { + order: 6; + } + .order-md-7 { + order: 7; + } + .order-md-8 { + order: 8; + } + .order-md-9 { + order: 9; + } + .order-md-10 { + order: 10; + } + .order-md-11 { + order: 11; + } + .order-md-12 { + order: 12; + } + .offset-md-0 { + margin-left: 0; + } + .offset-md-1 { + margin-left: 8.33333333%; + } + .offset-md-2 { + margin-left: 16.66666667%; + } + .offset-md-3 { + margin-left: 25%; + } + .offset-md-4 { + margin-left: 33.33333333%; + } + .offset-md-5 { + margin-left: 41.66666667%; + } + .offset-md-6 { + margin-left: 50%; + } + .offset-md-7 { + margin-left: 58.33333333%; + } + .offset-md-8 { + margin-left: 66.66666667%; + } + .offset-md-9 { + margin-left: 75%; + } + .offset-md-10 { + margin-left: 83.33333333%; + } + .offset-md-11 { + margin-left: 91.66666667%; + } +} +@media (min-width: 992px) { + .col-lg { + flex-basis: 0; + flex-grow: 1; + max-width: 100%; + } + .col-lg-auto { + flex: 0 0 auto; + width: auto; + max-width: none; + } + .col-lg-1 { + flex: 0 0 8.33333333%; + max-width: 8.33333333%; + } + .col-lg-2 { + flex: 0 0 16.66666667%; + max-width: 16.66666667%; + } + .col-lg-3 { + flex: 0 0 25%; + max-width: 25%; + } + .col-lg-4 { + flex: 0 0 33.33333333%; + max-width: 33.33333333%; + } + .col-lg-5 { + flex: 0 0 41.66666667%; + max-width: 41.66666667%; + } + .col-lg-6 { + flex: 0 0 50%; + max-width: 50%; + } + .col-lg-7 { + flex: 0 0 58.33333333%; + max-width: 58.33333333%; + } + .col-lg-8 { + flex: 0 0 66.66666667%; + max-width: 66.66666667%; + } + .col-lg-9 { + flex: 0 0 75%; + max-width: 75%; + } + .col-lg-10 { + flex: 0 0 83.33333333%; + max-width: 83.33333333%; + } + .col-lg-11 { + flex: 0 0 91.66666667%; + max-width: 91.66666667%; + } + .col-lg-12 { + flex: 0 0 100%; + max-width: 100%; + } + .order-lg-first { + order: -1; + } + .order-lg-last { + order: 13; + } + .order-lg-0 { + order: 0; + } + .order-lg-1 { + order: 1; + } + .order-lg-2 { + order: 2; + } + .order-lg-3 { + order: 3; + } + .order-lg-4 { + order: 4; + } + .order-lg-5 { + order: 5; + } + .order-lg-6 { + order: 6; + } + .order-lg-7 { + order: 7; + } + .order-lg-8 { + order: 8; + } + .order-lg-9 { + order: 9; + } + .order-lg-10 { + order: 10; + } + .order-lg-11 { + order: 11; + } + .order-lg-12 { + order: 12; + } + .offset-lg-0 { + margin-left: 0; + } + .offset-lg-1 { + margin-left: 8.33333333%; + } + .offset-lg-2 { + margin-left: 16.66666667%; + } + .offset-lg-3 { + margin-left: 25%; + } + .offset-lg-4 { + margin-left: 33.33333333%; + } + .offset-lg-5 { + margin-left: 41.66666667%; + } + .offset-lg-6 { + margin-left: 50%; + } + .offset-lg-7 { + margin-left: 58.33333333%; + } + .offset-lg-8 { + margin-left: 66.66666667%; + } + .offset-lg-9 { + margin-left: 75%; + } + .offset-lg-10 { + margin-left: 83.33333333%; + } + .offset-lg-11 { + margin-left: 91.66666667%; + } +} +@media (min-width: 1200px) { + .col-xl { + flex-basis: 0; + flex-grow: 1; + max-width: 100%; + } + .col-xl-auto { + flex: 0 0 auto; + width: auto; + max-width: none; + } + .col-xl-1 { + flex: 0 0 8.33333333%; + max-width: 8.33333333%; + } + .col-xl-2 { + flex: 0 0 16.66666667%; + max-width: 16.66666667%; + } + .col-xl-3 { + flex: 0 0 25%; + max-width: 25%; + } + .col-xl-4 { + flex: 0 0 33.33333333%; + max-width: 33.33333333%; + } + .col-xl-5 { + flex: 0 0 41.66666667%; + max-width: 41.66666667%; + } + .col-xl-6 { + flex: 0 0 50%; + max-width: 50%; + } + .col-xl-7 { + flex: 0 0 58.33333333%; + max-width: 58.33333333%; + } + .col-xl-8 { + flex: 0 0 66.66666667%; + max-width: 66.66666667%; + } + .col-xl-9 { + flex: 0 0 75%; + max-width: 75%; + } + .col-xl-10 { + flex: 0 0 83.33333333%; + max-width: 83.33333333%; + } + .col-xl-11 { + flex: 0 0 91.66666667%; + max-width: 91.66666667%; + } + .col-xl-12 { + flex: 0 0 100%; + max-width: 100%; + } + .order-xl-first { + order: -1; + } + .order-xl-last { + order: 13; + } + .order-xl-0 { + order: 0; + } + .order-xl-1 { + order: 1; + } + .order-xl-2 { + order: 2; + } + .order-xl-3 { + order: 3; + } + .order-xl-4 { + order: 4; + } + .order-xl-5 { + order: 5; + } + .order-xl-6 { + order: 6; + } + .order-xl-7 { + order: 7; + } + .order-xl-8 { + order: 8; + } + .order-xl-9 { + order: 9; + } + .order-xl-10 { + order: 10; + } + .order-xl-11 { + order: 11; + } + .order-xl-12 { + order: 12; + } + .offset-xl-0 { + margin-left: 0; + } + .offset-xl-1 { + margin-left: 8.33333333%; + } + .offset-xl-2 { + margin-left: 16.66666667%; + } + .offset-xl-3 { + margin-left: 25%; + } + .offset-xl-4 { + margin-left: 33.33333333%; + } + .offset-xl-5 { + margin-left: 41.66666667%; + } + .offset-xl-6 { + margin-left: 50%; + } + .offset-xl-7 { + margin-left: 58.33333333%; + } + .offset-xl-8 { + margin-left: 66.66666667%; + } + .offset-xl-9 { + margin-left: 75%; + } + .offset-xl-10 { + margin-left: 83.33333333%; + } + .offset-xl-11 { + margin-left: 91.66666667%; + } +} +.table { + width: 100%; + max-width: 100%; + margin-bottom: 1rem; + background-color: transparent; +} +.table th, +.table td { + padding: 0.75rem; + vertical-align: top; + border-top: 1px solid #dee2e6; +} +.table thead th { + vertical-align: bottom; + border-bottom: 2px solid #dee2e6; +} +.table tbody + tbody { + border-top: 2px solid #dee2e6; +} +.table .table { + background-color: #fff; +} +.table-sm th, +.table-sm td { + padding: 0.3rem; +} +.table-bordered { + border: 1px solid #dee2e6; +} +.table-bordered th, +.table-bordered td { + border: 1px solid #dee2e6; +} +.table-bordered thead th, +.table-bordered thead td { + border-bottom-width: 2px; +} +.table-borderless th, +.table-borderless td, +.table-borderless thead th, +.table-borderless tbody + tbody { + border: 0; +} +.table-striped tbody tr:nth-of-type(odd) { + background-color: rgba(0, 0, 0, 0.05); +} +.table-hover tbody tr:hover { + background-color: rgba(0, 0, 0, 0.075); +} +.table-primary, +.table-primary > th, +.table-primary > td { + background-color: #b8daff; +} +.table-hover .table-primary:hover { + background-color: #9fcdff; +} +.table-hover .table-primary:hover > td, +.table-hover .table-primary:hover > th { + background-color: #9fcdff; +} +.table-secondary, +.table-secondary > th, +.table-secondary > td { + background-color: #d6d8db; +} +.table-hover .table-secondary:hover { + background-color: #c8cbcf; +} +.table-hover .table-secondary:hover > td, +.table-hover .table-secondary:hover > th { + background-color: #c8cbcf; +} +.table-success, +.table-success > th, +.table-success > td { + background-color: #c3e6cb; +} +.table-hover .table-success:hover { + background-color: #b1dfbb; +} +.table-hover .table-success:hover > td, +.table-hover .table-success:hover > th { + background-color: #b1dfbb; +} +.table-info, +.table-info > th, +.table-info > td { + background-color: #bee5eb; +} +.table-hover .table-info:hover { + background-color: #abdde5; +} +.table-hover .table-info:hover > td, +.table-hover .table-info:hover > th { + background-color: #abdde5; +} +.table-warning, +.table-warning > th, +.table-warning > td { + background-color: #ffeeba; +} +.table-hover .table-warning:hover { + background-color: #ffe8a1; +} +.table-hover .table-warning:hover > td, +.table-hover .table-warning:hover > th { + background-color: #ffe8a1; +} +.table-danger, +.table-danger > th, +.table-danger > td { + background-color: #f5c6cb; +} +.table-hover .table-danger:hover { + background-color: #f1b0b7; +} +.table-hover .table-danger:hover > td, +.table-hover .table-danger:hover > th { + background-color: #f1b0b7; +} +.table-light, +.table-light > th, +.table-light > td { + background-color: #fdfdfe; +} +.table-hover .table-light:hover { + background-color: #ececf5; +} +.table-hover .table-light:hover > td, +.table-hover .table-light:hover > th { + background-color: #ececf5; +} +.table-dark, +.table-dark > th, +.table-dark > td { + background-color: #c6c8ca; +} +.table-hover .table-dark:hover { + background-color: #b9bbbe; +} +.table-hover .table-dark:hover > td, +.table-hover .table-dark:hover > th { + background-color: #b9bbbe; +} +.table-active, +.table-active > th, +.table-active > td { + background-color: rgba(0, 0, 0, 0.075); +} +.table-hover .table-active:hover { + background-color: rgba(0, 0, 0, 0.075); +} +.table-hover .table-active:hover > td, +.table-hover .table-active:hover > th { + background-color: rgba(0, 0, 0, 0.075); +} +.table .thead-dark th { + color: #fff; + background-color: #212529; + border-color: #32383e; +} +.table .thead-light th { + color: #495057; + background-color: #e9ecef; + border-color: #dee2e6; +} +.table-dark { + color: #fff; + background-color: #212529; +} +.table-dark th, +.table-dark td, +.table-dark thead th { + border-color: #32383e; +} +.table-dark.table-bordered { + border: 0; +} +.table-dark.table-striped tbody tr:nth-of-type(odd) { + background-color: rgba(255, 255, 255, 0.05); +} +.table-dark.table-hover tbody tr:hover { + background-color: rgba(255, 255, 255, 0.075); +} +.table-responsive { + display: block; + width: 100%; + overflow-x: auto; + -webkit-overflow-scrolling: touch; + -ms-overflow-style: -ms-autohiding-scrollbar; +} +@media (max-width: 575.98px) { + .table-responsive-sm { + display: block; + width: 100%; + overflow-x: auto; + -webkit-overflow-scrolling: touch; + -ms-overflow-style: -ms-autohiding-scrollbar; + } + .table-responsive-sm > .table-bordered { + border: 0; + } +} +@media (max-width: 767.98px) { + .table-responsive-md { + display: block; + width: 100%; + overflow-x: auto; + -webkit-overflow-scrolling: touch; + -ms-overflow-style: -ms-autohiding-scrollbar; + } + .table-responsive-md > .table-bordered { + border: 0; + } +} +@media (max-width: 991.98px) { + .table-responsive-lg { + display: block; + width: 100%; + overflow-x: auto; + -webkit-overflow-scrolling: touch; + -ms-overflow-style: -ms-autohiding-scrollbar; + } + .table-responsive-lg > .table-bordered { + border: 0; + } +} +@media (max-width: 1199.98px) { + .table-responsive-xl { + display: block; + width: 100%; + overflow-x: auto; + -webkit-overflow-scrolling: touch; + -ms-overflow-style: -ms-autohiding-scrollbar; + } + .table-responsive-xl > .table-bordered { + border: 0; + } +} +.table-responsive > .table-bordered { + border: 0; +} +.form-control { + display: block; + width: 100%; + padding: 0.375rem 0.75rem; + font-size: 1rem; + line-height: 1.5; + color: #495057; + background-color: #fff; + background-clip: padding-box; + border: 1px solid #ced4da; + border-radius: 0.25rem; + transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; +} +@media screen and (prefers-reduced-motion: reduce) { + .form-control { + transition: none; + } +} +.form-control::-ms-expand { + background-color: transparent; + border: 0; +} +.form-control:focus { + color: #495057; + background-color: #fff; + border-color: #80bdff; + outline: 0; + box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25); +} +.form-control::placeholder { + color: #6c757d; + opacity: 1; +} +.form-control:disabled, +.form-control[readonly] { + background-color: #e9ecef; + opacity: 1; +} +select.form-control:not([size]):not([multiple]) { + height: calc(2.25rem + 2px); +} +select.form-control:focus::-ms-value { + color: #495057; + background-color: #fff; +} +.form-control-file, +.form-control-range { + display: block; + width: 100%; +} +.col-form-label { + padding-top: calc(0.375rem + 1px); + padding-bottom: calc(0.375rem + 1px); + margin-bottom: 0; + font-size: inherit; + line-height: 1.5; +} +.col-form-label-lg { + padding-top: calc(0.5rem + 1px); + padding-bottom: calc(0.5rem + 1px); + font-size: 1.25rem; + line-height: 1.5; +} +.col-form-label-sm { + padding-top: calc(0.25rem + 1px); + padding-bottom: calc(0.25rem + 1px); + font-size: 0.875rem; + line-height: 1.5; +} +.form-control-plaintext { + display: block; + width: 100%; + padding-top: 0.375rem; + padding-bottom: 0.375rem; + margin-bottom: 0; + line-height: 1.5; + color: #212529; + background-color: transparent; + border: solid transparent; + border-width: 1px 0; +} +.form-control-plaintext.form-control-sm, +.form-control-plaintext.form-control-lg, +.input-group-sm > .form-control-plaintext.form-control, +.input-group-sm > .input-group-prepend > .form-control-plaintext.input-group-text, +.input-group-sm > .input-group-append > .form-control-plaintext.input-group-text, +.input-group-sm > .input-group-prepend > .form-control-plaintext.btn, +.input-group-sm > .input-group-append > .form-control-plaintext.btn, +.input-group-lg > .form-control-plaintext.form-control, +.input-group-lg > .input-group-prepend > .form-control-plaintext.input-group-text, +.input-group-lg > .input-group-append > .form-control-plaintext.input-group-text, +.input-group-lg > .input-group-prepend > .form-control-plaintext.btn, +.input-group-lg > .input-group-append > .form-control-plaintext.btn { + padding-right: 0; + padding-left: 0; +} +.form-control-sm, +.input-group-sm > .form-control, +.input-group-sm > .input-group-prepend > .input-group-text, +.input-group-sm > .input-group-append > .input-group-text, +.input-group-sm > .input-group-prepend > .btn, +.input-group-sm > .input-group-append > .btn { + padding: 0.25rem 0.5rem; + font-size: 0.875rem; + line-height: 1.5; + border-radius: 0.2rem; +} +select.form-control-sm:not([size]):not([multiple]), +.input-group-sm > select.form-control:not([size]):not([multiple]), +.input-group-sm > .input-group-prepend > select.input-group-text:not([size]):not([multiple]), +.input-group-sm > .input-group-append > select.input-group-text:not([size]):not([multiple]), +.input-group-sm > .input-group-prepend > select.btn:not([size]):not([multiple]), +.input-group-sm > .input-group-append > select.btn:not([size]):not([multiple]) { + height: calc(1.8125rem + 2px); +} +.form-control-lg, +.input-group-lg > .form-control, +.input-group-lg > .input-group-prepend > .input-group-text, +.input-group-lg > .input-group-append > .input-group-text, +.input-group-lg > .input-group-prepend > .btn, +.input-group-lg > .input-group-append > .btn { + padding: 0.5rem 1rem; + font-size: 1.25rem; + line-height: 1.5; + border-radius: 0.3rem; +} +select.form-control-lg:not([size]):not([multiple]), +.input-group-lg > select.form-control:not([size]):not([multiple]), +.input-group-lg > .input-group-prepend > select.input-group-text:not([size]):not([multiple]), +.input-group-lg > .input-group-append > select.input-group-text:not([size]):not([multiple]), +.input-group-lg > .input-group-prepend > select.btn:not([size]):not([multiple]), +.input-group-lg > .input-group-append > select.btn:not([size]):not([multiple]) { + height: calc(2.875rem + 2px); +} +.form-group { + margin-bottom: 1rem; +} +.form-text { + display: block; + margin-top: 0.25rem; +} +.form-row { + display: flex; + flex-wrap: wrap; + margin-right: -5px; + margin-left: -5px; +} +.form-row > .col, +.form-row > [class*="col-"] { + padding-right: 5px; + padding-left: 5px; +} +.form-check { + position: relative; + display: block; + padding-left: 1.25rem; +} +.form-check-input { + position: absolute; + margin-top: 0.3rem; + margin-left: -1.25rem; +} +.form-check-input:disabled ~ .form-check-label { + color: #6c757d; +} +.form-check-label { + margin-bottom: 0; +} +.form-check-inline { + display: inline-flex; + align-items: center; + padding-left: 0; + margin-right: 0.75rem; +} +.form-check-inline .form-check-input { + position: static; + margin-top: 0; + margin-right: 0.3125rem; + margin-left: 0; +} +.valid-feedback { + display: none; + width: 100%; + margin-top: 0.25rem; + font-size: 80%; + color: #28a745; +} +.valid-tooltip { + position: absolute; + top: 100%; + z-index: 5; + display: none; + max-width: 100%; + padding: 0.5rem; + margin-top: 0.1rem; + font-size: 0.875rem; + line-height: 1; + color: #fff; + background-color: rgba(40, 167, 69, 0.8); + border-radius: 0.2rem; +} +.was-validated .form-control:valid, +.was-validated .custom-select:valid, +.form-control.is-valid, +.custom-select.is-valid { + border-color: #28a745; +} +.was-validated .form-control:valid:focus, +.was-validated .custom-select:valid:focus, +.form-control.is-valid:focus, +.custom-select.is-valid:focus { + border-color: #28a745; + box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25); +} +.was-validated .form-control:valid ~ .valid-feedback, +.was-validated .custom-select:valid ~ .valid-feedback, +.form-control.is-valid ~ .valid-feedback, +.custom-select.is-valid ~ .valid-feedback, +.was-validated .form-control:valid ~ .valid-tooltip, +.was-validated .custom-select:valid ~ .valid-tooltip, +.form-control.is-valid ~ .valid-tooltip, +.custom-select.is-valid ~ .valid-tooltip { + display: block; +} +.was-validated .form-control-file:valid ~ .valid-feedback, +.form-control-file.is-valid ~ .valid-feedback, +.was-validated .form-control-file:valid ~ .valid-tooltip, +.form-control-file.is-valid ~ .valid-tooltip { + display: block; +} +.was-validated .form-check-input:valid ~ .form-check-label, +.form-check-input.is-valid ~ .form-check-label { + color: #28a745; +} +.was-validated .form-check-input:valid ~ .valid-feedback, +.form-check-input.is-valid ~ .valid-feedback, +.was-validated .form-check-input:valid ~ .valid-tooltip, +.form-check-input.is-valid ~ .valid-tooltip { + display: block; +} +.was-validated .custom-control-input:valid ~ .custom-control-label, +.custom-control-input.is-valid ~ .custom-control-label { + color: #28a745; +} +.was-validated .custom-control-input:valid ~ .custom-control-label::before, +.custom-control-input.is-valid ~ .custom-control-label::before { + background-color: #71dd8a; +} +.was-validated .custom-control-input:valid ~ .valid-feedback, +.custom-control-input.is-valid ~ .valid-feedback, +.was-validated .custom-control-input:valid ~ .valid-tooltip, +.custom-control-input.is-valid ~ .valid-tooltip { + display: block; +} +.was-validated .custom-control-input:valid:checked ~ .custom-control-label::before, +.custom-control-input.is-valid:checked ~ .custom-control-label::before { + background-color: #34ce57; +} +.was-validated .custom-control-input:valid:focus ~ .custom-control-label::before, +.custom-control-input.is-valid:focus ~ .custom-control-label::before { + box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(40, 167, 69, 0.25); +} +.was-validated .custom-file-input:valid ~ .custom-file-label, +.custom-file-input.is-valid ~ .custom-file-label { + border-color: #28a745; +} +.was-validated .custom-file-input:valid ~ .custom-file-label::before, +.custom-file-input.is-valid ~ .custom-file-label::before { + border-color: inherit; +} +.was-validated .custom-file-input:valid ~ .valid-feedback, +.custom-file-input.is-valid ~ .valid-feedback, +.was-validated .custom-file-input:valid ~ .valid-tooltip, +.custom-file-input.is-valid ~ .valid-tooltip { + display: block; +} +.was-validated .custom-file-input:valid:focus ~ .custom-file-label, +.custom-file-input.is-valid:focus ~ .custom-file-label { + box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25); +} +.invalid-feedback { + display: none; + width: 100%; + margin-top: 0.25rem; + font-size: 80%; + color: #dc3545; +} +.invalid-tooltip { + position: absolute; + top: 100%; + z-index: 5; + display: none; + max-width: 100%; + padding: 0.5rem; + margin-top: 0.1rem; + font-size: 0.875rem; + line-height: 1; + color: #fff; + background-color: rgba(220, 53, 69, 0.8); + border-radius: 0.2rem; +} +.was-validated .form-control:invalid, +.was-validated .custom-select:invalid, +.form-control.is-invalid, +.custom-select.is-invalid { + border-color: #dc3545; +} +.was-validated .form-control:invalid:focus, +.was-validated .custom-select:invalid:focus, +.form-control.is-invalid:focus, +.custom-select.is-invalid:focus { + border-color: #dc3545; + box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25); +} +.was-validated .form-control:invalid ~ .invalid-feedback, +.was-validated .custom-select:invalid ~ .invalid-feedback, +.form-control.is-invalid ~ .invalid-feedback, +.custom-select.is-invalid ~ .invalid-feedback, +.was-validated .form-control:invalid ~ .invalid-tooltip, +.was-validated .custom-select:invalid ~ .invalid-tooltip, +.form-control.is-invalid ~ .invalid-tooltip, +.custom-select.is-invalid ~ .invalid-tooltip { + display: block; +} +.was-validated .form-control-file:invalid ~ .invalid-feedback, +.form-control-file.is-invalid ~ .invalid-feedback, +.was-validated .form-control-file:invalid ~ .invalid-tooltip, +.form-control-file.is-invalid ~ .invalid-tooltip { + display: block; +} +.was-validated .form-check-input:invalid ~ .form-check-label, +.form-check-input.is-invalid ~ .form-check-label { + color: #dc3545; +} +.was-validated .form-check-input:invalid ~ .invalid-feedback, +.form-check-input.is-invalid ~ .invalid-feedback, +.was-validated .form-check-input:invalid ~ .invalid-tooltip, +.form-check-input.is-invalid ~ .invalid-tooltip { + display: block; +} +.was-validated .custom-control-input:invalid ~ .custom-control-label, +.custom-control-input.is-invalid ~ .custom-control-label { + color: #dc3545; +} +.was-validated .custom-control-input:invalid ~ .custom-control-label::before, +.custom-control-input.is-invalid ~ .custom-control-label::before { + background-color: #efa2a9; +} +.was-validated .custom-control-input:invalid ~ .invalid-feedback, +.custom-control-input.is-invalid ~ .invalid-feedback, +.was-validated .custom-control-input:invalid ~ .invalid-tooltip, +.custom-control-input.is-invalid ~ .invalid-tooltip { + display: block; +} +.was-validated .custom-control-input:invalid:checked ~ .custom-control-label::before, +.custom-control-input.is-invalid:checked ~ .custom-control-label::before { + background-color: #e4606d; +} +.was-validated .custom-control-input:invalid:focus ~ .custom-control-label::before, +.custom-control-input.is-invalid:focus ~ .custom-control-label::before { + box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(220, 53, 69, 0.25); +} +.was-validated .custom-file-input:invalid ~ .custom-file-label, +.custom-file-input.is-invalid ~ .custom-file-label { + border-color: #dc3545; +} +.was-validated .custom-file-input:invalid ~ .custom-file-label::before, +.custom-file-input.is-invalid ~ .custom-file-label::before { + border-color: inherit; +} +.was-validated .custom-file-input:invalid ~ .invalid-feedback, +.custom-file-input.is-invalid ~ .invalid-feedback, +.was-validated .custom-file-input:invalid ~ .invalid-tooltip, +.custom-file-input.is-invalid ~ .invalid-tooltip { + display: block; +} +.was-validated .custom-file-input:invalid:focus ~ .custom-file-label, +.custom-file-input.is-invalid:focus ~ .custom-file-label { + box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25); +} +.form-inline { + display: flex; + flex-flow: row wrap; + align-items: center; +} +.form-inline .form-check { + width: 100%; +} +@media (min-width: 576px) { + .form-inline label { + display: flex; + align-items: center; + justify-content: center; + margin-bottom: 0; + } + .form-inline .form-group { + display: flex; + flex: 0 0 auto; + flex-flow: row wrap; + align-items: center; + margin-bottom: 0; + } + .form-inline .form-control { + display: inline-block; + width: auto; + vertical-align: middle; + } + .form-inline .form-control-plaintext { + display: inline-block; + } + .form-inline .input-group, + .form-inline .custom-select { + width: auto; + } + .form-inline .form-check { + display: flex; + align-items: center; + justify-content: center; + width: auto; + padding-left: 0; + } + .form-inline .form-check-input { + position: relative; + margin-top: 0; + margin-right: 0.25rem; + margin-left: 0; + } + .form-inline .custom-control { + align-items: center; + justify-content: center; + } + .form-inline .custom-control-label { + margin-bottom: 0; + } +} +.btn { + display: inline-block; + font-weight: 400; + text-align: center; + white-space: nowrap; + vertical-align: middle; + user-select: none; + border: 1px solid transparent; + padding: 0.375rem 0.75rem; + font-size: 1rem; + line-height: 1.5; + border-radius: 0.25rem; + transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; +} +@media screen and (prefers-reduced-motion: reduce) { + .btn { + transition: none; + } +} +.btn:hover, +.btn:focus { + text-decoration: none; +} +.btn:focus, +.btn.focus { + outline: 0; + box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25); +} +.btn.disabled, +.btn:disabled { + opacity: 0.65; +} +.btn:not(:disabled):not(.disabled) { + cursor: pointer; +} +.btn:not(:disabled):not(.disabled):active, +.btn:not(:disabled):not(.disabled).active { + background-image: none; +} +a.btn.disabled, +fieldset:disabled a.btn { + pointer-events: none; +} +.btn-primary { + color: #fff; + background-color: #007bff; + border-color: #007bff; +} +.btn-primary:hover { + color: #fff; + background-color: #0069d9; + border-color: #0062cc; +} +.btn-primary:focus, +.btn-primary.focus { + box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5); +} +.btn-primary.disabled, +.btn-primary:disabled { + color: #fff; + background-color: #007bff; + border-color: #007bff; +} +.btn-primary:not(:disabled):not(.disabled):active, +.btn-primary:not(:disabled):not(.disabled).active, +.show > .btn-primary.dropdown-toggle { + color: #fff; + background-color: #0062cc; + border-color: #005cbf; +} +.btn-primary:not(:disabled):not(.disabled):active:focus, +.btn-primary:not(:disabled):not(.disabled).active:focus, +.show > .btn-primary.dropdown-toggle:focus { + box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5); +} +.btn-secondary { + color: #fff; + background-color: #6c757d; + border-color: #6c757d; +} +.btn-secondary:hover { + color: #fff; + background-color: #5a6268; + border-color: #545b62; +} +.btn-secondary:focus, +.btn-secondary.focus { + box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5); +} +.btn-secondary.disabled, +.btn-secondary:disabled { + color: #fff; + background-color: #6c757d; + border-color: #6c757d; +} +.btn-secondary:not(:disabled):not(.disabled):active, +.btn-secondary:not(:disabled):not(.disabled).active, +.show > .btn-secondary.dropdown-toggle { + color: #fff; + background-color: #545b62; + border-color: #4e555b; +} +.btn-secondary:not(:disabled):not(.disabled):active:focus, +.btn-secondary:not(:disabled):not(.disabled).active:focus, +.show > .btn-secondary.dropdown-toggle:focus { + box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5); +} +.btn-success { + color: #fff; + background-color: #28a745; + border-color: #28a745; +} +.btn-success:hover { + color: #fff; + background-color: #218838; + border-color: #1e7e34; +} +.btn-success:focus, +.btn-success.focus { + box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5); +} +.btn-success.disabled, +.btn-success:disabled { + color: #fff; + background-color: #28a745; + border-color: #28a745; +} +.btn-success:not(:disabled):not(.disabled):active, +.btn-success:not(:disabled):not(.disabled).active, +.show > .btn-success.dropdown-toggle { + color: #fff; + background-color: #1e7e34; + border-color: #1c7430; +} +.btn-success:not(:disabled):not(.disabled):active:focus, +.btn-success:not(:disabled):not(.disabled).active:focus, +.show > .btn-success.dropdown-toggle:focus { + box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5); +} +.btn-info { + color: #fff; + background-color: #17a2b8; + border-color: #17a2b8; +} +.btn-info:hover { + color: #fff; + background-color: #138496; + border-color: #117a8b; +} +.btn-info:focus, +.btn-info.focus { + box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5); +} +.btn-info.disabled, +.btn-info:disabled { + color: #fff; + background-color: #17a2b8; + border-color: #17a2b8; +} +.btn-info:not(:disabled):not(.disabled):active, +.btn-info:not(:disabled):not(.disabled).active, +.show > .btn-info.dropdown-toggle { + color: #fff; + background-color: #117a8b; + border-color: #10707f; +} +.btn-info:not(:disabled):not(.disabled):active:focus, +.btn-info:not(:disabled):not(.disabled).active:focus, +.show > .btn-info.dropdown-toggle:focus { + box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5); +} +.btn-warning { + color: #212529; + background-color: #ffc107; + border-color: #ffc107; +} +.btn-warning:hover { + color: #212529; + background-color: #e0a800; + border-color: #d39e00; +} +.btn-warning:focus, +.btn-warning.focus { + box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5); +} +.btn-warning.disabled, +.btn-warning:disabled { + color: #212529; + background-color: #ffc107; + border-color: #ffc107; +} +.btn-warning:not(:disabled):not(.disabled):active, +.btn-warning:not(:disabled):not(.disabled).active, +.show > .btn-warning.dropdown-toggle { + color: #212529; + background-color: #d39e00; + border-color: #c69500; +} +.btn-warning:not(:disabled):not(.disabled):active:focus, +.btn-warning:not(:disabled):not(.disabled).active:focus, +.show > .btn-warning.dropdown-toggle:focus { + box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5); +} +.btn-danger { + color: #fff; + background-color: #dc3545; + border-color: #dc3545; +} +.btn-danger:hover { + color: #fff; + background-color: #c82333; + border-color: #bd2130; +} +.btn-danger:focus, +.btn-danger.focus { + box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5); +} +.btn-danger.disabled, +.btn-danger:disabled { + color: #fff; + background-color: #dc3545; + border-color: #dc3545; +} +.btn-danger:not(:disabled):not(.disabled):active, +.btn-danger:not(:disabled):not(.disabled).active, +.show > .btn-danger.dropdown-toggle { + color: #fff; + background-color: #bd2130; + border-color: #b21f2d; +} +.btn-danger:not(:disabled):not(.disabled):active:focus, +.btn-danger:not(:disabled):not(.disabled).active:focus, +.show > .btn-danger.dropdown-toggle:focus { + box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5); +} +.btn-light { + color: #212529; + background-color: #f8f9fa; + border-color: #f8f9fa; +} +.btn-light:hover { + color: #212529; + background-color: #e2e6ea; + border-color: #dae0e5; +} +.btn-light:focus, +.btn-light.focus { + box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5); +} +.btn-light.disabled, +.btn-light:disabled { + color: #212529; + background-color: #f8f9fa; + border-color: #f8f9fa; +} +.btn-light:not(:disabled):not(.disabled):active, +.btn-light:not(:disabled):not(.disabled).active, +.show > .btn-light.dropdown-toggle { + color: #212529; + background-color: #dae0e5; + border-color: #d3d9df; +} +.btn-light:not(:disabled):not(.disabled):active:focus, +.btn-light:not(:disabled):not(.disabled).active:focus, +.show > .btn-light.dropdown-toggle:focus { + box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5); +} +.btn-dark { + color: #fff; + background-color: #343a40; + border-color: #343a40; +} +.btn-dark:hover { + color: #fff; + background-color: #23272b; + border-color: #1d2124; +} +.btn-dark:focus, +.btn-dark.focus { + box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5); +} +.btn-dark.disabled, +.btn-dark:disabled { + color: #fff; + background-color: #343a40; + border-color: #343a40; +} +.btn-dark:not(:disabled):not(.disabled):active, +.btn-dark:not(:disabled):not(.disabled).active, +.show > .btn-dark.dropdown-toggle { + color: #fff; + background-color: #1d2124; + border-color: #171a1d; +} +.btn-dark:not(:disabled):not(.disabled):active:focus, +.btn-dark:not(:disabled):not(.disabled).active:focus, +.show > .btn-dark.dropdown-toggle:focus { + box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5); +} +.btn-outline-primary { + color: #007bff; + background-color: transparent; + background-image: none; + border-color: #007bff; +} +.btn-outline-primary:hover { + color: #fff; + background-color: #007bff; + border-color: #007bff; +} +.btn-outline-primary:focus, +.btn-outline-primary.focus { + box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5); +} +.btn-outline-primary.disabled, +.btn-outline-primary:disabled { + color: #007bff; + background-color: transparent; +} +.btn-outline-primary:not(:disabled):not(.disabled):active, +.btn-outline-primary:not(:disabled):not(.disabled).active, +.show > .btn-outline-primary.dropdown-toggle { + color: #fff; + background-color: #007bff; + border-color: #007bff; +} +.btn-outline-primary:not(:disabled):not(.disabled):active:focus, +.btn-outline-primary:not(:disabled):not(.disabled).active:focus, +.show > .btn-outline-primary.dropdown-toggle:focus { + box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5); +} +.btn-outline-secondary { + color: #6c757d; + background-color: transparent; + background-image: none; + border-color: #6c757d; +} +.btn-outline-secondary:hover { + color: #fff; + background-color: #6c757d; + border-color: #6c757d; +} +.btn-outline-secondary:focus, +.btn-outline-secondary.focus { + box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5); +} +.btn-outline-secondary.disabled, +.btn-outline-secondary:disabled { + color: #6c757d; + background-color: transparent; +} +.btn-outline-secondary:not(:disabled):not(.disabled):active, +.btn-outline-secondary:not(:disabled):not(.disabled).active, +.show > .btn-outline-secondary.dropdown-toggle { + color: #fff; + background-color: #6c757d; + border-color: #6c757d; +} +.btn-outline-secondary:not(:disabled):not(.disabled):active:focus, +.btn-outline-secondary:not(:disabled):not(.disabled).active:focus, +.show > .btn-outline-secondary.dropdown-toggle:focus { + box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5); +} +.btn-outline-success { + color: #28a745; + background-color: transparent; + background-image: none; + border-color: #28a745; +} +.btn-outline-success:hover { + color: #fff; + background-color: #28a745; + border-color: #28a745; +} +.btn-outline-success:focus, +.btn-outline-success.focus { + box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5); +} +.btn-outline-success.disabled, +.btn-outline-success:disabled { + color: #28a745; + background-color: transparent; +} +.btn-outline-success:not(:disabled):not(.disabled):active, +.btn-outline-success:not(:disabled):not(.disabled).active, +.show > .btn-outline-success.dropdown-toggle { + color: #fff; + background-color: #28a745; + border-color: #28a745; +} +.btn-outline-success:not(:disabled):not(.disabled):active:focus, +.btn-outline-success:not(:disabled):not(.disabled).active:focus, +.show > .btn-outline-success.dropdown-toggle:focus { + box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5); +} +.btn-outline-info { + color: #17a2b8; + background-color: transparent; + background-image: none; + border-color: #17a2b8; +} +.btn-outline-info:hover { + color: #fff; + background-color: #17a2b8; + border-color: #17a2b8; +} +.btn-outline-info:focus, +.btn-outline-info.focus { + box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5); +} +.btn-outline-info.disabled, +.btn-outline-info:disabled { + color: #17a2b8; + background-color: transparent; +} +.btn-outline-info:not(:disabled):not(.disabled):active, +.btn-outline-info:not(:disabled):not(.disabled).active, +.show > .btn-outline-info.dropdown-toggle { + color: #fff; + background-color: #17a2b8; + border-color: #17a2b8; +} +.btn-outline-info:not(:disabled):not(.disabled):active:focus, +.btn-outline-info:not(:disabled):not(.disabled).active:focus, +.show > .btn-outline-info.dropdown-toggle:focus { + box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5); +} +.btn-outline-warning { + color: #ffc107; + background-color: transparent; + background-image: none; + border-color: #ffc107; +} +.btn-outline-warning:hover { + color: #212529; + background-color: #ffc107; + border-color: #ffc107; +} +.btn-outline-warning:focus, +.btn-outline-warning.focus { + box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5); +} +.btn-outline-warning.disabled, +.btn-outline-warning:disabled { + color: #ffc107; + background-color: transparent; +} +.btn-outline-warning:not(:disabled):not(.disabled):active, +.btn-outline-warning:not(:disabled):not(.disabled).active, +.show > .btn-outline-warning.dropdown-toggle { + color: #212529; + background-color: #ffc107; + border-color: #ffc107; +} +.btn-outline-warning:not(:disabled):not(.disabled):active:focus, +.btn-outline-warning:not(:disabled):not(.disabled).active:focus, +.show > .btn-outline-warning.dropdown-toggle:focus { + box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5); +} +.btn-outline-danger { + color: #dc3545; + background-color: transparent; + background-image: none; + border-color: #dc3545; +} +.btn-outline-danger:hover { + color: #fff; + background-color: #dc3545; + border-color: #dc3545; +} +.btn-outline-danger:focus, +.btn-outline-danger.focus { + box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5); +} +.btn-outline-danger.disabled, +.btn-outline-danger:disabled { + color: #dc3545; + background-color: transparent; +} +.btn-outline-danger:not(:disabled):not(.disabled):active, +.btn-outline-danger:not(:disabled):not(.disabled).active, +.show > .btn-outline-danger.dropdown-toggle { + color: #fff; + background-color: #dc3545; + border-color: #dc3545; +} +.btn-outline-danger:not(:disabled):not(.disabled):active:focus, +.btn-outline-danger:not(:disabled):not(.disabled).active:focus, +.show > .btn-outline-danger.dropdown-toggle:focus { + box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5); +} +.btn-outline-light { + color: #f8f9fa; + background-color: transparent; + background-image: none; + border-color: #f8f9fa; +} +.btn-outline-light:hover { + color: #212529; + background-color: #f8f9fa; + border-color: #f8f9fa; +} +.btn-outline-light:focus, +.btn-outline-light.focus { + box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5); +} +.btn-outline-light.disabled, +.btn-outline-light:disabled { + color: #f8f9fa; + background-color: transparent; +} +.btn-outline-light:not(:disabled):not(.disabled):active, +.btn-outline-light:not(:disabled):not(.disabled).active, +.show > .btn-outline-light.dropdown-toggle { + color: #212529; + background-color: #f8f9fa; + border-color: #f8f9fa; +} +.btn-outline-light:not(:disabled):not(.disabled):active:focus, +.btn-outline-light:not(:disabled):not(.disabled).active:focus, +.show > .btn-outline-light.dropdown-toggle:focus { + box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5); +} +.btn-outline-dark { + color: #343a40; + background-color: transparent; + background-image: none; + border-color: #343a40; +} +.btn-outline-dark:hover { + color: #fff; + background-color: #343a40; + border-color: #343a40; +} +.btn-outline-dark:focus, +.btn-outline-dark.focus { + box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5); +} +.btn-outline-dark.disabled, +.btn-outline-dark:disabled { + color: #343a40; + background-color: transparent; +} +.btn-outline-dark:not(:disabled):not(.disabled):active, +.btn-outline-dark:not(:disabled):not(.disabled).active, +.show > .btn-outline-dark.dropdown-toggle { + color: #fff; + background-color: #343a40; + border-color: #343a40; +} +.btn-outline-dark:not(:disabled):not(.disabled):active:focus, +.btn-outline-dark:not(:disabled):not(.disabled).active:focus, +.show > .btn-outline-dark.dropdown-toggle:focus { + box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5); +} +.btn-link { + font-weight: 400; + color: #007bff; + background-color: transparent; +} +.btn-link:hover { + color: #0056b3; + text-decoration: underline; + background-color: transparent; + border-color: transparent; +} +.btn-link:focus, +.btn-link.focus { + text-decoration: underline; + border-color: transparent; + box-shadow: none; +} +.btn-link:disabled, +.btn-link.disabled { + color: #6c757d; + pointer-events: none; +} +.btn-lg, +.btn-group-lg > .btn { + padding: 0.5rem 1rem; + font-size: 1.25rem; + line-height: 1.5; + border-radius: 0.3rem; +} +.btn-sm, +.btn-group-sm > .btn { + padding: 0.25rem 0.5rem; + font-size: 0.875rem; + line-height: 1.5; + border-radius: 0.2rem; +} +.btn-block { + display: block; + width: 100%; +} +.btn-block + .btn-block { + margin-top: 0.5rem; +} +input[type="submit"].btn-block, +input[type="reset"].btn-block, +input[type="button"].btn-block { + width: 100%; +} +.fade { + transition: opacity 0.15s linear; +} +@media screen and (prefers-reduced-motion: reduce) { + .fade { + transition: none; + } +} +.fade:not(.show) { + opacity: 0; +} +.collapse:not(.show) { + display: none; +} +.collapsing { + position: relative; + height: 0; + overflow: hidden; + transition: height 0.35s ease; +} +@media screen and (prefers-reduced-motion: reduce) { + .collapsing { + transition: none; + } +} +.dropup, +.dropright, +.dropdown, +.dropleft { + position: relative; +} +.dropdown-toggle::after { + display: inline-block; + width: 0; + height: 0; + margin-left: 0.255em; + vertical-align: 0.255em; + content: ""; + border-top: 0.3em solid; + border-right: 0.3em solid transparent; + border-bottom: 0; + border-left: 0.3em solid transparent; +} +.dropdown-toggle:empty::after { + margin-left: 0; +} +.dropdown-menu { + position: absolute; + top: 100%; + left: 0; + z-index: 1000; + display: none; + float: left; + min-width: 10rem; + padding: 0.5rem 0; + margin: 0.125rem 0 0; + font-size: 1rem; + color: #212529; + text-align: left; + list-style: none; + background-color: #fff; + background-clip: padding-box; + border: 1px solid rgba(0, 0, 0, 0.15); + border-radius: 0.25rem; +} +.dropdown-menu-right { + right: 0; + left: auto; +} +.dropup .dropdown-menu { + top: auto; + bottom: 100%; + margin-top: 0; + margin-bottom: 0.125rem; +} +.dropup .dropdown-toggle::after { + display: inline-block; + width: 0; + height: 0; + margin-left: 0.255em; + vertical-align: 0.255em; + content: ""; + border-top: 0; + border-right: 0.3em solid transparent; + border-bottom: 0.3em solid; + border-left: 0.3em solid transparent; +} +.dropup .dropdown-toggle:empty::after { + margin-left: 0; +} +.dropright .dropdown-menu { + top: 0; + right: auto; + left: 100%; + margin-top: 0; + margin-left: 0.125rem; +} +.dropright .dropdown-toggle::after { + display: inline-block; + width: 0; + height: 0; + margin-left: 0.255em; + vertical-align: 0.255em; + content: ""; + border-top: 0.3em solid transparent; + border-right: 0; + border-bottom: 0.3em solid transparent; + border-left: 0.3em solid; +} +.dropright .dropdown-toggle:empty::after { + margin-left: 0; +} +.dropright .dropdown-toggle::after { + vertical-align: 0; +} +.dropleft .dropdown-menu { + top: 0; + right: 100%; + left: auto; + margin-top: 0; + margin-right: 0.125rem; +} +.dropleft .dropdown-toggle::after { + display: inline-block; + width: 0; + height: 0; + margin-left: 0.255em; + vertical-align: 0.255em; + content: ""; +} +.dropleft .dropdown-toggle::after { + display: none; +} +.dropleft .dropdown-toggle::before { + display: inline-block; + width: 0; + height: 0; + margin-right: 0.255em; + vertical-align: 0.255em; + content: ""; + border-top: 0.3em solid transparent; + border-right: 0.3em solid; + border-bottom: 0.3em solid transparent; +} +.dropleft .dropdown-toggle:empty::after { + margin-left: 0; +} +.dropleft .dropdown-toggle::before { + vertical-align: 0; +} +.dropdown-menu[x-placement^="top"], +.dropdown-menu[x-placement^="right"], +.dropdown-menu[x-placement^="bottom"], +.dropdown-menu[x-placement^="left"] { + right: auto; + bottom: auto; +} +.dropdown-divider { + height: 0; + margin: 0.5rem 0; + overflow: hidden; + border-top: 1px solid #e9ecef; +} +.dropdown-item { + display: block; + width: 100%; + padding: 0.25rem 1.5rem; + clear: both; + font-weight: 400; + color: #212529; + text-align: inherit; + white-space: nowrap; + background-color: transparent; + border: 0; +} +.dropdown-item:hover, +.dropdown-item:focus { + color: #16181b; + text-decoration: none; + background-color: #f8f9fa; +} +.dropdown-item.active, +.dropdown-item:active { + color: #fff; + text-decoration: none; + background-color: #007bff; +} +.dropdown-item.disabled, +.dropdown-item:disabled { + color: #6c757d; + background-color: transparent; +} +.dropdown-menu.show { + display: block; +} +.dropdown-header { + display: block; + padding: 0.5rem 1.5rem; + margin-bottom: 0; + font-size: 0.875rem; + color: #6c757d; + white-space: nowrap; +} +.dropdown-item-text { + display: block; + padding: 0.25rem 1.5rem; + color: #212529; +} +.btn-group, +.btn-group-vertical { + position: relative; + display: inline-flex; + vertical-align: middle; +} +.btn-group > .btn, +.btn-group-vertical > .btn { + position: relative; + flex: 0 1 auto; +} +.btn-group > .btn:hover, +.btn-group-vertical > .btn:hover { + z-index: 1; +} +.btn-group > .btn:focus, +.btn-group-vertical > .btn:focus, +.btn-group > .btn:active, +.btn-group-vertical > .btn:active, +.btn-group > .btn.active, +.btn-group-vertical > .btn.active { + z-index: 1; +} +.btn-group .btn + .btn, +.btn-group-vertical .btn + .btn, +.btn-group .btn + .btn-group, +.btn-group-vertical .btn + .btn-group, +.btn-group .btn-group + .btn, +.btn-group-vertical .btn-group + .btn, +.btn-group .btn-group + .btn-group, +.btn-group-vertical .btn-group + .btn-group { + margin-left: -1px; +} +.btn-toolbar { + display: flex; + flex-wrap: wrap; + justify-content: flex-start; +} +.btn-toolbar .input-group { + width: auto; +} +.btn-group > .btn:first-child { + margin-left: 0; +} +.btn-group > .btn:not(:last-child):not(.dropdown-toggle), +.btn-group > .btn-group:not(:last-child) > .btn { + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} +.btn-group > .btn:not(:first-child), +.btn-group > .btn-group:not(:first-child) > .btn { + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} +.dropdown-toggle-split { + padding-right: 0.5625rem; + padding-left: 0.5625rem; +} +.dropdown-toggle-split::after, +.dropup .dropdown-toggle-split::after, +.dropright .dropdown-toggle-split::after { + margin-left: 0; +} +.dropleft .dropdown-toggle-split::before { + margin-right: 0; +} +.btn-sm + .dropdown-toggle-split, +.btn-group-sm > .btn + .dropdown-toggle-split { + padding-right: 0.375rem; + padding-left: 0.375rem; +} +.btn-lg + .dropdown-toggle-split, +.btn-group-lg > .btn + .dropdown-toggle-split { + padding-right: 0.75rem; + padding-left: 0.75rem; +} +.btn-group-vertical { + flex-direction: column; + align-items: flex-start; + justify-content: center; +} +.btn-group-vertical .btn, +.btn-group-vertical .btn-group { + width: 100%; +} +.btn-group-vertical > .btn + .btn, +.btn-group-vertical > .btn + .btn-group, +.btn-group-vertical > .btn-group + .btn, +.btn-group-vertical > .btn-group + .btn-group { + margin-top: -1px; + margin-left: 0; +} +.btn-group-vertical > .btn:not(:last-child):not(.dropdown-toggle), +.btn-group-vertical > .btn-group:not(:last-child) > .btn { + border-bottom-right-radius: 0; + border-bottom-left-radius: 0; +} +.btn-group-vertical > .btn:not(:first-child), +.btn-group-vertical > .btn-group:not(:first-child) > .btn { + border-top-left-radius: 0; + border-top-right-radius: 0; +} +.btn-group-toggle > .btn, +.btn-group-toggle > .btn-group > .btn { + margin-bottom: 0; +} +.btn-group-toggle > .btn input[type="radio"], +.btn-group-toggle > .btn-group > .btn input[type="radio"], +.btn-group-toggle > .btn input[type="checkbox"], +.btn-group-toggle > .btn-group > .btn input[type="checkbox"] { + position: absolute; + clip: rect(0, 0, 0, 0); + pointer-events: none; +} +.input-group { + position: relative; + display: flex; + flex-wrap: wrap; + align-items: stretch; + width: 100%; +} +.input-group > .form-control, +.input-group > .custom-select, +.input-group > .custom-file { + position: relative; + flex: 1 1 auto; + width: 1%; + margin-bottom: 0; +} +.input-group > .form-control:focus, +.input-group > .custom-select:focus, +.input-group > .custom-file:focus { + z-index: 3; +} +.input-group > .form-control + .form-control, +.input-group > .custom-select + .form-control, +.input-group > .custom-file + .form-control, +.input-group > .form-control + .custom-select, +.input-group > .custom-select + .custom-select, +.input-group > .custom-file + .custom-select, +.input-group > .form-control + .custom-file, +.input-group > .custom-select + .custom-file, +.input-group > .custom-file + .custom-file { + margin-left: -1px; +} +.input-group > .form-control:not(:last-child), +.input-group > .custom-select:not(:last-child) { + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} +.input-group > .form-control:not(:first-child), +.input-group > .custom-select:not(:first-child) { + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} +.input-group > .custom-file { + display: flex; + align-items: center; +} +.input-group > .custom-file:not(:last-child) .custom-file-label, +.input-group > .custom-file:not(:last-child) .custom-file-label::after { + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} +.input-group > .custom-file:not(:first-child) .custom-file-label { + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} +.input-group-prepend, +.input-group-append { + display: flex; +} +.input-group-prepend .btn, +.input-group-append .btn { + position: relative; + z-index: 2; +} +.input-group-prepend .btn + .btn, +.input-group-append .btn + .btn, +.input-group-prepend .btn + .input-group-text, +.input-group-append .btn + .input-group-text, +.input-group-prepend .input-group-text + .input-group-text, +.input-group-append .input-group-text + .input-group-text, +.input-group-prepend .input-group-text + .btn, +.input-group-append .input-group-text + .btn { + margin-left: -1px; +} +.input-group-prepend { + margin-right: -1px; +} +.input-group-append { + margin-left: -1px; +} +.input-group-text { + display: flex; + align-items: center; + padding: 0.375rem 0.75rem; + margin-bottom: 0; + font-size: 1rem; + font-weight: 400; + line-height: 1.5; + color: #495057; + text-align: center; + white-space: nowrap; + background-color: #e9ecef; + border: 1px solid #ced4da; + border-radius: 0.25rem; +} +.input-group-text input[type="radio"], +.input-group-text input[type="checkbox"] { + margin-top: 0; +} +.input-group > .input-group-prepend > .btn, +.input-group > .input-group-prepend > .input-group-text, +.input-group > .input-group-append:not(:last-child) > .btn, +.input-group > .input-group-append:not(:last-child) > .input-group-text, +.input-group > .input-group-append:last-child > .btn:not(:last-child):not(.dropdown-toggle), +.input-group > .input-group-append:last-child > .input-group-text:not(:last-child) { + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} +.input-group > .input-group-append > .btn, +.input-group > .input-group-append > .input-group-text, +.input-group > .input-group-prepend:not(:first-child) > .btn, +.input-group > .input-group-prepend:not(:first-child) > .input-group-text, +.input-group > .input-group-prepend:first-child > .btn:not(:first-child), +.input-group > .input-group-prepend:first-child > .input-group-text:not(:first-child) { + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} +.custom-control { + position: relative; + display: block; + min-height: 1.5rem; + padding-left: 1.5rem; +} +.custom-control-inline { + display: inline-flex; + margin-right: 1rem; +} +.custom-control-input { + position: absolute; + z-index: -1; + opacity: 0; +} +.custom-control-input:checked ~ .custom-control-label::before { + color: #fff; + background-color: #007bff; +} +.custom-control-input:focus ~ .custom-control-label::before { + box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25); +} +.custom-control-input:active ~ .custom-control-label::before { + color: #fff; + background-color: #b3d7ff; +} +.custom-control-input:disabled ~ .custom-control-label { + color: #6c757d; +} +.custom-control-input:disabled ~ .custom-control-label::before { + background-color: #e9ecef; +} +.custom-control-label { + position: relative; + margin-bottom: 0; +} +.custom-control-label::before { + position: absolute; + top: 0.25rem; + left: -1.5rem; + display: block; + width: 1rem; + height: 1rem; + pointer-events: none; + content: ""; + user-select: none; + background-color: #dee2e6; +} +.custom-control-label::after { + position: absolute; + top: 0.25rem; + left: -1.5rem; + display: block; + width: 1rem; + height: 1rem; + content: ""; + background-repeat: no-repeat; + background-position: center center; + background-size: 50% 50%; +} +.custom-checkbox .custom-control-label::before { + border-radius: 0.25rem; +} +.custom-checkbox .custom-control-input:checked ~ .custom-control-label::before { + background-color: #007bff; +} +.custom-checkbox .custom-control-input:checked ~ .custom-control-label::after { + background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E"); +} +.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::before { + background-color: #007bff; +} +.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::after { + background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 4'%3E%3Cpath stroke='%23fff' d='M0 2h4'/%3E%3C/svg%3E"); +} +.custom-checkbox .custom-control-input:disabled:checked ~ .custom-control-label::before { + background-color: rgba(0, 123, 255, 0.5); +} +.custom-checkbox .custom-control-input:disabled:indeterminate ~ .custom-control-label::before { + background-color: rgba(0, 123, 255, 0.5); +} +.custom-radio .custom-control-label::before { + border-radius: 50%; +} +.custom-radio .custom-control-input:checked ~ .custom-control-label::before { + background-color: #007bff; +} +.custom-radio .custom-control-input:checked ~ .custom-control-label::after { + background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23fff'/%3E%3C/svg%3E"); +} +.custom-radio .custom-control-input:disabled:checked ~ .custom-control-label::before { + background-color: rgba(0, 123, 255, 0.5); +} +.custom-select { + display: inline-block; + width: 100%; + height: calc(2.25rem + 2px); + padding: 0.375rem 1.75rem 0.375rem 0.75rem; + line-height: 1.5; + color: #495057; + vertical-align: middle; + background: #fff url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3E%3Cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E") no-repeat right 0.75rem center; + background-size: 8px 10px; + border: 1px solid #ced4da; + border-radius: 0.25rem; + appearance: none; +} +.custom-select:focus { + border-color: #80bdff; + outline: 0; + box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.075), 0 0 5px rgba(128, 189, 255, 0.5); +} +.custom-select:focus::-ms-value { + color: #495057; + background-color: #fff; +} +.custom-select[multiple], +.custom-select[size]:not([size="1"]) { + height: auto; + padding-right: 0.75rem; + background-image: none; +} +.custom-select:disabled { + color: #6c757d; + background-color: #e9ecef; +} +.custom-select::-ms-expand { + opacity: 0; +} +.custom-select-sm { + height: calc(1.8125rem + 2px); + padding-top: 0.375rem; + padding-bottom: 0.375rem; + font-size: 75%; +} +.custom-select-lg { + height: calc(2.875rem + 2px); + padding-top: 0.375rem; + padding-bottom: 0.375rem; + font-size: 125%; +} +.custom-file { + position: relative; + display: inline-block; + width: 100%; + height: calc(2.25rem + 2px); + margin-bottom: 0; +} +.custom-file-input { + position: relative; + z-index: 2; + width: 100%; + height: calc(2.25rem + 2px); + margin: 0; + opacity: 0; +} +.custom-file-input:focus ~ .custom-file-label { + border-color: #80bdff; + box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25); +} +.custom-file-input:focus ~ .custom-file-label::after { + border-color: #80bdff; +} +.custom-file-input:lang(en) ~ .custom-file-label::after { + content: "Browse"; +} +.custom-file-label { + position: absolute; + top: 0; + right: 0; + left: 0; + z-index: 1; + height: calc(2.25rem + 2px); + padding: 0.375rem 0.75rem; + line-height: 1.5; + color: #495057; + background-color: #fff; + border: 1px solid #ced4da; + border-radius: 0.25rem; +} +.custom-file-label::after { + position: absolute; + top: 0; + right: 0; + bottom: 0; + z-index: 3; + display: block; + height: 2.25rem; + padding: 0.375rem 0.75rem; + line-height: 1.5; + color: #495057; + content: "Browse"; + background-color: #e9ecef; + border-left: 1px solid #ced4da; + border-radius: 0 0.25rem 0.25rem 0; +} +.custom-range { + width: 100%; + padding-left: 0; + background-color: transparent; + appearance: none; +} +.custom-range:focus { + outline: none; +} +.custom-range::-moz-focus-outer { + border: 0; +} +.custom-range::-webkit-slider-thumb { + width: 1rem; + height: 1rem; + margin-top: -0.25rem; + background-color: #007bff; + border: 0; + border-radius: 1rem; + appearance: none; +} +.custom-range::-webkit-slider-thumb:focus { + outline: none; + box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25); +} +.custom-range::-webkit-slider-thumb:active { + background-color: #b3d7ff; +} +.custom-range::-webkit-slider-runnable-track { + width: 100%; + height: 0.5rem; + color: transparent; + cursor: pointer; + background-color: #dee2e6; + border-color: transparent; + border-radius: 1rem; +} +.custom-range::-moz-range-thumb { + width: 1rem; + height: 1rem; + background-color: #007bff; + border: 0; + border-radius: 1rem; + appearance: none; +} +.custom-range::-moz-range-thumb:focus { + outline: none; + box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25); +} +.custom-range::-moz-range-thumb:active { + background-color: #b3d7ff; +} +.custom-range::-moz-range-track { + width: 100%; + height: 0.5rem; + color: transparent; + cursor: pointer; + background-color: #dee2e6; + border-color: transparent; + border-radius: 1rem; +} +.custom-range::-ms-thumb { + width: 1rem; + height: 1rem; + background-color: #007bff; + border: 0; + border-radius: 1rem; + appearance: none; +} +.custom-range::-ms-thumb:focus { + outline: none; + box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25); +} +.custom-range::-ms-thumb:active { + background-color: #b3d7ff; +} +.custom-range::-ms-track { + width: 100%; + height: 0.5rem; + color: transparent; + cursor: pointer; + background-color: transparent; + border-color: transparent; + border-width: 0.5rem; +} +.custom-range::-ms-fill-lower { + background-color: #dee2e6; + border-radius: 1rem; +} +.custom-range::-ms-fill-upper { + margin-right: 15px; + background-color: #dee2e6; + border-radius: 1rem; +} +.nav { + display: flex; + flex-wrap: wrap; + padding-left: 0; + margin-bottom: 0; + list-style: none; +} +.nav-link { + display: block; + padding: 0.5rem 1rem; +} +.nav-link:hover, +.nav-link:focus { + text-decoration: none; +} +.nav-link.disabled { + color: #6c757d; +} +.nav-tabs { + border-bottom: 1px solid #dee2e6; +} +.nav-tabs .nav-item { + margin-bottom: -1px; +} +.nav-tabs .nav-link { + border: 1px solid transparent; + border-top-left-radius: 0.25rem; + border-top-right-radius: 0.25rem; +} +.nav-tabs .nav-link:hover, +.nav-tabs .nav-link:focus { + border-color: #e9ecef #e9ecef #dee2e6; +} +.nav-tabs .nav-link.disabled { + color: #6c757d; + background-color: transparent; + border-color: transparent; +} +.nav-tabs .nav-link.active, +.nav-tabs .nav-item.show .nav-link { + color: #495057; + background-color: #fff; + border-color: #dee2e6 #dee2e6 #fff; +} +.nav-tabs .dropdown-menu { + margin-top: -1px; + border-top-left-radius: 0; + border-top-right-radius: 0; +} +.nav-pills .nav-link { + border-radius: 0.25rem; +} +.nav-pills .nav-link.active, +.nav-pills .show > .nav-link { + color: #fff; + background-color: #007bff; +} +.nav-fill .nav-item { + flex: 1 1 auto; + text-align: center; +} +.nav-justified .nav-item { + flex-basis: 0; + flex-grow: 1; + text-align: center; +} +.tab-content > .tab-pane { + display: none; +} +.tab-content > .active { + display: block; +} +.navbar { + position: relative; + display: flex; + flex-wrap: wrap; + align-items: center; + justify-content: space-between; + padding: 0.5rem 1rem; +} +.navbar > .container, +.navbar > .container-fluid { + display: flex; + flex-wrap: wrap; + align-items: center; + justify-content: space-between; +} +.navbar-brand { + display: inline-block; + padding-top: 0.3125rem; + padding-bottom: 0.3125rem; + margin-right: 1rem; + font-size: 1.25rem; + line-height: inherit; + white-space: nowrap; +} +.navbar-brand:hover, +.navbar-brand:focus { + text-decoration: none; +} +.navbar-nav { + display: flex; + flex-direction: column; + padding-left: 0; + margin-bottom: 0; + list-style: none; +} +.navbar-nav .nav-link { + padding-right: 0; + padding-left: 0; +} +.navbar-nav .dropdown-menu { + position: static; + float: none; +} +.navbar-text { + display: inline-block; + padding-top: 0.5rem; + padding-bottom: 0.5rem; +} +.navbar-collapse { + flex-basis: 100%; + flex-grow: 1; + align-items: center; +} +.navbar-toggler { + padding: 0.25rem 0.75rem; + font-size: 1.25rem; + line-height: 1; + background-color: transparent; + border: 1px solid transparent; + border-radius: 0.25rem; +} +.navbar-toggler:hover, +.navbar-toggler:focus { + text-decoration: none; +} +.navbar-toggler:not(:disabled):not(.disabled) { + cursor: pointer; +} +.navbar-toggler-icon { + display: inline-block; + width: 1.5em; + height: 1.5em; + vertical-align: middle; + content: ""; + background: no-repeat center center; + background-size: 100% 100%; +} +.navbar-expand { + flex-flow: row nowrap; + justify-content: flex-start; +} +@media (max-width: 575.98px) { + .navbar-expand-sm > .container, + .navbar-expand-sm > .container-fluid { + padding-right: 0; + padding-left: 0; + } +} +@media (min-width: 576px) { + .navbar-expand-sm { + flex-flow: row nowrap; + justify-content: flex-start; + } + .navbar-expand-sm .navbar-nav { + flex-direction: row; + } + .navbar-expand-sm .navbar-nav .dropdown-menu { + position: absolute; + } + .navbar-expand-sm .navbar-nav .nav-link { + padding-right: 0.5rem; + padding-left: 0.5rem; + } + .navbar-expand-sm > .container, + .navbar-expand-sm > .container-fluid { + flex-wrap: nowrap; + } + .navbar-expand-sm .navbar-collapse { + display: flex !important; + flex-basis: auto; + } + .navbar-expand-sm .navbar-toggler { + display: none; + } +} +@media (max-width: 767.98px) { + .navbar-expand-md > .container, + .navbar-expand-md > .container-fluid { + padding-right: 0; + padding-left: 0; + } +} +@media (min-width: 768px) { + .navbar-expand-md { + flex-flow: row nowrap; + justify-content: flex-start; + } + .navbar-expand-md .navbar-nav { + flex-direction: row; + } + .navbar-expand-md .navbar-nav .dropdown-menu { + position: absolute; + } + .navbar-expand-md .navbar-nav .nav-link { + padding-right: 0.5rem; + padding-left: 0.5rem; + } + .navbar-expand-md > .container, + .navbar-expand-md > .container-fluid { + flex-wrap: nowrap; + } + .navbar-expand-md .navbar-collapse { + display: flex !important; + flex-basis: auto; + } + .navbar-expand-md .navbar-toggler { + display: none; + } +} +@media (max-width: 991.98px) { + .navbar-expand-lg > .container, + .navbar-expand-lg > .container-fluid { + padding-right: 0; + padding-left: 0; + } +} +@media (min-width: 992px) { + .navbar-expand-lg { + flex-flow: row nowrap; + justify-content: flex-start; + } + .navbar-expand-lg .navbar-nav { + flex-direction: row; + } + .navbar-expand-lg .navbar-nav .dropdown-menu { + position: absolute; + } + .navbar-expand-lg .navbar-nav .nav-link { + padding-right: 0.5rem; + padding-left: 0.5rem; + } + .navbar-expand-lg > .container, + .navbar-expand-lg > .container-fluid { + flex-wrap: nowrap; + } + .navbar-expand-lg .navbar-collapse { + display: flex !important; + flex-basis: auto; + } + .navbar-expand-lg .navbar-toggler { + display: none; + } +} +@media (max-width: 1199.98px) { + .navbar-expand-xl > .container, + .navbar-expand-xl > .container-fluid { + padding-right: 0; + padding-left: 0; + } +} +@media (min-width: 1200px) { + .navbar-expand-xl { + flex-flow: row nowrap; + justify-content: flex-start; + } + .navbar-expand-xl .navbar-nav { + flex-direction: row; + } + .navbar-expand-xl .navbar-nav .dropdown-menu { + position: absolute; + } + .navbar-expand-xl .navbar-nav .nav-link { + padding-right: 0.5rem; + padding-left: 0.5rem; + } + .navbar-expand-xl > .container, + .navbar-expand-xl > .container-fluid { + flex-wrap: nowrap; + } + .navbar-expand-xl .navbar-collapse { + display: flex !important; + flex-basis: auto; + } + .navbar-expand-xl .navbar-toggler { + display: none; + } +} +.navbar-expand > .container, +.navbar-expand > .container-fluid { + padding-right: 0; + padding-left: 0; +} +.navbar-expand .navbar-nav { + flex-direction: row; +} +.navbar-expand .navbar-nav .dropdown-menu { + position: absolute; +} +.navbar-expand .navbar-nav .nav-link { + padding-right: 0.5rem; + padding-left: 0.5rem; +} +.navbar-expand > .container, +.navbar-expand > .container-fluid { + flex-wrap: nowrap; +} +.navbar-expand .navbar-collapse { + display: flex !important; + flex-basis: auto; +} +.navbar-expand .navbar-toggler { + display: none; +} +.navbar-light .navbar-brand { + color: rgba(0, 0, 0, 0.9); +} +.navbar-light .navbar-brand:hover, +.navbar-light .navbar-brand:focus { + color: rgba(0, 0, 0, 0.9); +} +.navbar-light .navbar-nav .nav-link { + color: rgba(0, 0, 0, 0.5); +} +.navbar-light .navbar-nav .nav-link:hover, +.navbar-light .navbar-nav .nav-link:focus { + color: rgba(0, 0, 0, 0.7); +} +.navbar-light .navbar-nav .nav-link.disabled { + color: rgba(0, 0, 0, 0.3); +} +.navbar-light .navbar-nav .show > .nav-link, +.navbar-light .navbar-nav .active > .nav-link, +.navbar-light .navbar-nav .nav-link.show, +.navbar-light .navbar-nav .nav-link.active { + color: rgba(0, 0, 0, 0.9); +} +.navbar-light .navbar-toggler { + color: rgba(0, 0, 0, 0.5); + border-color: rgba(0, 0, 0, 0.1); +} +.navbar-light .navbar-toggler-icon { + background-image: url("data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='rgba(0, 0, 0, 0.5)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E"); +} +.navbar-light .navbar-text { + color: rgba(0, 0, 0, 0.5); +} +.navbar-light .navbar-text a { + color: rgba(0, 0, 0, 0.9); +} +.navbar-light .navbar-text a:hover, +.navbar-light .navbar-text a:focus { + color: rgba(0, 0, 0, 0.9); +} +.navbar-dark .navbar-brand { + color: #fff; +} +.navbar-dark .navbar-brand:hover, +.navbar-dark .navbar-brand:focus { + color: #fff; +} +.navbar-dark .navbar-nav .nav-link { + color: rgba(255, 255, 255, 0.5); +} +.navbar-dark .navbar-nav .nav-link:hover, +.navbar-dark .navbar-nav .nav-link:focus { + color: rgba(255, 255, 255, 0.75); +} +.navbar-dark .navbar-nav .nav-link.disabled { + color: rgba(255, 255, 255, 0.25); +} +.navbar-dark .navbar-nav .show > .nav-link, +.navbar-dark .navbar-nav .active > .nav-link, +.navbar-dark .navbar-nav .nav-link.show, +.navbar-dark .navbar-nav .nav-link.active { + color: #fff; +} +.navbar-dark .navbar-toggler { + color: rgba(255, 255, 255, 0.5); + border-color: rgba(255, 255, 255, 0.1); +} +.navbar-dark .navbar-toggler-icon { + background-image: url("data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='rgba(255, 255, 255, 0.5)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E"); +} +.navbar-dark .navbar-text { + color: rgba(255, 255, 255, 0.5); +} +.navbar-dark .navbar-text a { + color: #fff; +} +.navbar-dark .navbar-text a:hover, +.navbar-dark .navbar-text a:focus { + color: #fff; +} +.card { + position: relative; + display: flex; + flex-direction: column; + min-width: 0; + word-wrap: break-word; + background-color: #fff; + background-clip: border-box; + border: 1px solid rgba(0, 0, 0, 0.125); + border-radius: 0.25rem; +} +.card > hr { + margin-right: 0; + margin-left: 0; +} +.card > .list-group:first-child .list-group-item:first-child { + border-top-left-radius: 0.25rem; + border-top-right-radius: 0.25rem; +} +.card > .list-group:last-child .list-group-item:last-child { + border-bottom-right-radius: 0.25rem; + border-bottom-left-radius: 0.25rem; +} +.card-body { + flex: 1 1 auto; + padding: 1.25rem; +} +.card-title { + margin-bottom: 0.75rem; +} +.card-subtitle { + margin-top: -0.375rem; + margin-bottom: 0; +} +.card-text:last-child { + margin-bottom: 0; +} +.card-link:hover { + text-decoration: none; +} +.card-link + .card-link { + margin-left: 1.25rem; +} +.card-header { + padding: 0.75rem 1.25rem; + margin-bottom: 0; + background-color: rgba(0, 0, 0, 0.03); + border-bottom: 1px solid rgba(0, 0, 0, 0.125); +} +.card-header:first-child { + border-radius: calc(0.25rem - 1px) calc(0.25rem - 1px) 0 0; +} +.card-header + .list-group .list-group-item:first-child { + border-top: 0; +} +.card-footer { + padding: 0.75rem 1.25rem; + background-color: rgba(0, 0, 0, 0.03); + border-top: 1px solid rgba(0, 0, 0, 0.125); +} +.card-footer:last-child { + border-radius: 0 0 calc(0.25rem - 1px) calc(0.25rem - 1px); +} +.card-header-tabs { + margin-right: -0.625rem; + margin-bottom: -0.75rem; + margin-left: -0.625rem; + border-bottom: 0; +} +.card-header-pills { + margin-right: -0.625rem; + margin-left: -0.625rem; +} +.card-img-overlay { + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + padding: 1.25rem; +} +.card-img { + width: 100%; + border-radius: calc(0.25rem - 1px); +} +.card-img-top { + width: 100%; + border-top-left-radius: calc(0.25rem - 1px); + border-top-right-radius: calc(0.25rem - 1px); +} +.card-img-bottom { + width: 100%; + border-bottom-right-radius: calc(0.25rem - 1px); + border-bottom-left-radius: calc(0.25rem - 1px); +} +.card-deck { + display: flex; + flex-direction: column; +} +.card-deck .card { + margin-bottom: 15px; +} +@media (min-width: 576px) { + .card-deck { + flex-flow: row wrap; + margin-right: -15px; + margin-left: -15px; + } + .card-deck .card { + display: flex; + flex: 1 0 0%; + flex-direction: column; + margin-right: 15px; + margin-bottom: 0; + margin-left: 15px; + } +} +.card-group { + display: flex; + flex-direction: column; +} +.card-group > .card { + margin-bottom: 15px; +} +@media (min-width: 576px) { + .card-group { + flex-flow: row wrap; + } + .card-group > .card { + flex: 1 0 0%; + margin-bottom: 0; + } + .card-group > .card + .card { + margin-left: 0; + border-left: 0; + } + .card-group > .card:first-child { + border-top-right-radius: 0; + border-bottom-right-radius: 0; + } + .card-group > .card:first-child .card-img-top, + .card-group > .card:first-child .card-header { + border-top-right-radius: 0; + } + .card-group > .card:first-child .card-img-bottom, + .card-group > .card:first-child .card-footer { + border-bottom-right-radius: 0; + } + .card-group > .card:last-child { + border-top-left-radius: 0; + border-bottom-left-radius: 0; + } + .card-group > .card:last-child .card-img-top, + .card-group > .card:last-child .card-header { + border-top-left-radius: 0; + } + .card-group > .card:last-child .card-img-bottom, + .card-group > .card:last-child .card-footer { + border-bottom-left-radius: 0; + } + .card-group > .card:only-child { + border-radius: 0.25rem; + } + .card-group > .card:only-child .card-img-top, + .card-group > .card:only-child .card-header { + border-top-left-radius: 0.25rem; + border-top-right-radius: 0.25rem; + } + .card-group > .card:only-child .card-img-bottom, + .card-group > .card:only-child .card-footer { + border-bottom-right-radius: 0.25rem; + border-bottom-left-radius: 0.25rem; + } + .card-group > .card:not(:first-child):not(:last-child):not(:only-child) { + border-radius: 0; + } + .card-group > .card:not(:first-child):not(:last-child):not(:only-child) .card-img-top, + .card-group > .card:not(:first-child):not(:last-child):not(:only-child) .card-img-bottom, + .card-group > .card:not(:first-child):not(:last-child):not(:only-child) .card-header, + .card-group > .card:not(:first-child):not(:last-child):not(:only-child) .card-footer { + border-radius: 0; + } +} +.card-columns .card { + margin-bottom: 0.75rem; +} +@media (min-width: 576px) { + .card-columns { + column-count: 3; + column-gap: 1.25rem; + orphans: 1; + widows: 1; + } + .card-columns .card { + display: inline-block; + width: 100%; + } +} +.accordion .card:not(:first-of-type):not(:last-of-type) { + border-bottom: 0; + border-radius: 0; +} +.accordion .card:not(:first-of-type) .card-header:first-child { + border-radius: 0; +} +.accordion .card:first-of-type { + border-bottom: 0; + border-bottom-right-radius: 0; + border-bottom-left-radius: 0; +} +.accordion .card:last-of-type { + border-top-left-radius: 0; + border-top-right-radius: 0; +} +.breadcrumb { + display: flex; + flex-wrap: wrap; + padding: 0.75rem 1rem; + margin-bottom: 1rem; + list-style: none; + background-color: #e9ecef; + border-radius: 0.25rem; +} +.breadcrumb-item + .breadcrumb-item { + padding-left: 0.5rem; +} +.breadcrumb-item + .breadcrumb-item::before { + display: inline-block; + padding-right: 0.5rem; + color: #6c757d; + content: "/"; +} +.breadcrumb-item + .breadcrumb-item:hover::before { + text-decoration: underline; +} +.breadcrumb-item + .breadcrumb-item:hover::before { + text-decoration: none; +} +.breadcrumb-item.active { + color: #6c757d; +} +.pagination { + display: flex; + padding-left: 0; + list-style: none; + border-radius: 0.25rem; +} +.page-link { + position: relative; + display: block; + padding: 0.5rem 0.75rem; + margin-left: -1px; + line-height: 1.25; + color: #007bff; + background-color: #fff; + border: 1px solid #dee2e6; +} +.page-link:hover { + z-index: 2; + color: #0056b3; + text-decoration: none; + background-color: #e9ecef; + border-color: #dee2e6; +} +.page-link:focus { + z-index: 2; + outline: 0; + box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25); +} +.page-link:not(:disabled):not(.disabled) { + cursor: pointer; +} +.page-item:first-child .page-link { + margin-left: 0; + border-top-left-radius: 0.25rem; + border-bottom-left-radius: 0.25rem; +} +.page-item:last-child .page-link { + border-top-right-radius: 0.25rem; + border-bottom-right-radius: 0.25rem; +} +.page-item.active .page-link { + z-index: 1; + color: #fff; + background-color: #007bff; + border-color: #007bff; +} +.page-item.disabled .page-link { + color: #6c757d; + pointer-events: none; + cursor: auto; + background-color: #fff; + border-color: #dee2e6; +} +.pagination-lg .page-link { + padding: 0.75rem 1.5rem; + font-size: 1.25rem; + line-height: 1.5; +} +.pagination-lg .page-item:first-child .page-link { + border-top-left-radius: 0.3rem; + border-bottom-left-radius: 0.3rem; +} +.pagination-lg .page-item:last-child .page-link { + border-top-right-radius: 0.3rem; + border-bottom-right-radius: 0.3rem; +} +.pagination-sm .page-link { + padding: 0.25rem 0.5rem; + font-size: 0.875rem; + line-height: 1.5; +} +.pagination-sm .page-item:first-child .page-link { + border-top-left-radius: 0.2rem; + border-bottom-left-radius: 0.2rem; +} +.pagination-sm .page-item:last-child .page-link { + border-top-right-radius: 0.2rem; + border-bottom-right-radius: 0.2rem; +} +.badge { + display: inline-block; + padding: 0.25em 0.4em; + font-size: 75%; + font-weight: 700; + line-height: 1; + text-align: center; + white-space: nowrap; + vertical-align: baseline; + border-radius: 0.25rem; +} +.badge:empty { + display: none; +} +.btn .badge { + position: relative; + top: -1px; +} +.badge-pill { + padding-right: 0.6em; + padding-left: 0.6em; + border-radius: 10rem; +} +.badge-primary { + color: #fff; + background-color: #007bff; +} +.badge-primary[href]:hover, +.badge-primary[href]:focus { + color: #fff; + text-decoration: none; + background-color: #0062cc; +} +.badge-secondary { + color: #fff; + background-color: #6c757d; +} +.badge-secondary[href]:hover, +.badge-secondary[href]:focus { + color: #fff; + text-decoration: none; + background-color: #545b62; +} +.badge-success { + color: #fff; + background-color: #28a745; +} +.badge-success[href]:hover, +.badge-success[href]:focus { + color: #fff; + text-decoration: none; + background-color: #1e7e34; +} +.badge-info { + color: #fff; + background-color: #17a2b8; +} +.badge-info[href]:hover, +.badge-info[href]:focus { + color: #fff; + text-decoration: none; + background-color: #117a8b; +} +.badge-warning { + color: #212529; + background-color: #ffc107; +} +.badge-warning[href]:hover, +.badge-warning[href]:focus { + color: #212529; + text-decoration: none; + background-color: #d39e00; +} +.badge-danger { + color: #fff; + background-color: #dc3545; +} +.badge-danger[href]:hover, +.badge-danger[href]:focus { + color: #fff; + text-decoration: none; + background-color: #bd2130; +} +.badge-light { + color: #212529; + background-color: #f8f9fa; +} +.badge-light[href]:hover, +.badge-light[href]:focus { + color: #212529; + text-decoration: none; + background-color: #dae0e5; +} +.badge-dark { + color: #fff; + background-color: #343a40; +} +.badge-dark[href]:hover, +.badge-dark[href]:focus { + color: #fff; + text-decoration: none; + background-color: #1d2124; +} +.jumbotron { + padding: 2rem 1rem; + margin-bottom: 2rem; + background-color: #e9ecef; + border-radius: 0.3rem; +} +@media (min-width: 576px) { + .jumbotron { + padding: 4rem 2rem; + } +} +.jumbotron-fluid { + padding-right: 0; + padding-left: 0; + border-radius: 0; +} +.alert { + position: relative; + padding: 0.75rem 1.25rem; + margin-bottom: 1rem; + border: 1px solid transparent; + border-radius: 0.25rem; +} +.alert-heading { + color: inherit; +} +.alert-link { + font-weight: 700; +} +.alert-dismissible { + padding-right: 4rem; +} +.alert-dismissible .close { + position: absolute; + top: 0; + right: 0; + padding: 0.75rem 1.25rem; + color: inherit; +} +.alert-primary { + color: #004085; + background-color: #cce5ff; + border-color: #b8daff; +} +.alert-primary hr { + border-top-color: #9fcdff; +} +.alert-primary .alert-link { + color: #002752; +} +.alert-secondary { + color: #383d41; + background-color: #e2e3e5; + border-color: #d6d8db; +} +.alert-secondary hr { + border-top-color: #c8cbcf; +} +.alert-secondary .alert-link { + color: #202326; +} +.alert-success { + color: #155724; + background-color: #d4edda; + border-color: #c3e6cb; +} +.alert-success hr { + border-top-color: #b1dfbb; +} +.alert-success .alert-link { + color: #0b2e13; +} +.alert-info { + color: #0c5460; + background-color: #d1ecf1; + border-color: #bee5eb; +} +.alert-info hr { + border-top-color: #abdde5; +} +.alert-info .alert-link { + color: #062c33; +} +.alert-warning { + color: #856404; + background-color: #fff3cd; + border-color: #ffeeba; +} +.alert-warning hr { + border-top-color: #ffe8a1; +} +.alert-warning .alert-link { + color: #533f03; +} +.alert-danger { + color: #721c24; + background-color: #f8d7da; + border-color: #f5c6cb; +} +.alert-danger hr { + border-top-color: #f1b0b7; +} +.alert-danger .alert-link { + color: #491217; +} +.alert-light { + color: #818182; + background-color: #fefefe; + border-color: #fdfdfe; +} +.alert-light hr { + border-top-color: #ececf5; +} +.alert-light .alert-link { + color: #686868; +} +.alert-dark { + color: #1b1e21; + background-color: #d6d8d9; + border-color: #c6c8ca; +} +.alert-dark hr { + border-top-color: #b9bbbe; +} +.alert-dark .alert-link { + color: #040405; +} +@keyframes progress-bar-stripes { + from { + background-position: 1rem 0; + } + to { + background-position: 0 0; + } +} +.progress { + display: flex; + height: 1rem; + overflow: hidden; + font-size: 0.75rem; + background-color: #e9ecef; + border-radius: 0.25rem; +} +.progress-bar { + display: flex; + flex-direction: column; + justify-content: center; + color: #fff; + text-align: center; + white-space: nowrap; + background-color: #007bff; + transition: width 0.6s ease; +} +@media screen and (prefers-reduced-motion: reduce) { + .progress-bar { + transition: none; + } +} +.progress-bar-striped { + background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-size: 1rem 1rem; +} +.progress-bar-animated { + animation: progress-bar-stripes 1s linear infinite; +} +.media { + display: flex; + align-items: flex-start; +} +.media-body { + flex: 1; +} +.list-group { + display: flex; + flex-direction: column; + padding-left: 0; + margin-bottom: 0; +} +.list-group-item-action { + width: 100%; + color: #495057; + text-align: inherit; +} +.list-group-item-action:hover, +.list-group-item-action:focus { + color: #495057; + text-decoration: none; + background-color: #f8f9fa; +} +.list-group-item-action:active { + color: #212529; + background-color: #e9ecef; +} +.list-group-item { + position: relative; + display: block; + padding: 0.75rem 1.25rem; + margin-bottom: -1px; + background-color: #fff; + border: 1px solid rgba(0, 0, 0, 0.125); +} +.list-group-item:first-child { + border-top-left-radius: 0.25rem; + border-top-right-radius: 0.25rem; +} +.list-group-item:last-child { + margin-bottom: 0; + border-bottom-right-radius: 0.25rem; + border-bottom-left-radius: 0.25rem; +} +.list-group-item:hover, +.list-group-item:focus { + z-index: 1; + text-decoration: none; +} +.list-group-item.disabled, +.list-group-item:disabled { + color: #6c757d; + background-color: #fff; +} +.list-group-item.active { + z-index: 2; + color: #fff; + background-color: #007bff; + border-color: #007bff; +} +.list-group-flush .list-group-item { + border-right: 0; + border-left: 0; + border-radius: 0; +} +.list-group-flush:first-child .list-group-item:first-child { + border-top: 0; +} +.list-group-flush:last-child .list-group-item:last-child { + border-bottom: 0; +} +.list-group-item-primary { + color: #004085; + background-color: #b8daff; +} +.list-group-item-primary.list-group-item-action:hover, +.list-group-item-primary.list-group-item-action:focus { + color: #004085; + background-color: #9fcdff; +} +.list-group-item-primary.list-group-item-action.active { + color: #fff; + background-color: #004085; + border-color: #004085; +} +.list-group-item-secondary { + color: #383d41; + background-color: #d6d8db; +} +.list-group-item-secondary.list-group-item-action:hover, +.list-group-item-secondary.list-group-item-action:focus { + color: #383d41; + background-color: #c8cbcf; +} +.list-group-item-secondary.list-group-item-action.active { + color: #fff; + background-color: #383d41; + border-color: #383d41; +} +.list-group-item-success { + color: #155724; + background-color: #c3e6cb; +} +.list-group-item-success.list-group-item-action:hover, +.list-group-item-success.list-group-item-action:focus { + color: #155724; + background-color: #b1dfbb; +} +.list-group-item-success.list-group-item-action.active { + color: #fff; + background-color: #155724; + border-color: #155724; +} +.list-group-item-info { + color: #0c5460; + background-color: #bee5eb; +} +.list-group-item-info.list-group-item-action:hover, +.list-group-item-info.list-group-item-action:focus { + color: #0c5460; + background-color: #abdde5; +} +.list-group-item-info.list-group-item-action.active { + color: #fff; + background-color: #0c5460; + border-color: #0c5460; +} +.list-group-item-warning { + color: #856404; + background-color: #ffeeba; +} +.list-group-item-warning.list-group-item-action:hover, +.list-group-item-warning.list-group-item-action:focus { + color: #856404; + background-color: #ffe8a1; +} +.list-group-item-warning.list-group-item-action.active { + color: #fff; + background-color: #856404; + border-color: #856404; +} +.list-group-item-danger { + color: #721c24; + background-color: #f5c6cb; +} +.list-group-item-danger.list-group-item-action:hover, +.list-group-item-danger.list-group-item-action:focus { + color: #721c24; + background-color: #f1b0b7; +} +.list-group-item-danger.list-group-item-action.active { + color: #fff; + background-color: #721c24; + border-color: #721c24; +} +.list-group-item-light { + color: #818182; + background-color: #fdfdfe; +} +.list-group-item-light.list-group-item-action:hover, +.list-group-item-light.list-group-item-action:focus { + color: #818182; + background-color: #ececf5; +} +.list-group-item-light.list-group-item-action.active { + color: #fff; + background-color: #818182; + border-color: #818182; +} +.list-group-item-dark { + color: #1b1e21; + background-color: #c6c8ca; +} +.list-group-item-dark.list-group-item-action:hover, +.list-group-item-dark.list-group-item-action:focus { + color: #1b1e21; + background-color: #b9bbbe; +} +.list-group-item-dark.list-group-item-action.active { + color: #fff; + background-color: #1b1e21; + border-color: #1b1e21; +} +.close { + float: right; + font-size: 1.5rem; + font-weight: 700; + line-height: 1; + color: #000; + text-shadow: 0 1px 0 #fff; + opacity: 0.5; +} +.close:hover, +.close:focus { + color: #000; + text-decoration: none; + opacity: 0.75; +} +.close:not(:disabled):not(.disabled) { + cursor: pointer; +} +button.close { + padding: 0; + background-color: transparent; + border: 0; + -webkit-appearance: none; +} +.modal-open { + overflow: hidden; +} +.modal { + position: fixed; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: 1050; + display: none; + overflow: hidden; + outline: 0; +} +.modal-open .modal { + overflow-x: hidden; + overflow-y: auto; +} +.modal-dialog { + position: relative; + width: auto; + margin: 0.5rem; + pointer-events: none; +} +.modal.fade .modal-dialog { + transition: transform 0.3s ease-out; + transform: translate(0, -25%); +} +@media screen and (prefers-reduced-motion: reduce) { + .modal.fade .modal-dialog { + transition: none; + } +} +.modal.show .modal-dialog { + transform: translate(0, 0); +} +.modal-dialog-centered { + display: flex; + align-items: center; + min-height: calc(100% - (0.5rem * 2)); +} +.modal-content { + position: relative; + display: flex; + flex-direction: column; + width: 100%; + pointer-events: auto; + background-color: #fff; + background-clip: padding-box; + border: 1px solid rgba(0, 0, 0, 0.2); + border-radius: 0.3rem; + outline: 0; +} +.modal-backdrop { + position: fixed; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: 1040; + background-color: #000; +} +.modal-backdrop.fade { + opacity: 0; +} +.modal-backdrop.show { + opacity: 0.5; +} +.modal-header { + display: flex; + align-items: flex-start; + justify-content: space-between; + padding: 1rem; + border-bottom: 1px solid #e9ecef; + border-top-left-radius: 0.3rem; + border-top-right-radius: 0.3rem; +} +.modal-header .close { + padding: 1rem; + margin: -1rem -1rem -1rem auto; +} +.modal-title { + margin-bottom: 0; + line-height: 1.5; +} +.modal-body { + position: relative; + flex: 1 1 auto; + padding: 1rem; +} +.modal-footer { + display: flex; + align-items: center; + justify-content: flex-end; + padding: 1rem; + border-top: 1px solid #e9ecef; +} +.modal-footer > :not(:first-child) { + margin-left: 0.25rem; +} +.modal-footer > :not(:last-child) { + margin-right: 0.25rem; +} +.modal-scrollbar-measure { + position: absolute; + top: -9999px; + width: 50px; + height: 50px; + overflow: scroll; +} +@media (min-width: 576px) { + .modal-dialog { + max-width: 500px; + margin: 1.75rem auto; + } + .modal-dialog-centered { + min-height: calc(100% - (1.75rem * 2)); + } + .modal-sm { + max-width: 300px; + } +} +@media (min-width: 992px) { + .modal-lg { + max-width: 800px; + } +} +.tooltip { + position: absolute; + z-index: 1070; + display: block; + margin: 0; + font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; + font-style: normal; + font-weight: 400; + line-height: 1.5; + text-align: left; + text-align: start; + text-decoration: none; + text-shadow: none; + text-transform: none; + letter-spacing: normal; + word-break: normal; + word-spacing: normal; + white-space: normal; + line-break: auto; + font-size: 0.875rem; + word-wrap: break-word; + opacity: 0; +} +.tooltip.show { + opacity: 0.9; +} +.tooltip .arrow { + position: absolute; + display: block; + width: 0.8rem; + height: 0.4rem; +} +.tooltip .arrow::before { + position: absolute; + content: ""; + border-color: transparent; + border-style: solid; +} +.bs-tooltip-top, +.bs-tooltip-auto[x-placement^="top"] { + padding: 0.4rem 0; +} +.bs-tooltip-top .arrow, +.bs-tooltip-auto[x-placement^="top"] .arrow { + bottom: 0; +} +.bs-tooltip-top .arrow::before, +.bs-tooltip-auto[x-placement^="top"] .arrow::before { + top: 0; + border-width: 0.4rem 0.4rem 0; + border-top-color: #000; +} +.bs-tooltip-right, +.bs-tooltip-auto[x-placement^="right"] { + padding: 0 0.4rem; +} +.bs-tooltip-right .arrow, +.bs-tooltip-auto[x-placement^="right"] .arrow { + left: 0; + width: 0.4rem; + height: 0.8rem; +} +.bs-tooltip-right .arrow::before, +.bs-tooltip-auto[x-placement^="right"] .arrow::before { + right: 0; + border-width: 0.4rem 0.4rem 0.4rem 0; + border-right-color: #000; +} +.bs-tooltip-bottom, +.bs-tooltip-auto[x-placement^="bottom"] { + padding: 0.4rem 0; +} +.bs-tooltip-bottom .arrow, +.bs-tooltip-auto[x-placement^="bottom"] .arrow { + top: 0; +} +.bs-tooltip-bottom .arrow::before, +.bs-tooltip-auto[x-placement^="bottom"] .arrow::before { + bottom: 0; + border-width: 0 0.4rem 0.4rem; + border-bottom-color: #000; +} +.bs-tooltip-left, +.bs-tooltip-auto[x-placement^="left"] { + padding: 0 0.4rem; +} +.bs-tooltip-left .arrow, +.bs-tooltip-auto[x-placement^="left"] .arrow { + right: 0; + width: 0.4rem; + height: 0.8rem; +} +.bs-tooltip-left .arrow::before, +.bs-tooltip-auto[x-placement^="left"] .arrow::before { + left: 0; + border-width: 0.4rem 0 0.4rem 0.4rem; + border-left-color: #000; +} +.tooltip-inner { + max-width: 200px; + padding: 0.25rem 0.5rem; + color: #fff; + text-align: center; + background-color: #000; + border-radius: 0.25rem; +} +.popover { + position: absolute; + top: 0; + left: 0; + z-index: 1060; + display: block; + max-width: 276px; + font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; + font-style: normal; + font-weight: 400; + line-height: 1.5; + text-align: left; + text-align: start; + text-decoration: none; + text-shadow: none; + text-transform: none; + letter-spacing: normal; + word-break: normal; + word-spacing: normal; + white-space: normal; + line-break: auto; + font-size: 0.875rem; + word-wrap: break-word; + background-color: #fff; + background-clip: padding-box; + border: 1px solid rgba(0, 0, 0, 0.2); + border-radius: 0.3rem; +} +.popover .arrow { + position: absolute; + display: block; + width: 1rem; + height: 0.5rem; + margin: 0 0.3rem; +} +.popover .arrow::before, +.popover .arrow::after { + position: absolute; + display: block; + content: ""; + border-color: transparent; + border-style: solid; +} +.bs-popover-top, +.bs-popover-auto[x-placement^="top"] { + margin-bottom: 0.5rem; +} +.bs-popover-top .arrow, +.bs-popover-auto[x-placement^="top"] .arrow { + bottom: calc((0.5rem + 1px) * -1); +} +.bs-popover-top .arrow::before, +.bs-popover-top .arrow::after, +.bs-popover-auto[x-placement^="top"] .arrow::before, +.bs-popover-auto[x-placement^="top"] .arrow::after { + border-width: 0.5rem 0.5rem 0; +} +.bs-popover-top .arrow::before, +.bs-popover-auto[x-placement^="top"] .arrow::before { + bottom: 0; + border-top-color: rgba(0, 0, 0, 0.25); +} +.bs-popover-top .arrow::after, +.bs-popover-auto[x-placement^="top"] .arrow::after { + bottom: 1px; + border-top-color: #fff; +} +.bs-popover-right, +.bs-popover-auto[x-placement^="right"] { + margin-left: 0.5rem; +} +.bs-popover-right .arrow, +.bs-popover-auto[x-placement^="right"] .arrow { + left: calc((0.5rem + 1px) * -1); + width: 0.5rem; + height: 1rem; + margin: 0.3rem 0; +} +.bs-popover-right .arrow::before, +.bs-popover-right .arrow::after, +.bs-popover-auto[x-placement^="right"] .arrow::before, +.bs-popover-auto[x-placement^="right"] .arrow::after { + border-width: 0.5rem 0.5rem 0.5rem 0; +} +.bs-popover-right .arrow::before, +.bs-popover-auto[x-placement^="right"] .arrow::before { + left: 0; + border-right-color: rgba(0, 0, 0, 0.25); +} +.bs-popover-right .arrow::after, +.bs-popover-auto[x-placement^="right"] .arrow::after { + left: 1px; + border-right-color: #fff; +} +.bs-popover-bottom, +.bs-popover-auto[x-placement^="bottom"] { + margin-top: 0.5rem; +} +.bs-popover-bottom .arrow, +.bs-popover-auto[x-placement^="bottom"] .arrow { + top: calc((0.5rem + 1px) * -1); +} +.bs-popover-bottom .arrow::before, +.bs-popover-bottom .arrow::after, +.bs-popover-auto[x-placement^="bottom"] .arrow::before, +.bs-popover-auto[x-placement^="bottom"] .arrow::after { + border-width: 0 0.5rem 0.5rem 0.5rem; +} +.bs-popover-bottom .arrow::before, +.bs-popover-auto[x-placement^="bottom"] .arrow::before { + top: 0; + border-bottom-color: rgba(0, 0, 0, 0.25); +} +.bs-popover-bottom .arrow::after, +.bs-popover-auto[x-placement^="bottom"] .arrow::after { + top: 1px; + border-bottom-color: #fff; +} +.bs-popover-bottom .popover-header::before, +.bs-popover-auto[x-placement^="bottom"] .popover-header::before { + position: absolute; + top: 0; + left: 50%; + display: block; + width: 1rem; + margin-left: -0.5rem; + content: ""; + border-bottom: 1px solid #f7f7f7; +} +.bs-popover-left, +.bs-popover-auto[x-placement^="left"] { + margin-right: 0.5rem; +} +.bs-popover-left .arrow, +.bs-popover-auto[x-placement^="left"] .arrow { + right: calc((0.5rem + 1px) * -1); + width: 0.5rem; + height: 1rem; + margin: 0.3rem 0; +} +.bs-popover-left .arrow::before, +.bs-popover-left .arrow::after, +.bs-popover-auto[x-placement^="left"] .arrow::before, +.bs-popover-auto[x-placement^="left"] .arrow::after { + border-width: 0.5rem 0 0.5rem 0.5rem; +} +.bs-popover-left .arrow::before, +.bs-popover-auto[x-placement^="left"] .arrow::before { + right: 0; + border-left-color: rgba(0, 0, 0, 0.25); +} +.bs-popover-left .arrow::after, +.bs-popover-auto[x-placement^="left"] .arrow::after { + right: 1px; + border-left-color: #fff; +} +.popover-header { + padding: 0.5rem 0.75rem; + margin-bottom: 0; + font-size: 1rem; + color: inherit; + background-color: #f7f7f7; + border-bottom: 1px solid #ebebeb; + border-top-left-radius: calc(0.3rem - 1px); + border-top-right-radius: calc(0.3rem - 1px); +} +.popover-header:empty { + display: none; +} +.popover-body { + padding: 0.5rem 0.75rem; + color: #212529; +} +.carousel { + position: relative; +} +.carousel-inner { + position: relative; + width: 100%; + overflow: hidden; +} +.carousel-item { + position: relative; + display: none; + align-items: center; + width: 100%; + transition: transform 0.6s ease; + backface-visibility: hidden; + perspective: 1000px; +} +@media screen and (prefers-reduced-motion: reduce) { + .carousel-item { + transition: none; + } +} +.carousel-item.active, +.carousel-item-next, +.carousel-item-prev { + display: block; +} +.carousel-item-next, +.carousel-item-prev { + position: absolute; + top: 0; +} +.carousel-item-next.carousel-item-left, +.carousel-item-prev.carousel-item-right { + transform: translateX(0); +} +@supports (transform-style: preserve-3d) { + .carousel-item-next.carousel-item-left, + .carousel-item-prev.carousel-item-right { + transform: translate3d(0, 0, 0); + } +} +.carousel-item-next, +.active.carousel-item-right { + transform: translateX(100%); +} +@supports (transform-style: preserve-3d) { + .carousel-item-next, + .active.carousel-item-right { + transform: translate3d(100%, 0, 0); + } +} +.carousel-item-prev, +.active.carousel-item-left { + transform: translateX(-100%); +} +@supports (transform-style: preserve-3d) { + .carousel-item-prev, + .active.carousel-item-left { + transform: translate3d(-100%, 0, 0); + } +} +.carousel-fade .carousel-item { + opacity: 0; + transition-duration: 0.6s; + transition-property: opacity; +} +.carousel-fade .carousel-item.active, +.carousel-fade .carousel-item-next.carousel-item-left, +.carousel-fade .carousel-item-prev.carousel-item-right { + opacity: 1; +} +.carousel-fade .active.carousel-item-left, +.carousel-fade .active.carousel-item-right { + opacity: 0; +} +.carousel-fade .carousel-item-next, +.carousel-fade .carousel-item-prev, +.carousel-fade .carousel-item.active, +.carousel-fade .active.carousel-item-left, +.carousel-fade .active.carousel-item-prev { + transform: translateX(0); +} +@supports (transform-style: preserve-3d) { + .carousel-fade .carousel-item-next, + .carousel-fade .carousel-item-prev, + .carousel-fade .carousel-item.active, + .carousel-fade .active.carousel-item-left, + .carousel-fade .active.carousel-item-prev { + transform: translate3d(0, 0, 0); + } +} +.carousel-control-prev, +.carousel-control-next { + position: absolute; + top: 0; + bottom: 0; + display: flex; + align-items: center; + justify-content: center; + width: 15%; + color: #fff; + text-align: center; + opacity: 0.5; +} +.carousel-control-prev:hover, +.carousel-control-next:hover, +.carousel-control-prev:focus, +.carousel-control-next:focus { + color: #fff; + text-decoration: none; + outline: 0; + opacity: 0.9; +} +.carousel-control-prev { + left: 0; +} +.carousel-control-next { + right: 0; +} +.carousel-control-prev-icon, +.carousel-control-next-icon { + display: inline-block; + width: 20px; + height: 20px; + background: transparent no-repeat center center; + background-size: 100% 100%; +} +.carousel-control-prev-icon { + background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3E%3Cpath d='M5.25 0l-4 4 4 4 1.5-1.5-2.5-2.5 2.5-2.5-1.5-1.5z'/%3E%3C/svg%3E"); +} +.carousel-control-next-icon { + background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3E%3Cpath d='M2.75 0l-1.5 1.5 2.5 2.5-2.5 2.5 1.5 1.5 4-4-4-4z'/%3E%3C/svg%3E"); +} +.carousel-indicators { + position: absolute; + right: 0; + bottom: 10px; + left: 0; + z-index: 15; + display: flex; + justify-content: center; + padding-left: 0; + margin-right: 15%; + margin-left: 15%; + list-style: none; +} +.carousel-indicators li { + position: relative; + flex: 0 1 auto; + width: 30px; + height: 3px; + margin-right: 3px; + margin-left: 3px; + text-indent: -999px; + cursor: pointer; + background-color: rgba(255, 255, 255, 0.5); +} +.carousel-indicators li::before { + position: absolute; + top: -10px; + left: 0; + display: inline-block; + width: 100%; + height: 10px; + content: ""; +} +.carousel-indicators li::after { + position: absolute; + bottom: -10px; + left: 0; + display: inline-block; + width: 100%; + height: 10px; + content: ""; +} +.carousel-indicators .active { + background-color: #fff; +} +.carousel-caption { + position: absolute; + right: 15%; + bottom: 20px; + left: 15%; + z-index: 10; + padding-top: 20px; + padding-bottom: 20px; + color: #fff; + text-align: center; +} +.align-baseline { + vertical-align: baseline !important; +} +.align-top { + vertical-align: top !important; +} +.align-middle { + vertical-align: middle !important; +} +.align-bottom { + vertical-align: bottom !important; +} +.align-text-bottom { + vertical-align: text-bottom !important; +} +.align-text-top { + vertical-align: text-top !important; +} +.bg-primary { + background-color: #007bff !important; +} +a.bg-primary:hover, +button.bg-primary:hover, +a.bg-primary:focus, +button.bg-primary:focus { + background-color: #0062cc !important; +} +.bg-secondary { + background-color: #6c757d !important; +} +a.bg-secondary:hover, +button.bg-secondary:hover, +a.bg-secondary:focus, +button.bg-secondary:focus { + background-color: #545b62 !important; +} +.bg-success { + background-color: #28a745 !important; +} +a.bg-success:hover, +button.bg-success:hover, +a.bg-success:focus, +button.bg-success:focus { + background-color: #1e7e34 !important; +} +.bg-info { + background-color: #17a2b8 !important; +} +a.bg-info:hover, +button.bg-info:hover, +a.bg-info:focus, +button.bg-info:focus { + background-color: #117a8b !important; +} +.bg-warning { + background-color: #ffc107 !important; +} +a.bg-warning:hover, +button.bg-warning:hover, +a.bg-warning:focus, +button.bg-warning:focus { + background-color: #d39e00 !important; +} +.bg-danger { + background-color: #dc3545 !important; +} +a.bg-danger:hover, +button.bg-danger:hover, +a.bg-danger:focus, +button.bg-danger:focus { + background-color: #bd2130 !important; +} +.bg-light { + background-color: #f8f9fa !important; +} +a.bg-light:hover, +button.bg-light:hover, +a.bg-light:focus, +button.bg-light:focus { + background-color: #dae0e5 !important; +} +.bg-dark { + background-color: #343a40 !important; +} +a.bg-dark:hover, +button.bg-dark:hover, +a.bg-dark:focus, +button.bg-dark:focus { + background-color: #1d2124 !important; +} +.bg-white { + background-color: #fff !important; +} +.bg-transparent { + background-color: transparent !important; +} +.border { + border: 1px solid #dee2e6 !important; +} +.border-top { + border-top: 1px solid #dee2e6 !important; +} +.border-right { + border-right: 1px solid #dee2e6 !important; +} +.border-bottom { + border-bottom: 1px solid #dee2e6 !important; +} +.border-left { + border-left: 1px solid #dee2e6 !important; +} +.border-0 { + border: 0 !important; +} +.border-top-0 { + border-top: 0 !important; +} +.border-right-0 { + border-right: 0 !important; +} +.border-bottom-0 { + border-bottom: 0 !important; +} +.border-left-0 { + border-left: 0 !important; +} +.border-primary { + border-color: #007bff !important; +} +.border-secondary { + border-color: #6c757d !important; +} +.border-success { + border-color: #28a745 !important; +} +.border-info { + border-color: #17a2b8 !important; +} +.border-warning { + border-color: #ffc107 !important; +} +.border-danger { + border-color: #dc3545 !important; +} +.border-light { + border-color: #f8f9fa !important; +} +.border-dark { + border-color: #343a40 !important; +} +.border-white { + border-color: #fff !important; +} +.rounded { + border-radius: 0.25rem !important; +} +.rounded-top { + border-top-left-radius: 0.25rem !important; + border-top-right-radius: 0.25rem !important; +} +.rounded-right { + border-top-right-radius: 0.25rem !important; + border-bottom-right-radius: 0.25rem !important; +} +.rounded-bottom { + border-bottom-right-radius: 0.25rem !important; + border-bottom-left-radius: 0.25rem !important; +} +.rounded-left { + border-top-left-radius: 0.25rem !important; + border-bottom-left-radius: 0.25rem !important; +} +.rounded-circle { + border-radius: 50% !important; +} +.rounded-0 { + border-radius: 0 !important; +} +.clearfix::after { + display: block; + clear: both; + content: ""; +} +.d-none { + display: none !important; +} +.d-inline { + display: inline !important; +} +.d-inline-block { + display: inline-block !important; +} +.d-block { + display: block !important; +} +.d-table { + display: table !important; +} +.d-table-row { + display: table-row !important; +} +.d-table-cell { + display: table-cell !important; +} +.d-flex { + display: flex !important; +} +.d-inline-flex { + display: inline-flex !important; +} +@media (min-width: 576px) { + .d-sm-none { + display: none !important; + } + .d-sm-inline { + display: inline !important; + } + .d-sm-inline-block { + display: inline-block !important; + } + .d-sm-block { + display: block !important; + } + .d-sm-table { + display: table !important; + } + .d-sm-table-row { + display: table-row !important; + } + .d-sm-table-cell { + display: table-cell !important; + } + .d-sm-flex { + display: flex !important; + } + .d-sm-inline-flex { + display: inline-flex !important; + } +} +@media (min-width: 768px) { + .d-md-none { + display: none !important; + } + .d-md-inline { + display: inline !important; + } + .d-md-inline-block { + display: inline-block !important; + } + .d-md-block { + display: block !important; + } + .d-md-table { + display: table !important; + } + .d-md-table-row { + display: table-row !important; + } + .d-md-table-cell { + display: table-cell !important; + } + .d-md-flex { + display: flex !important; + } + .d-md-inline-flex { + display: inline-flex !important; + } +} +@media (min-width: 992px) { + .d-lg-none { + display: none !important; + } + .d-lg-inline { + display: inline !important; + } + .d-lg-inline-block { + display: inline-block !important; + } + .d-lg-block { + display: block !important; + } + .d-lg-table { + display: table !important; + } + .d-lg-table-row { + display: table-row !important; + } + .d-lg-table-cell { + display: table-cell !important; + } + .d-lg-flex { + display: flex !important; + } + .d-lg-inline-flex { + display: inline-flex !important; + } +} +@media (min-width: 1200px) { + .d-xl-none { + display: none !important; + } + .d-xl-inline { + display: inline !important; + } + .d-xl-inline-block { + display: inline-block !important; + } + .d-xl-block { + display: block !important; + } + .d-xl-table { + display: table !important; + } + .d-xl-table-row { + display: table-row !important; + } + .d-xl-table-cell { + display: table-cell !important; + } + .d-xl-flex { + display: flex !important; + } + .d-xl-inline-flex { + display: inline-flex !important; + } +} +@media print { + .d-print-none { + display: none !important; + } + .d-print-inline { + display: inline !important; + } + .d-print-inline-block { + display: inline-block !important; + } + .d-print-block { + display: block !important; + } + .d-print-table { + display: table !important; + } + .d-print-table-row { + display: table-row !important; + } + .d-print-table-cell { + display: table-cell !important; + } + .d-print-flex { + display: flex !important; + } + .d-print-inline-flex { + display: inline-flex !important; + } +} +.embed-responsive { + position: relative; + display: block; + width: 100%; + padding: 0; + overflow: hidden; +} +.embed-responsive::before { + display: block; + content: ""; +} +.embed-responsive .embed-responsive-item, +.embed-responsive iframe, +.embed-responsive embed, +.embed-responsive object, +.embed-responsive video { + position: absolute; + top: 0; + bottom: 0; + left: 0; + width: 100%; + height: 100%; + border: 0; +} +.embed-responsive-21by9::before { + padding-top: 42.85714286%; +} +.embed-responsive-16by9::before { + padding-top: 56.25%; +} +.embed-responsive-4by3::before { + padding-top: 75%; +} +.embed-responsive-1by1::before { + padding-top: 100%; +} +.flex-row { + flex-direction: row !important; +} +.flex-column { + flex-direction: column !important; +} +.flex-row-reverse { + flex-direction: row-reverse !important; +} +.flex-column-reverse { + flex-direction: column-reverse !important; +} +.flex-wrap { + flex-wrap: wrap !important; +} +.flex-nowrap { + flex-wrap: nowrap !important; +} +.flex-wrap-reverse { + flex-wrap: wrap-reverse !important; +} +.flex-fill { + flex: 1 1 auto !important; +} +.flex-grow-0 { + flex-grow: 0 !important; +} +.flex-grow-1 { + flex-grow: 1 !important; +} +.flex-shrink-0 { + flex-shrink: 0 !important; +} +.flex-shrink-1 { + flex-shrink: 1 !important; +} +.justify-content-start { + justify-content: flex-start !important; +} +.justify-content-end { + justify-content: flex-end !important; +} +.justify-content-center { + justify-content: center !important; +} +.justify-content-between { + justify-content: space-between !important; +} +.justify-content-around { + justify-content: space-around !important; +} +.align-items-start { + align-items: flex-start !important; +} +.align-items-end { + align-items: flex-end !important; +} +.align-items-center { + align-items: center !important; +} +.align-items-baseline { + align-items: baseline !important; +} +.align-items-stretch { + align-items: stretch !important; +} +.align-content-start { + align-content: flex-start !important; +} +.align-content-end { + align-content: flex-end !important; +} +.align-content-center { + align-content: center !important; +} +.align-content-between { + align-content: space-between !important; +} +.align-content-around { + align-content: space-around !important; +} +.align-content-stretch { + align-content: stretch !important; +} +.align-self-auto { + align-self: auto !important; +} +.align-self-start { + align-self: flex-start !important; +} +.align-self-end { + align-self: flex-end !important; +} +.align-self-center { + align-self: center !important; +} +.align-self-baseline { + align-self: baseline !important; +} +.align-self-stretch { + align-self: stretch !important; +} +@media (min-width: 576px) { + .flex-sm-row { + flex-direction: row !important; + } + .flex-sm-column { + flex-direction: column !important; + } + .flex-sm-row-reverse { + flex-direction: row-reverse !important; + } + .flex-sm-column-reverse { + flex-direction: column-reverse !important; + } + .flex-sm-wrap { + flex-wrap: wrap !important; + } + .flex-sm-nowrap { + flex-wrap: nowrap !important; + } + .flex-sm-wrap-reverse { + flex-wrap: wrap-reverse !important; + } + .flex-sm-fill { + flex: 1 1 auto !important; + } + .flex-sm-grow-0 { + flex-grow: 0 !important; + } + .flex-sm-grow-1 { + flex-grow: 1 !important; + } + .flex-sm-shrink-0 { + flex-shrink: 0 !important; + } + .flex-sm-shrink-1 { + flex-shrink: 1 !important; + } + .justify-content-sm-start { + justify-content: flex-start !important; + } + .justify-content-sm-end { + justify-content: flex-end !important; + } + .justify-content-sm-center { + justify-content: center !important; + } + .justify-content-sm-between { + justify-content: space-between !important; + } + .justify-content-sm-around { + justify-content: space-around !important; + } + .align-items-sm-start { + align-items: flex-start !important; + } + .align-items-sm-end { + align-items: flex-end !important; + } + .align-items-sm-center { + align-items: center !important; + } + .align-items-sm-baseline { + align-items: baseline !important; + } + .align-items-sm-stretch { + align-items: stretch !important; + } + .align-content-sm-start { + align-content: flex-start !important; + } + .align-content-sm-end { + align-content: flex-end !important; + } + .align-content-sm-center { + align-content: center !important; + } + .align-content-sm-between { + align-content: space-between !important; + } + .align-content-sm-around { + align-content: space-around !important; + } + .align-content-sm-stretch { + align-content: stretch !important; + } + .align-self-sm-auto { + align-self: auto !important; + } + .align-self-sm-start { + align-self: flex-start !important; + } + .align-self-sm-end { + align-self: flex-end !important; + } + .align-self-sm-center { + align-self: center !important; + } + .align-self-sm-baseline { + align-self: baseline !important; + } + .align-self-sm-stretch { + align-self: stretch !important; + } +} +@media (min-width: 768px) { + .flex-md-row { + flex-direction: row !important; + } + .flex-md-column { + flex-direction: column !important; + } + .flex-md-row-reverse { + flex-direction: row-reverse !important; + } + .flex-md-column-reverse { + flex-direction: column-reverse !important; + } + .flex-md-wrap { + flex-wrap: wrap !important; + } + .flex-md-nowrap { + flex-wrap: nowrap !important; + } + .flex-md-wrap-reverse { + flex-wrap: wrap-reverse !important; + } + .flex-md-fill { + flex: 1 1 auto !important; + } + .flex-md-grow-0 { + flex-grow: 0 !important; + } + .flex-md-grow-1 { + flex-grow: 1 !important; + } + .flex-md-shrink-0 { + flex-shrink: 0 !important; + } + .flex-md-shrink-1 { + flex-shrink: 1 !important; + } + .justify-content-md-start { + justify-content: flex-start !important; + } + .justify-content-md-end { + justify-content: flex-end !important; + } + .justify-content-md-center { + justify-content: center !important; + } + .justify-content-md-between { + justify-content: space-between !important; + } + .justify-content-md-around { + justify-content: space-around !important; + } + .align-items-md-start { + align-items: flex-start !important; + } + .align-items-md-end { + align-items: flex-end !important; + } + .align-items-md-center { + align-items: center !important; + } + .align-items-md-baseline { + align-items: baseline !important; + } + .align-items-md-stretch { + align-items: stretch !important; + } + .align-content-md-start { + align-content: flex-start !important; + } + .align-content-md-end { + align-content: flex-end !important; + } + .align-content-md-center { + align-content: center !important; + } + .align-content-md-between { + align-content: space-between !important; + } + .align-content-md-around { + align-content: space-around !important; + } + .align-content-md-stretch { + align-content: stretch !important; + } + .align-self-md-auto { + align-self: auto !important; + } + .align-self-md-start { + align-self: flex-start !important; + } + .align-self-md-end { + align-self: flex-end !important; + } + .align-self-md-center { + align-self: center !important; + } + .align-self-md-baseline { + align-self: baseline !important; + } + .align-self-md-stretch { + align-self: stretch !important; + } +} +@media (min-width: 992px) { + .flex-lg-row { + flex-direction: row !important; + } + .flex-lg-column { + flex-direction: column !important; + } + .flex-lg-row-reverse { + flex-direction: row-reverse !important; + } + .flex-lg-column-reverse { + flex-direction: column-reverse !important; + } + .flex-lg-wrap { + flex-wrap: wrap !important; + } + .flex-lg-nowrap { + flex-wrap: nowrap !important; + } + .flex-lg-wrap-reverse { + flex-wrap: wrap-reverse !important; + } + .flex-lg-fill { + flex: 1 1 auto !important; + } + .flex-lg-grow-0 { + flex-grow: 0 !important; + } + .flex-lg-grow-1 { + flex-grow: 1 !important; + } + .flex-lg-shrink-0 { + flex-shrink: 0 !important; + } + .flex-lg-shrink-1 { + flex-shrink: 1 !important; + } + .justify-content-lg-start { + justify-content: flex-start !important; + } + .justify-content-lg-end { + justify-content: flex-end !important; + } + .justify-content-lg-center { + justify-content: center !important; + } + .justify-content-lg-between { + justify-content: space-between !important; + } + .justify-content-lg-around { + justify-content: space-around !important; + } + .align-items-lg-start { + align-items: flex-start !important; + } + .align-items-lg-end { + align-items: flex-end !important; + } + .align-items-lg-center { + align-items: center !important; + } + .align-items-lg-baseline { + align-items: baseline !important; + } + .align-items-lg-stretch { + align-items: stretch !important; + } + .align-content-lg-start { + align-content: flex-start !important; + } + .align-content-lg-end { + align-content: flex-end !important; + } + .align-content-lg-center { + align-content: center !important; + } + .align-content-lg-between { + align-content: space-between !important; + } + .align-content-lg-around { + align-content: space-around !important; + } + .align-content-lg-stretch { + align-content: stretch !important; + } + .align-self-lg-auto { + align-self: auto !important; + } + .align-self-lg-start { + align-self: flex-start !important; + } + .align-self-lg-end { + align-self: flex-end !important; + } + .align-self-lg-center { + align-self: center !important; + } + .align-self-lg-baseline { + align-self: baseline !important; + } + .align-self-lg-stretch { + align-self: stretch !important; + } +} +@media (min-width: 1200px) { + .flex-xl-row { + flex-direction: row !important; + } + .flex-xl-column { + flex-direction: column !important; + } + .flex-xl-row-reverse { + flex-direction: row-reverse !important; + } + .flex-xl-column-reverse { + flex-direction: column-reverse !important; + } + .flex-xl-wrap { + flex-wrap: wrap !important; + } + .flex-xl-nowrap { + flex-wrap: nowrap !important; + } + .flex-xl-wrap-reverse { + flex-wrap: wrap-reverse !important; + } + .flex-xl-fill { + flex: 1 1 auto !important; + } + .flex-xl-grow-0 { + flex-grow: 0 !important; + } + .flex-xl-grow-1 { + flex-grow: 1 !important; + } + .flex-xl-shrink-0 { + flex-shrink: 0 !important; + } + .flex-xl-shrink-1 { + flex-shrink: 1 !important; + } + .justify-content-xl-start { + justify-content: flex-start !important; + } + .justify-content-xl-end { + justify-content: flex-end !important; + } + .justify-content-xl-center { + justify-content: center !important; + } + .justify-content-xl-between { + justify-content: space-between !important; + } + .justify-content-xl-around { + justify-content: space-around !important; + } + .align-items-xl-start { + align-items: flex-start !important; + } + .align-items-xl-end { + align-items: flex-end !important; + } + .align-items-xl-center { + align-items: center !important; + } + .align-items-xl-baseline { + align-items: baseline !important; + } + .align-items-xl-stretch { + align-items: stretch !important; + } + .align-content-xl-start { + align-content: flex-start !important; + } + .align-content-xl-end { + align-content: flex-end !important; + } + .align-content-xl-center { + align-content: center !important; + } + .align-content-xl-between { + align-content: space-between !important; + } + .align-content-xl-around { + align-content: space-around !important; + } + .align-content-xl-stretch { + align-content: stretch !important; + } + .align-self-xl-auto { + align-self: auto !important; + } + .align-self-xl-start { + align-self: flex-start !important; + } + .align-self-xl-end { + align-self: flex-end !important; + } + .align-self-xl-center { + align-self: center !important; + } + .align-self-xl-baseline { + align-self: baseline !important; + } + .align-self-xl-stretch { + align-self: stretch !important; + } +} +.float-left { + float: left !important; +} +.float-right { + float: right !important; +} +.float-none { + float: none !important; +} +@media (min-width: 576px) { + .float-sm-left { + float: left !important; + } + .float-sm-right { + float: right !important; + } + .float-sm-none { + float: none !important; + } +} +@media (min-width: 768px) { + .float-md-left { + float: left !important; + } + .float-md-right { + float: right !important; + } + .float-md-none { + float: none !important; + } +} +@media (min-width: 992px) { + .float-lg-left { + float: left !important; + } + .float-lg-right { + float: right !important; + } + .float-lg-none { + float: none !important; + } +} +@media (min-width: 1200px) { + .float-xl-left { + float: left !important; + } + .float-xl-right { + float: right !important; + } + .float-xl-none { + float: none !important; + } +} +.position-static { + position: static !important; +} +.position-relative { + position: relative !important; +} +.position-absolute { + position: absolute !important; +} +.position-fixed { + position: fixed !important; +} +.position-sticky { + position: sticky !important; +} +.fixed-top { + position: fixed; + top: 0; + right: 0; + left: 0; + z-index: 1030; +} +.fixed-bottom { + position: fixed; + right: 0; + bottom: 0; + left: 0; + z-index: 1030; +} +@supports (position: sticky) { + .sticky-top { + position: sticky; + top: 0; + z-index: 1020; + } +} +.sr-only { + position: absolute; + width: 1px; + height: 1px; + padding: 0; + overflow: hidden; + clip: rect(0, 0, 0, 0); + white-space: nowrap; + border: 0; +} +.sr-only-focusable:active, +.sr-only-focusable:focus { + position: static; + width: auto; + height: auto; + overflow: visible; + clip: auto; + white-space: normal; +} +.shadow-sm { + box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075) !important; +} +.shadow { + box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15) !important; +} +.shadow-lg { + box-shadow: 0 1rem 3rem rgba(0, 0, 0, 0.175) !important; +} +.shadow-none { + box-shadow: none !important; +} +.w-25 { + width: 25% !important; +} +.w-50 { + width: 50% !important; +} +.w-75 { + width: 75% !important; +} +.w-100 { + width: 100% !important; +} +.w-auto { + width: auto !important; +} +.h-25 { + height: 25% !important; +} +.h-50 { + height: 50% !important; +} +.h-75 { + height: 75% !important; +} +.h-100 { + height: 100% !important; +} +.h-auto { + height: auto !important; +} +.mw-100 { + max-width: 100% !important; +} +.mh-100 { + max-height: 100% !important; +} +.m-0 { + margin: 0 !important; +} +.mt-0, +.my-0 { + margin-top: 0 !important; +} +.mr-0, +.mx-0 { + margin-right: 0 !important; +} +.mb-0, +.my-0 { + margin-bottom: 0 !important; +} +.ml-0, +.mx-0 { + margin-left: 0 !important; +} +.m-1 { + margin: 0.25rem !important; +} +.mt-1, +.my-1 { + margin-top: 0.25rem !important; +} +.mr-1, +.mx-1 { + margin-right: 0.25rem !important; +} +.mb-1, +.my-1 { + margin-bottom: 0.25rem !important; +} +.ml-1, +.mx-1 { + margin-left: 0.25rem !important; +} +.m-2 { + margin: 0.5rem !important; +} +.mt-2, +.my-2 { + margin-top: 0.5rem !important; +} +.mr-2, +.mx-2 { + margin-right: 0.5rem !important; +} +.mb-2, +.my-2 { + margin-bottom: 0.5rem !important; +} +.ml-2, +.mx-2 { + margin-left: 0.5rem !important; +} +.m-3 { + margin: 1rem !important; +} +.mt-3, +.my-3 { + margin-top: 1rem !important; +} +.mr-3, +.mx-3 { + margin-right: 1rem !important; +} +.mb-3, +.my-3 { + margin-bottom: 1rem !important; +} +.ml-3, +.mx-3 { + margin-left: 1rem !important; +} +.m-4 { + margin: 1.5rem !important; +} +.mt-4, +.my-4 { + margin-top: 1.5rem !important; +} +.mr-4, +.mx-4 { + margin-right: 1.5rem !important; +} +.mb-4, +.my-4 { + margin-bottom: 1.5rem !important; +} +.ml-4, +.mx-4 { + margin-left: 1.5rem !important; +} +.m-5 { + margin: 3rem !important; +} +.mt-5, +.my-5 { + margin-top: 3rem !important; +} +.mr-5, +.mx-5 { + margin-right: 3rem !important; +} +.mb-5, +.my-5 { + margin-bottom: 3rem !important; +} +.ml-5, +.mx-5 { + margin-left: 3rem !important; +} +.p-0 { + padding: 0 !important; +} +.pt-0, +.py-0 { + padding-top: 0 !important; +} +.pr-0, +.px-0 { + padding-right: 0 !important; +} +.pb-0, +.py-0 { + padding-bottom: 0 !important; +} +.pl-0, +.px-0 { + padding-left: 0 !important; +} +.p-1 { + padding: 0.25rem !important; +} +.pt-1, +.py-1 { + padding-top: 0.25rem !important; +} +.pr-1, +.px-1 { + padding-right: 0.25rem !important; +} +.pb-1, +.py-1 { + padding-bottom: 0.25rem !important; +} +.pl-1, +.px-1 { + padding-left: 0.25rem !important; +} +.p-2 { + padding: 0.5rem !important; +} +.pt-2, +.py-2 { + padding-top: 0.5rem !important; +} +.pr-2, +.px-2 { + padding-right: 0.5rem !important; +} +.pb-2, +.py-2 { + padding-bottom: 0.5rem !important; +} +.pl-2, +.px-2 { + padding-left: 0.5rem !important; +} +.p-3 { + padding: 1rem !important; +} +.pt-3, +.py-3 { + padding-top: 1rem !important; +} +.pr-3, +.px-3 { + padding-right: 1rem !important; +} +.pb-3, +.py-3 { + padding-bottom: 1rem !important; +} +.pl-3, +.px-3 { + padding-left: 1rem !important; +} +.p-4 { + padding: 1.5rem !important; +} +.pt-4, +.py-4 { + padding-top: 1.5rem !important; +} +.pr-4, +.px-4 { + padding-right: 1.5rem !important; +} +.pb-4, +.py-4 { + padding-bottom: 1.5rem !important; +} +.pl-4, +.px-4 { + padding-left: 1.5rem !important; +} +.p-5 { + padding: 3rem !important; +} +.pt-5, +.py-5 { + padding-top: 3rem !important; +} +.pr-5, +.px-5 { + padding-right: 3rem !important; +} +.pb-5, +.py-5 { + padding-bottom: 3rem !important; +} +.pl-5, +.px-5 { + padding-left: 3rem !important; +} +.m-auto { + margin: auto !important; +} +.mt-auto, +.my-auto { + margin-top: auto !important; +} +.mr-auto, +.mx-auto { + margin-right: auto !important; +} +.mb-auto, +.my-auto { + margin-bottom: auto !important; +} +.ml-auto, +.mx-auto { + margin-left: auto !important; +} +@media (min-width: 576px) { + .m-sm-0 { + margin: 0 !important; + } + .mt-sm-0, + .my-sm-0 { + margin-top: 0 !important; + } + .mr-sm-0, + .mx-sm-0 { + margin-right: 0 !important; + } + .mb-sm-0, + .my-sm-0 { + margin-bottom: 0 !important; + } + .ml-sm-0, + .mx-sm-0 { + margin-left: 0 !important; + } + .m-sm-1 { + margin: 0.25rem !important; + } + .mt-sm-1, + .my-sm-1 { + margin-top: 0.25rem !important; + } + .mr-sm-1, + .mx-sm-1 { + margin-right: 0.25rem !important; + } + .mb-sm-1, + .my-sm-1 { + margin-bottom: 0.25rem !important; + } + .ml-sm-1, + .mx-sm-1 { + margin-left: 0.25rem !important; + } + .m-sm-2 { + margin: 0.5rem !important; + } + .mt-sm-2, + .my-sm-2 { + margin-top: 0.5rem !important; + } + .mr-sm-2, + .mx-sm-2 { + margin-right: 0.5rem !important; + } + .mb-sm-2, + .my-sm-2 { + margin-bottom: 0.5rem !important; + } + .ml-sm-2, + .mx-sm-2 { + margin-left: 0.5rem !important; + } + .m-sm-3 { + margin: 1rem !important; + } + .mt-sm-3, + .my-sm-3 { + margin-top: 1rem !important; + } + .mr-sm-3, + .mx-sm-3 { + margin-right: 1rem !important; + } + .mb-sm-3, + .my-sm-3 { + margin-bottom: 1rem !important; + } + .ml-sm-3, + .mx-sm-3 { + margin-left: 1rem !important; + } + .m-sm-4 { + margin: 1.5rem !important; + } + .mt-sm-4, + .my-sm-4 { + margin-top: 1.5rem !important; + } + .mr-sm-4, + .mx-sm-4 { + margin-right: 1.5rem !important; + } + .mb-sm-4, + .my-sm-4 { + margin-bottom: 1.5rem !important; + } + .ml-sm-4, + .mx-sm-4 { + margin-left: 1.5rem !important; + } + .m-sm-5 { + margin: 3rem !important; + } + .mt-sm-5, + .my-sm-5 { + margin-top: 3rem !important; + } + .mr-sm-5, + .mx-sm-5 { + margin-right: 3rem !important; + } + .mb-sm-5, + .my-sm-5 { + margin-bottom: 3rem !important; + } + .ml-sm-5, + .mx-sm-5 { + margin-left: 3rem !important; + } + .p-sm-0 { + padding: 0 !important; + } + .pt-sm-0, + .py-sm-0 { + padding-top: 0 !important; + } + .pr-sm-0, + .px-sm-0 { + padding-right: 0 !important; + } + .pb-sm-0, + .py-sm-0 { + padding-bottom: 0 !important; + } + .pl-sm-0, + .px-sm-0 { + padding-left: 0 !important; + } + .p-sm-1 { + padding: 0.25rem !important; + } + .pt-sm-1, + .py-sm-1 { + padding-top: 0.25rem !important; + } + .pr-sm-1, + .px-sm-1 { + padding-right: 0.25rem !important; + } + .pb-sm-1, + .py-sm-1 { + padding-bottom: 0.25rem !important; + } + .pl-sm-1, + .px-sm-1 { + padding-left: 0.25rem !important; + } + .p-sm-2 { + padding: 0.5rem !important; + } + .pt-sm-2, + .py-sm-2 { + padding-top: 0.5rem !important; + } + .pr-sm-2, + .px-sm-2 { + padding-right: 0.5rem !important; + } + .pb-sm-2, + .py-sm-2 { + padding-bottom: 0.5rem !important; + } + .pl-sm-2, + .px-sm-2 { + padding-left: 0.5rem !important; + } + .p-sm-3 { + padding: 1rem !important; + } + .pt-sm-3, + .py-sm-3 { + padding-top: 1rem !important; + } + .pr-sm-3, + .px-sm-3 { + padding-right: 1rem !important; + } + .pb-sm-3, + .py-sm-3 { + padding-bottom: 1rem !important; + } + .pl-sm-3, + .px-sm-3 { + padding-left: 1rem !important; + } + .p-sm-4 { + padding: 1.5rem !important; + } + .pt-sm-4, + .py-sm-4 { + padding-top: 1.5rem !important; + } + .pr-sm-4, + .px-sm-4 { + padding-right: 1.5rem !important; + } + .pb-sm-4, + .py-sm-4 { + padding-bottom: 1.5rem !important; + } + .pl-sm-4, + .px-sm-4 { + padding-left: 1.5rem !important; + } + .p-sm-5 { + padding: 3rem !important; + } + .pt-sm-5, + .py-sm-5 { + padding-top: 3rem !important; + } + .pr-sm-5, + .px-sm-5 { + padding-right: 3rem !important; + } + .pb-sm-5, + .py-sm-5 { + padding-bottom: 3rem !important; + } + .pl-sm-5, + .px-sm-5 { + padding-left: 3rem !important; + } + .m-sm-auto { + margin: auto !important; + } + .mt-sm-auto, + .my-sm-auto { + margin-top: auto !important; + } + .mr-sm-auto, + .mx-sm-auto { + margin-right: auto !important; + } + .mb-sm-auto, + .my-sm-auto { + margin-bottom: auto !important; + } + .ml-sm-auto, + .mx-sm-auto { + margin-left: auto !important; + } +} +@media (min-width: 768px) { + .m-md-0 { + margin: 0 !important; + } + .mt-md-0, + .my-md-0 { + margin-top: 0 !important; + } + .mr-md-0, + .mx-md-0 { + margin-right: 0 !important; + } + .mb-md-0, + .my-md-0 { + margin-bottom: 0 !important; + } + .ml-md-0, + .mx-md-0 { + margin-left: 0 !important; + } + .m-md-1 { + margin: 0.25rem !important; + } + .mt-md-1, + .my-md-1 { + margin-top: 0.25rem !important; + } + .mr-md-1, + .mx-md-1 { + margin-right: 0.25rem !important; + } + .mb-md-1, + .my-md-1 { + margin-bottom: 0.25rem !important; + } + .ml-md-1, + .mx-md-1 { + margin-left: 0.25rem !important; + } + .m-md-2 { + margin: 0.5rem !important; + } + .mt-md-2, + .my-md-2 { + margin-top: 0.5rem !important; + } + .mr-md-2, + .mx-md-2 { + margin-right: 0.5rem !important; + } + .mb-md-2, + .my-md-2 { + margin-bottom: 0.5rem !important; + } + .ml-md-2, + .mx-md-2 { + margin-left: 0.5rem !important; + } + .m-md-3 { + margin: 1rem !important; + } + .mt-md-3, + .my-md-3 { + margin-top: 1rem !important; + } + .mr-md-3, + .mx-md-3 { + margin-right: 1rem !important; + } + .mb-md-3, + .my-md-3 { + margin-bottom: 1rem !important; + } + .ml-md-3, + .mx-md-3 { + margin-left: 1rem !important; + } + .m-md-4 { + margin: 1.5rem !important; + } + .mt-md-4, + .my-md-4 { + margin-top: 1.5rem !important; + } + .mr-md-4, + .mx-md-4 { + margin-right: 1.5rem !important; + } + .mb-md-4, + .my-md-4 { + margin-bottom: 1.5rem !important; + } + .ml-md-4, + .mx-md-4 { + margin-left: 1.5rem !important; + } + .m-md-5 { + margin: 3rem !important; + } + .mt-md-5, + .my-md-5 { + margin-top: 3rem !important; + } + .mr-md-5, + .mx-md-5 { + margin-right: 3rem !important; + } + .mb-md-5, + .my-md-5 { + margin-bottom: 3rem !important; + } + .ml-md-5, + .mx-md-5 { + margin-left: 3rem !important; + } + .p-md-0 { + padding: 0 !important; + } + .pt-md-0, + .py-md-0 { + padding-top: 0 !important; + } + .pr-md-0, + .px-md-0 { + padding-right: 0 !important; + } + .pb-md-0, + .py-md-0 { + padding-bottom: 0 !important; + } + .pl-md-0, + .px-md-0 { + padding-left: 0 !important; + } + .p-md-1 { + padding: 0.25rem !important; + } + .pt-md-1, + .py-md-1 { + padding-top: 0.25rem !important; + } + .pr-md-1, + .px-md-1 { + padding-right: 0.25rem !important; + } + .pb-md-1, + .py-md-1 { + padding-bottom: 0.25rem !important; + } + .pl-md-1, + .px-md-1 { + padding-left: 0.25rem !important; + } + .p-md-2 { + padding: 0.5rem !important; + } + .pt-md-2, + .py-md-2 { + padding-top: 0.5rem !important; + } + .pr-md-2, + .px-md-2 { + padding-right: 0.5rem !important; + } + .pb-md-2, + .py-md-2 { + padding-bottom: 0.5rem !important; + } + .pl-md-2, + .px-md-2 { + padding-left: 0.5rem !important; + } + .p-md-3 { + padding: 1rem !important; + } + .pt-md-3, + .py-md-3 { + padding-top: 1rem !important; + } + .pr-md-3, + .px-md-3 { + padding-right: 1rem !important; + } + .pb-md-3, + .py-md-3 { + padding-bottom: 1rem !important; + } + .pl-md-3, + .px-md-3 { + padding-left: 1rem !important; + } + .p-md-4 { + padding: 1.5rem !important; + } + .pt-md-4, + .py-md-4 { + padding-top: 1.5rem !important; + } + .pr-md-4, + .px-md-4 { + padding-right: 1.5rem !important; + } + .pb-md-4, + .py-md-4 { + padding-bottom: 1.5rem !important; + } + .pl-md-4, + .px-md-4 { + padding-left: 1.5rem !important; + } + .p-md-5 { + padding: 3rem !important; + } + .pt-md-5, + .py-md-5 { + padding-top: 3rem !important; + } + .pr-md-5, + .px-md-5 { + padding-right: 3rem !important; + } + .pb-md-5, + .py-md-5 { + padding-bottom: 3rem !important; + } + .pl-md-5, + .px-md-5 { + padding-left: 3rem !important; + } + .m-md-auto { + margin: auto !important; + } + .mt-md-auto, + .my-md-auto { + margin-top: auto !important; + } + .mr-md-auto, + .mx-md-auto { + margin-right: auto !important; + } + .mb-md-auto, + .my-md-auto { + margin-bottom: auto !important; + } + .ml-md-auto, + .mx-md-auto { + margin-left: auto !important; + } +} +@media (min-width: 992px) { + .m-lg-0 { + margin: 0 !important; + } + .mt-lg-0, + .my-lg-0 { + margin-top: 0 !important; + } + .mr-lg-0, + .mx-lg-0 { + margin-right: 0 !important; + } + .mb-lg-0, + .my-lg-0 { + margin-bottom: 0 !important; + } + .ml-lg-0, + .mx-lg-0 { + margin-left: 0 !important; + } + .m-lg-1 { + margin: 0.25rem !important; + } + .mt-lg-1, + .my-lg-1 { + margin-top: 0.25rem !important; + } + .mr-lg-1, + .mx-lg-1 { + margin-right: 0.25rem !important; + } + .mb-lg-1, + .my-lg-1 { + margin-bottom: 0.25rem !important; + } + .ml-lg-1, + .mx-lg-1 { + margin-left: 0.25rem !important; + } + .m-lg-2 { + margin: 0.5rem !important; + } + .mt-lg-2, + .my-lg-2 { + margin-top: 0.5rem !important; + } + .mr-lg-2, + .mx-lg-2 { + margin-right: 0.5rem !important; + } + .mb-lg-2, + .my-lg-2 { + margin-bottom: 0.5rem !important; + } + .ml-lg-2, + .mx-lg-2 { + margin-left: 0.5rem !important; + } + .m-lg-3 { + margin: 1rem !important; + } + .mt-lg-3, + .my-lg-3 { + margin-top: 1rem !important; + } + .mr-lg-3, + .mx-lg-3 { + margin-right: 1rem !important; + } + .mb-lg-3, + .my-lg-3 { + margin-bottom: 1rem !important; + } + .ml-lg-3, + .mx-lg-3 { + margin-left: 1rem !important; + } + .m-lg-4 { + margin: 1.5rem !important; + } + .mt-lg-4, + .my-lg-4 { + margin-top: 1.5rem !important; + } + .mr-lg-4, + .mx-lg-4 { + margin-right: 1.5rem !important; + } + .mb-lg-4, + .my-lg-4 { + margin-bottom: 1.5rem !important; + } + .ml-lg-4, + .mx-lg-4 { + margin-left: 1.5rem !important; + } + .m-lg-5 { + margin: 3rem !important; + } + .mt-lg-5, + .my-lg-5 { + margin-top: 3rem !important; + } + .mr-lg-5, + .mx-lg-5 { + margin-right: 3rem !important; + } + .mb-lg-5, + .my-lg-5 { + margin-bottom: 3rem !important; + } + .ml-lg-5, + .mx-lg-5 { + margin-left: 3rem !important; + } + .p-lg-0 { + padding: 0 !important; + } + .pt-lg-0, + .py-lg-0 { + padding-top: 0 !important; + } + .pr-lg-0, + .px-lg-0 { + padding-right: 0 !important; + } + .pb-lg-0, + .py-lg-0 { + padding-bottom: 0 !important; + } + .pl-lg-0, + .px-lg-0 { + padding-left: 0 !important; + } + .p-lg-1 { + padding: 0.25rem !important; + } + .pt-lg-1, + .py-lg-1 { + padding-top: 0.25rem !important; + } + .pr-lg-1, + .px-lg-1 { + padding-right: 0.25rem !important; + } + .pb-lg-1, + .py-lg-1 { + padding-bottom: 0.25rem !important; + } + .pl-lg-1, + .px-lg-1 { + padding-left: 0.25rem !important; + } + .p-lg-2 { + padding: 0.5rem !important; + } + .pt-lg-2, + .py-lg-2 { + padding-top: 0.5rem !important; + } + .pr-lg-2, + .px-lg-2 { + padding-right: 0.5rem !important; + } + .pb-lg-2, + .py-lg-2 { + padding-bottom: 0.5rem !important; + } + .pl-lg-2, + .px-lg-2 { + padding-left: 0.5rem !important; + } + .p-lg-3 { + padding: 1rem !important; + } + .pt-lg-3, + .py-lg-3 { + padding-top: 1rem !important; + } + .pr-lg-3, + .px-lg-3 { + padding-right: 1rem !important; + } + .pb-lg-3, + .py-lg-3 { + padding-bottom: 1rem !important; + } + .pl-lg-3, + .px-lg-3 { + padding-left: 1rem !important; + } + .p-lg-4 { + padding: 1.5rem !important; + } + .pt-lg-4, + .py-lg-4 { + padding-top: 1.5rem !important; + } + .pr-lg-4, + .px-lg-4 { + padding-right: 1.5rem !important; + } + .pb-lg-4, + .py-lg-4 { + padding-bottom: 1.5rem !important; + } + .pl-lg-4, + .px-lg-4 { + padding-left: 1.5rem !important; + } + .p-lg-5 { + padding: 3rem !important; + } + .pt-lg-5, + .py-lg-5 { + padding-top: 3rem !important; + } + .pr-lg-5, + .px-lg-5 { + padding-right: 3rem !important; + } + .pb-lg-5, + .py-lg-5 { + padding-bottom: 3rem !important; + } + .pl-lg-5, + .px-lg-5 { + padding-left: 3rem !important; + } + .m-lg-auto { + margin: auto !important; + } + .mt-lg-auto, + .my-lg-auto { + margin-top: auto !important; + } + .mr-lg-auto, + .mx-lg-auto { + margin-right: auto !important; + } + .mb-lg-auto, + .my-lg-auto { + margin-bottom: auto !important; + } + .ml-lg-auto, + .mx-lg-auto { + margin-left: auto !important; + } +} +@media (min-width: 1200px) { + .m-xl-0 { + margin: 0 !important; + } + .mt-xl-0, + .my-xl-0 { + margin-top: 0 !important; + } + .mr-xl-0, + .mx-xl-0 { + margin-right: 0 !important; + } + .mb-xl-0, + .my-xl-0 { + margin-bottom: 0 !important; + } + .ml-xl-0, + .mx-xl-0 { + margin-left: 0 !important; + } + .m-xl-1 { + margin: 0.25rem !important; + } + .mt-xl-1, + .my-xl-1 { + margin-top: 0.25rem !important; + } + .mr-xl-1, + .mx-xl-1 { + margin-right: 0.25rem !important; + } + .mb-xl-1, + .my-xl-1 { + margin-bottom: 0.25rem !important; + } + .ml-xl-1, + .mx-xl-1 { + margin-left: 0.25rem !important; + } + .m-xl-2 { + margin: 0.5rem !important; + } + .mt-xl-2, + .my-xl-2 { + margin-top: 0.5rem !important; + } + .mr-xl-2, + .mx-xl-2 { + margin-right: 0.5rem !important; + } + .mb-xl-2, + .my-xl-2 { + margin-bottom: 0.5rem !important; + } + .ml-xl-2, + .mx-xl-2 { + margin-left: 0.5rem !important; + } + .m-xl-3 { + margin: 1rem !important; + } + .mt-xl-3, + .my-xl-3 { + margin-top: 1rem !important; + } + .mr-xl-3, + .mx-xl-3 { + margin-right: 1rem !important; + } + .mb-xl-3, + .my-xl-3 { + margin-bottom: 1rem !important; + } + .ml-xl-3, + .mx-xl-3 { + margin-left: 1rem !important; + } + .m-xl-4 { + margin: 1.5rem !important; + } + .mt-xl-4, + .my-xl-4 { + margin-top: 1.5rem !important; + } + .mr-xl-4, + .mx-xl-4 { + margin-right: 1.5rem !important; + } + .mb-xl-4, + .my-xl-4 { + margin-bottom: 1.5rem !important; + } + .ml-xl-4, + .mx-xl-4 { + margin-left: 1.5rem !important; + } + .m-xl-5 { + margin: 3rem !important; + } + .mt-xl-5, + .my-xl-5 { + margin-top: 3rem !important; + } + .mr-xl-5, + .mx-xl-5 { + margin-right: 3rem !important; + } + .mb-xl-5, + .my-xl-5 { + margin-bottom: 3rem !important; + } + .ml-xl-5, + .mx-xl-5 { + margin-left: 3rem !important; + } + .p-xl-0 { + padding: 0 !important; + } + .pt-xl-0, + .py-xl-0 { + padding-top: 0 !important; + } + .pr-xl-0, + .px-xl-0 { + padding-right: 0 !important; + } + .pb-xl-0, + .py-xl-0 { + padding-bottom: 0 !important; + } + .pl-xl-0, + .px-xl-0 { + padding-left: 0 !important; + } + .p-xl-1 { + padding: 0.25rem !important; + } + .pt-xl-1, + .py-xl-1 { + padding-top: 0.25rem !important; + } + .pr-xl-1, + .px-xl-1 { + padding-right: 0.25rem !important; + } + .pb-xl-1, + .py-xl-1 { + padding-bottom: 0.25rem !important; + } + .pl-xl-1, + .px-xl-1 { + padding-left: 0.25rem !important; + } + .p-xl-2 { + padding: 0.5rem !important; + } + .pt-xl-2, + .py-xl-2 { + padding-top: 0.5rem !important; + } + .pr-xl-2, + .px-xl-2 { + padding-right: 0.5rem !important; + } + .pb-xl-2, + .py-xl-2 { + padding-bottom: 0.5rem !important; + } + .pl-xl-2, + .px-xl-2 { + padding-left: 0.5rem !important; + } + .p-xl-3 { + padding: 1rem !important; + } + .pt-xl-3, + .py-xl-3 { + padding-top: 1rem !important; + } + .pr-xl-3, + .px-xl-3 { + padding-right: 1rem !important; + } + .pb-xl-3, + .py-xl-3 { + padding-bottom: 1rem !important; + } + .pl-xl-3, + .px-xl-3 { + padding-left: 1rem !important; + } + .p-xl-4 { + padding: 1.5rem !important; + } + .pt-xl-4, + .py-xl-4 { + padding-top: 1.5rem !important; + } + .pr-xl-4, + .px-xl-4 { + padding-right: 1.5rem !important; + } + .pb-xl-4, + .py-xl-4 { + padding-bottom: 1.5rem !important; + } + .pl-xl-4, + .px-xl-4 { + padding-left: 1.5rem !important; + } + .p-xl-5 { + padding: 3rem !important; + } + .pt-xl-5, + .py-xl-5 { + padding-top: 3rem !important; + } + .pr-xl-5, + .px-xl-5 { + padding-right: 3rem !important; + } + .pb-xl-5, + .py-xl-5 { + padding-bottom: 3rem !important; + } + .pl-xl-5, + .px-xl-5 { + padding-left: 3rem !important; + } + .m-xl-auto { + margin: auto !important; + } + .mt-xl-auto, + .my-xl-auto { + margin-top: auto !important; + } + .mr-xl-auto, + .mx-xl-auto { + margin-right: auto !important; + } + .mb-xl-auto, + .my-xl-auto { + margin-bottom: auto !important; + } + .ml-xl-auto, + .mx-xl-auto { + margin-left: auto !important; + } +} +.text-monospace { + font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; +} +.text-justify { + text-align: justify !important; +} +.text-nowrap { + white-space: nowrap !important; +} +.text-truncate { + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; +} +.text-left { + text-align: left !important; +} +.text-right { + text-align: right !important; +} +.text-center { + text-align: center !important; +} +@media (min-width: 576px) { + .text-sm-left { + text-align: left !important; + } + .text-sm-right { + text-align: right !important; + } + .text-sm-center { + text-align: center !important; + } +} +@media (min-width: 768px) { + .text-md-left { + text-align: left !important; + } + .text-md-right { + text-align: right !important; + } + .text-md-center { + text-align: center !important; + } +} +@media (min-width: 992px) { + .text-lg-left { + text-align: left !important; + } + .text-lg-right { + text-align: right !important; + } + .text-lg-center { + text-align: center !important; + } +} +@media (min-width: 1200px) { + .text-xl-left { + text-align: left !important; + } + .text-xl-right { + text-align: right !important; + } + .text-xl-center { + text-align: center !important; + } +} +.text-lowercase { + text-transform: lowercase !important; +} +.text-uppercase { + text-transform: uppercase !important; +} +.text-capitalize { + text-transform: capitalize !important; +} +.font-weight-light { + font-weight: 300 !important; +} +.font-weight-normal { + font-weight: 400 !important; +} +.font-weight-bold { + font-weight: 700 !important; +} +.font-italic { + font-style: italic !important; +} +.text-white { + color: #fff !important; +} +.text-primary { + color: #007bff !important; +} +a.text-primary:hover, +a.text-primary:focus { + color: #0062cc !important; +} +.text-secondary { + color: #6c757d !important; +} +a.text-secondary:hover, +a.text-secondary:focus { + color: #545b62 !important; +} +.text-success { + color: #28a745 !important; +} +a.text-success:hover, +a.text-success:focus { + color: #1e7e34 !important; +} +.text-info { + color: #17a2b8 !important; +} +a.text-info:hover, +a.text-info:focus { + color: #117a8b !important; +} +.text-warning { + color: #ffc107 !important; +} +a.text-warning:hover, +a.text-warning:focus { + color: #d39e00 !important; +} +.text-danger { + color: #dc3545 !important; +} +a.text-danger:hover, +a.text-danger:focus { + color: #bd2130 !important; +} +.text-light { + color: #f8f9fa !important; +} +a.text-light:hover, +a.text-light:focus { + color: #dae0e5 !important; +} +.text-dark { + color: #343a40 !important; +} +a.text-dark:hover, +a.text-dark:focus { + color: #1d2124 !important; +} +.text-body { + color: #212529 !important; +} +.text-muted { + color: #6c757d !important; +} +.text-black-50 { + color: rgba(0, 0, 0, 0.5) !important; +} +.text-white-50 { + color: rgba(255, 255, 255, 0.5) !important; +} +.text-hide { + font: 0/0 a; + color: transparent; + text-shadow: none; + background-color: transparent; + border: 0; +} +.visible { + visibility: visible !important; +} +.invisible { + visibility: hidden !important; +} +@media print { + *, + *::before, + *::after { + text-shadow: none !important; + box-shadow: none !important; + } + a:not(.btn) { + text-decoration: underline; + } + abbr[title]::after { + content: " (" attr(title) ")"; + } + pre { + white-space: pre-wrap !important; + } + pre, + blockquote { + border: 1px solid #adb5bd; + page-break-inside: avoid; + } + thead { + display: table-header-group; + } + tr, + img { + page-break-inside: avoid; + } + p, + h2, + h3 { + orphans: 3; + widows: 3; + } + h2, + h3 { + page-break-after: avoid; + } + @page { + size: a3; + } + body { + min-width: 992px !important; + } + .container { + min-width: 992px !important; + } + .navbar { + display: none; + } + .badge { + border: 1px solid #000; + } + .table { + border-collapse: collapse !important; + } + .table td, + .table th { + background-color: #fff !important; + } + .table-bordered th, + .table-bordered td { + border: 1px solid #dee2e6 !important; + } + .table-dark { + color: inherit; + } + .table-dark th, + .table-dark td, + .table-dark thead th, + .table-dark tbody + tbody { + border-color: #dee2e6; + } + .table .thead-dark th { + color: inherit; + border-color: #dee2e6; + } +} diff --git a/test/Fixtures/lessjs-3.13.1/css/3rd-party/uikit.css b/test/Fixtures/lessjs-3.13.1/css/3rd-party/uikit.css new file mode 100644 index 00000000..d3be4ea5 --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/css/3rd-party/uikit.css @@ -0,0 +1,8955 @@ +/* ======================================================================== + Component: Base + ========================================================================== */ +/* + * 1. Normalize default `font-family` and set `font-size` to support `rem` units + * 2. Prevents iOS text size adjust after orientation change, without disabling user zoom + * 3. Style + */ +html { + /* 1 */ + font: normal 14px / 20px "Helvetica Neue", Helvetica, Arial, sans-serif; + /* 2 */ + -webkit-text-size-adjust: 100%; + -ms-text-size-adjust: 100%; + /* 3 */ + background: #fff; + color: #444; +} +/* + * Removes default margin. + */ +body { + margin: 0; +} +/* Links + ========================================================================== */ +/* + * Remove the gray background color from active links in IE 10. + */ +a { + background: transparent; +} +/* + * Improve readability of focused elements when they are also in an active/hover state. + */ +a:active, +a:hover { + outline: 0; +} +/* + * Style + */ +a, +.uk-link { + color: #07D; + text-decoration: none; + cursor: pointer; +} +a:hover, +.uk-link:hover { + color: #059; + text-decoration: underline; +} +/* Text-level semantics + ========================================================================== */ +/* + * Address styling not present in IE 8/9/10/11, Safari, and Chrome. + */ +abbr[title] { + border-bottom: 1px dotted; +} +/* + * Address style set to `bolder` in Firefox 4+, Safari, and Chrome. + */ +b, +strong { + font-weight: bold; +} +/* + * 1. Address odd `em`-unit font size rendering in all browsers. + * 2. Consolas has a better baseline in running text compared to `Courier` + */ +:not(pre) > code, +:not(pre) > kbd, +:not(pre) > samp { + /* 1 */ + font-size: 12px; + /* 2 */ + font-family: Consolas, monospace, serif; + /* 3 */ + color: #D05; + white-space: nowrap; +} +/* + * Emphasize + */ +em { + color: #D05; +} +/* + * Insert + */ +ins { + background: #ffa; + color: #444; + text-decoration: none; +} +/* + * Mark + * Note: Addresses styling not present in IE 8/9. + */ +mark { + background: #ffa; + color: #444; +} +/* + * Quote + */ +q { + font-style: italic; +} +/* + * Addresses inconsistent and variable font size in all browsers. + */ +small { + font-size: 80%; +} +/* + * Prevents `sub` and `sup` affecting `line-height` in all browsers. + */ +sub, +sup { + font-size: 75%; + line-height: 0; + position: relative; + vertical-align: baseline; +} +sup { + top: -0.5em; +} +sub { + bottom: -0.25em; +} +/* Embedded content + ========================================================================== */ +/* + * Remove the gap between embedded content and the bottom of their containers. + */ +audio, +canvas, +iframe, +img, +svg, +video { + vertical-align: middle; +} +/* + * Responsiveness + * 1. Sets a maximum width relative to the parent and auto scales the height + * 2. Corrects `max-width` behavior if padding and border are used + */ +audio, +canvas, +img, +svg, +video { + /* 1 */ + max-width: 100%; + height: auto; + /* 2 */ + box-sizing: border-box; +} +/* + * Preserve original dimensions + */ +.uk-img-preserve, +.uk-img-preserve audio, +.uk-img-preserve canvas, +.uk-img-preserve img, +.uk-img-preserve svg, +.uk-img-preserve video { + max-width: none; +} +/* + * Remove border when inside `a` element in IE 8/9/10. + */ +img { + border: 0; +} +/* + * Correct overflow not hidden in IE 9/10/11. + */ +svg:not(:root) { + overflow: hidden; +} +/* Block elements + ========================================================================== */ +/* + * Reset margin + */ +blockquote, +figure { + margin: 0; +} +/* + * Margins + */ +p, +ul, +ol, +dl, +blockquote, +pre, +address, +fieldset, +figure { + margin: 0 0 15px 0; +} +* + p, +* + ul, +* + ol, +* + dl, +* + blockquote, +* + pre, +* + address, +* + fieldset, +* + figure { + margin-top: 15px; +} +/* Headings + ========================================================================== */ +h1, +h2, +h3, +h4, +h5, +h6 { + margin: 0 0 15px 0; + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; + font-weight: normal; + color: #444; + text-transform: none; +} +/* + * Margins + */ +* + h1, +* + h2, +* + h3, +* + h4, +* + h5, +* + h6 { + margin-top: 25px; +} +/* + * Sizes + */ +h1, +.uk-h1 { + font-size: 36px; + line-height: 42px; +} +h2, +.uk-h2 { + font-size: 24px; + line-height: 30px; +} +h3, +.uk-h3 { + font-size: 18px; + line-height: 24px; +} +h4, +.uk-h4 { + font-size: 16px; + line-height: 22px; +} +h5, +.uk-h5 { + font-size: 14px; + line-height: 20px; +} +h6, +.uk-h6 { + font-size: 12px; + line-height: 18px; +} +/* Lists + ========================================================================== */ +ul, +ol { + padding-left: 30px; +} +/* + * Reset margin for nested lists + */ +ul > li > ul, +ul > li > ol, +ol > li > ol, +ol > li > ul { + margin: 0; +} +/* Description lists + ========================================================================== */ +dt { + font-weight: bold; +} +dd { + margin-left: 0; +} +/* Horizontal rules + ========================================================================== */ +/* + * 1. Address differences between Firefox and other browsers. + * 2. Style + */ +hr { + /* 1 */ + box-sizing: content-box; + height: 0; + /* 2 */ + margin: 15px 0; + border: 0; + border-top: 1px solid #ddd; +} +/* Address + ========================================================================== */ +address { + font-style: normal; +} +/* Blockquotes + ========================================================================== */ +blockquote { + padding-left: 15px; + border-left: 5px solid #ddd; + font-size: 16px; + line-height: 22px; + font-style: italic; +} +/* Preformatted text + ========================================================================== */ +/* + * 1. Contain overflow in all browsers. + */ +pre { + padding: 10px; + background: #f5f5f5; + font: 12px / 18px Consolas, monospace, serif; + color: #444; + -moz-tab-size: 4; + tab-size: 4; + /* 1 */ + overflow: auto; +} +/* Selection pseudo-element + ========================================================================== */ +::-moz-selection { + background: #39f; + color: #fff; + text-shadow: none; +} +::selection { + background: #39f; + color: #fff; + text-shadow: none; +} +/* HTML5 elements + ========================================================================== */ +/* + * Correct `block` display not defined for any HTML5 element in IE 8/9. + * Correct `block` display not defined for `details` or `summary` in IE 10/11 and Firefox. + * Correct `block` display not defined for `main` in IE 11. + */ +article, +aside, +details, +figcaption, +figure, +footer, +header, +main, +nav, +section, +summary { + display: block; +} +/* + * Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera. + */ +progress { + vertical-align: baseline; +} +/* + * Prevent displaying `audio` without controls in Chrome, Safari and Opera + */ +audio:not([controls]) { + display: none; +} +/* + * Address `[hidden]` styling not present in IE 8/9/10. + * Hide the `template` element in IE 8/9/10/11, Safari, and Firefox < 22. + */ +[hidden], +template { + display: none; +} +/* Iframe + ========================================================================== */ +iframe { + border: 0; +} +/* Fix viewport for IE10 snap mode + ========================================================================== */ +@media screen and (max-width: 400px) { + @-ms-viewport { + width: device-width; + } +} +/* ======================================================================== + Component: Grid + ========================================================================== */ +/* + * 1. Makes grid more robust so that it can be used with other block elements like lists + */ +.uk-grid { + display: -ms-flexbox; + display: -webkit-flex; + display: flex; + -ms-flex-wrap: wrap; + -webkit-flex-wrap: wrap; + flex-wrap: wrap; + /* 1 */ + margin: 0; + padding: 0; + list-style: none; +} +/* + * DEPRECATED + * Micro clearfix + * Can't use `table` because it creates a 1px gap when it becomes a flex item, only in Webkit + */ +.uk-grid:before, +.uk-grid:after { + content: ""; + display: block; + overflow: hidden; +} +.uk-grid:after { + clear: both; +} +/* + * Grid cell + * 1. Space is allocated solely based on content dimensions + * 2. Makes grid more robust so that it can be used with other block elements + * 3. DEPRECATED Using `float` to support IE9 + */ +.uk-grid > * { + /* 1 */ + -ms-flex: none; + -webkit-flex: none; + flex: none; + /* 2 */ + margin: 0; + /* 3 */ + float: left; +} +/* + * Remove margin from the last-child + */ +.uk-grid > * > :last-child { + margin-bottom: 0; +} +/* Grid gutter + ========================================================================== */ +/* + * Default gutter + */ +/* Horizontal */ +.uk-grid { + margin-left: -25px; +} +.uk-grid > * { + padding-left: 25px; +} +/* Vertical */ +.uk-grid + .uk-grid, +.uk-grid-margin, +.uk-grid > * > .uk-panel + .uk-panel { + margin-top: 25px; +} +/* Large screen and bigger */ +@media (min-width: 1220px) { + /* Horizontal */ + .uk-grid { + margin-left: -35px; + } + .uk-grid > * { + padding-left: 35px; + } + /* Vertical */ + .uk-grid + .uk-grid, + .uk-grid-margin, + .uk-grid > * > .uk-panel + .uk-panel { + margin-top: 35px; + } +} +/* + * Collapse gutter + */ +/* Horizontal */ +.uk-grid-collapse { + margin-left: 0; +} +.uk-grid-collapse > * { + padding-left: 0; +} +/* Vertical */ +.uk-grid-collapse + .uk-grid-collapse, +.uk-grid-collapse > .uk-grid-margin, +.uk-grid-collapse > * > .uk-panel + .uk-panel { + margin-top: 0; +} +/* + * Small gutter + */ +/* Horizontal */ +.uk-grid-small { + margin-left: -10px; +} +.uk-grid-small > * { + padding-left: 10px; +} +/* Vertical */ +.uk-grid-small + .uk-grid-small, +.uk-grid-small > .uk-grid-margin, +.uk-grid-small > * > .uk-panel + .uk-panel { + margin-top: 10px; +} +/* + * Medium gutter + */ +/* Horizontal */ +.uk-grid-medium { + margin-left: -25px; +} +.uk-grid-medium > * { + padding-left: 25px; +} +/* Vertical */ +.uk-grid-medium + .uk-grid-medium, +.uk-grid-medium > .uk-grid-margin, +.uk-grid-medium > * > .uk-panel + .uk-panel { + margin-top: 25px; +} +/* + * Large gutter + */ +/* Large screen and bigger */ +@media (min-width: 960px) { + /* Horizontal */ + .uk-grid-large { + margin-left: -35px; + } + .uk-grid-large > * { + padding-left: 35px; + } + /* Vertical */ + .uk-grid-large + .uk-grid-large, + .uk-grid-large-margin, + .uk-grid-large > * > .uk-panel + .uk-panel { + margin-top: 35px; + } +} +/* Extra Large screens */ +@media (min-width: 1220px) { + /* Horizontal */ + .uk-grid-large { + margin-left: -50px; + } + .uk-grid-large > * { + padding-left: 50px; + } + /* Vertical */ + .uk-grid-large + .uk-grid-large, + .uk-grid-large-margin, + .uk-grid-large > * > .uk-panel + .uk-panel { + margin-top: 50px; + } +} +/* Modifier: `uk-grid-divider` + ========================================================================== */ +/* + * Horizontal divider + * Only works with the default gutter. Does not work with gutter collapse, small or large. + * Does not work with `uk-push-*`, `uk-pull-*` and not if the columns float into the next row. + */ +.uk-grid-divider:not(:empty) { + margin-left: -25px; + margin-right: -25px; +} +.uk-grid-divider > * { + padding-left: 25px; + padding-right: 25px; +} +.uk-grid-divider > [class*='uk-width-1-']:not(.uk-width-1-1):nth-child(n+2), +.uk-grid-divider > [class*='uk-width-2-']:nth-child(n+2), +.uk-grid-divider > [class*='uk-width-3-']:nth-child(n+2), +.uk-grid-divider > [class*='uk-width-4-']:nth-child(n+2), +.uk-grid-divider > [class*='uk-width-5-']:nth-child(n+2), +.uk-grid-divider > [class*='uk-width-6-']:nth-child(n+2), +.uk-grid-divider > [class*='uk-width-7-']:nth-child(n+2), +.uk-grid-divider > [class*='uk-width-8-']:nth-child(n+2), +.uk-grid-divider > [class*='uk-width-9-']:nth-child(n+2) { + border-left: 1px solid #ddd; +} +/* Tablet and bigger */ +@media (min-width: 768px) { + .uk-grid-divider > [class*='uk-width-medium-']:not(.uk-width-medium-1-1):nth-child(n+2) { + border-left: 1px solid #ddd; + } +} +/* Desktop and bigger */ +@media (min-width: 960px) { + .uk-grid-divider > [class*='uk-width-large-']:not(.uk-width-large-1-1):nth-child(n+2) { + border-left: 1px solid #ddd; + } +} +/* Large screen and bigger */ +@media (min-width: 1220px) { + /* + * Large gutter + */ + .uk-grid-divider:not(:empty) { + margin-left: -35px; + margin-right: -35px; + } + .uk-grid-divider > * { + padding-left: 35px; + padding-right: 35px; + } + .uk-grid-divider:empty { + margin-top: 35px; + margin-bottom: 35px; + } +} +/* + * Vertical divider + */ +.uk-grid-divider:empty { + margin-top: 25px; + margin-bottom: 25px; + border-top: 1px solid #ddd; +} +/* Match panels in grids + ========================================================================== */ +/* + * 1. Behave like a block element + */ +.uk-grid-match > * { + display: -ms-flexbox; + display: -webkit-flex; + display: flex; + /* 1 */ + -ms-flex-wrap: wrap; + -webkit-flex-wrap: wrap; + flex-wrap: wrap; +} +.uk-grid-match > * > * { + /* 1 */ + -ms-flex: none; + -webkit-flex: none; + flex: none; + box-sizing: border-box; + width: 100%; +} +/* Even grid cell widths + ========================================================================== */ +[class*='uk-grid-width'] > * { + box-sizing: border-box; + width: 100%; +} +.uk-grid-width-1-2 > * { + width: 50%; +} +.uk-grid-width-1-3 > * { + width: 33.333%; +} +.uk-grid-width-1-4 > * { + width: 25%; +} +.uk-grid-width-1-5 > * { + width: 20%; +} +.uk-grid-width-1-6 > * { + width: 16.666%; +} +.uk-grid-width-1-10 > * { + width: 10%; +} +.uk-grid-width-auto > * { + width: auto; +} +/* Phone landscape and bigger */ +@media (min-width: 480px) { + .uk-grid-width-small-1-1 > * { + width: 100%; + } + .uk-grid-width-small-1-2 > * { + width: 50%; + } + .uk-grid-width-small-1-3 > * { + width: 33.333%; + } + .uk-grid-width-small-1-4 > * { + width: 25%; + } + .uk-grid-width-small-1-5 > * { + width: 20%; + } + .uk-grid-width-small-1-6 > * { + width: 16.666%; + } + .uk-grid-width-small-1-10 > * { + width: 10%; + } +} +/* Tablet and bigger */ +@media (min-width: 768px) { + .uk-grid-width-medium-1-1 > * { + width: 100%; + } + .uk-grid-width-medium-1-2 > * { + width: 50%; + } + .uk-grid-width-medium-1-3 > * { + width: 33.333%; + } + .uk-grid-width-medium-1-4 > * { + width: 25%; + } + .uk-grid-width-medium-1-5 > * { + width: 20%; + } + .uk-grid-width-medium-1-6 > * { + width: 16.666%; + } + .uk-grid-width-medium-1-10 > * { + width: 10%; + } +} +/* Desktop and bigger */ +@media (min-width: 960px) { + .uk-grid-width-large-1-1 > * { + width: 100%; + } + .uk-grid-width-large-1-2 > * { + width: 50%; + } + .uk-grid-width-large-1-3 > * { + width: 33.333%; + } + .uk-grid-width-large-1-4 > * { + width: 25%; + } + .uk-grid-width-large-1-5 > * { + width: 20%; + } + .uk-grid-width-large-1-6 > * { + width: 16.666%; + } + .uk-grid-width-large-1-10 > * { + width: 10%; + } +} +/* Large screen and bigger */ +@media (min-width: 1220px) { + .uk-grid-width-xlarge-1-1 > * { + width: 100%; + } + .uk-grid-width-xlarge-1-2 > * { + width: 50%; + } + .uk-grid-width-xlarge-1-3 > * { + width: 33.333%; + } + .uk-grid-width-xlarge-1-4 > * { + width: 25%; + } + .uk-grid-width-xlarge-1-5 > * { + width: 20%; + } + .uk-grid-width-xlarge-1-6 > * { + width: 16.666%; + } + .uk-grid-width-xlarge-1-10 > * { + width: 10%; + } +} +/* Sub-objects: `uk-width-*` + ========================================================================== */ +[class*='uk-width'] { + box-sizing: border-box; + width: 100%; +} +/* + * Widths + */ +/* Whole */ +.uk-width-1-1 { + width: 100%; +} +/* Halves */ +.uk-width-1-2, +.uk-width-2-4, +.uk-width-3-6, +.uk-width-5-10 { + width: 50%; +} +/* Thirds */ +.uk-width-1-3, +.uk-width-2-6 { + width: 33.333%; +} +.uk-width-2-3, +.uk-width-4-6 { + width: 66.666%; +} +/* Quarters */ +.uk-width-1-4 { + width: 25%; +} +.uk-width-3-4 { + width: 75%; +} +/* Fifths */ +.uk-width-1-5, +.uk-width-2-10 { + width: 20%; +} +.uk-width-2-5, +.uk-width-4-10 { + width: 40%; +} +.uk-width-3-5, +.uk-width-6-10 { + width: 60%; +} +.uk-width-4-5, +.uk-width-8-10 { + width: 80%; +} +/* Sixths */ +.uk-width-1-6 { + width: 16.666%; +} +.uk-width-5-6 { + width: 83.333%; +} +/* Tenths */ +.uk-width-1-10 { + width: 10%; +} +.uk-width-3-10 { + width: 30%; +} +.uk-width-7-10 { + width: 70%; +} +.uk-width-9-10 { + width: 90%; +} +/* Phone landscape and bigger */ +@media (min-width: 480px) { + /* Whole */ + .uk-width-small-1-1 { + width: 100%; + } + /* Halves */ + .uk-width-small-1-2, + .uk-width-small-2-4, + .uk-width-small-3-6, + .uk-width-small-5-10 { + width: 50%; + } + /* Thirds */ + .uk-width-small-1-3, + .uk-width-small-2-6 { + width: 33.333%; + } + .uk-width-small-2-3, + .uk-width-small-4-6 { + width: 66.666%; + } + /* Quarters */ + .uk-width-small-1-4 { + width: 25%; + } + .uk-width-small-3-4 { + width: 75%; + } + /* Fifths */ + .uk-width-small-1-5, + .uk-width-small-2-10 { + width: 20%; + } + .uk-width-small-2-5, + .uk-width-small-4-10 { + width: 40%; + } + .uk-width-small-3-5, + .uk-width-small-6-10 { + width: 60%; + } + .uk-width-small-4-5, + .uk-width-small-8-10 { + width: 80%; + } + /* Sixths */ + .uk-width-small-1-6 { + width: 16.666%; + } + .uk-width-small-5-6 { + width: 83.333%; + } + /* Tenths */ + .uk-width-small-1-10 { + width: 10%; + } + .uk-width-small-3-10 { + width: 30%; + } + .uk-width-small-7-10 { + width: 70%; + } + .uk-width-small-9-10 { + width: 90%; + } +} +/* Tablet and bigger */ +@media (min-width: 768px) { + /* Whole */ + .uk-width-medium-1-1 { + width: 100%; + } + /* Halves */ + .uk-width-medium-1-2, + .uk-width-medium-2-4, + .uk-width-medium-3-6, + .uk-width-medium-5-10 { + width: 50%; + } + /* Thirds */ + .uk-width-medium-1-3, + .uk-width-medium-2-6 { + width: 33.333%; + } + .uk-width-medium-2-3, + .uk-width-medium-4-6 { + width: 66.666%; + } + /* Quarters */ + .uk-width-medium-1-4 { + width: 25%; + } + .uk-width-medium-3-4 { + width: 75%; + } + /* Fifths */ + .uk-width-medium-1-5, + .uk-width-medium-2-10 { + width: 20%; + } + .uk-width-medium-2-5, + .uk-width-medium-4-10 { + width: 40%; + } + .uk-width-medium-3-5, + .uk-width-medium-6-10 { + width: 60%; + } + .uk-width-medium-4-5, + .uk-width-medium-8-10 { + width: 80%; + } + /* Sixths */ + .uk-width-medium-1-6 { + width: 16.666%; + } + .uk-width-medium-5-6 { + width: 83.333%; + } + /* Tenths */ + .uk-width-medium-1-10 { + width: 10%; + } + .uk-width-medium-3-10 { + width: 30%; + } + .uk-width-medium-7-10 { + width: 70%; + } + .uk-width-medium-9-10 { + width: 90%; + } +} +/* Desktop and bigger */ +@media (min-width: 960px) { + /* Whole */ + .uk-width-large-1-1 { + width: 100%; + } + /* Halves */ + .uk-width-large-1-2, + .uk-width-large-2-4, + .uk-width-large-3-6, + .uk-width-large-5-10 { + width: 50%; + } + /* Thirds */ + .uk-width-large-1-3, + .uk-width-large-2-6 { + width: 33.333%; + } + .uk-width-large-2-3, + .uk-width-large-4-6 { + width: 66.666%; + } + /* Quarters */ + .uk-width-large-1-4 { + width: 25%; + } + .uk-width-large-3-4 { + width: 75%; + } + /* Fifths */ + .uk-width-large-1-5, + .uk-width-large-2-10 { + width: 20%; + } + .uk-width-large-2-5, + .uk-width-large-4-10 { + width: 40%; + } + .uk-width-large-3-5, + .uk-width-large-6-10 { + width: 60%; + } + .uk-width-large-4-5, + .uk-width-large-8-10 { + width: 80%; + } + /* Sixths */ + .uk-width-large-1-6 { + width: 16.666%; + } + .uk-width-large-5-6 { + width: 83.333%; + } + /* Tenths */ + .uk-width-large-1-10 { + width: 10%; + } + .uk-width-large-3-10 { + width: 30%; + } + .uk-width-large-7-10 { + width: 70%; + } + .uk-width-large-9-10 { + width: 90%; + } +} +/* Large screen and bigger */ +@media (min-width: 1220px) { + /* Whole */ + .uk-width-xlarge-1-1 { + width: 100%; + } + /* Halves */ + .uk-width-xlarge-1-2, + .uk-width-xlarge-2-4, + .uk-width-xlarge-3-6, + .uk-width-xlarge-5-10 { + width: 50%; + } + /* Thirds */ + .uk-width-xlarge-1-3, + .uk-width-xlarge-2-6 { + width: 33.333%; + } + .uk-width-xlarge-2-3, + .uk-width-xlarge-4-6 { + width: 66.666%; + } + /* Quarters */ + .uk-width-xlarge-1-4 { + width: 25%; + } + .uk-width-xlarge-3-4 { + width: 75%; + } + /* Fifths */ + .uk-width-xlarge-1-5, + .uk-width-xlarge-2-10 { + width: 20%; + } + .uk-width-xlarge-2-5, + .uk-width-xlarge-4-10 { + width: 40%; + } + .uk-width-xlarge-3-5, + .uk-width-xlarge-6-10 { + width: 60%; + } + .uk-width-xlarge-4-5, + .uk-width-xlarge-8-10 { + width: 80%; + } + /* Sixths */ + .uk-width-xlarge-1-6 { + width: 16.666%; + } + .uk-width-xlarge-5-6 { + width: 83.333%; + } + /* Tenths */ + .uk-width-xlarge-1-10 { + width: 10%; + } + .uk-width-xlarge-3-10 { + width: 30%; + } + .uk-width-xlarge-7-10 { + width: 70%; + } + .uk-width-xlarge-9-10 { + width: 90%; + } +} +/* Sub-object: `uk-push-*` and `uk-pull-*` + ========================================================================== */ +/* + * Source ordering + * Works only with `uk-width-medium-*` + */ +/* Tablet and bigger */ +@media (min-width: 768px) { + [class*='uk-push-'], + [class*='uk-pull-'] { + position: relative; + } + /* + * Push + */ + /* Halves */ + .uk-push-1-2, + .uk-push-2-4, + .uk-push-3-6, + .uk-push-5-10 { + left: 50%; + } + /* Thirds */ + .uk-push-1-3, + .uk-push-2-6 { + left: 33.333%; + } + .uk-push-2-3, + .uk-push-4-6 { + left: 66.666%; + } + /* Quarters */ + .uk-push-1-4 { + left: 25%; + } + .uk-push-3-4 { + left: 75%; + } + /* Fifths */ + .uk-push-1-5, + .uk-push-2-10 { + left: 20%; + } + .uk-push-2-5, + .uk-push-4-10 { + left: 40%; + } + .uk-push-3-5, + .uk-push-6-10 { + left: 60%; + } + .uk-push-4-5, + .uk-push-8-10 { + left: 80%; + } + /* Sixths */ + .uk-push-1-6 { + left: 16.666%; + } + .uk-push-5-6 { + left: 83.333%; + } + /* Tenths */ + .uk-push-1-10 { + left: 10%; + } + .uk-push-3-10 { + left: 30%; + } + .uk-push-7-10 { + left: 70%; + } + .uk-push-9-10 { + left: 90%; + } + /* + * Pull + */ + /* Halves */ + .uk-pull-1-2, + .uk-pull-2-4, + .uk-pull-3-6, + .uk-pull-5-10 { + left: -50%; + } + /* Thirds */ + .uk-pull-1-3, + .uk-pull-2-6 { + left: -33.333%; + } + .uk-pull-2-3, + .uk-pull-4-6 { + left: -66.666%; + } + /* Quarters */ + .uk-pull-1-4 { + left: -25%; + } + .uk-pull-3-4 { + left: -75%; + } + /* Fifths */ + .uk-pull-1-5, + .uk-pull-2-10 { + left: -20%; + } + .uk-pull-2-5, + .uk-pull-4-10 { + left: -40%; + } + .uk-pull-3-5, + .uk-pull-6-10 { + left: -60%; + } + .uk-pull-4-5, + .uk-pull-8-10 { + left: -80%; + } + /* Sixths */ + .uk-pull-1-6 { + left: -16.666%; + } + .uk-pull-5-6 { + left: -83.333%; + } + /* Tenths */ + .uk-pull-1-10 { + left: -10%; + } + .uk-pull-3-10 { + left: -30%; + } + .uk-pull-7-10 { + left: -70%; + } + .uk-pull-9-10 { + left: -90%; + } +} +/* ======================================================================== + Component: Panel + ========================================================================== */ +/* + * 1. Needed for `a` elements + * 2. Create position context for badges + */ +.uk-panel { + /* 1 */ + display: block; + /* 2 */ + position: relative; +} +/* + * Allow panels to be anchors + */ +.uk-panel, +.uk-panel:hover { + text-decoration: none; +} +/* + * Micro clearfix to make panels more robust + */ +.uk-panel:before, +.uk-panel:after { + content: ""; + display: table; +} +.uk-panel:after { + clear: both; +} +/* + * Remove margin from the last-child if not `uk-widget-title` + */ +.uk-panel > :not(.uk-panel-title):last-child { + margin-bottom: 0; +} +/* Sub-object: `uk-panel-title` + ========================================================================== */ +.uk-panel-title { + margin-top: 0; + margin-bottom: 15px; + font-size: 18px; + line-height: 24px; + font-weight: normal; + text-transform: none; + color: #444; +} +/* Sub-object: `uk-panel-badge` + ========================================================================== */ +.uk-panel-badge { + position: absolute; + top: 0; + right: 0; + z-index: 1; +} +/* Sub-object: `uk-panel-teaser` + ========================================================================== */ +.uk-panel-teaser { + margin-bottom: 15px; +} +/* Sub-object: `uk-panel-body` + ========================================================================== */ +.uk-panel-body { + padding: 15px; +} +/* Modifier: `uk-panel-box` + ========================================================================== */ +.uk-panel-box { + padding: 15px; + background: #f5f5f5; + color: #444; +} +.uk-panel-box-hover:hover { + color: #444; +} +.uk-panel-box .uk-panel-title { + color: #444; +} +.uk-panel-box .uk-panel-badge { + top: 10px; + right: 10px; +} +.uk-panel-box > .uk-panel-teaser { + margin-top: -15px; + margin-left: -15px; + margin-right: -15px; +} +/* + * Nav in panel + */ +.uk-panel-box > .uk-nav-side { + margin: 0 -15px; +} +/* + * Sub-modifier: `uk-panel-box-primary` + */ +.uk-panel-box-primary { + background-color: #ebf7fd; + color: #2d7091; +} +.uk-panel-box-primary-hover:hover { + color: #2d7091; +} +.uk-panel-box-primary .uk-panel-title { + color: #2d7091; +} +/* + * Sub-modifier: `uk-panel-box-secondary` + */ +.uk-panel-box-secondary { + background-color: #eee; + color: #444; +} +.uk-panel-box-secondary-hover:hover { + color: #444; +} +.uk-panel-box-secondary .uk-panel-title { + color: #444; +} +/* Modifier: `uk-panel-hover` + ========================================================================== */ +.uk-panel-hover { + padding: 15px; + color: #444; +} +.uk-panel-hover:hover { + background: #f5f5f5; + color: #444; +} +.uk-panel-hover .uk-panel-badge { + top: 10px; + right: 10px; +} +.uk-panel-hover > .uk-panel-teaser { + margin-top: -15px; + margin-left: -15px; + margin-right: -15px; +} +/* Modifier: `uk-panel-header` + ========================================================================== */ +.uk-panel-header .uk-panel-title { + padding-bottom: 10px; + border-bottom: 1px solid #ddd; + color: #444; +} +/* Modifier: `uk-panel-space` + ========================================================================== */ +.uk-panel-space { + padding: 30px; +} +.uk-panel-space .uk-panel-badge { + top: 30px; + right: 30px; +} +/* Modifier: `uk-panel-divider` + ========================================================================== */ +.uk-panel + .uk-panel-divider { + margin-top: 50px !important; +} +.uk-panel + .uk-panel-divider:before { + content: ""; + display: block; + position: absolute; + top: -25px; + left: 0; + right: 0; + border-top: 1px solid #ddd; +} +/* Large screen and bigger */ +@media (min-width: 1220px) { + .uk-panel + .uk-panel-divider { + margin-top: 70px !important; + } + .uk-panel + .uk-panel-divider:before { + top: -35px; + } +} +/* ======================================================================== + Component: Block + ========================================================================== */ +.uk-block { + position: relative; + box-sizing: border-box; + padding-top: 20px; + padding-bottom: 20px; +} +/* Phone landscape and bigger */ +@media (min-width: 768px) { + .uk-block { + padding-top: 50px; + padding-bottom: 50px; + } +} +/* + * Micro clearfix to make blocks more robust + */ +.uk-block:before, +.uk-block:after { + content: ""; + display: table; +} +.uk-block:after { + clear: both; +} +/* + * Remove margin from the last-child + */ +.uk-block > :last-child { + margin-bottom: 0; +} +/* Padding Modifier + ========================================================================== */ +/* + * Large padding + */ +.uk-block-large { + padding-top: 20px; + padding-bottom: 20px; +} +/* Tablets and bigger */ +@media (min-width: 768px) { + .uk-block-large { + padding-top: 50px; + padding-bottom: 50px; + } +} +/* Desktop and bigger */ +@media (min-width: 960px) { + .uk-block-large { + padding-top: 100px; + padding-bottom: 100px; + } +} +/* Color Modifier + ========================================================================== */ +/* + * Default + */ +.uk-block-default { + background: #fff; +} +/* + * Muted + */ +.uk-block-muted { + background: #f9f9f9; +} +/* + * Primary + */ +.uk-block-primary { + background: #00a8e6; +} +/* + * Secondary + */ +.uk-block-secondary { + background: #222; +} +/* ======================================================================== + Component: Article + ========================================================================== */ +/* + * Micro clearfix to make articles more robust + */ +.uk-article:before, +.uk-article:after { + content: ""; + display: table; +} +.uk-article:after { + clear: both; +} +/* + * Remove margin from the last-child + */ +.uk-article > :last-child { + margin-bottom: 0; +} +/* + * Vertical gutter for articles + */ +.uk-article + .uk-article { + margin-top: 25px; +} +/* Sub-object `uk-article-title` + ========================================================================== */ +.uk-article-title { + font-size: 36px; + line-height: 42px; + font-weight: normal; + text-transform: none; +} +.uk-article-title a { + color: inherit; + text-decoration: none; +} +/* Sub-object `uk-article-meta` + ========================================================================== */ +.uk-article-meta { + font-size: 12px; + line-height: 18px; + color: #999; +} +/* Sub-object `uk-article-lead` + ========================================================================== */ +.uk-article-lead { + color: #444; + font-size: 18px; + line-height: 24px; + font-weight: normal; +} +/* Sub-object `uk-article-divider` + ========================================================================== */ +.uk-article-divider { + margin-bottom: 25px; + border-color: #ddd; +} +* + .uk-article-divider { + margin-top: 25px; +} +/* ======================================================================== + Component: Comment + ========================================================================== */ +/* Sub-object `uk-comment-header` + ========================================================================== */ +.uk-comment-header { + margin-bottom: 15px; +} +/* + * Micro clearfix + */ +.uk-comment-header:before, +.uk-comment-header:after { + content: ""; + display: table; +} +.uk-comment-header:after { + clear: both; +} +/* Sub-object `uk-comment-avatar` + ========================================================================== */ +.uk-comment-avatar { + margin-right: 15px; + float: left; +} +/* Sub-object `uk-comment-title` + ========================================================================== */ +.uk-comment-title { + margin: 5px 0 0 0; + font-size: 16px; + line-height: 22px; +} +/* Sub-object `uk-comment-meta` + ========================================================================== */ +.uk-comment-meta { + margin: 2px 0 0 0; + font-size: 11px; + line-height: 16px; + color: #999; +} +/* Sub-object `uk-comment-body` + ========================================================================== */ +/* + * Remove margin from the last-child + */ +.uk-comment-body > :last-child { + margin-bottom: 0; +} +/* Sub-object `uk-comment-list` + ========================================================================== */ +.uk-comment-list { + padding: 0; + list-style: none; +} +.uk-comment-list .uk-comment + ul { + margin: 15px 0 0 0; + list-style: none; +} +.uk-comment-list > li:nth-child(n+2), +.uk-comment-list .uk-comment + ul > li:nth-child(n+2) { + margin-top: 15px; +} +/* Tablet and bigger */ +@media (min-width: 768px) { + .uk-comment-list .uk-comment + ul { + padding-left: 100px; + } +} +/* Modifier `uk-comment-primary` + ========================================================================== */ +/* ======================================================================== + Component: Cover + ========================================================================== */ +/* + * Background image always covers and centers its element + */ +.uk-cover-background { + background-position: 50% 50%; + background-size: cover; + background-repeat: no-repeat; +} +/* + * Emulates image cover, works with video and image elements + * 1. Parent container which clips resized object + * 2. Resizes the object to always covers its container + * 3. Reset the responsive image CSS + * 4. Center object + */ +/* 1 */ +.uk-cover { + overflow: hidden; +} +.uk-cover-object { + /* 2 */ + width: auto; + height: auto; + min-width: 100%; + min-height: 100%; + /* 3 */ + max-width: none; + /* 4 */ + position: relative; + left: 50%; + top: 50%; + -webkit-transform: translate(-50%, -50%); + transform: translate(-50%, -50%); +} +/* + * To center iframes use `data-uk-cover` JavaScript + */ +[data-uk-cover] { + position: relative; + left: 50%; + top: 50%; + -webkit-transform: translate(-50%, -50%); + transform: translate(-50%, -50%); +} +/* ======================================================================== + Component: Nav + ========================================================================== */ +.uk-nav, +.uk-nav ul { + margin: 0; + padding: 0; + list-style: none; +} +/* + * Items + */ +.uk-nav li > a { + display: block; + text-decoration: none; +} +.uk-nav > li > a { + padding: 5px 15px; +} +/* + * Nested items + */ +.uk-nav ul { + padding-left: 15px; +} +.uk-nav ul a { + padding: 2px 0; +} +/* + * Item subtitle + */ +.uk-nav li > a > div { + font-size: 12px; + line-height: 18px; +} +/* Sub-object: `uk-nav-header` + ========================================================================== */ +.uk-nav-header { + padding: 5px 15px; + text-transform: uppercase; + font-weight: bold; + font-size: 12px; +} +.uk-nav-header:not(:first-child) { + margin-top: 15px; +} +/* Sub-object: `uk-nav-divider` + ========================================================================== */ +.uk-nav-divider { + margin: 9px 15px; +} +/* Sub-object: `uk-nav-sub` + ========================================================================== */ +/* + * `ul` needed for higher specificity to override padding + */ +ul.uk-nav-sub { + padding: 5px 0 5px 15px; +} +/* Modifier: `uk-nav-parent-icon` + ========================================================================== */ +.uk-nav-parent-icon > .uk-parent > a:after { + content: "\f104"; + width: 20px; + margin-right: -10px; + float: right; + font-family: FontAwesome; + text-align: center; +} +.uk-nav-parent-icon > .uk-parent.uk-open > a:after { + content: "\f107"; +} +/* Modifier `uk-nav-side` + ========================================================================== */ +/* + * Items + */ +.uk-nav-side > li > a { + color: #444; +} +/* + * Hover + * 1. Apply hover style also to focus state + * 2. Remove default focus style + */ +.uk-nav-side > li > a:hover, +.uk-nav-side > li > a:focus { + background: rgba(0, 0, 0, 0.05); + color: #444; + /* 2 */ + outline: none; +} +/* Active */ +.uk-nav-side > li.uk-active > a { + background: #00a8e6; + color: #fff; +} +/* + * Sub-object: `uk-nav-header` + */ +.uk-nav-side .uk-nav-header { + color: #444; +} +/* + * Sub-object: `uk-nav-divider` + */ +.uk-nav-side .uk-nav-divider { + border-top: 1px solid #ddd; +} +/* + * Nested items + */ +.uk-nav-side ul a { + color: #07D; +} +.uk-nav-side ul a:hover { + color: #059; +} +/* Modifier `uk-nav-dropdown` + ========================================================================== */ +/* + * Items + */ +.uk-nav-dropdown > li > a { + color: #444; +} +/* + * Hover + * 1. Apply hover style also to focus state + * 2. Remove default focus style + */ +.uk-nav-dropdown > li > a:hover, +.uk-nav-dropdown > li > a:focus { + background: #00a8e6; + color: #fff; + /* 2 */ + outline: none; +} +/* + * Sub-object: `uk-nav-header` + */ +.uk-nav-dropdown .uk-nav-header { + color: #999; +} +/* + * Sub-object: `uk-nav-divider` + */ +.uk-nav-dropdown .uk-nav-divider { + border-top: 1px solid #ddd; +} +/* + * Nested items + */ +.uk-nav-dropdown ul a { + color: #07D; +} +.uk-nav-dropdown ul a:hover { + color: #059; +} +/* Modifier `uk-nav-navbar` + ========================================================================== */ +/* + * Items + */ +.uk-nav-navbar > li > a { + color: #444; +} +/* + * Hover + * 1. Apply hover style also to focus state + * 2. Remove default focus style + */ +.uk-nav-navbar > li > a:hover, +.uk-nav-navbar > li > a:focus { + background: #00a8e6; + color: #fff; + /* 2 */ + outline: none; +} +/* + * Sub-object: `uk-nav-header` + */ +.uk-nav-navbar .uk-nav-header { + color: #999; +} +/* + * Sub-object: `uk-nav-divider` + */ +.uk-nav-navbar .uk-nav-divider { + border-top: 1px solid #ddd; +} +/* + * Nested items + */ +.uk-nav-navbar ul a { + color: #07D; +} +.uk-nav-navbar ul a:hover { + color: #059; +} +/* Modifier `uk-nav-offcanvas` + ========================================================================== */ +/* + * Items + */ +.uk-nav-offcanvas > li > a { + color: #ccc; + padding: 10px 15px; +} +/* + * Hover + * No hover on touch devices because it behaves buggy in fixed offcanvas + * 1. Apply hover style also to focus state + * 2. Remove default focus style + */ +.uk-nav-offcanvas > .uk-open > a, +html:not(.uk-touch) .uk-nav-offcanvas > li > a:hover, +html:not(.uk-touch) .uk-nav-offcanvas > li > a:focus { + background: #404040; + color: #fff; + /* 2 */ + outline: none; +} +/* + * Active + * `html .uk-nav` needed for higher specificity to override hover + */ +html .uk-nav.uk-nav-offcanvas > li.uk-active > a { + background: #1a1a1a; + color: #fff; +} +/* + * Sub-object: `uk-nav-header` + */ +.uk-nav-offcanvas .uk-nav-header { + color: #777; +} +/* + * Sub-object: `uk-nav-divider` + */ +.uk-nav-offcanvas .uk-nav-divider { + border-top: 1px solid #1a1a1a; +} +/* + * Nested items + * No hover on touch devices because it behaves buggy in fixed offcanvas + */ +.uk-nav-offcanvas ul a { + color: #ccc; +} +html:not(.uk-touch) .uk-nav-offcanvas ul a:hover { + color: #fff; +} +/* ======================================================================== + Component: Navbar + ========================================================================== */ +.uk-navbar { + background: #eee; + color: #444; +} +/* + * Micro clearfix + */ +.uk-navbar:before, +.uk-navbar:after { + content: ""; + display: table; +} +.uk-navbar:after { + clear: both; +} +/* Sub-object: `uk-navbar-nav` + ========================================================================== */ +.uk-navbar-nav { + margin: 0; + padding: 0; + list-style: none; + float: left; +} +/* + * 1. Create position context for dropdowns + */ +.uk-navbar-nav > li { + float: left; + /* 1 */ + position: relative; +} +/* + * 1. Dimensions + * 2. Style + */ +.uk-navbar-nav > li > a { + display: block; + box-sizing: border-box; + text-decoration: none; + /* 1 */ + height: 40px; + padding: 0 15px; + line-height: 40px; + /* 2 */ + color: #444; + font-size: 14px; + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; + font-weight: normal; +} +/* Appear not as link */ +.uk-navbar-nav > li > a[href='#'] { + cursor: text; +} +/* + * Hover + * 1. Apply hover style also to focus state + * 2. Also apply if dropdown is opened + * 3. Remove default focus style + */ +.uk-navbar-nav > li:hover > a, +.uk-navbar-nav > li > a:focus, +.uk-navbar-nav > li.uk-open > a { + background-color: #f5f5f5; + color: #444; + /* 3 */ + outline: none; +} +/* OnClick */ +.uk-navbar-nav > li > a:active { + background-color: #ddd; + color: #444; +} +/* Active */ +.uk-navbar-nav > li.uk-active > a { + background-color: #f5f5f5; + color: #444; +} +/* Sub-objects: `uk-navbar-nav-subtitle` + ========================================================================== */ +.uk-navbar-nav .uk-navbar-nav-subtitle { + line-height: 28px; +} +.uk-navbar-nav-subtitle > div { + margin-top: -6px; + font-size: 10px; + line-height: 12px; +} +/* Sub-objects: `uk-navbar-content`, `uk-navbar-brand`, `uk-navbar-toggle` + ========================================================================== */ +/* + * Imitate navbar items + */ +.uk-navbar-content, +.uk-navbar-brand, +.uk-navbar-toggle { + box-sizing: border-box; + display: block; + height: 40px; + padding: 0 15px; + float: left; +} +/* + * Helper to center all child elements vertically + */ +.uk-navbar-content:before, +.uk-navbar-brand:before, +.uk-navbar-toggle:before { + content: ''; + display: inline-block; + height: 100%; + vertical-align: middle; +} +/* Sub-objects: `uk-navbar-content` + ========================================================================== */ +/* + * Better sibling spacing + */ +.uk-navbar-content + .uk-navbar-content:not(.uk-navbar-center) { + padding-left: 0; +} +/* + * Link colors + */ +.uk-navbar-content > a:not([class]) { + color: #07D; +} +.uk-navbar-content > a:not([class]):hover { + color: #059; +} +/* Sub-objects: `uk-navbar-brand` + ========================================================================== */ +.uk-navbar-brand { + font-size: 18px; + color: #444; + text-decoration: none; +} +/* + * 1. Apply hover style also to focus state + * 2. Remove default focus style + */ +.uk-navbar-brand:hover, +.uk-navbar-brand:focus { + color: #444; + text-decoration: none; + /* 2 */ + outline: none; +} +/* Sub-object: `uk-navbar-toggle` + ========================================================================== */ +.uk-navbar-toggle { + font-size: 18px; + color: #444; + text-decoration: none; +} +/* + * 1. Apply hover style also to focus state + * 2. Remove default focus style + */ +.uk-navbar-toggle:hover, +.uk-navbar-toggle:focus { + color: #444; + text-decoration: none; + /* 2 */ + outline: none; +} +/* + * 1. Center icon vertically + */ +.uk-navbar-toggle:after { + content: "\f0c9"; + font-family: FontAwesome; + /* 1 */ + vertical-align: middle; +} +.uk-navbar-toggle-alt:after { + content: "\f002"; +} +/* Sub-object: `uk-navbar-center` + ========================================================================== */ +/* + * The element with this class needs to be last child in the navbar + * 1. This hack is needed because other float elements shift centered text + */ +.uk-navbar-center { + float: none; + text-align: center; + /* 1 */ + max-width: 50%; + margin-left: auto; + margin-right: auto; +} +/* Sub-object: `uk-navbar-flip` + ========================================================================== */ +.uk-navbar-flip { + float: right; +} +/* ======================================================================== + Component: Subnav + ========================================================================== */ +/* + * 1. Gutter + * 2. Remove default list style + */ +.uk-subnav { + display: -ms-flexbox; + display: -webkit-flex; + display: flex; + -ms-flex-wrap: wrap; + -webkit-flex-wrap: wrap; + flex-wrap: wrap; + /* 1 */ + margin-left: -10px; + margin-top: -10px; + /* 2 */ + padding: 0; + list-style: none; +} +/* + * 1. Space is allocated solely based on content dimensions + * 2. Horizontal gutter is using `padding` so `uk-width-*` classes can be applied + * 3. Create position context for dropdowns + */ +.uk-subnav > * { + /* 1 */ + -ms-flex: none; + -webkit-flex: none; + flex: none; + /* 2 */ + padding-left: 10px; + margin-top: 10px; + /* 3 */ + position: relative; +} +/* + * DEPRECATED IE9 Support + */ +.uk-subnav:before, +.uk-subnav:after { + content: ""; + display: block; + overflow: hidden; +} +.uk-subnav:after { + clear: both; +} +.uk-subnav > * { + float: left; +} +/* Items + ========================================================================== */ +.uk-subnav > * > * { + display: inline-block; + color: #444; +} +/* + * Hover + * 1. Apply hover style also to focus state + */ +.uk-subnav > * > :hover, +.uk-subnav > * > :focus { + color: #07D; + text-decoration: none; +} +/* + * Active + */ +.uk-subnav > .uk-active > * { + color: #07D; +} +/* Modifier: 'subnav-line' + ========================================================================== */ +.uk-subnav-line > :before { + content: ""; + display: inline-block; + height: 10px; + vertical-align: middle; +} +.uk-subnav-line > :nth-child(n+2):before { + margin-right: 10px; + border-left: 1px solid #ddd; +} +/* Modifier: 'subnav-pill' + ========================================================================== */ +.uk-subnav-pill > * > * { + padding: 3px 9px; +} +/* + * Hover + * 1. Apply hover style also to focus state + * 2. Remove default focus style + */ +.uk-subnav-pill > * > :hover, +.uk-subnav-pill > * > :focus { + background: #eee; + color: #444; + text-decoration: none; + /* 2 */ + outline: none; +} +/* + * Active + * `li` needed for higher specificity to override hover + */ +.uk-subnav-pill > .uk-active > * { + background: #00a8e6; + color: #fff; +} +/* Disabled state + ========================================================================== */ +.uk-subnav > .uk-disabled > * { + background: none; + color: #999; + text-decoration: none; + cursor: text; +} +/* ======================================================================== + Component: Breadcrumb + ========================================================================== */ +/* + * 1. Remove default list style + * 2. Remove whitespace between child elements when using `inline-block` + */ +.uk-breadcrumb { + /* 1 */ + padding: 0; + list-style: none; + /* 2 */ + font-size: 0.001px; +} +/* Items + ========================================================================== */ +/* + * Reset whitespace hack + */ +.uk-breadcrumb > li { + font-size: 1rem; + vertical-align: top; +} +.uk-breadcrumb > li, +.uk-breadcrumb > li > a, +.uk-breadcrumb > li > span { + display: inline-block; +} +.uk-breadcrumb > li:nth-child(n+2):before { + content: "/"; + display: inline-block; + margin: 0 8px; +} +/* + * Disabled + */ +.uk-breadcrumb > li:not(.uk-active) > span { + color: #999; +} +/* ======================================================================== + Component: Pagination + ========================================================================== */ +/* + * 1. Remove default list style + * 2. Center pagination by default + * 3. Remove whitespace between child elements when using `inline-block` + */ +.uk-pagination { + /* 1 */ + padding: 0; + list-style: none; + /* 2 */ + text-align: center; + /* 3 */ + font-size: 0.001px; +} +/* + * Micro clearfix + * Needed if `uk-pagination-previous` or `uk-pagination-next` sub-objects are used + */ +.uk-pagination:before, +.uk-pagination:after { + content: ""; + display: table; +} +.uk-pagination:after { + clear: both; +} +/* Items + ========================================================================== */ +/* + * 1. Reset whitespace hack + * 2. Remove the gap at the bottom of it container + */ +.uk-pagination > li { + display: inline-block; + /* 1 */ + font-size: 1rem; + /* 2 */ + vertical-align: top; +} +.uk-pagination > li:nth-child(n+2) { + margin-left: 5px; +} +/* + * 1. Makes pagination more robust against different box-sizing use + * 2. Reset text-align to center if alignment modifier is used + */ +.uk-pagination > li > a, +.uk-pagination > li > span { + display: inline-block; + min-width: 16px; + padding: 3px 5px; + line-height: 20px; + text-decoration: none; + /* 1 */ + box-sizing: content-box; + /* 2 */ + text-align: center; +} +/* + * Links + */ +.uk-pagination > li > a { + background: #eee; + color: #444; +} +/* + * Hover + * 1. Apply hover style also to focus state + * 2. Remove default focus style + */ +.uk-pagination > li > a:hover, +.uk-pagination > li > a:focus { + background-color: #f5f5f5; + color: #444; + /* 2 */ + outline: none; +} +/* OnClick */ +.uk-pagination > li > a:active { + background-color: #ddd; + color: #444; +} +/* + * Active + */ +.uk-pagination > .uk-active > span { + background: #00a8e6; + color: #fff; +} +/* + * Disabled + */ +.uk-pagination > .uk-disabled > span { + background-color: #f5f5f5; + color: #999; +} +/* Previous and next navigation + ========================================================================== */ +.uk-pagination-previous { + float: left; +} +.uk-pagination-next { + float: right; +} +/* Alignment modifiers + ========================================================================== */ +.uk-pagination-left { + text-align: left; +} +.uk-pagination-right { + text-align: right; +} +/* ======================================================================== + Component: Tab + ========================================================================== */ +.uk-tab { + margin: 0; + padding: 0; + list-style: none; + border-bottom: 1px solid #ddd; +} +/* + * Micro clearfix on the deepest container + */ +.uk-tab:before, +.uk-tab:after { + content: ""; + display: table; +} +.uk-tab:after { + clear: both; +} +/* + * Items + * 1. Create position context for dropdowns + */ +.uk-tab > li { + margin-bottom: -1px; + float: left; + /* 1 */ + position: relative; +} +.uk-tab > li > a { + display: block; + padding: 8px 12px 8px 12px; + border: 1px solid transparent; + border-bottom-width: 0; + color: #07D; + text-decoration: none; +} +.uk-tab > li:nth-child(n+2) > a { + margin-left: 5px; +} +/* + * Hover + * 1. Apply hover style also to focus state + * 2. Also apply if dropdown is opened + * 3. Remove default focus style + */ +.uk-tab > li > a:hover, +.uk-tab > li > a:focus, +.uk-tab > li.uk-open > a { + border-color: #f5f5f5; + background: #f5f5f5; + color: #059; + /* 2 */ + outline: none; +} +.uk-tab > li:not(.uk-active) > a:hover, +.uk-tab > li:not(.uk-active) > a:focus, +.uk-tab > li.uk-open:not(.uk-active) > a { + margin-bottom: 1px; + padding-bottom: 7px; +} +/* Active */ +.uk-tab > li.uk-active > a { + border-color: #ddd; + border-bottom-color: transparent; + background: #fff; + color: #444; +} +/* Disabled */ +.uk-tab > li.uk-disabled > a { + color: #999; + cursor: text; +} +.uk-tab > li.uk-disabled > a:hover, +.uk-tab > li.uk-disabled > a:focus, +.uk-tab > li.uk-disabled.uk-active > a { + background: none; + border-color: transparent; +} +/* Modifier: 'tab-flip' + ========================================================================== */ +.uk-tab-flip > li { + float: right; +} +.uk-tab-flip > li:nth-child(n+2) > a { + margin-left: 0; + margin-right: 5px; +} +/* Modifier: 'tab-responsive' + ========================================================================== */ +.uk-tab > li.uk-tab-responsive > a { + margin-left: 0; + margin-right: 0; +} +/* + * Icon + */ +.uk-tab-responsive > a:before { + content: "\f0c9\00a0"; + font-family: FontAwesome; +} +/* Modifier: 'tab-center' + ========================================================================== */ +.uk-tab-center { + border-bottom: 1px solid #ddd; +} +.uk-tab-center-bottom { + border-bottom: none; + border-top: 1px solid #ddd; +} +.uk-tab-center:before, +.uk-tab-center:after { + content: ""; + display: table; +} +.uk-tab-center:after { + clear: both; +} +/* + * 1. Using `right` to prevent vertical scrollbar caused by centering if to many tabs + */ +.uk-tab-center .uk-tab { + position: relative; + right: 50%; + border: none; + float: right; +} +.uk-tab-center .uk-tab > li { + position: relative; + right: -50%; +} +.uk-tab-center .uk-tab > li > a { + text-align: center; +} +/* Modifier: 'tab-bottom' + ========================================================================== */ +.uk-tab-bottom { + border-top: 1px solid #ddd; + border-bottom: none; +} +.uk-tab-bottom > li { + margin-top: -1px; + margin-bottom: 0; +} +.uk-tab-bottom > li > a { + padding-top: 8px; + padding-bottom: 8px; + border-bottom-width: 1px; + border-top-width: 0; +} +.uk-tab-bottom > li:not(.uk-active) > a:hover, +.uk-tab-bottom > li:not(.uk-active) > a:focus, +.uk-tab-bottom > li.uk-open:not(.uk-active) > a { + margin-bottom: 0; + margin-top: 1px; + padding-bottom: 8px; + padding-top: 7px; +} +.uk-tab-bottom > li.uk-active > a { + border-top-color: transparent; + border-bottom-color: #ddd; +} +/* Modifier: 'tab-grid' + ========================================================================== */ +/* + * 1. Create position context to prevent hidden border because of negative `z-index` + */ +.uk-tab-grid { + margin-left: -5px; + border-bottom: none; + /* 1 */ + position: relative; + z-index: 0; +} +.uk-tab-grid:before { + display: block; + position: absolute; + left: 5px; + right: 0; + bottom: -1px; + border-top: 1px solid #ddd; + /* 1 */ + z-index: -1; +} +.uk-tab-grid > li:first-child > a { + margin-left: 5px; +} +.uk-tab-grid > li > a { + text-align: center; +} +/* + * If `uk-tab-bottom` + */ +.uk-tab-grid.uk-tab-bottom { + border-top: none; +} +.uk-tab-grid.uk-tab-bottom:before { + top: -1px; + bottom: auto; +} +/* Modifier: 'tab-left', 'tab-right' + ========================================================================== */ +/* Tablet and bigger */ +@media (min-width: 768px) { + .uk-tab-left, + .uk-tab-right { + border-bottom: none; + } + .uk-tab-left > li, + .uk-tab-right > li { + margin-bottom: 0; + float: none; + } + .uk-tab-left > li > a, + .uk-tab-right > li > a { + padding-top: 8px; + padding-bottom: 8px; + } + .uk-tab-left > li:nth-child(n+2) > a, + .uk-tab-right > li:nth-child(n+2) > a { + margin-left: 0; + margin-top: 5px; + } + .uk-tab-left > li.uk-active > a, + .uk-tab-right > li.uk-active > a { + border-color: #ddd; + } + /* + * Modifier: 'tab-left' + */ + .uk-tab-left { + border-right: 1px solid #ddd; + } + .uk-tab-left > li { + margin-right: -1px; + } + .uk-tab-left > li > a { + border-bottom-width: 1px; + border-right-width: 0; + } + .uk-tab-left > li:not(.uk-active) > a:hover, + .uk-tab-left > li:not(.uk-active) > a:focus { + margin-bottom: 0; + margin-right: 1px; + padding-bottom: 8px; + padding-right: 11px; + } + .uk-tab-left > li.uk-active > a { + border-right-color: transparent; + } + /* + * Modifier: 'tab-right' + */ + .uk-tab-right { + border-left: 1px solid #ddd; + } + .uk-tab-right > li { + margin-left: -1px; + } + .uk-tab-right > li > a { + border-bottom-width: 1px; + border-left-width: 0; + } + .uk-tab-right > li:not(.uk-active) > a:hover, + .uk-tab-right > li:not(.uk-active) > a:focus { + margin-bottom: 0; + margin-left: 1px; + padding-bottom: 8px; + padding-left: 11px; + } + .uk-tab-right > li.uk-active > a { + border-left-color: transparent; + } +} +/* ======================================================================== + Component: Thumbnav + ========================================================================== */ +/* + * 1. Gutter + * 2. Remove default list style + */ +.uk-thumbnav { + display: -ms-flexbox; + display: -webkit-flex; + display: flex; + -ms-flex-wrap: wrap; + -webkit-flex-wrap: wrap; + flex-wrap: wrap; + /* 1 */ + margin-left: -10px; + margin-top: -10px; + /* 2 */ + padding: 0; + list-style: none; +} +/* + * 1. Space is allocated solely based on content dimensions + * 2. Horizontal gutter is using `padding` so `uk-width-*` classes can be applied + */ +.uk-thumbnav > * { + /* 1 */ + -ms-flex: none; + -webkit-flex: none; + flex: none; + /* 2 */ + padding-left: 10px; + margin-top: 10px; +} +/* + * DEPRECATED IE9 Support + */ +.uk-thumbnav:before, +.uk-thumbnav:after { + content: ""; + display: block; + overflow: hidden; +} +.uk-thumbnav:after { + clear: both; +} +.uk-thumbnav > * { + float: left; +} +/* Items + ========================================================================== */ +.uk-thumbnav > * > * { + display: block; + background: #fff; +} +.uk-thumbnav > * > * > img { + opacity: 0.7; + -webkit-transition: opacity 0.15s linear; + transition: opacity 0.15s linear; +} +/* + * Hover + */ +.uk-thumbnav > * > :hover > img, +.uk-thumbnav > * > :focus > img { + opacity: 1; +} +/* + * Active + */ +.uk-thumbnav > .uk-active > * > img { + opacity: 1; +} +/* ======================================================================== + Component: List + ========================================================================== */ +.uk-list { + padding: 0; + list-style: none; +} +/* + * Micro clearfix to make list more robust + */ +.uk-list > li:before, +.uk-list > li:after { + content: ""; + display: table; +} +.uk-list > li:after { + clear: both; +} +/* + * Remove margin from the last-child + */ +.uk-list > li > :last-child { + margin-bottom: 0; +} +/* + * Nested lists + */ +.uk-list ul { + margin: 0; + padding-left: 20px; + list-style: none; +} +/* Modifier: `uk-list-line` + ========================================================================== */ +.uk-list-line > li:nth-child(n+2) { + margin-top: 5px; + padding-top: 5px; + border-top: 1px solid #ddd; +} +/* Modifier: `uk-list-striped` + ========================================================================== */ +.uk-list-striped > li { + padding: 5px 5px; +} +.uk-list-striped > li:nth-of-type(odd) { + background: #f5f5f5; +} +/* Modifier: `uk-list-space` + ========================================================================== */ +.uk-list-space > li:nth-child(n+2) { + margin-top: 10px; +} +/* ======================================================================== + Component: Description list + ========================================================================== */ +/* Modifier: `uk-description-list-horizontal` + ========================================================================== */ +/* Tablet and bigger */ +@media (min-width: 768px) { + .uk-description-list-horizontal { + overflow: hidden; + } + .uk-description-list-horizontal > dt { + width: 160px; + float: left; + clear: both; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + } + .uk-description-list-horizontal > dd { + margin-left: 180px; + } +} +/* Modifier: `uk-description-list-line` + ========================================================================== */ +.uk-description-list-line > dt { + font-weight: normal; +} +.uk-description-list-line > dt:nth-child(n+2) { + margin-top: 5px; + padding-top: 5px; + border-top: 1px solid #ddd; +} +.uk-description-list-line > dd { + color: #999; +} +/* ======================================================================== + Component: Table + ========================================================================== */ +/* + * 1. Remove most spacing between table cells. + * 2. Block element behavior + * 3. Style + */ +.uk-table { + /* 1 */ + border-collapse: collapse; + border-spacing: 0; + /* 2 */ + width: 100%; + /* 3 */ + margin-bottom: 15px; +} +/* + * Add margin if adjacent element + */ +* + .uk-table { + margin-top: 15px; +} +.uk-table th, +.uk-table td { + padding: 8px 8px; +} +/* + * Set alignment + */ +.uk-table th { + text-align: left; +} +.uk-table td { + vertical-align: top; +} +.uk-table thead th { + vertical-align: bottom; +} +/* + * Caption and footer + */ +.uk-table caption, +.uk-table tfoot { + font-size: 12px; + font-style: italic; +} +.uk-table caption { + text-align: left; + color: #999; +} +/* + * Active State + */ +.uk-table tbody tr.uk-active { + background: #EEE; +} +/* Sub-modifier: `uk-table-middle` + ========================================================================== */ +.uk-table-middle, +.uk-table-middle td { + vertical-align: middle !important; +} +/* Modifier: `uk-table-striped` + ========================================================================== */ +.uk-table-striped tbody tr:nth-of-type(odd) { + background: #f5f5f5; +} +/* Modifier: `uk-table-condensed` + ========================================================================== */ +.uk-table-condensed td { + padding: 4px 8px; +} +/* Modifier: `uk-table-hover` + ========================================================================== */ +.uk-table-hover tbody tr:hover { + background: #EEE; +} +/* ======================================================================== + Component: Form + ========================================================================== */ +/* + * 1. Define consistent box sizing. + * Default is `content-box` with following exceptions set to `border-box` + * `button`, `select`, `input[type="checkbox"]` and `input[type="radio"]` + * `input[type="search"]` in Chrome, Safari and Opera + * `input[type="color"]` in Firefox + * 2. Address margins set differently in Firefox/IE and Chrome/Safari/Opera. + * 3. Remove `border-radius` in iOS. + * 4. Correct `font` properties and `color` not being inherited. + */ +.uk-form input, +.uk-form select, +.uk-form textarea { + /* 1 */ + box-sizing: border-box; + /* 2 */ + margin: 0; + /* 3 */ + border-radius: 0; + /* 4 */ + font: inherit; + color: inherit; +} +/* + * Address inconsistent `text-transform` inheritance which is only inherit in Firefox + */ +.uk-form select { + text-transform: none; +} +/* + * 1. Correct `font` properties not being inherited. + * 2. Don't inherit the `font-weight` and use `bold` instead. + * NOTE: Both declarations don't work in Chrome, Safari and Opera. + */ +.uk-form optgroup { + /* 1 */ + font: inherit; + /* 2 */ + font-weight: bold; +} +/* + * Removes inner padding and border in Firefox 4+. + */ +.uk-form input::-moz-focus-inner { + border: 0; + padding: 0; +} +/* + * Removes excess padding in IE 8/9/10. + */ +.uk-form input[type="checkbox"], +.uk-form input[type="radio"] { + padding: 0; +} +/* + * Improves consistency of cursor style for clickable elements + */ +.uk-form input[type="checkbox"]:not(:disabled), +.uk-form input[type="radio"]:not(:disabled) { + cursor: pointer; +} +/* + * Remove default style in iOS. + */ +.uk-form textarea, +.uk-form input:not([type]), +.uk-form input[type="text"], +.uk-form input[type="password"], +.uk-form input[type="email"], +.uk-form input[type="url"], +.uk-form input[type="search"], +.uk-form input[type="tel"], +.uk-form input[type="number"], +.uk-form input[type="datetime"] { + -webkit-appearance: none; +} +/* + * Remove inner padding and search cancel button in Chrome, Safari and Opera on OS X. + */ +.uk-form input[type="search"]::-webkit-search-cancel-button, +.uk-form input[type="search"]::-webkit-search-decoration { + -webkit-appearance: none; +} +/* + * Fix the cursor style for Chrome's increment/decrement buttons. For certain + * `font-size` values of the `input`, it causes the cursor style of the + * decrement button to change from `default` to `text`. + */ +.uk-form input[type="number"]::-webkit-inner-spin-button, +.uk-form input[type="number"]::-webkit-outer-spin-button { + height: auto; +} +/* + * Define consistent border, margin, and padding. + */ +.uk-form fieldset { + border: none; + margin: 0; + padding: 0; +} +/* + * 1. Remove default vertical scrollbar in IE 8/9/10/11. + * 2. Improve readability and alignment in all browsers. + */ +.uk-form textarea { + /* 1 */ + overflow: auto; + /* 2 */ + vertical-align: top; +} +/* + * Removes placeholder transparency in Firefox. + */ +.uk-form ::-moz-placeholder { + opacity: 1; +} +/* + * Removes `box-shadow` for invalid controls in Firefox. + */ +.uk-form :invalid { + box-shadow: none; +} +/* + * Vertical alignment + */ +.uk-form input:not([type="radio"]):not([type="checkbox"]), +.uk-form select { + vertical-align: middle; +} +/* Style + ========================================================================== */ +/* + * Remove margin from the last-child + */ +.uk-form > :last-child { + margin-bottom: 0; +} +/* + * Controls + * Except for `range`, `radio`, `checkbox`, `file`, `submit`, `reset`, `button` and `image` + * 1. Must be `height` because `min-height` is not working in OSX + * 2. Responsiveness: Sets a maximum width relative to the parent to scale on narrower viewports + * 3. Vertical `padding` needed for `select` elements in Firefox + * 4. Style + */ +.uk-form select, +.uk-form textarea, +.uk-form input:not([type]), +.uk-form input[type="text"], +.uk-form input[type="password"], +.uk-form input[type="datetime"], +.uk-form input[type="datetime-local"], +.uk-form input[type="date"], +.uk-form input[type="month"], +.uk-form input[type="time"], +.uk-form input[type="week"], +.uk-form input[type="number"], +.uk-form input[type="email"], +.uk-form input[type="url"], +.uk-form input[type="search"], +.uk-form input[type="tel"], +.uk-form input[type="color"] { + /* 1 */ + height: 30px; + /* 2 */ + max-width: 100%; + /* 3 */ + padding: 4px 6px; + /* 4 */ + border: 1px solid #ddd; + background: #fff; + color: #444; + -webkit-transition: all 0.2s linear; + -webkit-transition-property: border, background, color, box-shadow, padding; + transition: all 0.2s linear; + transition-property: border, background, color, box-shadow, padding; +} +.uk-form select:focus, +.uk-form textarea:focus, +.uk-form input:not([type]):focus, +.uk-form input[type="text"]:focus, +.uk-form input[type="password"]:focus, +.uk-form input[type="datetime"]:focus, +.uk-form input[type="datetime-local"]:focus, +.uk-form input[type="date"]:focus, +.uk-form input[type="month"]:focus, +.uk-form input[type="time"]:focus, +.uk-form input[type="week"]:focus, +.uk-form input[type="number"]:focus, +.uk-form input[type="email"]:focus, +.uk-form input[type="url"]:focus, +.uk-form input[type="search"]:focus, +.uk-form input[type="tel"]:focus, +.uk-form input[type="color"]:focus { + border-color: #99baca; + outline: 0; + background: #f5fbfe; + color: #444; +} +.uk-form select:disabled, +.uk-form textarea:disabled, +.uk-form input:not([type]):disabled, +.uk-form input[type="text"]:disabled, +.uk-form input[type="password"]:disabled, +.uk-form input[type="datetime"]:disabled, +.uk-form input[type="datetime-local"]:disabled, +.uk-form input[type="date"]:disabled, +.uk-form input[type="month"]:disabled, +.uk-form input[type="time"]:disabled, +.uk-form input[type="week"]:disabled, +.uk-form input[type="number"]:disabled, +.uk-form input[type="email"]:disabled, +.uk-form input[type="url"]:disabled, +.uk-form input[type="search"]:disabled, +.uk-form input[type="tel"]:disabled, +.uk-form input[type="color"]:disabled { + border-color: #ddd; + background-color: #f5f5f5; + color: #999; +} +/* + * Placeholder + */ +.uk-form :-ms-input-placeholder { + color: #999 !important; +} +.uk-form ::-moz-placeholder { + color: #999; +} +.uk-form ::-webkit-input-placeholder { + color: #999; +} +.uk-form :disabled:-ms-input-placeholder { + color: #999 !important; +} +.uk-form :disabled::-moz-placeholder { + color: #999; +} +.uk-form :disabled::-webkit-input-placeholder { + color: #999; +} +/* + * Legend + * 1. Behave like block element + * 2. Correct `color` not being inherited in IE 8/9/10/11. + * 3. Remove padding + * 4. `margin-bottom` is not working in Safari and Opera. + * Using `padding` and :after instead to create the border + * 5. Style + */ +.uk-form legend { + /* 1 */ + width: 100%; + /* 2 */ + border: 0; + /* 3 */ + padding: 0; + /* 4 */ + padding-bottom: 15px; + /* 5 */ + font-size: 18px; + line-height: 30px; +} +/* + * 1. Fixes IE9 + */ +.uk-form legend:after { + content: ""; + display: block; + border-bottom: 1px solid #ddd; + /* 1 */ + width: 100%; +} +/* Size modifiers + * Higher specificity needed to override defaults + ========================================================================== */ +select.uk-form-small, +textarea.uk-form-small, +input[type].uk-form-small, +input:not([type]).uk-form-small { + height: 25px; + padding: 3px 3px; + font-size: 12px; +} +select.uk-form-large, +textarea.uk-form-large, +input[type].uk-form-large, +input:not([type]).uk-form-large { + height: 40px; + padding: 8px 6px; + font-size: 16px; +} +/* Reset height + * Must be after size modifiers + ========================================================================== */ +.uk-form textarea, +.uk-form select[multiple], +.uk-form select[size] { + height: auto; +} +/* Validation states + * Using !important to keep the selector simple + ========================================================================== */ +/* + * Error state + */ +.uk-form-danger { + border-color: #dc8d99 !important; + background: #fff7f8 !important; + color: #d85030 !important; +} +/* + * Success state + */ +.uk-form-success { + border-color: #8ec73b !important; + background: #fafff2 !important; + color: #659f13 !important; +} +/* Style modifiers + * Using !important to keep the selector simple + ========================================================================== */ +/* + * Blank form + */ +.uk-form-blank { + border-color: transparent !important; + border-style: dashed !important; + background: none !important; +} +.uk-form-blank:focus { + border-color: #ddd !important; +} +/* Size sub-modifiers + ========================================================================== */ +/* + * Fixed widths + * Different widths for mini sized `input` and `select` elements + */ +input.uk-form-width-mini { + width: 40px; +} +select.uk-form-width-mini { + width: 65px; +} +.uk-form-width-small { + width: 130px; +} +.uk-form-width-medium { + width: 200px; +} +.uk-form-width-large { + width: 500px; +} +/* Sub-objects: `uk-form-row` + * Groups labels and controls in rows + ========================================================================== */ +/* + * Micro clearfix + * Needed for `uk-form-horizontal` modifier + */ +.uk-form-row:before, +.uk-form-row:after { + content: ""; + display: table; +} +.uk-form-row:after { + clear: both; +} +/* + * Vertical gutter + */ +.uk-form-row + .uk-form-row { + margin-top: 15px; +} +/* Help text + * Sub-object: `uk-form-help-inline`, `uk-form-help-block` + ========================================================================== */ +.uk-form-help-inline { + display: inline-block; + margin: 0 0 0 10px; +} +.uk-form-help-block { + margin: 5px 0 0 0; +} +/* Controls content + * Sub-object: `uk-form-controls`, `uk-form-controls-condensed` + ========================================================================== */ +/* + * Remove margins + */ +.uk-form-controls > :first-child { + margin-top: 0; +} +.uk-form-controls > :last-child { + margin-bottom: 0; +} +/* + * Group controls and text into blocks with a small spacing between blocks + */ +.uk-form-controls-condensed { + margin: 5px 0; +} +/* Modifier: `uk-form-stacked` + * Requires sub-object: `uk-form-label` + ========================================================================== */ +.uk-form-stacked .uk-form-label { + display: block; + margin-bottom: 5px; + font-weight: bold; +} +/* Modifier: `uk-form-horizontal` + * Requires sub-objects: `uk-form-label`, `uk-form-controls` + ========================================================================== */ +/* Tablet portrait and smaller */ +@media (max-width: 959px) { + /* Behave like `uk-form-stacked` */ + .uk-form-horizontal .uk-form-label { + display: block; + margin-bottom: 5px; + font-weight: bold; + } +} +/* Desktop and bigger */ +@media (min-width: 960px) { + .uk-form-horizontal .uk-form-label { + width: 200px; + margin-top: 5px; + float: left; + } + .uk-form-horizontal .uk-form-controls { + margin-left: 215px; + } + /* Better vertical alignment if controls are checkboxes and radio buttons with text */ + .uk-form-horizontal .uk-form-controls-text { + padding-top: 5px; + } +} +/* Sub-object: `uk-form-icon` + ========================================================================== */ +/* + * 1. Container width fits its content + * 2. Create position context + * 3. Prevent `inline-block` consequences + */ +.uk-form-icon { + /* 1 */ + display: inline-block; + /* 2 */ + position: relative; + /* 3 */ + max-width: 100%; +} +/* + * 1. Make form element clickable through icon + */ +.uk-form-icon > [class*='uk-icon-'] { + position: absolute; + top: 50%; + width: 30px; + margin-top: -7px; + font-size: 14px; + color: #999; + text-align: center; + /* 1 */ + pointer-events: none; +} +.uk-form-icon:not(.uk-form-icon-flip) > input { + padding-left: 30px !important; +} +/* + * Sub-modifier: `uk-form-icon-flip` + */ +.uk-form-icon-flip > [class*='uk-icon-'] { + right: 0; +} +.uk-form-icon-flip > input { + padding-right: 30px !important; +} +/* ======================================================================== + Component: Button + ========================================================================== */ +/* + * Removes inner padding and border in Firefox 4+. + */ +.uk-button::-moz-focus-inner { + border: 0; + padding: 0; +} +/* + * 1. Correct inability to style clickable `input` types in iOS. + * 2. Remove margins in Chrome, Safari and Opera. + * 3. Remove borders for `button`. + * 4. Address `overflow` set to `hidden` in IE 8/9/10/11. + * 5. Correct `font` properties and `color` not being inherited for `button`. + * 6. Address inconsistent `text-transform` inheritance which is only inherit in Firefox and IE + * 7. Style + * 8. `line-height` is used to create a height + * 9. `min-height` is necessary for `input` elements in Firefox and Opera because `line-height` is not working. + * 10. Reset button group whitespace hack + * 11. Required for `a`. + */ +.uk-button { + /* 1 */ + -webkit-appearance: none; + /* 2 */ + margin: 0; + /* 3 */ + border: none; + /* 4 */ + overflow: visible; + /* 5 */ + font: inherit; + color: #444; + /* 6 */ + text-transform: none; + /* 7 */ + display: inline-block; + box-sizing: border-box; + padding: 0 12px; + background: #eee; + vertical-align: middle; + /* 8 */ + line-height: 30px; + /* 9 */ + min-height: 30px; + /* 10 */ + font-size: 1rem; + /* 11 */ + text-decoration: none; + text-align: center; +} +.uk-button:not(:disabled) { + cursor: pointer; +} +/* + * Hover + * 1. Apply hover style also to focus state + * 2. Remove default focus style + * 3. Required for `a` elements + */ +.uk-button:hover, +.uk-button:focus { + background-color: #f5f5f5; + color: #444; + /* 2 */ + outline: none; + /* 3 */ + text-decoration: none; +} +/* Active */ +.uk-button:active, +.uk-button.uk-active { + background-color: #ddd; + color: #444; +} +/* Color modifiers + ========================================================================== */ +/* + * Modifier: `uk-button-primary` + */ +.uk-button-primary { + background-color: #00a8e6; + color: #fff; +} +/* Hover */ +.uk-button-primary:hover, +.uk-button-primary:focus { + background-color: #35b3ee; + color: #fff; +} +/* Active */ +.uk-button-primary:active, +.uk-button-primary.uk-active { + background-color: #0091ca; + color: #fff; +} +/* + * Modifier: `uk-button-success` + */ +.uk-button-success { + background-color: #8cc14c; + color: #fff; +} +/* Hover */ +.uk-button-success:hover, +.uk-button-success:focus { + background-color: #8ec73b; + color: #fff; +} +/* Active */ +.uk-button-success:active, +.uk-button-success.uk-active { + background-color: #72ae41; + color: #fff; +} +/* + * Modifier: `uk-button-danger` + */ +.uk-button-danger { + background-color: #da314b; + color: #fff; +} +/* Hover */ +.uk-button-danger:hover, +.uk-button-danger:focus { + background-color: #e4354f; + color: #fff; +} +/* Active */ +.uk-button-danger:active, +.uk-button-danger.uk-active { + background-color: #c91032; + color: #fff; +} +/* Disabled state + * Overrides also the color modifiers + ========================================================================== */ +/* Equal for all button types */ +.uk-button:disabled { + background-color: #f5f5f5; + color: #999; +} +/* Modifier: `uk-button-link` + ========================================================================== */ +/* Reset */ +.uk-button-link, +.uk-button-link:hover, +.uk-button-link:focus, +.uk-button-link:active, +.uk-button-link.uk-active, +.uk-button-link:disabled { + border-color: transparent; + background: none; +} +/* Color */ +.uk-button-link { + color: #07D; +} +.uk-button-link:hover, +.uk-button-link:focus, +.uk-button-link:active, +.uk-button-link.uk-active { + color: #059; + text-decoration: underline; +} +.uk-button-link:disabled { + color: #999; +} +/* Focus */ +.uk-button-link:focus { + outline: 1px dotted; +} +/* Size modifiers + ========================================================================== */ +.uk-button-mini { + min-height: 20px; + padding: 0 6px; + line-height: 20px; + font-size: 11px; +} +.uk-button-small { + min-height: 25px; + padding: 0 10px; + line-height: 25px; + font-size: 12px; +} +.uk-button-large { + min-height: 40px; + padding: 0 15px; + line-height: 40px; + font-size: 16px; +} +/* Sub-object `uk-button-group` + ========================================================================== */ +/* + * 1. Behave like buttons + * 2. Create position context for dropdowns + * 3. Remove whitespace between child elements when using `inline-block` + * 4. Prevent buttons from wrapping + * 5. Remove whitespace between child elements when using `inline-block` + */ +.uk-button-group { + /* 1 */ + display: inline-block; + vertical-align: middle; + /* 2 */ + position: relative; + /* 3 */ + font-size: 0.001px; + /* 4 */ + white-space: nowrap; +} +.uk-button-group > * { + display: inline-block; +} +/* 5 */ +.uk-button-group .uk-button { + vertical-align: top; +} +/* Sub-object: `uk-button-dropdown` + ========================================================================== */ +/* + * 1. Behave like buttons + * 2. Create position context for dropdowns + */ +.uk-button-dropdown { + /* 1 */ + display: inline-block; + vertical-align: middle; + /* 2 */ + position: relative; +} +/* ======================================================================== + Component: Icon + ========================================================================== */ +@font-face { + font-family: 'FontAwesome'; + src: url("../fonts/fontawesome-webfont.woff2") format('woff2'), url("../fonts/fontawesome-webfont.woff") format("woff"), url("../fonts/fontawesome-webfont.ttf") format("truetype"); + font-weight: normal; + font-style: normal; +} +/* + * 1. Allow margin + * 2. Prevent inherit font style + * 4. Correct line-height + * 5. Better font rendering + * 6. Remove `text-decoration` for anchors + */ +[class*='uk-icon-'] { + font-family: FontAwesome; + /* 1 */ + display: inline-block; + /* 2 */ + font-weight: normal; + font-style: normal; + /* 4 */ + line-height: 1; + /* 5 */ + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} +/* 6 */ +[class*='uk-icon-'], +[class*='uk-icon-']:hover, +[class*='uk-icon-']:focus { + text-decoration: none; +} +/* Size modifiers + ========================================================================== */ +.uk-icon-small { + font-size: 150%; + vertical-align: -10%; +} +.uk-icon-medium { + font-size: 200%; + vertical-align: -16%; +} +.uk-icon-large { + font-size: 250%; + vertical-align: -22%; +} +/* Modifier: `uk-icon-justify` + ========================================================================== */ +.uk-icon-justify { + width: 1em; + text-align: center; +} +/* Modifier: `uk-icon-spin` + ========================================================================== */ +.uk-icon-spin { + display: inline-block; + -webkit-animation: uk-rotate 2s infinite linear; + animation: uk-rotate 2s infinite linear; +} +/* Modifier: `uk-icon-hover` + ========================================================================== */ +.uk-icon-hover { + color: #999; +} +/* + * Hover + */ +.uk-icon-hover:hover { + color: #444; +} +/* Modifier: `uk-icon-button` + ========================================================================== */ +.uk-icon-button { + box-sizing: border-box; + display: inline-block; + width: 35px; + height: 35px; + border-radius: 100%; + background: #eee; + line-height: 35px; + color: #444; + font-size: 18px; + text-align: center; +} +/* + * Hover + * 1. Apply hover style also to focus state + * 2. Remove default focus style + */ +.uk-icon-button:hover, +.uk-icon-button:focus { + background-color: #f5f5f5; + color: #444; + /* 2 */ + outline: none; +} +/* Active */ +.uk-icon-button:active { + background-color: #ddd; + color: #444; +} +/* Icon mapping + ========================================================================== */ +.uk-icon-glass:before { + content: "\f000"; +} +.uk-icon-music:before { + content: "\f001"; +} +.uk-icon-search:before { + content: "\f002"; +} +.uk-icon-envelope-o:before { + content: "\f003"; +} +.uk-icon-heart:before { + content: "\f004"; +} +.uk-icon-star:before { + content: "\f005"; +} +.uk-icon-star-o:before { + content: "\f006"; +} +.uk-icon-user:before { + content: "\f007"; +} +.uk-icon-film:before { + content: "\f008"; +} +.uk-icon-th-large:before { + content: "\f009"; +} +.uk-icon-th:before { + content: "\f00a"; +} +.uk-icon-th-list:before { + content: "\f00b"; +} +.uk-icon-check:before { + content: "\f00c"; +} +.uk-icon-remove:before, +.uk-icon-close:before, +.uk-icon-times:before { + content: "\f00d"; +} +.uk-icon-search-plus:before { + content: "\f00e"; +} +.uk-icon-search-minus:before { + content: "\f010"; +} +.uk-icon-power-off:before { + content: "\f011"; +} +.uk-icon-signal:before { + content: "\f012"; +} +.uk-icon-gear:before, +.uk-icon-cog:before { + content: "\f013"; +} +.uk-icon-trash-o:before { + content: "\f014"; +} +.uk-icon-home:before { + content: "\f015"; +} +.uk-icon-file-o:before { + content: "\f016"; +} +.uk-icon-clock-o:before { + content: "\f017"; +} +.uk-icon-road:before { + content: "\f018"; +} +.uk-icon-download:before { + content: "\f019"; +} +.uk-icon-arrow-circle-o-down:before { + content: "\f01a"; +} +.uk-icon-arrow-circle-o-up:before { + content: "\f01b"; +} +.uk-icon-inbox:before { + content: "\f01c"; +} +.uk-icon-play-circle-o:before { + content: "\f01d"; +} +.uk-icon-rotate-right:before, +.uk-icon-repeat:before { + content: "\f01e"; +} +.uk-icon-refresh:before { + content: "\f021"; +} +.uk-icon-list-alt:before { + content: "\f022"; +} +.uk-icon-lock:before { + content: "\f023"; +} +.uk-icon-flag:before { + content: "\f024"; +} +.uk-icon-headphones:before { + content: "\f025"; +} +.uk-icon-volume-off:before { + content: "\f026"; +} +.uk-icon-volume-down:before { + content: "\f027"; +} +.uk-icon-volume-up:before { + content: "\f028"; +} +.uk-icon-qrcode:before { + content: "\f029"; +} +.uk-icon-barcode:before { + content: "\f02a"; +} +.uk-icon-tag:before { + content: "\f02b"; +} +.uk-icon-tags:before { + content: "\f02c"; +} +.uk-icon-book:before { + content: "\f02d"; +} +.uk-icon-bookmark:before { + content: "\f02e"; +} +.uk-icon-print:before { + content: "\f02f"; +} +.uk-icon-camera:before { + content: "\f030"; +} +.uk-icon-font:before { + content: "\f031"; +} +.uk-icon-bold:before { + content: "\f032"; +} +.uk-icon-italic:before { + content: "\f033"; +} +.uk-icon-text-height:before { + content: "\f034"; +} +.uk-icon-text-width:before { + content: "\f035"; +} +.uk-icon-align-left:before { + content: "\f036"; +} +.uk-icon-align-center:before { + content: "\f037"; +} +.uk-icon-align-right:before { + content: "\f038"; +} +.uk-icon-align-justify:before { + content: "\f039"; +} +.uk-icon-list:before { + content: "\f03a"; +} +.uk-icon-dedent:before, +.uk-icon-outdent:before { + content: "\f03b"; +} +.uk-icon-indent:before { + content: "\f03c"; +} +.uk-icon-video-camera:before { + content: "\f03d"; +} +.uk-icon-photo:before, +.uk-icon-image:before, +.uk-icon-picture-o:before { + content: "\f03e"; +} +.uk-icon-pencil:before { + content: "\f040"; +} +.uk-icon-map-marker:before { + content: "\f041"; +} +.uk-icon-adjust:before { + content: "\f042"; +} +.uk-icon-tint:before { + content: "\f043"; +} +.uk-icon-edit:before, +.uk-icon-pencil-square-o:before { + content: "\f044"; +} +.uk-icon-share-square-o:before { + content: "\f045"; +} +.uk-icon-check-square-o:before { + content: "\f046"; +} +.uk-icon-arrows:before { + content: "\f047"; +} +.uk-icon-step-backward:before { + content: "\f048"; +} +.uk-icon-fast-backward:before { + content: "\f049"; +} +.uk-icon-backward:before { + content: "\f04a"; +} +.uk-icon-play:before { + content: "\f04b"; +} +.uk-icon-pause:before { + content: "\f04c"; +} +.uk-icon-stop:before { + content: "\f04d"; +} +.uk-icon-forward:before { + content: "\f04e"; +} +.uk-icon-fast-forward:before { + content: "\f050"; +} +.uk-icon-step-forward:before { + content: "\f051"; +} +.uk-icon-eject:before { + content: "\f052"; +} +.uk-icon-chevron-left:before { + content: "\f053"; +} +.uk-icon-chevron-right:before { + content: "\f054"; +} +.uk-icon-plus-circle:before { + content: "\f055"; +} +.uk-icon-minus-circle:before { + content: "\f056"; +} +.uk-icon-times-circle:before { + content: "\f057"; +} +.uk-icon-check-circle:before { + content: "\f058"; +} +.uk-icon-question-circle:before { + content: "\f059"; +} +.uk-icon-info-circle:before { + content: "\f05a"; +} +.uk-icon-crosshairs:before { + content: "\f05b"; +} +.uk-icon-times-circle-o:before { + content: "\f05c"; +} +.uk-icon-check-circle-o:before { + content: "\f05d"; +} +.uk-icon-ban:before { + content: "\f05e"; +} +.uk-icon-arrow-left:before { + content: "\f060"; +} +.uk-icon-arrow-right:before { + content: "\f061"; +} +.uk-icon-arrow-up:before { + content: "\f062"; +} +.uk-icon-arrow-down:before { + content: "\f063"; +} +.uk-icon-mail-forward:before, +.uk-icon-share:before { + content: "\f064"; +} +.uk-icon-expand:before { + content: "\f065"; +} +.uk-icon-compress:before { + content: "\f066"; +} +.uk-icon-plus:before { + content: "\f067"; +} +.uk-icon-minus:before { + content: "\f068"; +} +.uk-icon-asterisk:before { + content: "\f069"; +} +.uk-icon-exclamation-circle:before { + content: "\f06a"; +} +.uk-icon-gift:before { + content: "\f06b"; +} +.uk-icon-leaf:before { + content: "\f06c"; +} +.uk-icon-fire:before { + content: "\f06d"; +} +.uk-icon-eye:before { + content: "\f06e"; +} +.uk-icon-eye-slash:before { + content: "\f070"; +} +.uk-icon-warning:before, +.uk-icon-exclamation-triangle:before { + content: "\f071"; +} +.uk-icon-plane:before { + content: "\f072"; +} +.uk-icon-calendar:before { + content: "\f073"; +} +.uk-icon-random:before { + content: "\f074"; +} +.uk-icon-comment:before { + content: "\f075"; +} +.uk-icon-magnet:before { + content: "\f076"; +} +.uk-icon-chevron-up:before { + content: "\f077"; +} +.uk-icon-chevron-down:before { + content: "\f078"; +} +.uk-icon-retweet:before { + content: "\f079"; +} +.uk-icon-shopping-cart:before { + content: "\f07a"; +} +.uk-icon-folder:before { + content: "\f07b"; +} +.uk-icon-folder-open:before { + content: "\f07c"; +} +.uk-icon-arrows-v:before { + content: "\f07d"; +} +.uk-icon-arrows-h:before { + content: "\f07e"; +} +.uk-icon-bar-chart-o:before, +.uk-icon-bar-chart:before { + content: "\f080"; +} +.uk-icon-twitter-square:before { + content: "\f081"; +} +.uk-icon-facebook-square:before { + content: "\f082"; +} +.uk-icon-camera-retro:before { + content: "\f083"; +} +.uk-icon-key:before { + content: "\f084"; +} +.uk-icon-gears:before, +.uk-icon-cogs:before { + content: "\f085"; +} +.uk-icon-comments:before { + content: "\f086"; +} +.uk-icon-thumbs-o-up:before { + content: "\f087"; +} +.uk-icon-thumbs-o-down:before { + content: "\f088"; +} +.uk-icon-star-half:before { + content: "\f089"; +} +.uk-icon-heart-o:before { + content: "\f08a"; +} +.uk-icon-sign-out:before { + content: "\f08b"; +} +.uk-icon-linkedin-square:before { + content: "\f08c"; +} +.uk-icon-thumb-tack:before { + content: "\f08d"; +} +.uk-icon-external-link:before { + content: "\f08e"; +} +.uk-icon-sign-in:before { + content: "\f090"; +} +.uk-icon-trophy:before { + content: "\f091"; +} +.uk-icon-github-square:before { + content: "\f092"; +} +.uk-icon-upload:before { + content: "\f093"; +} +.uk-icon-lemon-o:before { + content: "\f094"; +} +.uk-icon-phone:before { + content: "\f095"; +} +.uk-icon-square-o:before { + content: "\f096"; +} +.uk-icon-bookmark-o:before { + content: "\f097"; +} +.uk-icon-phone-square:before { + content: "\f098"; +} +.uk-icon-twitter:before { + content: "\f099"; +} +.uk-icon-facebook-f:before, +.uk-icon-facebook:before { + content: "\f09a"; +} +.uk-icon-github:before { + content: "\f09b"; +} +.uk-icon-unlock:before { + content: "\f09c"; +} +.uk-icon-credit-card:before { + content: "\f09d"; +} +.uk-icon-rss:before { + content: "\f09e"; +} +.uk-icon-hdd-o:before { + content: "\f0a0"; +} +.uk-icon-bullhorn:before { + content: "\f0a1"; +} +.uk-icon-bell:before { + content: "\f0f3"; +} +.uk-icon-certificate:before { + content: "\f0a3"; +} +.uk-icon-hand-o-right:before { + content: "\f0a4"; +} +.uk-icon-hand-o-left:before { + content: "\f0a5"; +} +.uk-icon-hand-o-up:before { + content: "\f0a6"; +} +.uk-icon-hand-o-down:before { + content: "\f0a7"; +} +.uk-icon-arrow-circle-left:before { + content: "\f0a8"; +} +.uk-icon-arrow-circle-right:before { + content: "\f0a9"; +} +.uk-icon-arrow-circle-up:before { + content: "\f0aa"; +} +.uk-icon-arrow-circle-down:before { + content: "\f0ab"; +} +.uk-icon-globe:before { + content: "\f0ac"; +} +.uk-icon-wrench:before { + content: "\f0ad"; +} +.uk-icon-tasks:before { + content: "\f0ae"; +} +.uk-icon-filter:before { + content: "\f0b0"; +} +.uk-icon-briefcase:before { + content: "\f0b1"; +} +.uk-icon-arrows-alt:before { + content: "\f0b2"; +} +.uk-icon-group:before, +.uk-icon-users:before { + content: "\f0c0"; +} +.uk-icon-chain:before, +.uk-icon-link:before { + content: "\f0c1"; +} +.uk-icon-cloud:before { + content: "\f0c2"; +} +.uk-icon-flask:before { + content: "\f0c3"; +} +.uk-icon-cut:before, +.uk-icon-scissors:before { + content: "\f0c4"; +} +.uk-icon-copy:before, +.uk-icon-files-o:before { + content: "\f0c5"; +} +.uk-icon-paperclip:before { + content: "\f0c6"; +} +.uk-icon-save:before, +.uk-icon-floppy-o:before { + content: "\f0c7"; +} +.uk-icon-square:before { + content: "\f0c8"; +} +.uk-icon-navicon:before, +.uk-icon-reorder:before, +.uk-icon-bars:before { + content: "\f0c9"; +} +.uk-icon-list-ul:before { + content: "\f0ca"; +} +.uk-icon-list-ol:before { + content: "\f0cb"; +} +.uk-icon-strikethrough:before { + content: "\f0cc"; +} +.uk-icon-underline:before { + content: "\f0cd"; +} +.uk-icon-table:before { + content: "\f0ce"; +} +.uk-icon-magic:before { + content: "\f0d0"; +} +.uk-icon-truck:before { + content: "\f0d1"; +} +.uk-icon-pinterest:before { + content: "\f0d2"; +} +.uk-icon-pinterest-square:before { + content: "\f0d3"; +} +.uk-icon-google-plus-square:before { + content: "\f0d4"; +} +.uk-icon-google-plus:before { + content: "\f0d5"; +} +.uk-icon-money:before { + content: "\f0d6"; +} +.uk-icon-caret-down:before { + content: "\f0d7"; +} +.uk-icon-caret-up:before { + content: "\f0d8"; +} +.uk-icon-caret-left:before { + content: "\f0d9"; +} +.uk-icon-caret-right:before { + content: "\f0da"; +} +.uk-icon-columns:before { + content: "\f0db"; +} +.uk-icon-unsorted:before, +.uk-icon-sort:before { + content: "\f0dc"; +} +.uk-icon-sort-down:before, +.uk-icon-sort-desc:before { + content: "\f0dd"; +} +.uk-icon-sort-up:before, +.uk-icon-sort-asc:before { + content: "\f0de"; +} +.uk-icon-envelope:before { + content: "\f0e0"; +} +.uk-icon-linkedin:before { + content: "\f0e1"; +} +.uk-icon-rotate-left:before, +.uk-icon-undo:before { + content: "\f0e2"; +} +.uk-icon-legal:before, +.uk-icon-gavel:before { + content: "\f0e3"; +} +.uk-icon-dashboard:before, +.uk-icon-tachometer:before { + content: "\f0e4"; +} +.uk-icon-comment-o:before { + content: "\f0e5"; +} +.uk-icon-comments-o:before { + content: "\f0e6"; +} +.uk-icon-flash:before, +.uk-icon-bolt:before { + content: "\f0e7"; +} +.uk-icon-sitemap:before { + content: "\f0e8"; +} +.uk-icon-umbrella:before { + content: "\f0e9"; +} +.uk-icon-paste:before, +.uk-icon-clipboard:before { + content: "\f0ea"; +} +.uk-icon-lightbulb-o:before { + content: "\f0eb"; +} +.uk-icon-exchange:before { + content: "\f0ec"; +} +.uk-icon-cloud-download:before { + content: "\f0ed"; +} +.uk-icon-cloud-upload:before { + content: "\f0ee"; +} +.uk-icon-user-md:before { + content: "\f0f0"; +} +.uk-icon-stethoscope:before { + content: "\f0f1"; +} +.uk-icon-suitcase:before { + content: "\f0f2"; +} +.uk-icon-bell-o:before { + content: "\f0a2"; +} +.uk-icon-coffee:before { + content: "\f0f4"; +} +.uk-icon-cutlery:before { + content: "\f0f5"; +} +.uk-icon-file-text-o:before { + content: "\f0f6"; +} +.uk-icon-building-o:before { + content: "\f0f7"; +} +.uk-icon-hospital-o:before { + content: "\f0f8"; +} +.uk-icon-ambulance:before { + content: "\f0f9"; +} +.uk-icon-medkit:before { + content: "\f0fa"; +} +.uk-icon-fighter-jet:before { + content: "\f0fb"; +} +.uk-icon-beer:before { + content: "\f0fc"; +} +.uk-icon-h-square:before { + content: "\f0fd"; +} +.uk-icon-plus-square:before { + content: "\f0fe"; +} +.uk-icon-angle-double-left:before { + content: "\f100"; +} +.uk-icon-angle-double-right:before { + content: "\f101"; +} +.uk-icon-angle-double-up:before { + content: "\f102"; +} +.uk-icon-angle-double-down:before { + content: "\f103"; +} +.uk-icon-angle-left:before { + content: "\f104"; +} +.uk-icon-angle-right:before { + content: "\f105"; +} +.uk-icon-angle-up:before { + content: "\f106"; +} +.uk-icon-angle-down:before { + content: "\f107"; +} +.uk-icon-desktop:before { + content: "\f108"; +} +.uk-icon-laptop:before { + content: "\f109"; +} +.uk-icon-tablet:before { + content: "\f10a"; +} +.uk-icon-mobile-phone:before, +.uk-icon-mobile:before { + content: "\f10b"; +} +.uk-icon-circle-o:before { + content: "\f10c"; +} +.uk-icon-quote-left:before { + content: "\f10d"; +} +.uk-icon-quote-right:before { + content: "\f10e"; +} +.uk-icon-spinner:before { + content: "\f110"; +} +.uk-icon-circle:before { + content: "\f111"; +} +.uk-icon-mail-reply:before, +.uk-icon-reply:before { + content: "\f112"; +} +.uk-icon-github-alt:before { + content: "\f113"; +} +.uk-icon-folder-o:before { + content: "\f114"; +} +.uk-icon-folder-open-o:before { + content: "\f115"; +} +.uk-icon-smile-o:before { + content: "\f118"; +} +.uk-icon-frown-o:before { + content: "\f119"; +} +.uk-icon-meh-o:before { + content: "\f11a"; +} +.uk-icon-gamepad:before { + content: "\f11b"; +} +.uk-icon-keyboard-o:before { + content: "\f11c"; +} +.uk-icon-flag-o:before { + content: "\f11d"; +} +.uk-icon-flag-checkered:before { + content: "\f11e"; +} +.uk-icon-terminal:before { + content: "\f120"; +} +.uk-icon-code:before { + content: "\f121"; +} +.uk-icon-mail-reply-all:before, +.uk-icon-reply-all:before { + content: "\f122"; +} +.uk-icon-star-half-empty:before, +.uk-icon-star-half-full:before, +.uk-icon-star-half-o:before { + content: "\f123"; +} +.uk-icon-location-arrow:before { + content: "\f124"; +} +.uk-icon-crop:before { + content: "\f125"; +} +.uk-icon-code-fork:before { + content: "\f126"; +} +.uk-icon-unlink:before, +.uk-icon-chain-broken:before { + content: "\f127"; +} +.uk-icon-question:before { + content: "\f128"; +} +.uk-icon-info:before { + content: "\f129"; +} +.uk-icon-exclamation:before { + content: "\f12a"; +} +.uk-icon-superscript:before { + content: "\f12b"; +} +.uk-icon-subscript:before { + content: "\f12c"; +} +.uk-icon-eraser:before { + content: "\f12d"; +} +.uk-icon-puzzle-piece:before { + content: "\f12e"; +} +.uk-icon-microphone:before { + content: "\f130"; +} +.uk-icon-microphone-slash:before { + content: "\f131"; +} +.uk-icon-shield:before { + content: "\f132"; +} +.uk-icon-calendar-o:before { + content: "\f133"; +} +.uk-icon-fire-extinguisher:before { + content: "\f134"; +} +.uk-icon-rocket:before { + content: "\f135"; +} +.uk-icon-maxcdn:before { + content: "\f136"; +} +.uk-icon-chevron-circle-left:before { + content: "\f137"; +} +.uk-icon-chevron-circle-right:before { + content: "\f138"; +} +.uk-icon-chevron-circle-up:before { + content: "\f139"; +} +.uk-icon-chevron-circle-down:before { + content: "\f13a"; +} +.uk-icon-html5:before { + content: "\f13b"; +} +.uk-icon-css3:before { + content: "\f13c"; +} +.uk-icon-anchor:before { + content: "\f13d"; +} +.uk-icon-unlock-alt:before { + content: "\f13e"; +} +.uk-icon-bullseye:before { + content: "\f140"; +} +.uk-icon-ellipsis-h:before { + content: "\f141"; +} +.uk-icon-ellipsis-v:before { + content: "\f142"; +} +.uk-icon-rss-square:before { + content: "\f143"; +} +.uk-icon-play-circle:before { + content: "\f144"; +} +.uk-icon-ticket:before { + content: "\f145"; +} +.uk-icon-minus-square:before { + content: "\f146"; +} +.uk-icon-minus-square-o:before { + content: "\f147"; +} +.uk-icon-level-up:before { + content: "\f148"; +} +.uk-icon-level-down:before { + content: "\f149"; +} +.uk-icon-check-square:before { + content: "\f14a"; +} +.uk-icon-pencil-square:before { + content: "\f14b"; +} +.uk-icon-external-link-square:before { + content: "\f14c"; +} +.uk-icon-share-square:before { + content: "\f14d"; +} +.uk-icon-compass:before { + content: "\f14e"; +} +.uk-icon-toggle-down:before, +.uk-icon-caret-square-o-down:before { + content: "\f150"; +} +.uk-icon-toggle-up:before, +.uk-icon-caret-square-o-up:before { + content: "\f151"; +} +.uk-icon-toggle-right:before, +.uk-icon-caret-square-o-right:before { + content: "\f152"; +} +.uk-icon-euro:before, +.uk-icon-eur:before { + content: "\f153"; +} +.uk-icon-gbp:before { + content: "\f154"; +} +.uk-icon-dollar:before, +.uk-icon-usd:before { + content: "\f155"; +} +.uk-icon-rupee:before, +.uk-icon-inr:before { + content: "\f156"; +} +.uk-icon-cny:before, +.uk-icon-rmb:before, +.uk-icon-yen:before, +.uk-icon-jpy:before { + content: "\f157"; +} +.uk-icon-ruble:before, +.uk-icon-rouble:before, +.uk-icon-rub:before { + content: "\f158"; +} +.uk-icon-won:before, +.uk-icon-krw:before { + content: "\f159"; +} +.uk-icon-bitcoin:before, +.uk-icon-btc:before { + content: "\f15a"; +} +.uk-icon-file:before { + content: "\f15b"; +} +.uk-icon-file-text:before { + content: "\f15c"; +} +.uk-icon-sort-alpha-asc:before { + content: "\f15d"; +} +.uk-icon-sort-alpha-desc:before { + content: "\f15e"; +} +.uk-icon-sort-amount-asc:before { + content: "\f160"; +} +.uk-icon-sort-amount-desc:before { + content: "\f161"; +} +.uk-icon-sort-numeric-asc:before { + content: "\f162"; +} +.uk-icon-sort-numeric-desc:before { + content: "\f163"; +} +.uk-icon-thumbs-up:before { + content: "\f164"; +} +.uk-icon-thumbs-down:before { + content: "\f165"; +} +.uk-icon-youtube-square:before { + content: "\f166"; +} +.uk-icon-youtube:before { + content: "\f167"; +} +.uk-icon-xing:before { + content: "\f168"; +} +.uk-icon-xing-square:before { + content: "\f169"; +} +.uk-icon-youtube-play:before { + content: "\f16a"; +} +.uk-icon-dropbox:before { + content: "\f16b"; +} +.uk-icon-stack-overflow:before { + content: "\f16c"; +} +.uk-icon-instagram:before { + content: "\f16d"; +} +.uk-icon-flickr:before { + content: "\f16e"; +} +.uk-icon-adn:before { + content: "\f170"; +} +.uk-icon-bitbucket:before { + content: "\f171"; +} +.uk-icon-bitbucket-square:before { + content: "\f172"; +} +.uk-icon-tumblr:before { + content: "\f173"; +} +.uk-icon-tumblr-square:before { + content: "\f174"; +} +.uk-icon-long-arrow-down:before { + content: "\f175"; +} +.uk-icon-long-arrow-up:before { + content: "\f176"; +} +.uk-icon-long-arrow-left:before { + content: "\f177"; +} +.uk-icon-long-arrow-right:before { + content: "\f178"; +} +.uk-icon-apple:before { + content: "\f179"; +} +.uk-icon-windows:before { + content: "\f17a"; +} +.uk-icon-android:before { + content: "\f17b"; +} +.uk-icon-linux:before { + content: "\f17c"; +} +.uk-icon-dribbble:before { + content: "\f17d"; +} +.uk-icon-skype:before { + content: "\f17e"; +} +.uk-icon-foursquare:before { + content: "\f180"; +} +.uk-icon-trello:before { + content: "\f181"; +} +.uk-icon-female:before { + content: "\f182"; +} +.uk-icon-male:before { + content: "\f183"; +} +.uk-icon-gittip:before, +.uk-icon-gratipay:before { + content: "\f184"; +} +.uk-icon-sun-o:before { + content: "\f185"; +} +.uk-icon-moon-o:before { + content: "\f186"; +} +.uk-icon-archive:before { + content: "\f187"; +} +.uk-icon-bug:before { + content: "\f188"; +} +.uk-icon-vk:before { + content: "\f189"; +} +.uk-icon-weibo:before { + content: "\f18a"; +} +.uk-icon-renren:before { + content: "\f18b"; +} +.uk-icon-pagelines:before { + content: "\f18c"; +} +.uk-icon-stack-exchange:before { + content: "\f18d"; +} +.uk-icon-arrow-circle-o-right:before { + content: "\f18e"; +} +.uk-icon-arrow-circle-o-left:before { + content: "\f190"; +} +.uk-icon-toggle-left:before, +.uk-icon-caret-square-o-left:before { + content: "\f191"; +} +.uk-icon-dot-circle-o:before { + content: "\f192"; +} +.uk-icon-wheelchair:before { + content: "\f193"; +} +.uk-icon-vimeo-square:before { + content: "\f194"; +} +.uk-icon-turkish-lira:before, +.uk-icon-try:before { + content: "\f195"; +} +.uk-icon-plus-square-o:before { + content: "\f196"; +} +.uk-icon-space-shuttle:before { + content: "\f197"; +} +.uk-icon-slack:before { + content: "\f198"; +} +.uk-icon-envelope-square:before { + content: "\f199"; +} +.uk-icon-wordpress:before { + content: "\f19a"; +} +.uk-icon-openid:before { + content: "\f19b"; +} +.uk-icon-institution:before, +.uk-icon-bank:before, +.uk-icon-university:before { + content: "\f19c"; +} +.uk-icon-mortar-board:before, +.uk-icon-graduation-cap:before { + content: "\f19d"; +} +.uk-icon-yahoo:before { + content: "\f19e"; +} +.uk-icon-google:before { + content: "\f1a0"; +} +.uk-icon-reddit:before { + content: "\f1a1"; +} +.uk-icon-reddit-square:before { + content: "\f1a2"; +} +.uk-icon-stumbleupon-circle:before { + content: "\f1a3"; +} +.uk-icon-stumbleupon:before { + content: "\f1a4"; +} +.uk-icon-delicious:before { + content: "\f1a5"; +} +.uk-icon-digg:before { + content: "\f1a6"; +} +.uk-icon-pied-piper:before { + content: "\f1a7"; +} +.uk-icon-pied-piper-alt:before { + content: "\f1a8"; +} +.uk-icon-drupal:before { + content: "\f1a9"; +} +.uk-icon-joomla:before { + content: "\f1aa"; +} +.uk-icon-language:before { + content: "\f1ab"; +} +.uk-icon-fax:before { + content: "\f1ac"; +} +.uk-icon-building:before { + content: "\f1ad"; +} +.uk-icon-child:before { + content: "\f1ae"; +} +.uk-icon-paw:before { + content: "\f1b0"; +} +.uk-icon-spoon:before { + content: "\f1b1"; +} +.uk-icon-cube:before { + content: "\f1b2"; +} +.uk-icon-cubes:before { + content: "\f1b3"; +} +.uk-icon-behance:before { + content: "\f1b4"; +} +.uk-icon-behance-square:before { + content: "\f1b5"; +} +.uk-icon-steam:before { + content: "\f1b6"; +} +.uk-icon-steam-square:before { + content: "\f1b7"; +} +.uk-icon-recycle:before { + content: "\f1b8"; +} +.uk-icon-automobile:before, +.uk-icon-car:before { + content: "\f1b9"; +} +.uk-icon-cab:before, +.uk-icon-taxi:before { + content: "\f1ba"; +} +.uk-icon-tree:before { + content: "\f1bb"; +} +.uk-icon-spotify:before { + content: "\f1bc"; +} +.uk-icon-deviantart:before { + content: "\f1bd"; +} +.uk-icon-soundcloud:before { + content: "\f1be"; +} +.uk-icon-database:before { + content: "\f1c0"; +} +.uk-icon-file-pdf-o:before { + content: "\f1c1"; +} +.uk-icon-file-word-o:before { + content: "\f1c2"; +} +.uk-icon-file-excel-o:before { + content: "\f1c3"; +} +.uk-icon-file-powerpoint-o:before { + content: "\f1c4"; +} +.uk-icon-file-photo-o:before, +.uk-icon-file-picture-o:before, +.uk-icon-file-image-o:before { + content: "\f1c5"; +} +.uk-icon-file-zip-o:before, +.uk-icon-file-archive-o:before { + content: "\f1c6"; +} +.uk-icon-file-sound-o:before, +.uk-icon-file-audio-o:before { + content: "\f1c7"; +} +.uk-icon-file-movie-o:before, +.uk-icon-file-video-o:before { + content: "\f1c8"; +} +.uk-icon-file-code-o:before { + content: "\f1c9"; +} +.uk-icon-vine:before { + content: "\f1ca"; +} +.uk-icon-codepen:before { + content: "\f1cb"; +} +.uk-icon-jsfiddle:before { + content: "\f1cc"; +} +.uk-icon-life-bouy:before, +.uk-icon-life-buoy:before, +.uk-icon-life-saver:before, +.uk-icon-support:before, +.uk-icon-life-ring:before { + content: "\f1cd"; +} +.uk-icon-circle-o-notch:before { + content: "\f1ce"; +} +.uk-icon-ra:before, +.uk-icon-rebel:before { + content: "\f1d0"; +} +.uk-icon-ge:before, +.uk-icon-empire:before { + content: "\f1d1"; +} +.uk-icon-git-square:before { + content: "\f1d2"; +} +.uk-icon-git:before { + content: "\f1d3"; +} +.uk-icon-hacker-news:before { + content: "\f1d4"; +} +.uk-icon-tencent-weibo:before { + content: "\f1d5"; +} +.uk-icon-qq:before { + content: "\f1d6"; +} +.uk-icon-wechat:before, +.uk-icon-weixin:before { + content: "\f1d7"; +} +.uk-icon-send:before, +.uk-icon-paper-plane:before { + content: "\f1d8"; +} +.uk-icon-send-o:before, +.uk-icon-paper-plane-o:before { + content: "\f1d9"; +} +.uk-icon-history:before { + content: "\f1da"; +} +.uk-icon-genderless:before, +.uk-icon-circle-thin:before { + content: "\f1db"; +} +.uk-icon-header:before { + content: "\f1dc"; +} +.uk-icon-paragraph:before { + content: "\f1dd"; +} +.uk-icon-sliders:before { + content: "\f1de"; +} +.uk-icon-share-alt:before { + content: "\f1e0"; +} +.uk-icon-share-alt-square:before { + content: "\f1e1"; +} +.uk-icon-bomb:before { + content: "\f1e2"; +} +.uk-icon-soccer-ball-o:before, +.uk-icon-futbol-o:before { + content: "\f1e3"; +} +.uk-icon-tty:before { + content: "\f1e4"; +} +.uk-icon-binoculars:before { + content: "\f1e5"; +} +.uk-icon-plug:before { + content: "\f1e6"; +} +.uk-icon-slideshare:before { + content: "\f1e7"; +} +.uk-icon-twitch:before { + content: "\f1e8"; +} +.uk-icon-yelp:before { + content: "\f1e9"; +} +.uk-icon-newspaper-o:before { + content: "\f1ea"; +} +.uk-icon-wifi:before { + content: "\f1eb"; +} +.uk-icon-calculator:before { + content: "\f1ec"; +} +.uk-icon-paypal:before { + content: "\f1ed"; +} +.uk-icon-google-wallet:before { + content: "\f1ee"; +} +.uk-icon-cc-visa:before { + content: "\f1f0"; +} +.uk-icon-cc-mastercard:before { + content: "\f1f1"; +} +.uk-icon-cc-discover:before { + content: "\f1f2"; +} +.uk-icon-cc-amex:before { + content: "\f1f3"; +} +.uk-icon-cc-paypal:before { + content: "\f1f4"; +} +.uk-icon-cc-stripe:before { + content: "\f1f5"; +} +.uk-icon-bell-slash:before { + content: "\f1f6"; +} +.uk-icon-bell-slash-o:before { + content: "\f1f7"; +} +.uk-icon-trash:before { + content: "\f1f8"; +} +.uk-icon-copyright:before { + content: "\f1f9"; +} +.uk-icon-at:before { + content: "\f1fa"; +} +.uk-icon-eyedropper:before { + content: "\f1fb"; +} +.uk-icon-paint-brush:before { + content: "\f1fc"; +} +.uk-icon-birthday-cake:before { + content: "\f1fd"; +} +.uk-icon-area-chart:before { + content: "\f1fe"; +} +.uk-icon-pie-chart:before { + content: "\f200"; +} +.uk-icon-line-chart:before { + content: "\f201"; +} +.uk-icon-lastfm:before { + content: "\f202"; +} +.uk-icon-lastfm-square:before { + content: "\f203"; +} +.uk-icon-toggle-off:before { + content: "\f204"; +} +.uk-icon-toggle-on:before { + content: "\f205"; +} +.uk-icon-bicycle:before { + content: "\f206"; +} +.uk-icon-bus:before { + content: "\f207"; +} +.uk-icon-ioxhost:before { + content: "\f208"; +} +.uk-icon-angellist:before { + content: "\f209"; +} +.uk-icon-cc:before { + content: "\f20a"; +} +.uk-icon-shekel:before, +.uk-icon-sheqel:before, +.uk-icon-ils:before { + content: "\f20b"; +} +.uk-icon-meanpath:before { + content: "\f20c"; +} +.uk-icon-buysellads:before { + content: "\f20d"; +} +.uk-icon-connectdevelop:before { + content: "\f20e"; +} +.uk-icon-dashcube:before { + content: "\f210"; +} +.uk-icon-forumbee:before { + content: "\f211"; +} +.uk-icon-leanpub:before { + content: "\f212"; +} +.uk-icon-sellsy:before { + content: "\f213"; +} +.uk-icon-shirtsinbulk:before { + content: "\f214"; +} +.uk-icon-simplybuilt:before { + content: "\f215"; +} +.uk-icon-skyatlas:before { + content: "\f216"; +} +.uk-icon-cart-plus:before { + content: "\f217"; +} +.uk-icon-cart-arrow-down:before { + content: "\f218"; +} +.uk-icon-diamond:before { + content: "\f219"; +} +.uk-icon-ship:before { + content: "\f21a"; +} +.uk-icon-user-secret:before { + content: "\f21b"; +} +.uk-icon-motorcycle:before { + content: "\f21c"; +} +.uk-icon-street-view:before { + content: "\f21d"; +} +.uk-icon-heartbeat:before { + content: "\f21e"; +} +.uk-icon-venus:before { + content: "\f221"; +} +.uk-icon-mars:before { + content: "\f222"; +} +.uk-icon-mercury:before { + content: "\f223"; +} +.uk-icon-transgender:before { + content: "\f224"; +} +.uk-icon-transgender-alt:before { + content: "\f225"; +} +.uk-icon-venus-double:before { + content: "\f226"; +} +.uk-icon-mars-double:before { + content: "\f227"; +} +.uk-icon-venus-mars:before { + content: "\f228"; +} +.uk-icon-mars-stroke:before { + content: "\f229"; +} +.uk-icon-mars-stroke-v:before { + content: "\f22a"; +} +.uk-icon-mars-stroke-h:before { + content: "\f22b"; +} +.uk-icon-neuter:before { + content: "\f22c"; +} +.uk-icon-facebook-official:before { + content: "\f230"; +} +.uk-icon-pinterest-p:before { + content: "\f231"; +} +.uk-icon-whatsapp:before { + content: "\f232"; +} +.uk-icon-server:before { + content: "\f233"; +} +.uk-icon-user-plus:before { + content: "\f234"; +} +.uk-icon-user-times:before { + content: "\f235"; +} +.uk-icon-hotel:before, +.uk-icon-bed:before { + content: "\f236"; +} +.uk-icon-viacoin:before { + content: "\f237"; +} +.uk-icon-train:before { + content: "\f238"; +} +.uk-icon-subway:before { + content: "\f239"; +} +.uk-icon-medium-logo:before { + content: "\f23a"; +} +.uk-icon-500px:before { + content: "\f26e"; +} +.uk-icon-amazon:before { + content: "\f270"; +} +.uk-icon-balance-scale:before { + content: "\f24e"; +} +.uk-icon-battery-empty:before, +.uk-icon-battery-0:before { + content: "\f244"; +} +.uk-icon-battery-quarter:before, +.uk-icon-battery-1:before { + content: "\f243"; +} +.uk-icon-battery-half:before, +.uk-icon-battery-2:before { + content: "\f242"; +} +.uk-icon-battery-three-quarters:before, +.uk-icon-battery-3:before { + content: "\f241"; +} +.uk-icon-battery-full:before, +.uk-icon-battery-4:before { + content: "\f240"; +} +.uk-icon-black-tie:before { + content: "\f27e"; +} +.uk-icon-calendar-check-o:before { + content: "\f274"; +} +.uk-icon-calendar-minus-o:before { + content: "\f272"; +} +.uk-icon-calendar-plus-o:before { + content: "\f271"; +} +.uk-icon-calendar-times-o:before { + content: "\f273"; +} +.uk-icon-cc-diners-club:before { + content: "\f24c"; +} +.uk-icon-cc-jcb:before { + content: "\f24b"; +} +.uk-icon-chrome:before { + content: "\f268"; +} +.uk-icon-clone:before { + content: "\f24d"; +} +.uk-icon-commenting:before { + content: "\f27a"; +} +.uk-icon-commenting-o:before { + content: "\f27b"; +} +.uk-icon-contao:before { + content: "\f26d"; +} +.uk-icon-creative-commons:before { + content: "\f25e"; +} +.uk-icon-expeditedssl:before { + content: "\f23e"; +} +.uk-icon-firefox:before { + content: "\f269"; +} +.uk-icon-fonticons:before { + content: "\f280"; +} +.uk-icon-get-pocket:before { + content: "\f265"; +} +.uk-icon-gg:before { + content: "\f260"; +} +.uk-icon-gg-circle:before { + content: "\f261"; +} +.uk-icon-hand-lizard-o:before { + content: "\f258"; +} +.uk-icon-hand-stop-o:before, +.uk-icon-hand-paper-o:before { + content: "\f256"; +} +.uk-icon-hand-peace-o:before { + content: "\f25b"; +} +.uk-icon-hand-pointer-o:before { + content: "\f25a"; +} +.uk-icon-hand-grab-o:before, +.uk-icon-hand-rock-o:before { + content: "\f255"; +} +.uk-icon-hand-scissors-o:before { + content: "\f257"; +} +.uk-icon-hand-spock-o:before { + content: "\f259"; +} +.uk-icon-hourglass:before { + content: "\f254"; +} +.uk-icon-hourglass-o:before { + content: "\f250"; +} +.uk-icon-hourglass-1:before, +.uk-icon-hourglass-start:before { + content: "\f251"; +} +.uk-icon-hourglass-2:before, +.uk-icon-hourglass-half:before { + content: "\f252"; +} +.uk-icon-hourglass-3:before, +.uk-icon-hourglass-end:before { + content: "\f253"; +} +.uk-icon-houzz:before { + content: "\f27c"; +} +.uk-icon-i-cursor:before { + content: "\f246"; +} +.uk-icon-industry:before { + content: "\f275"; +} +.uk-icon-internet-explorer:before { + content: "\f26b"; +} +.uk-icon-map:before { + content: "\f279"; +} +.uk-icon-map-o:before { + content: "\f278"; +} +.uk-icon-map-pin:before { + content: "\f276"; +} +.uk-icon-map-signs:before { + content: "\f277"; +} +.uk-icon-mouse-pointer:before { + content: "\f245"; +} +.uk-icon-object-group:before { + content: "\f247"; +} +.uk-icon-object-ungroup:before { + content: "\f248"; +} +.uk-icon-odnoklassniki:before { + content: "\f263"; +} +.uk-icon-odnoklassniki-square:before { + content: "\f264"; +} +.uk-icon-opencart:before { + content: "\f23d"; +} +.uk-icon-opera:before { + content: "\f26a"; +} +.uk-icon-optin-monster:before { + content: "\f23c"; +} +.uk-icon-registered:before { + content: "\f25d"; +} +.uk-icon-safari:before { + content: "\f267"; +} +.uk-icon-sticky-note:before { + content: "\f249"; +} +.uk-icon-sticky-note-o:before { + content: "\f24a"; +} +.uk-icon-tv:before, +.uk-icon-television:before { + content: "\f26c"; +} +.uk-icon-trademark:before { + content: "\f25c"; +} +.uk-icon-tripadvisor:before { + content: "\f262"; +} +.uk-icon-vimeo:before { + content: "\f27d"; +} +.uk-icon-wikipedia-w:before { + content: "\f266"; +} +.uk-icon-yc:before, +.uk-icon-y-combinator:before { + content: "\f23b"; +} +.uk-icon-yc-square:before, +.uk-icon-y-combinator-square:before { + content: "\f1d4"; +} +.uk-icon-bluetooth:before { + content: "\f293"; +} +.uk-icon-bluetooth-b:before { + content: "\f294"; +} +.uk-icon-codiepie:before { + content: "\f284"; +} +.uk-icon-credit-card-alt:before { + content: "\f283"; +} +.uk-icon-edge:before { + content: "\f282"; +} +.uk-icon-fort-awesome:before { + content: "\f286"; +} +.uk-icon-hashtag:before { + content: "\f292"; +} +.uk-icon-mixcloud:before { + content: "\f289"; +} +.uk-icon-modx:before { + content: "\f285"; +} +.uk-icon-pause-circle:before { + content: "\f28b"; +} +.uk-icon-pause-circle-o:before { + content: "\f28c"; +} +.uk-icon-percent:before { + content: "\f295"; +} +.uk-icon-product-hunt:before { + content: "\f288"; +} +.uk-icon-reddit-alien:before { + content: "\f281"; +} +.uk-icon-scribd:before { + content: "\f28a"; +} +.uk-icon-shopping-bag:before { + content: "\f290"; +} +.uk-icon-shopping-basket:before { + content: "\f291"; +} +.uk-icon-stop-circle:before { + content: "\f28d"; +} +.uk-icon-stop-circle-o:before { + content: "\f28e"; +} +.uk-icon-usb:before { + content: "\f287"; +} +.uk-icon-american-sign-language-interpreting:before, +.uk-icon-asl-interpreting:before { + content: "\f2a3"; +} +.uk-icon-assistive-listening-systems:before { + content: "\f2a2"; +} +.uk-icon-audio-description:before { + content: "\f29e"; +} +.uk-icon-blind:before { + content: "\f29d"; +} +.uk-icon-braille:before { + content: "\f2a1"; +} +.uk-icon-deaf:before, +.uk-icon-deafness:before { + content: "\f2a4"; +} +.uk-icon-envira:before { + content: "\f299"; +} +.uk-icon-font-awesome:before, +.uk-icon-fa:before { + content: "\f2b4"; +} +.uk-icon-first-order:before { + content: "\f2b0"; +} +.uk-icon-gitlab:before { + content: "\f296"; +} +.uk-icon-glide:before { + content: "\f2a5"; +} +.uk-icon-glide-g:before { + content: "\f2a6"; +} +.uk-icon-hard-of-hearing:before { + content: "\f2a4"; +} +.uk-icon-low-vision:before { + content: "\f2a8"; +} +.uk-icon-question-circle-o:before { + content: "\f29c"; +} +.uk-icon-sign-language:before, +.uk-icon-signing:before { + content: "\f2a7"; +} +.uk-icon-snapchat:before { + content: "\f2ab"; +} +.uk-icon-snapchat-ghost:before { + content: "\f2ac"; +} +.uk-icon-snapchat-square:before { + content: "\f2ad"; +} +.uk-icon-themeisle:before { + content: "\f2b2"; +} +.uk-icon-universal-access:before { + content: "\f29a"; +} +.uk-icon-viadeo:before { + content: "\f2a9"; +} +.uk-icon-viadeo-square:before { + content: "\f2aa"; +} +.uk-icon-volume-control-phone:before { + content: "\f2a0"; +} +.uk-icon-wheelchair-alt:before { + content: "\f29b"; +} +.uk-icon-wpbeginner:before { + content: "\f297"; +} +.uk-icon-wpforms:before { + content: "\f298"; +} +.uk-icon-yoast:before { + content: "\f2b1"; +} +.uk-icon-adress-book:before { + content: "\f2b9"; +} +.uk-icon-adress-book-o:before { + content: "\f2ba"; +} +.uk-icon-adress-card:before { + content: "\f2bb"; +} +.uk-icon-adress-card-o:before { + content: "\f2bc"; +} +.uk-icon-bandcamp:before { + content: "\f2d5"; +} +.uk-icon-bath:before { + content: "\f2cd"; +} +.uk-icon-bathub:before { + content: "\f2cd"; +} +.uk-icon-drivers-license:before { + content: "\f2c2"; +} +.uk-icon-drivers-license-o:before { + content: "\f2c3"; +} +.uk-icon-eercast:before { + content: "\f2da"; +} +.uk-icon-envelope-open:before { + content: "\f2b6"; +} +.uk-icon-envelope-open-o:before { + content: "\f2b7"; +} +.uk-icon-etsy:before { + content: "\f2d7"; +} +.uk-icon-free-code-camp:before { + content: "\f2c5"; +} +.uk-icon-grav:before { + content: "\f2d6"; +} +.uk-icon-handshake-o:before { + content: "\f2b5"; +} +.uk-icon-id-badge:before { + content: "\f2c1"; +} +.uk-icon-id-card:before { + content: "\f2c2"; +} +.uk-icon-id-card-o:before { + content: "\f2c3"; +} +.uk-icon-imdb:before { + content: "\f2d8"; +} +.uk-icon-linode:before { + content: "\f2b8"; +} +.uk-icon-meetup:before { + content: "\f2e0"; +} +.uk-icon-microchip:before { + content: "\f2db"; +} +.uk-icon-podcast:before { + content: "\f2ce"; +} +.uk-icon-quora:before { + content: "\f2c4"; +} +.uk-icon-ravelry:before { + content: "\f2d9"; +} +.uk-icon-s15:before { + content: "\f2cd"; +} +.uk-icon-shower:before { + content: "\f2cc"; +} +.uk-icon-snowflake-o:before { + content: "\f2dc"; +} +.uk-icon-superpowers:before { + content: "\f2dd"; +} +.uk-icon-telegram:before { + content: "\f2c6"; +} +.uk-icon-thermometer:before { + content: "\f2c7"; +} +.uk-icon-thermometer-0:before { + content: "\f2cb"; +} +.uk-icon-thermometer-1:before { + content: "\f2ca"; +} +.uk-icon-thermometer-2:before { + content: "\f2c9"; +} +.uk-icon-thermometer-3:before { + content: "\f2c8"; +} +.uk-icon-thermometer-4:before { + content: "\f2c7"; +} +.uk-icon-thermometer-empty:before { + content: "\f2cb"; +} +.uk-icon-thermometer-full:before { + content: "\f2c7"; +} +.uk-icon-thermometer-half:before { + content: "\f2c9"; +} +.uk-icon-thermometer-quarter:before { + content: "\f2ca"; +} +.uk-icon-thermometer-three-quarters:before { + content: "\f2c8"; +} +.uk-icon-times-rectangle:before { + content: "\f2d3"; +} +.uk-icon-times-rectangle-o:before { + content: "\f2d4"; +} +.uk-icon-user-circle:before { + content: "\f2bd"; +} +.uk-icon-user-circle-o:before { + content: "\f2be"; +} +.uk-icon-user-o:before { + content: "\f2c0"; +} +.uk-icon-vcard:before { + content: "\f2bb"; +} +.uk-icon-vcard-o:before { + content: "\f2bc"; +} +.uk-icon-widow-close:before { + content: "\f2d3"; +} +.uk-icon-widow-close-o:before { + content: "\f2d4"; +} +.uk-icon-window-maximize:before { + content: "\f2d0"; +} +.uk-icon-window-minimize:before { + content: "\f2d1"; +} +.uk-icon-window-restore:before { + content: "\f2d2"; +} +.uk-icon-wpexplorer:before { + content: "\f2de"; +} +/* ======================================================================== + Component: Close + ========================================================================== */ +/* + * Removes inner padding and border in Firefox 4+. + */ +.uk-close::-moz-focus-inner { + border: 0; + padding: 0; +} +/* + * 1. Correct inability to style clickable `input` types in iOS. + * 2. Remove margins in Chrome, Safari and Opera. + * 3. Remove borders for `button`. + * 4. Address `overflow` set to `hidden` in IE 8/9/10/11. + * 5. Correct `font` properties and `color` not being inherited for `button`. + * 6. Address inconsistent `text-transform` inheritance which is only inherit in Firefox and IE + * 7. Remove default `button` padding and background color + * 8. Style + */ +.uk-close { + /* 1 */ + -webkit-appearance: none; + /* 2 */ + margin: 0; + /* 3 */ + border: none; + /* 4 */ + overflow: visible; + /* 5 */ + font: inherit; + color: inherit; + /* 6 */ + text-transform: none; + /* 7. */ + padding: 0; + background: transparent; + /* 8 */ + display: inline-block; + box-sizing: content-box; + width: 20px; + line-height: 20px; + text-align: center; + vertical-align: middle; + opacity: 0.3; +} +/* Icon */ +.uk-close:after { + display: block; + content: "\f00d"; + font-family: FontAwesome; +} +/* + * Hover + * 1. Apply hover style also to focus state + * 2. Remove default focus style + * 3. Required for `a` elements + */ +.uk-close:hover, +.uk-close:focus { + opacity: 0.5; + /* 2 */ + outline: none; + /* 3 */ + color: inherit; + text-decoration: none; + cursor: pointer; +} +/* Modifier + ========================================================================== */ +.uk-close-alt { + padding: 2px; + border-radius: 50%; + background: #eee; + opacity: 1; +} +/* Hover */ +.uk-close-alt:hover, +.uk-close-alt:focus { + opacity: 1; +} +/* Icon */ +.uk-close-alt:after { + opacity: 0.5; +} +.uk-close-alt:hover:after, +.uk-close-alt:focus:after { + opacity: 0.8; +} +/* ======================================================================== + Component: Badge + ========================================================================== */ +.uk-badge { + display: inline-block; + padding: 0 5px; + background: #00a8e6; + font-size: 10px; + font-weight: bold; + line-height: 14px; + color: #fff; + text-align: center; + vertical-align: middle; + text-transform: none; +} +/* + * Keep color when badge is a link + */ +a.uk-badge:hover { + color: #fff; +} +/* Modifier: `uk-badge-notification`; + ========================================================================== */ +.uk-badge-notification { + box-sizing: border-box; + min-width: 18px; + border-radius: 500px; + font-size: 12px; + line-height: 18px; +} +/* Color modifier + ========================================================================== */ +/* + * Modifier: `uk-badge-success` + */ +.uk-badge-success { + background-color: #8cc14c; +} +/* + * Modifier: `uk-badge-warning` + */ +.uk-badge-warning { + background-color: #faa732; +} +/* + * Modifier: `uk-badge-danger` + */ +.uk-badge-danger { + background-color: #da314b; +} +/* ======================================================================== + Component: Alert + ========================================================================== */ +.uk-alert { + margin-bottom: 15px; + padding: 10px; + background: #ebf7fd; + color: #2d7091; +} +/* + * Add margin if adjacent element + */ +* + .uk-alert { + margin-top: 15px; +} +/* + * Remove margin from the last-child + */ +.uk-alert > :last-child { + margin-bottom: 0; +} +/* + * Keep color for headings if the default heading color is changed + */ +.uk-alert h1, +.uk-alert h2, +.uk-alert h3, +.uk-alert h4, +.uk-alert h5, +.uk-alert h6 { + color: inherit; +} +/* Close in alert + ========================================================================== */ +.uk-alert > .uk-close:first-child { + float: right; +} +/* + * Remove margin from adjacent element + */ +.uk-alert > .uk-close:first-child + * { + margin-top: 0; +} +/* Modifier: `uk-alert-success` + ========================================================================== */ +.uk-alert-success { + background: #f2fae3; + color: #659f13; +} +/* Modifier: `uk-alert-warning` + ========================================================================== */ +.uk-alert-warning { + background: #fffceb; + color: #e28327; +} +/* Modifier: `uk-alert-danger` + ========================================================================== */ +.uk-alert-danger { + background: #fff1f0; + color: #d85030; +} +/* Modifier: `uk-alert-large` + ========================================================================== */ +.uk-alert-large { + padding: 20px; +} +.uk-alert-large > .uk-close:first-child { + margin: -10px -10px 0 0; +} +/* ======================================================================== + Component: Thumbnail + ========================================================================== */ +/* + * 1. Container width fits its content + * 2. Responsive behavior + * 3. Corrects `max-width` behavior sed + * 4. Required for `figure` element + * 5. Style + */ +.uk-thumbnail { + /* 1 */ + display: inline-block; + /* 2 */ + max-width: 100%; + /* 3 */ + box-sizing: border-box; + /* 3 */ + margin: 0; + /* 4 */ + padding: 4px; + border: 1px solid #ddd; + background: #fff; +} +/* + * Hover state for `a` elements + * 1. Apply hover style also to focus state + * 2. Needed for caption + * 3. Remove default focus style + */ +a.uk-thumbnail:hover, +a.uk-thumbnail:focus { + border-color: #aaa; + background-color: #fff; + /* 2 */ + text-decoration: none; + /* 3 */ + outline: none; +} +/* Caption + ========================================================================== */ +.uk-thumbnail-caption { + padding-top: 4px; + text-align: center; + color: #444; +} +/* Sizes + ========================================================================== */ +.uk-thumbnail-mini { + width: 150px; +} +.uk-thumbnail-small { + width: 200px; +} +.uk-thumbnail-medium { + width: 300px; +} +.uk-thumbnail-large { + width: 400px; +} +.uk-thumbnail-expand, +.uk-thumbnail-expand > img { + width: 100%; +} +/* ======================================================================== + Component: Overlay + ========================================================================== */ +/* + * 1. Container width fits its content + * 2. Create position context + * 3. Set max-width for responsive images to prevent `inline-block` consequences + * 4. Remove the gap between the container and its child element + * 5. Needed for transitions and to fixed wrong scaling calculation for images in Chrome + * 6. Fixed `overflow: hidden` to be ignored with border-radius and CSS transforms in Webkit + * 7. Reset margin + */ +.uk-overlay { + /* 1 */ + display: inline-block; + /* 2 */ + position: relative; + /* 3 */ + max-width: 100%; + /* 4 */ + vertical-align: middle; + /* 5 */ + overflow: hidden; + /* 6 */ + -webkit-transform: translateZ(0); + /* 7 */ + margin: 0; +} +/* 6 for Safari */ +.uk-overlay.uk-border-circle { + -webkit-mask-image: -webkit-radial-gradient(circle, white 100%, black 100%); +} +/* + * Remove margin from content + */ +.uk-overlay > :first-child { + margin-bottom: 0; +} +/* Sub-object `uk-overlay-panel` + ========================================================================== */ +/* + * 1. Position cover + * 2. Style + */ +.uk-overlay-panel { + /* 1 */ + position: absolute; + top: 0; + bottom: 0; + left: 0; + right: 0; + /* 2 */ + padding: 20px; + color: #fff; +} +/* + * Remove margin from the last-child + */ +.uk-overlay-panel > :last-child, +.uk-overlay-panel.uk-flex > * > :last-child { + margin-bottom: 0; +} +/* + * Keep color for headings if the default heading color is changed + */ +.uk-overlay-panel h1, +.uk-overlay-panel h2, +.uk-overlay-panel h3, +.uk-overlay-panel h4, +.uk-overlay-panel h5, +.uk-overlay-panel h6 { + color: inherit; +} +.uk-overlay-panel a:not([class]) { + color: inherit; + text-decoration: underline; +} +.uk-overlay-panel a[class*='uk-icon-']:not(.uk-icon-button) { + color: inherit; +} +/* Sub-object `uk-overlay-hover` and `uk-overlay-active` + ========================================================================== */ +.uk-overlay-hover:not(:hover):not(.uk-hover) .uk-overlay-panel:not(.uk-ignore) { + opacity: 0; +} +.uk-overlay-active :not(.uk-active) > .uk-overlay-panel:not(.uk-ignore) { + opacity: 0; +} +/* Modifier `uk-overlay-background` + ========================================================================== */ +.uk-overlay-background { + background: rgba(0, 0, 0, 0.5); +} +/* Modifier `uk-overlay-image` + ========================================================================== */ +/* + * Reset panel + */ +.uk-overlay-image { + padding: 0; +} +/* Position modifiers + ========================================================================== */ +.uk-overlay-top { + bottom: auto; +} +.uk-overlay-bottom { + top: auto; +} +.uk-overlay-left { + right: auto; +} +.uk-overlay-right { + left: auto; +} +/* Sub-object `uk-overlay-icon` + ========================================================================== */ +.uk-overlay-icon:before { + content: "\f002"; + position: absolute; + top: 50%; + left: 50%; + width: 50px; + height: 50px; + margin-top: -25px; + margin-left: -25px; + font-size: 50px; + line-height: 1; + font-family: FontAwesome; + text-align: center; + color: #fff; +} +/* Transitions + ========================================================================== */ +.uk-overlay-fade, +.uk-overlay-scale, +.uk-overlay-spin, +.uk-overlay-grayscale, +.uk-overlay-blur, +[class*='uk-overlay-slide'] { + transition-duration: 0.3s; + transition-timing-function: ease-out; + transition-property: opacity, transform, filter; +} +.uk-overlay-active .uk-overlay-fade, +.uk-overlay-active .uk-overlay-scale, +.uk-overlay-active .uk-overlay-spin, +.uk-overlay-active [class*='uk-overlay-slide'] { + transition-duration: 0.8s; +} +/* + * Fade + */ +.uk-overlay-fade { + opacity: 0.7; +} +.uk-overlay-hover:hover .uk-overlay-fade, +.uk-overlay-hover.uk-hover .uk-overlay-fade, +.uk-overlay-active .uk-active > .uk-overlay-fade { + opacity: 1; +} +/* + * Scale + */ +.uk-overlay-scale { + -webkit-transform: scale(1); + transform: scale(1); +} +.uk-overlay-hover:hover .uk-overlay-scale, +.uk-overlay-hover.uk-hover .uk-overlay-scale, +.uk-overlay-active .uk-active > .uk-overlay-scale { + -webkit-transform: scale(1.1); + transform: scale(1.1); +} +/* + * Spin + */ +.uk-overlay-spin { + -webkit-transform: scale(1) rotate(0deg); + transform: scale(1) rotate(0deg); +} +.uk-overlay-hover:hover .uk-overlay-spin, +.uk-overlay-hover.uk-hover .uk-overlay-spin, +.uk-overlay-active .uk-active > .uk-overlay-spin { + -webkit-transform: scale(1.1) rotate(3deg); + transform: scale(1.1) rotate(3deg); +} +/* + * Grayscale + */ +.uk-overlay-grayscale { + -webkit-filter: grayscale(100%); + filter: grayscale(100%); +} +.uk-overlay-hover:hover .uk-overlay-grayscale, +.uk-overlay-hover.uk-hover .uk-overlay-grayscale, +.uk-overlay-active .uk-active > .uk-overlay-grayscale { + -webkit-filter: grayscale(0%); + filter: grayscale(0%); +} +/* + * Slide + */ +[class*='uk-overlay-slide'] { + opacity: 0; +} +/* Top */ +.uk-overlay-slide-top { + -webkit-transform: translateY(-100%); + transform: translateY(-100%); +} +/* Bottom */ +.uk-overlay-slide-bottom { + -webkit-transform: translateY(100%); + transform: translateY(100%); +} +/* Left */ +.uk-overlay-slide-left { + -webkit-transform: translateX(-100%); + transform: translateX(-100%); +} +/* Right */ +.uk-overlay-slide-right { + -webkit-transform: translateX(100%); + transform: translateX(100%); +} +/* Hover */ +.uk-overlay-hover:hover [class*='uk-overlay-slide'], +.uk-overlay-hover.uk-hover [class*='uk-overlay-slide'], +.uk-overlay-active .uk-active > [class*='uk-overlay-slide'] { + opacity: 1; + -webkit-transform: translateX(0) translateY(0); + transform: translateX(0) translateY(0); +} +/* DEPRECATED + * Sub-object `uk-overlay-area` + ========================================================================== */ +/* + * 1. Set position + * 2. Set style + * 3. Fade-in transition + */ +.uk-overlay-area { + /* 1 */ + position: absolute; + top: 0; + bottom: 0; + left: 0; + right: 0; + /* 2 */ + background: rgba(0, 0, 0, 0.3); + /* 3 */ + opacity: 0; + -webkit-transition: opacity 0.15s linear; + transition: opacity 0.15s linear; + -webkit-transform: translate3d(0, 0, 0); +} +/* + * Hover + * 1. `uk-hover` to support touch devices + * 2. Use optional `uk-overlay-toggle` to trigger the overlay earlier + */ +.uk-overlay:hover .uk-overlay-area, +.uk-overlay.uk-hover .uk-overlay-area, +.uk-overlay-toggle:hover .uk-overlay-area, +.uk-overlay-toggle.uk-hover .uk-overlay-area { + opacity: 1; +} +/* + * Icon + */ +.uk-overlay-area:empty:before { + content: "\f002"; + position: absolute; + top: 50%; + left: 50%; + width: 50px; + height: 50px; + margin-top: -25px; + margin-left: -25px; + font-size: 50px; + line-height: 1; + font-family: FontAwesome; + text-align: center; + color: #fff; +} +/* DEPRECATED + * Sub-object `uk-overlay-area-content` + ========================================================================== */ +/* + * Remove whitespace between child elements when using `inline-block` + * Needed for Firefox + */ +.uk-overlay-area:not(:empty) { + font-size: 0.001px; +} +/* + * 1. Needed for vertical alignment + */ +.uk-overlay-area:not(:empty):before { + content: ''; + display: inline-block; + height: 100%; + vertical-align: middle; +} +/* + * 1. Set vertical alignment + * 2. Reset whitespace hack + * 3. Set horizontal alignment + * 4. Set style + */ +.uk-overlay-area-content { + /* 1 */ + display: inline-block; + box-sizing: border-box; + width: 100%; + vertical-align: middle; + /* 2 */ + font-size: 1rem; + /* 3 */ + text-align: center; + /* 4 */ + padding: 0 15px; + color: #fff; +} +/* + * Remove margin from the last-child + */ +.uk-overlay-area-content > :last-child { + margin-bottom: 0; +} +/* + * Links in overlay area + */ +.uk-overlay-area-content a:not([class]), +.uk-overlay-area-content a:not([class]):hover { + color: inherit; +} +/* DEPRECATED + * Sub-object `uk-overlay-caption` + ========================================================================== */ +/* + * 1. Set position + * 2. Set style + * 3. Fade-in transition + */ +.uk-overlay-caption { + /* 1 */ + position: absolute; + bottom: 0; + left: 0; + right: 0; + /* 2 */ + padding: 15px; + background: rgba(0, 0, 0, 0.5); + color: #fff; + /* 3 */ + opacity: 0; + -webkit-transition: opacity 0.15s linear; + transition: opacity 0.15s linear; + -webkit-transform: translate3d(0, 0, 0); +} +/* + * Hover + * 1. `uk-hover` to support touch devices + * 2. Use optional `uk-overlay-toggle` to trigger the overlay earlier + */ +.uk-overlay:hover .uk-overlay-caption, +.uk-overlay.uk-hover .uk-overlay-caption, +.uk-overlay-toggle:hover .uk-overlay-caption, +.uk-overlay-toggle.uk-hover .uk-overlay-caption { + opacity: 1; +} +/* ======================================================================== + Component: Column + ========================================================================== */ +[class*='uk-column-'] { + -webkit-column-gap: 25px; + -moz-column-gap: 25px; + column-gap: 25px; +} +/* Width modifiers + ========================================================================== */ +.uk-column-1-2 { + -webkit-column-count: 2; + -moz-column-count: 2; + column-count: 2; +} +.uk-column-1-3 { + -webkit-column-count: 3; + -moz-column-count: 3; + column-count: 3; +} +.uk-column-1-4 { + -webkit-column-count: 4; + -moz-column-count: 4; + column-count: 4; +} +.uk-column-1-5 { + -webkit-column-count: 5; + -moz-column-count: 5; + column-count: 5; +} +.uk-column-1-6 { + -webkit-column-count: 6; + -moz-column-count: 6; + column-count: 6; +} +/* Phone landscape and bigger */ +@media (min-width: 480px) { + .uk-column-small-1-2 { + -webkit-column-count: 2; + -moz-column-count: 2; + column-count: 2; + } + .uk-column-small-1-3 { + -webkit-column-count: 3; + -moz-column-count: 3; + column-count: 3; + } + .uk-column-small-1-4 { + -webkit-column-count: 4; + -moz-column-count: 4; + column-count: 4; + } + .uk-column-small-1-5 { + -webkit-column-count: 5; + -moz-column-count: 5; + column-count: 5; + } + .uk-column-small-1-6 { + -webkit-column-count: 6; + -moz-column-count: 6; + column-count: 6; + } +} +/* Tablet and bigger */ +@media (min-width: 768px) { + .uk-column-medium-1-2 { + -webkit-column-count: 2; + -moz-column-count: 2; + column-count: 2; + } + .uk-column-medium-1-3 { + -webkit-column-count: 3; + -moz-column-count: 3; + column-count: 3; + } + .uk-column-medium-1-4 { + -webkit-column-count: 4; + -moz-column-count: 4; + column-count: 4; + } + .uk-column-medium-1-5 { + -webkit-column-count: 5; + -moz-column-count: 5; + column-count: 5; + } + .uk-column-medium-1-6 { + -webkit-column-count: 6; + -moz-column-count: 6; + column-count: 6; + } +} +/* Desktop and bigger */ +@media (min-width: 960px) { + .uk-column-large-1-2 { + -webkit-column-count: 2; + -moz-column-count: 2; + column-count: 2; + } + .uk-column-large-1-3 { + -webkit-column-count: 3; + -moz-column-count: 3; + column-count: 3; + } + .uk-column-large-1-4 { + -webkit-column-count: 4; + -moz-column-count: 4; + column-count: 4; + } + .uk-column-large-1-5 { + -webkit-column-count: 5; + -moz-column-count: 5; + column-count: 5; + } + .uk-column-large-1-6 { + -webkit-column-count: 6; + -moz-column-count: 6; + column-count: 6; + } +} +/* Large screen and bigger */ +@media (min-width: 1220px) { + .uk-column-xlarge-1-2 { + -webkit-column-count: 2; + -moz-column-count: 2; + column-count: 2; + } + .uk-column-xlarge-1-3 { + -webkit-column-count: 3; + -moz-column-count: 3; + column-count: 3; + } + .uk-column-xlarge-1-4 { + -webkit-column-count: 4; + -moz-column-count: 4; + column-count: 4; + } + .uk-column-xlarge-1-5 { + -webkit-column-count: 5; + -moz-column-count: 5; + column-count: 5; + } + .uk-column-xlarge-1-6 { + -webkit-column-count: 6; + -moz-column-count: 6; + column-count: 6; + } +} +/* ======================================================================== + Component: Animation + ========================================================================== */ +[class*='uk-animation-'] { + -webkit-animation-duration: 0.5s; + animation-duration: 0.5s; + -webkit-animation-timing-function: ease-out; + animation-timing-function: ease-out; + -webkit-animation-fill-mode: both; + animation-fill-mode: both; +} +/* Hide animated element if scrollspy is used */ +@media screen { + [data-uk-scrollspy*='uk-animation-']:not([data-uk-scrollspy*='target']) { + opacity: 0; + } +} +/* + * Fade + * Higher specificity (!important) needed because of reverse modifier + */ +.uk-animation-fade { + -webkit-animation-name: uk-fade; + animation-name: uk-fade; + -webkit-animation-duration: 0.8s; + animation-duration: 0.8s; + -webkit-animation-timing-function: linear !important; + animation-timing-function: linear !important; +} +/* + * Fade with scale + */ +.uk-animation-scale-up { + -webkit-animation-name: uk-fade-scale-02; + animation-name: uk-fade-scale-02; +} +.uk-animation-scale-down { + -webkit-animation-name: uk-fade-scale-18; + animation-name: uk-fade-scale-18; +} +/* + * Fade with slide + */ +.uk-animation-slide-top { + -webkit-animation-name: uk-fade-top; + animation-name: uk-fade-top; +} +.uk-animation-slide-bottom { + -webkit-animation-name: uk-fade-bottom; + animation-name: uk-fade-bottom; +} +.uk-animation-slide-left { + -webkit-animation-name: uk-fade-left; + animation-name: uk-fade-left; +} +.uk-animation-slide-right { + -webkit-animation-name: uk-fade-right; + animation-name: uk-fade-right; +} +/* + * Scale + */ +.uk-animation-scale { + -webkit-animation-name: uk-scale-12; + animation-name: uk-scale-12; +} +/* + * Shake + */ +.uk-animation-shake { + -webkit-animation-name: uk-shake; + animation-name: uk-shake; +} +/* Direction modifiers + ========================================================================== */ +.uk-animation-reverse { + -webkit-animation-direction: reverse; + animation-direction: reverse; + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in; +} +/* Duration modifiers +========================================================================== */ +.uk-animation-15 { + -webkit-animation-duration: 15s; + animation-duration: 15s; +} +/* Origin modifiers +========================================================================== */ +.uk-animation-top-left { + -webkit-transform-origin: 0 0; + transform-origin: 0 0; +} +.uk-animation-top-center { + -webkit-transform-origin: 50% 0; + transform-origin: 50% 0; +} +.uk-animation-top-right { + -webkit-transform-origin: 100% 0; + transform-origin: 100% 0; +} +.uk-animation-middle-left { + -webkit-transform-origin: 0 50%; + transform-origin: 0 50%; +} +.uk-animation-middle-right { + -webkit-transform-origin: 100% 50%; + transform-origin: 100% 50%; +} +.uk-animation-bottom-left { + -webkit-transform-origin: 0 100%; + transform-origin: 0 100%; +} +.uk-animation-bottom-center { + -webkit-transform-origin: 50% 100%; + transform-origin: 50% 100%; +} +.uk-animation-bottom-right { + -webkit-transform-origin: 100% 100%; + transform-origin: 100% 100%; +} +/* Sub-object: `uk-animation-hover` +========================================================================== */ +/* + * Enable animation only on hover + * Note: Firefox also needs this because animations are not triggered when switching between display `hidden` and `block` + */ +.uk-animation-hover:not(:hover), +.uk-animation-hover:not(:hover) [class*='uk-animation-'], +.uk-touch .uk-animation-hover:not(.uk-hover), +.uk-touch .uk-animation-hover:not(.uk-hover) [class*='uk-animation-'] { + -webkit-animation-name: none; + animation-name: none; +} +/* Keyframes: Fade + * Used by dropdown, datepicker and slideshow component + ========================================================================== */ +@-webkit-keyframes uk-fade { + 0% { + opacity: 0; + } + 100% { + opacity: 1; + } +} +@keyframes uk-fade { + 0% { + opacity: 0; + } + 100% { + opacity: 1; + } +} +/* Keyframes: Fade with slide + ========================================================================== */ +/* + * Top + */ +@-webkit-keyframes uk-fade-top { + 0% { + opacity: 0; + -webkit-transform: translateY(-100%); + } + 100% { + opacity: 1; + -webkit-transform: translateY(0); + } +} +@keyframes uk-fade-top { + 0% { + opacity: 0; + transform: translateY(-100%); + } + 100% { + opacity: 1; + transform: translateY(0); + } +} +/* + * Bottom + */ +@-webkit-keyframes uk-fade-bottom { + 0% { + opacity: 0; + -webkit-transform: translateY(100%); + } + 100% { + opacity: 1; + -webkit-transform: translateY(0); + } +} +@keyframes uk-fade-bottom { + 0% { + opacity: 0; + transform: translateY(100%); + } + 100% { + opacity: 1; + transform: translateY(0); + } +} +/* + * Left + */ +@-webkit-keyframes uk-fade-left { + 0% { + opacity: 0; + -webkit-transform: translateX(-100%); + } + 100% { + opacity: 1; + -webkit-transform: translateX(0); + } +} +@keyframes uk-fade-left { + 0% { + opacity: 0; + transform: translateX(-100%); + } + 100% { + opacity: 1; + transform: translateX(0); + } +} +/* + * Right + */ +@-webkit-keyframes uk-fade-right { + 0% { + opacity: 0; + -webkit-transform: translateX(100%); + } + 100% { + opacity: 1; + -webkit-transform: translateX(0); + } +} +@keyframes uk-fade-right { + 0% { + opacity: 0; + transform: translateX(100%); + } + 100% { + opacity: 1; + transform: translateX(0); + } +} +/* Keyframes: Fade with scale + ========================================================================== */ +/* + * Scale by 0.2 + */ +@-webkit-keyframes uk-fade-scale-02 { + 0% { + opacity: 0; + -webkit-transform: scale(0.2); + } + 100% { + opacity: 1; + -webkit-transform: scale(1); + } +} +@keyframes uk-fade-scale-02 { + 0% { + opacity: 0; + transform: scale(0.2); + } + 100% { + opacity: 1; + transform: scale(1); + } +} +/* + * Scale by 1.5 + * Used by slideshow component + */ +@-webkit-keyframes uk-fade-scale-15 { + 0% { + opacity: 0; + -webkit-transform: scale(1.5); + } + 100% { + opacity: 1; + -webkit-transform: scale(1); + } +} +@keyframes uk-fade-scale-15 { + 0% { + opacity: 0; + transform: scale(1.5); + } + 100% { + opacity: 1; + transform: scale(1); + } +} +/* + * Scale by 1.8 + */ +@-webkit-keyframes uk-fade-scale-18 { + 0% { + opacity: 0; + -webkit-transform: scale(1.8); + } + 100% { + opacity: 1; + -webkit-transform: scale(1); + } +} +@keyframes uk-fade-scale-18 { + 0% { + opacity: 0; + transform: scale(1.8); + } + 100% { + opacity: 1; + transform: scale(1); + } +} +/* Keyframes: Slide + * Used by slideshow component + ========================================================================== */ +/* + * Left + */ +@-webkit-keyframes uk-slide-left { + 0% { + -webkit-transform: translateX(-100%); + } + 100% { + -webkit-transform: translateX(0); + } +} +@keyframes uk-slide-left { + 0% { + transform: translateX(-100%); + } + 100% { + transform: translateX(0); + } +} +/* + * Right + */ +@-webkit-keyframes uk-slide-right { + 0% { + -webkit-transform: translateX(100%); + } + 100% { + -webkit-transform: translateX(0); + } +} +@keyframes uk-slide-right { + 0% { + transform: translateX(100%); + } + 100% { + transform: translateX(0); + } +} +/* + * Left third + */ +@-webkit-keyframes uk-slide-left-33 { + 0% { + -webkit-transform: translateX(33%); + } + 100% { + -webkit-transform: translateX(0); + } +} +@keyframes uk-slide-left-33 { + 0% { + transform: translateX(33%); + } + 100% { + transform: translateX(0); + } +} +/* + * Right third + */ +@-webkit-keyframes uk-slide-right-33 { + 0% { + -webkit-transform: translateX(-33%); + } + 100% { + -webkit-transform: translateX(0); + } +} +@keyframes uk-slide-right-33 { + 0% { + transform: translateX(-33%); + } + 100% { + transform: translateX(0); + } +} +/* Keyframes: Scale + ========================================================================== */ +@-webkit-keyframes uk-scale-12 { + 0% { + -webkit-transform: scale(1.2); + } + 100% { + -webkit-transform: scale(1); + } +} +@keyframes uk-scale-12 { + 0% { + transform: scale(1.2); + } + 100% { + transform: scale(1); + } +} +/* Keyframes: Rotate + * Used by icon component + ========================================================================== */ +@-webkit-keyframes uk-rotate { + 0% { + -webkit-transform: rotate(0deg); + } + 100% { + -webkit-transform: rotate(359deg); + } +} +@keyframes uk-rotate { + 0% { + transform: rotate(0deg); + } + 100% { + transform: rotate(359deg); + } +} +/* Keyframes: Shake + ========================================================================== */ +@-webkit-keyframes uk-shake { + 0%, + 100% { + -webkit-transform: translateX(0); + } + 10% { + -webkit-transform: translateX(-9px); + } + 20% { + -webkit-transform: translateX(8px); + } + 30% { + -webkit-transform: translateX(-7px); + } + 40% { + -webkit-transform: translateX(6px); + } + 50% { + -webkit-transform: translateX(-5px); + } + 60% { + -webkit-transform: translateX(4px); + } + 70% { + -webkit-transform: translateX(-3px); + } + 80% { + -webkit-transform: translateX(2px); + } + 90% { + -webkit-transform: translateX(-1px); + } +} +@keyframes uk-shake { + 0%, + 100% { + transform: translateX(0); + } + 10% { + transform: translateX(-9px); + } + 20% { + transform: translateX(8px); + } + 30% { + transform: translateX(-7px); + } + 40% { + transform: translateX(6px); + } + 50% { + transform: translateX(-5px); + } + 60% { + transform: translateX(4px); + } + 70% { + transform: translateX(-3px); + } + 80% { + transform: translateX(2px); + } + 90% { + transform: translateX(-1px); + } +} +/* Keyframes: Fade with slide fixed + * Used by dropdown and search component + ========================================================================== */ +/* + * Top fixed + */ +@-webkit-keyframes uk-slide-top-fixed { + 0% { + opacity: 0; + -webkit-transform: translateY(-10px); + } + 100% { + opacity: 1; + -webkit-transform: translateY(0); + } +} +@keyframes uk-slide-top-fixed { + 0% { + opacity: 0; + transform: translateY(-10px); + } + 100% { + opacity: 1; + transform: translateY(0); + } +} +/* + * Bottom fixed + */ +@-webkit-keyframes uk-slide-bottom-fixed { + 0% { + opacity: 0; + -webkit-transform: translateY(10px); + } + 100% { + opacity: 1; + -webkit-transform: translateY(0); + } +} +@keyframes uk-slide-bottom-fixed { + 0% { + opacity: 0; + transform: translateY(10px); + } + 100% { + opacity: 1; + transform: translateY(0); + } +} +/* ======================================================================== + Component: Dropdown + ========================================================================== */ +/* + * 1. Hide by default + * 2. Set position + * 3. Box-sizing is needed for `uk-dropdown-justify` + * 4. Set width + */ +.uk-dropdown, +.uk-dropdown-blank { + /* 1 */ + display: none; + /* 2 */ + position: absolute; + z-index: 970; + /* 3 */ + box-sizing: border-box; + /* 4 */ + width: 200px; +} +/* + * Dropdown style + * 1. Reset button group whitespace hack + */ +.uk-dropdown { + padding: 15px; + background: #f5f5f5; + color: #444; + /* 1 */ + font-size: 1rem; + vertical-align: top; +} +/* Focus */ +.uk-dropdown:focus { + outline: none; +} +/* + * 1. Show dropdown + * 2. Set animation + * 3. Needed for scale animation + */ +.uk-open > .uk-dropdown, +.uk-open > .uk-dropdown-blank { + /* 1 */ + display: block; + /* 2 */ + -webkit-animation: uk-fade 0.2s ease-in-out; + animation: uk-fade 0.2s ease-in-out; + /* 3 */ + -webkit-transform-origin: 0 0; + transform-origin: 0 0; +} +/* Alignment modifiers + ========================================================================== */ +/* + * Modifier + */ +.uk-dropdown-top { + margin-top: -5px; +} +.uk-dropdown-bottom { + margin-top: 5px; +} +.uk-dropdown-left { + margin-left: -5px; +} +.uk-dropdown-right { + margin-left: 5px; +} +/* Nav in dropdown + ========================================================================== */ +.uk-dropdown .uk-nav { + margin: 0 -15px; +} +/* Grid and panel in dropdown + ========================================================================== */ +/* +* Vertical gutter +*/ +/* + * Grid + * Higher specificity to override large gutter + */ +.uk-grid .uk-dropdown-grid + .uk-dropdown-grid { + margin-top: 15px; +} +/* Panels */ +.uk-dropdown-grid > [class*='uk-width-'] > .uk-panel + .uk-panel { + margin-top: 15px; +} +/* Tablet and bigger */ +@media (min-width: 768px) { + /* + * Horizontal gutter + */ + .uk-dropdown:not(.uk-dropdown-stack) > .uk-dropdown-grid { + margin-left: -15px; + margin-right: -15px; + } + .uk-dropdown:not(.uk-dropdown-stack) > .uk-dropdown-grid > [class*='uk-width-'] { + padding-left: 15px; + padding-right: 15px; + } + /* + * Column divider + */ + .uk-dropdown:not(.uk-dropdown-stack) > .uk-dropdown-grid > [class*='uk-width-']:nth-child(n+2) { + border-left: 1px solid #ddd; + } + /* + * Width multiplier for dropdown columns + */ + .uk-dropdown-width-2:not(.uk-dropdown-stack) { + width: 400px; + } + .uk-dropdown-width-3:not(.uk-dropdown-stack) { + width: 600px; + } + .uk-dropdown-width-4:not(.uk-dropdown-stack) { + width: 800px; + } + .uk-dropdown-width-5:not(.uk-dropdown-stack) { + width: 1000px; + } +} +/* Phone landscape and smaller */ +@media (max-width: 767px) { + /* + * Stack columns and take full width + */ + .uk-dropdown-grid > [class*='uk-width-'] { + width: 100%; + } + /* + * Vertical gutter + */ + .uk-dropdown-grid > [class*='uk-width-']:nth-child(n+2) { + margin-top: 15px; + } +} +/* +* Stack grid columns +*/ +.uk-dropdown-stack > .uk-dropdown-grid > [class*='uk-width-'] { + width: 100%; +} +.uk-dropdown-stack > .uk-dropdown-grid > [class*='uk-width-']:nth-child(n+2) { + margin-top: 15px; +} +/* Modifier `uk-dropdown-small` + ========================================================================== */ +/* + * Set min-width and text expands dropdown if needed + */ +.uk-dropdown-small { + min-width: 150px; + width: auto; + padding: 5px; + white-space: nowrap; +} +/* + * Nav in dropdown + */ +.uk-dropdown-small .uk-nav { + margin: 0 -5px; +} +/* Modifier: `uk-dropdown-navbar` + ========================================================================== */ +.uk-dropdown-navbar { + margin-top: 0; + background: #f5f5f5; + color: #444; +} +.uk-open > .uk-dropdown-navbar { + -webkit-animation: uk-slide-top-fixed 0.2s ease-in-out; + animation: uk-slide-top-fixed 0.2s ease-in-out; +} +/* Modifier `uk-dropdown-scrollable` + ========================================================================== */ +/* + * Usefull for long lists + */ +.uk-dropdown-scrollable { + overflow-y: auto; + max-height: 200px; +} +/* Sub-object: `uk-dropdown-overlay` + ========================================================================== */ +/* ======================================================================== + Component: Modal + ========================================================================== */ +/* + * This is the modal overlay and modal dialog container + * 1. Hide by default + * 2. Set fixed position + * 3. Allow scrolling for the modal dialog + * 4. Mask the background page + * 5. Fade-in transition + * 6. Deactivate browser history navigation in IE11 + * 7. force hardware acceleration to prevent browser rendering hiccups + */ +.uk-modal { + /* 1 */ + display: none; + /* 2 */ + position: fixed; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: 1010; + /* 3 */ + overflow-y: auto; + -webkit-overflow-scrolling: touch; + /* 4 */ + background: rgba(0, 0, 0, 0.6); + /* 5 */ + opacity: 0; + -webkit-transition: opacity 0.15s linear; + transition: opacity 0.15s linear; + /* 6 */ + touch-action: cross-slide-y pinch-zoom double-tap-zoom; + /* 7 */ + -webkit-transform: translateZ(0); + transform: translateZ(0); +} +/* + * Open state + */ +.uk-modal.uk-open { + opacity: 1; +} +/* + * Prevents duplicated scrollbar caused by 4. + */ +.uk-modal-page, +.uk-modal-page body { + overflow: hidden; +} +/* Sub-object: `uk-modal-dialog` + ========================================================================== */ +/* + * 1. Create position context for caption, spinner and close button + * 2. Set box sizing + * 3. Set style + * 4. Slide-in transition + */ +.uk-modal-dialog { + /* 1 */ + position: relative; + /* 2 */ + box-sizing: border-box; + margin: 50px auto; + padding: 20px; + width: 600px; + max-width: 100%; + max-width: calc(100% - 20px); + /* 3 */ + background: #fff; + /* 4 */ + opacity: 0; + -webkit-transform: translateY(-100px); + transform: translateY(-100px); + -webkit-transition: opacity 0.3s linear, -webkit-transform 0.3s ease-out; + transition: opacity 0.3s linear, transform 0.3s ease-out; +} +/* Phone landscape and smaller */ +@media (max-width: 767px) { + /* + * Fit in small screen + */ + .uk-modal-dialog { + width: auto; + margin: 10px auto; + } +} +/* + * Open state + */ +.uk-open .uk-modal-dialog { + /* 4 */ + opacity: 1; + -webkit-transform: translateY(0); + transform: translateY(0); +} +/* + * Remove margin from the last-child + */ +.uk-modal-dialog > :not([class*='uk-modal-']):last-child { + margin-bottom: 0; +} +/* Close in modal + ========================================================================== */ +.uk-modal-dialog > .uk-close:first-child { + margin: -10px -10px 0 0; + float: right; +} +/* + * Remove margin from adjacent element + */ +.uk-modal-dialog > .uk-close:first-child + :not([class*='uk-modal-']) { + margin-top: 0; +} +/* Modifier: `uk-modal-dialog-lightbox` + ========================================================================== */ +.uk-modal-dialog-lightbox { + margin: 15px auto; + padding: 0; + max-width: 95%; + max-width: calc(100% - 30px); + min-height: 50px; +} +/* + * Close button + */ +.uk-modal-dialog-lightbox > .uk-close:first-child { + position: absolute; + top: -12px; + right: -12px; + margin: 0; + float: none; +} +/* Phone landscape and smaller */ +@media (max-width: 767px) { + .uk-modal-dialog-lightbox > .uk-close:first-child { + top: -7px; + right: -7px; + } +} +/* Modifier: `uk-modal-dialog-blank` + ========================================================================== */ +.uk-modal-dialog-blank { + margin: 0; + padding: 0; + width: 100%; + max-width: 100%; + -webkit-transition: opacity 0.3s linear; + transition: opacity 0.3s linear; +} +/* +* Close button +*/ +.uk-modal-dialog-blank > .uk-close:first-child { + position: absolute; + top: 20px; + right: 20px; + z-index: 1; + margin: 0; + float: none; +} +/* Modifier: `uk-modal-dialog-large` + ========================================================================== */ +/* Tablet and bigger */ +@media (min-width: 768px) { + .uk-modal-dialog-large { + width: 930px; + } +} +/* Large screen and bigger */ +@media (min-width: 1220px) { + .uk-modal-dialog-large { + width: 1130px; + } +} +/* Sub-Object: `uk-modal-header` and `uk-modal-footer` + ========================================================================== */ +.uk-modal-header { + margin-bottom: 15px; +} +.uk-modal-footer { + margin-top: 15px; +} +/* + * Remove margin from the last-child + */ +.uk-modal-header > :last-child, +.uk-modal-footer > :last-child { + margin-bottom: 0; +} +/* Sub-Object: `uk-modal-caption` + ========================================================================== */ +.uk-modal-caption { + position: absolute; + left: 0; + right: 0; + bottom: -20px; + margin-bottom: -10px; + color: #fff; + text-align: center; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; +} +/* Sub-Object: `uk-modal-spinner` + ========================================================================== */ +.uk-modal-spinner { + position: absolute; + top: 50%; + left: 50%; + -webkit-transform: translate(-50%, -50%); + transform: translate(-50%, -50%); + font-size: 25px; + color: #ddd; +} +.uk-modal-spinner:after { + content: "\f110"; + display: block; + font-family: FontAwesome; + -webkit-animation: uk-rotate 2s infinite linear; + animation: uk-rotate 2s infinite linear; +} +/* ======================================================================== + Component: Off-canvas + ========================================================================== */ +/* + * This is the offcanvas overlay and bar container + * 1. Hide by default + * 2. Set fixed position + * 3. Deactivate browser touch actions in IE11 + * 4. Mask the background page + */ +.uk-offcanvas { + /* 1 */ + display: none; + /* 2 */ + position: fixed; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: 1000; + /* 3 */ + touch-action: none; + /* 4 */ + background: rgba(0, 0, 0, 0.1); +} +.uk-offcanvas.uk-active { + display: block; +} +/* Sub-object `uk-offcanvas-page` + ========================================================================== */ +/* + * Prepares the whole HTML page to slide-out + * 1. Fix the main page and disallow scrolling + * 2. Side-out transition + * 3. Needed for the transition to work instead of just letting it pop to the side + */ +.uk-offcanvas-page { + /* 1 */ + position: fixed; + /* 2 */ + -webkit-transition: margin-left 0.3s ease-in-out; + transition: margin-left 0.3s ease-in-out; + /* 3 */ + margin-left: 0; +} +/* Sub-object `uk-offcanvas-bar` + ========================================================================== */ +/* + * This is the offcanvas bar + * 1. Set fixed position + * 2. Size and style + * 3. Allow scrolling + * 4. Side-out transition + * 5. Deactivate scroll chaining in IE11 + */ +.uk-offcanvas-bar { + /* 1 */ + position: fixed; + top: 0; + bottom: 0; + left: 0; + -webkit-transform: translateX(-100%); + transform: translateX(-100%); + z-index: 1001; + /* 2 */ + width: 270px; + max-width: 100%; + background: #333; + /* 3 */ + overflow-y: auto; + -webkit-overflow-scrolling: touch; + /* 4 */ + -webkit-transition: -webkit-transform 0.3s ease-in-out; + transition: transform 0.3s ease-in-out; + /* 5 */ + -ms-scroll-chaining: none; +} +.uk-offcanvas.uk-active .uk-offcanvas-bar.uk-offcanvas-bar-show { + -webkit-transform: translateX(0%); + transform: translateX(0%); +} +/* Modifier `uk-offcanvas-bar-flip` + ========================================================================== */ +.uk-offcanvas-bar-flip { + left: auto; + right: 0; + -webkit-transform: translateX(100%); + transform: translateX(100%); +} +/* Offcanvase modes + ========================================================================== */ +.uk-offcanvas-bar[mode='none'] { + -webkit-transition: none; + transition: none; +} +.uk-offcanvas-bar[mode='reveal'] { + -webkit-transform: translateX(0%); + transform: translateX(0%); + clip: rect(0, 0, 100vh, 0); + -webkit-transition: -webkit-transform 0.3s ease-in-out, clip 0.3s ease-in-out; + transition: transform 0.3s ease-in-out, clip 0.3s ease-in-out; +} +.uk-offcanvas-bar-flip[mode='reveal'] { + clip: none; + -webkit-transform: translateX(100%); + transform: translateX(100%); +} +.uk-offcanvas-bar-flip[mode='reveal'] > * { + -webkit-transform: translateX(-100%); + transform: translateX(-100%); + -webkit-transition: -webkit-transform 0.3s ease-in-out; + transition: transform 0.3s ease-in-out; +} +.uk-offcanvas.uk-active .uk-offcanvas-bar-flip[mode='reveal'].uk-offcanvas-bar-show > * { + -webkit-transform: translateX(0%); + transform: translateX(0%); +} +/* Panel in offcanvas + ========================================================================== */ +.uk-offcanvas .uk-panel { + margin: 20px 15px; + color: #777; +} +.uk-offcanvas .uk-panel-title { + color: #ccc; +} +.uk-offcanvas .uk-panel a:not([class]) { + color: #ccc; +} +.uk-offcanvas .uk-panel a:not([class]):hover { + color: #fff; +} +/* ======================================================================== + Component: Switcher + ========================================================================== */ +/* + * 1. Deactivate browser history navigation in IE11 + */ +.uk-switcher { + margin: 0; + padding: 0; + list-style: none; + /* 1 */ + touch-action: cross-slide-y pinch-zoom double-tap-zoom; +} +/* + * Items + */ +.uk-switcher > :not(.uk-active) { + display: none; +} +/* ======================================================================== + Component: Text + ========================================================================== */ +/* Size modifiers + ========================================================================== */ +.uk-text-small { + font-size: 11px; + line-height: 16px; +} +.uk-text-large { + font-size: 18px; + line-height: 24px; + font-weight: normal; +} +/* Weight modifiers + ========================================================================== */ +.uk-text-bold { + font-weight: bold; +} +/* Color modifiers + ========================================================================== */ +.uk-text-muted { + color: #999 !important; +} +.uk-text-primary { + color: #2d7091 !important; +} +.uk-text-success { + color: #659f13 !important; +} +.uk-text-warning { + color: #e28327 !important; +} +.uk-text-danger { + color: #d85030 !important; +} +.uk-text-contrast { + color: #fff !important; +} +/* Alignment modifiers + ========================================================================== */ +.uk-text-left { + text-align: left !important; +} +.uk-text-right { + text-align: right !important; +} +.uk-text-center { + text-align: center !important; +} +.uk-text-justify { + text-align: justify !important; +} +.uk-text-top { + vertical-align: top !important; +} +.uk-text-middle { + vertical-align: middle !important; +} +.uk-text-bottom { + vertical-align: bottom !important; +} +/* Only tablets portrait and smaller */ +@media (max-width: 959px) { + .uk-text-center-medium { + text-align: center !important; + } + .uk-text-left-medium { + text-align: left !important; + } +} +/* Phone landscape and smaller */ +@media (max-width: 767px) { + .uk-text-center-small { + text-align: center !important; + } + .uk-text-left-small { + text-align: left !important; + } +} +/* Wrap modifiers + ========================================================================== */ +/* + * Prevent text from wrapping onto multiple lines + */ +.uk-text-nowrap { + white-space: nowrap; +} +/* + * Prevent text from wrapping onto multiple lines, and truncate with an ellipsis + */ +.uk-text-truncate { + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; +} +/* + * Break strings if their length exceeds the width of their container + */ +.uk-text-break { + word-wrap: break-word; + -webkit-hyphens: auto; + -ms-hyphens: auto; + -moz-hyphens: auto; + hyphens: auto; +} +/* Transform modifiers + ========================================================================== */ +.uk-text-capitalize { + text-transform: capitalize !important; +} +.uk-text-lowercase { + text-transform: lowercase !important; +} +.uk-text-uppercase { + text-transform: uppercase !important; +} +/* ======================================================================== + Component: Utility + ========================================================================== */ +/* Container + ========================================================================== */ +.uk-container { + box-sizing: border-box; + max-width: 980px; + padding: 0 25px; +} +/* Large screen and bigger */ +@media (min-width: 1220px) { + .uk-container { + max-width: 1200px; + padding: 0 35px; + } +} +/* + * Micro clearfix + */ +.uk-container:before, +.uk-container:after { + content: ""; + display: table; +} +.uk-container:after { + clear: both; +} +/* + * Center container + */ +.uk-container-center { + margin-left: auto; + margin-right: auto; +} +/* Clearing + ========================================================================== */ +/* + * Micro clearfix +* `table-cell` is used with `:before` because `table` creates a 1px gap when it becomes a flex item, only in Webkit + * `table` is used again with `:after` because `clear` only works with block elements. + * Note: `display: block` with `overflow: hidden` is currently not working in the latest Safari + */ +.uk-clearfix:before { + content: ""; + display: table-cell; +} +.uk-clearfix:after { + content: ""; + display: table; + clear: both; +} +/* + * Create a new block formatting context + */ +.uk-nbfc { + overflow: hidden; +} +.uk-nbfc-alt { + display: table-cell; + width: 10000px; +} +/* Alignment of block elements + ========================================================================== */ +/* + * Float blocks + * 1. Prevent content overflow on small devices + */ +.uk-float-left { + float: left; +} +.uk-float-right { + float: right; +} +/* 1 */ +[class*='uk-float-'] { + max-width: 100%; +} +/* Alignment of images and objects + ========================================================================== */ +/* + * Alignment + */ +[class*='uk-align-'] { + display: block; + margin-bottom: 15px; +} +.uk-align-left { + margin-right: 15px; + float: left; +} +.uk-align-right { + margin-left: 15px; + float: right; +} +/* Tablet and bigger */ +@media (min-width: 768px) { + .uk-align-medium-left { + margin-right: 15px; + float: left; + } + .uk-align-medium-right { + margin-left: 15px; + float: right; + } +} +.uk-align-center { + margin-left: auto; + margin-right: auto; +} +/* Vertical alignment + ========================================================================== */ +/* + * Remove whitespace between child elements when using `inline-block` + */ +.uk-vertical-align { + font-size: 0.001px; +} +/* + * The `uk-vertical-align` container needs a specific height + */ +.uk-vertical-align:before { + content: ''; + display: inline-block; + height: 100%; + vertical-align: middle; +} +/* + * Sub-object which can have any height + * 1. Reset whitespace hack + */ +.uk-vertical-align-middle, +.uk-vertical-align-bottom { + display: inline-block; + max-width: 100%; + /* 1 */ + font-size: 1rem; +} +.uk-vertical-align-middle { + vertical-align: middle; +} +.uk-vertical-align-bottom { + vertical-align: bottom; +} +/* Height + ========================================================================== */ +/* + * More robust if padding and border are used + */ +[class*='uk-height'] { + box-sizing: border-box; +} +/* + * Useful to extend the `html` and `body` element to the full height of the page. + */ +.uk-height-1-1 { + height: 100%; +} +/* + * Useful to create image teasers + */ +.uk-height-viewport { + height: 100vh; + min-height: 600px; +} +/* Responsive objects + * Note: Images are already responsive by default, see Base component + ========================================================================== */ +/* + * 1. Corrects `max-width` and `max-height` behavior if padding and border are used + */ +.uk-responsive-width, +.uk-responsive-height { + box-sizing: border-box; +} +/* + * Responsiveness: Sets a maximum width relative to the parent and auto scales the height + * `important` needed to override `uk-img-preserve img` + */ +.uk-responsive-width { + max-width: 100% !important; + height: auto; +} +/* + * Responsiveness: Sets a maximum height relative to the parent and auto scales the width + * Only works if the parent element has a fixed height. + */ +.uk-responsive-height { + max-height: 100%; + width: auto; +} +/* Margin + ========================================================================== */ +/* + * Create a block with the same margin of a paragraph + * Add margin if adjacent element + */ +.uk-margin { + margin-bottom: 15px; +} +* + .uk-margin { + margin-top: 15px; +} +.uk-margin-top { + margin-top: 15px !important; +} +.uk-margin-bottom { + margin-bottom: 15px !important; +} +.uk-margin-left { + margin-left: 15px !important; +} +.uk-margin-right { + margin-right: 15px !important; +} +/* + * Larger margins + */ +.uk-margin-large { + margin-bottom: 50px; +} +* + .uk-margin-large { + margin-top: 50px; +} +.uk-margin-large-top { + margin-top: 50px !important; +} +.uk-margin-large-bottom { + margin-bottom: 50px !important; +} +.uk-margin-large-left { + margin-left: 50px !important; +} +.uk-margin-large-right { + margin-right: 50px !important; +} +/* + * Smaller margins + */ +.uk-margin-small { + margin-bottom: 5px; +} +* + .uk-margin-small { + margin-top: 5px; +} +.uk-margin-small-top { + margin-top: 5px !important; +} +.uk-margin-small-bottom { + margin-bottom: 5px !important; +} +.uk-margin-small-left { + margin-left: 5px !important; +} +.uk-margin-small-right { + margin-right: 5px !important; +} +/* + * Remove margins + */ +.uk-margin-remove { + margin: 0 !important; +} +.uk-margin-top-remove { + margin-top: 0 !important; +} +.uk-margin-bottom-remove { + margin-bottom: 0 !important; +} +/* Padding + ========================================================================== */ +.uk-padding-remove { + padding: 0 !important; +} +.uk-padding-top-remove { + padding-top: 0 !important; +} +.uk-padding-bottom-remove { + padding-bottom: 0 !important; +} +.uk-padding-vertical-remove { + padding-top: 0 !important; + padding-bottom: 0 !important; +} +/* Border + ========================================================================== */ +.uk-border-circle { + border-radius: 50%; +} +.uk-border-rounded { + border-radius: 5px; +} +/* Headings + ========================================================================== */ +.uk-heading-large { + font-size: 36px; + line-height: 42px; +} +/* Tablet and bigger */ +@media (min-width: 768px) { + .uk-heading-large { + font-size: 52px; + line-height: 64px; + } +} +/* Link + ========================================================================== */ +/* + * Let links appear in default text color + */ +.uk-link-muted, +.uk-link-muted a { + color: #444; +} +.uk-link-muted:hover, +.uk-link-muted a:hover { + color: #444; +} +/* + * Reset link style + */ +.uk-link-reset, +.uk-link-reset a, +.uk-link-reset:hover, +.uk-link-reset a:hover, +.uk-link-reset:focus, +.uk-link-reset a:focus { + color: inherit; + text-decoration: none; +} +/* Scrollable + ========================================================================== */ +/* + * Enable scrolling for preformatted text + */ +.uk-scrollable-text { + height: 300px; + overflow-y: scroll; + -webkit-overflow-scrolling: touch; + resize: both; +} +/* + * Box with scrolling enabled + */ +.uk-scrollable-box { + box-sizing: border-box; + height: 170px; + padding: 10px; + border: 1px solid #ddd; + overflow: auto; + -webkit-overflow-scrolling: touch; + resize: both; +} +.uk-scrollable-box > :last-child { + margin-bottom: 0; +} +/* Overflow + ========================================================================== */ +.uk-overflow-hidden { + overflow: hidden; +} +/* + * Enable scrollbars if content is clipped + */ +.uk-overflow-container { + overflow: auto; + -webkit-overflow-scrolling: touch; +} +.uk-overflow-container > :last-child { + margin-bottom: 0; +} +/* Position + ========================================================================== */ +.uk-position-absolute, +[class*='uk-position-top'], +[class*='uk-position-bottom'] { + position: absolute !important; +} +/* Don't use `width: 100%` because it is wrong if the parent has padding. */ +.uk-position-top { + top: 0; + left: 0; + right: 0; +} +.uk-position-bottom { + bottom: 0; + left: 0; + right: 0; +} +.uk-position-top-left { + top: 0; + left: 0; +} +.uk-position-top-right { + top: 0; + right: 0; +} +.uk-position-bottom-left { + bottom: 0; + left: 0; +} +.uk-position-bottom-right { + bottom: 0; + right: 0; +} +/* + * Cover + */ +.uk-position-cover { + position: absolute; + top: 0; + bottom: 0; + left: 0; + right: 0; +} +/* + * Relative + */ +.uk-position-relative { + position: relative !important; +} +/* + * Z-index + */ +.uk-position-z-index { + z-index: 1; +} +/* Display + ========================================================================== */ +/* + * Display + * 1. Required if child is a responsive image + */ +.uk-display-block { + display: block !important; +} +.uk-display-inline { + display: inline !important; +} +.uk-display-inline-block { + display: inline-block !important; + /* 1 */ + max-width: 100%; +} +/* + * Visibility + * Avoids setting display to `block` so it works also with `inline-block` and `table` + */ +/* Desktop and bigger */ +@media (min-width: 960px) { + .uk-visible-small { + display: none !important; + } + .uk-visible-medium { + display: none !important; + } + .uk-hidden-large { + display: none !important; + } +} +/* Tablets portrait */ +@media (min-width: 768px) and (max-width: 959px) { + .uk-visible-small { + display: none !important; + } + .uk-visible-large { + display: none !important ; + } + .uk-hidden-medium { + display: none !important; + } +} +/* Phone landscape and smaller*/ +@media (max-width: 767px) { + .uk-visible-medium { + display: none !important; + } + .uk-visible-large { + display: none !important; + } + .uk-hidden-small { + display: none !important; + } +} +/* Remove from the flow and screen readers on any device */ +.uk-hidden { + display: none !important; + visibility: hidden !important; +} +/* It's hidden, but still affects layout */ +.uk-invisible { + visibility: hidden !important; +} +/* Show on hover */ +.uk-visible-hover:hover .uk-hidden, +.uk-visible-hover:hover .uk-invisible { + display: block !important; + visibility: visible !important; +} +.uk-visible-hover-inline:hover .uk-hidden, +.uk-visible-hover-inline:hover .uk-invisible { + display: inline-block !important; + visibility: visible !important; +} +/* Hide on touch */ +.uk-touch .uk-hidden-touch, +.uk-notouch .uk-hidden-notouch { + display: none !important; +} +/* ======================================================================== + Component: Flex + ========================================================================== */ +.uk-flex { + display: -ms-flexbox; + display: -webkit-flex; + display: flex; +} +.uk-flex-inline { + display: -ms-inline-flexbox; + display: -webkit-inline-flex; + display: inline-flex; +} +/* + * Fixes initial flex-shrink value in IE10 + */ +.uk-flex > *, +.uk-flex-inline > * { + -ms-flex-negative: 1; +} +/* Alignment + ========================================================================== */ +/* + * Vertical alignment + * Default value is `stretch` + */ +.uk-flex-top { + -ms-flex-align: start; + -webkit-align-items: flex-start; + align-items: flex-start; +} +.uk-flex-middle { + -ms-flex-align: center; + -webkit-align-items: center; + align-items: center; +} +.uk-flex-bottom { + -ms-flex-align: end; + -webkit-align-items: flex-end; + align-items: flex-end; +} +/* + * Horizontal alignment + * Default value is `flex-start` + */ +.uk-flex-center { + -ms-flex-pack: center; + -webkit-justify-content: center; + justify-content: center; +} +.uk-flex-right { + -ms-flex-pack: end; + -webkit-justify-content: flex-end; + justify-content: flex-end; +} +.uk-flex-space-between { + -ms-flex-pack: justify; + -webkit-justify-content: space-between; + justify-content: space-between; +} +.uk-flex-space-around { + -ms-flex-pack: distribute; + -webkit-justify-content: space-around; + justify-content: space-around; +} +/* Direction + ========================================================================== */ +.uk-flex-row-reverse { + -ms-flex-direction: row-reverse; + -webkit-flex-direction: row-reverse; + flex-direction: row-reverse; +} +.uk-flex-column { + -ms-flex-direction: column; + -webkit-flex-direction: column; + flex-direction: column; +} +.uk-flex-column-reverse { + -ms-flex-direction: column-reverse; + -webkit-flex-direction: column-reverse; + flex-direction: column-reverse; +} +/* Wrap + ========================================================================== */ +.uk-flex-nowrap { + -ms-flex-wrap: nowrap; + -webkit-flex-wrap: nowrap; + flex-wrap: nowrap; +} +.uk-flex-wrap { + -ms-flex-wrap: wrap; + -webkit-flex-wrap: wrap; + flex-wrap: wrap; +} +.uk-flex-wrap-reverse { + -ms-flex-wrap: wrap-reverse; + -webkit-flex-wrap: wrap-reverse; + flex-wrap: wrap-reverse; +} +/* + * Horizontal alignment + * Default value is `stretch` + */ +.uk-flex-wrap-top { + -ms-flex-line-pack: start; + -webkit-align-content: flex-start; + align-content: flex-start; +} +.uk-flex-wrap-middle { + -ms-flex-line-pack: center; + -webkit-align-content: center; + align-content: center; +} +.uk-flex-wrap-bottom { + -ms-flex-line-pack: end; + -webkit-align-content: flex-end; + align-content: flex-end; +} +.uk-flex-wrap-space-between { + -ms-flex-line-pack: justify; + -webkit-align-content: space-between; + align-content: space-between; +} +.uk-flex-wrap-space-around { + -ms-flex-line-pack: distribute; + -webkit-align-content: space-around; + align-content: space-around; +} +/* Item ordering + ========================================================================== */ +/* + * Default is 0 + */ +.uk-flex-order-first { + -ms-flex-order: -1; + -webkit-order: -1; + order: -1; +} +.uk-flex-order-last { + -ms-flex-order: 99; + -webkit-order: 99; + order: 99; +} +/* Phone landscape and bigger */ +@media (min-width: 480px) { + .uk-flex-order-first-small { + -ms-flex-order: -1; + -webkit-order: -1; + order: -1; + } + .uk-flex-order-last-small { + -ms-flex-order: 99; + -webkit-order: 99; + order: 99; + } +} +/* Tablet and bigger */ +@media (min-width: 768px) { + .uk-flex-order-first-medium { + -ms-flex-order: -1; + -webkit-order: -1; + order: -1; + } + .uk-flex-order-last-medium { + -ms-flex-order: 99; + -webkit-order: 99; + order: 99; + } +} +/* Desktop and bigger */ +@media (min-width: 960px) { + .uk-flex-order-first-large { + -ms-flex-order: -1; + -webkit-order: -1; + order: -1; + } + .uk-flex-order-last-large { + -ms-flex-order: 99; + -webkit-order: 99; + order: 99; + } +} +/* Large screen and bigger */ +@media (min-width: 1220px) { + .uk-flex-order-first-xlarge { + -ms-flex-order: -1; + -webkit-order: -1; + order: -1; + } + .uk-flex-order-last-xlarge { + -ms-flex-order: 99; + -webkit-order: 99; + order: 99; + } +} +/* Item dimensions + ========================================================================== */ +/* + * Initial: 0 1 auto + * Content dimensions, but shrinks + */ +/* + * No Flex: 0 0 auto + * Content dimensions + */ +.uk-flex-item-none { + -ms-flex: none; + -webkit-flex: none; + flex: none; +} +/* + * Relative Flex: 1 1 auto + * Space is allocated considering content + * 1. Fixes flex-shrink value in IE10 + */ +.uk-flex-item-auto { + -ms-flex: auto; + -webkit-flex: auto; + flex: auto; + /* 1 */ + -ms-flex-negative: 1; +} +/* + * Absolute Flex: 1 1 0% + * Space is allocated solely based on flex + */ +.uk-flex-item-1 { + -ms-flex: 1; + -webkit-flex: 1; + flex: 1; +} +/* ======================================================================== + Component: Contrast + ========================================================================== */ +.uk-contrast { + color: #fff; + /* Active */ +} +.uk-contrast a:not([class]), +.uk-contrast .uk-link { + color: rgba(255, 255, 255, 0.7); + text-decoration: none; +} +.uk-contrast a:not([class]):hover, +.uk-contrast .uk-link:hover { + color: #fff; + text-decoration: underline; +} +.uk-contrast :not(pre) > code, +.uk-contrast :not(pre) > kbd, +.uk-contrast :not(pre) > samp { + color: #fff; +} +.uk-contrast em { + color: #fff; +} +.uk-contrast h1, +.uk-contrast h2, +.uk-contrast h3, +.uk-contrast h4, +.uk-contrast h5, +.uk-contrast h6 { + color: #fff; +} +.uk-contrast hr { + border-top-color: rgba(255, 255, 255, 0.2); +} +.uk-contrast .uk-nav li > a, +.uk-contrast .uk-nav li > a:hover { + text-decoration: none; +} +.uk-contrast .uk-nav-side > li > a { + color: #fff; +} +.uk-contrast .uk-nav-side > li > a:hover, +.uk-contrast .uk-nav-side > li > a:focus { + background: rgba(255, 255, 255, 0.1); + color: #fff; +} +.uk-contrast .uk-nav-side > li.uk-active > a { + background: #fff; + color: #444; +} +.uk-contrast .uk-nav-side .uk-nav-header { + color: #fff; +} +.uk-contrast .uk-nav-side .uk-nav-divider { + border-top-color: rgba(255, 255, 255, 0.2); +} +.uk-contrast .uk-nav-side ul a { + color: rgba(255, 255, 255, 0.7); +} +.uk-contrast .uk-nav-side ul a:hover { + color: #fff; +} +.uk-contrast .uk-subnav > * > a { + color: rgba(255, 255, 255, 0.7); + text-decoration: none; +} +.uk-contrast .uk-subnav > * > a:hover, +.uk-contrast .uk-subnav > * > a:focus { + color: #fff; + text-decoration: none; +} +.uk-contrast .uk-subnav > .uk-active > a { + color: #fff; +} +.uk-contrast .uk-subnav-line > :nth-child(n+2):before { + border-left-color: rgba(255, 255, 255, 0.2); +} +.uk-contrast .uk-subnav-pill > * > a:hover, +.uk-contrast .uk-subnav-pill > * > a:focus { + background: rgba(255, 255, 255, 0.7); + color: #444; + text-decoration: none; +} +.uk-contrast .uk-subnav-pill > .uk-active > a { + background: #fff; + color: #444; +} +.uk-contrast .uk-tab { + border-bottom-color: rgba(255, 255, 255, 0.2); +} +.uk-contrast .uk-tab > li > a { + border-color: transparent; + color: rgba(255, 255, 255, 0.7); +} +.uk-contrast .uk-tab > li > a:hover, +.uk-contrast .uk-tab > li > a:focus, +.uk-contrast .uk-tab > li.uk-open > a { + border-color: rgba(255, 255, 255, 0.7); + background: rgba(255, 255, 255, 0.7); + color: #444; + text-decoration: none; +} +.uk-contrast .uk-tab > li.uk-active > a { + border-color: rgba(255, 255, 255, 0.2); + border-bottom-color: transparent; + background: #fff; + color: #444; +} +.uk-contrast .uk-tab-center { + border-bottom-color: rgba(255, 255, 255, 0.2); +} +.uk-contrast .uk-tab-grid:before { + border-top-color: rgba(255, 255, 255, 0.2); +} +.uk-contrast .uk-list-line > li:nth-child(n+2) { + border-top-color: rgba(255, 255, 255, 0.2); +} +.uk-contrast .uk-form select, +.uk-contrast .uk-form textarea, +.uk-contrast .uk-form input:not([type]), +.uk-contrast .uk-form input[type="text"], +.uk-contrast .uk-form input[type="password"], +.uk-contrast .uk-form input[type="datetime"], +.uk-contrast .uk-form input[type="datetime-local"], +.uk-contrast .uk-form input[type="date"], +.uk-contrast .uk-form input[type="month"], +.uk-contrast .uk-form input[type="time"], +.uk-contrast .uk-form input[type="week"], +.uk-contrast .uk-form input[type="number"], +.uk-contrast .uk-form input[type="email"], +.uk-contrast .uk-form input[type="url"], +.uk-contrast .uk-form input[type="search"], +.uk-contrast .uk-form input[type="tel"], +.uk-contrast .uk-form input[type="color"] { + border-color: rgba(255, 255, 255, 0.8); + background: rgba(255, 255, 255, 0.8); + color: #444; + background-clip: padding-box; +} +.uk-contrast .uk-form select:focus, +.uk-contrast .uk-form textarea:focus, +.uk-contrast .uk-form input:not([type]):focus, +.uk-contrast .uk-form input[type="text"]:focus, +.uk-contrast .uk-form input[type="password"]:focus, +.uk-contrast .uk-form input[type="datetime"]:focus, +.uk-contrast .uk-form input[type="datetime-local"]:focus, +.uk-contrast .uk-form input[type="date"]:focus, +.uk-contrast .uk-form input[type="month"]:focus, +.uk-contrast .uk-form input[type="time"]:focus, +.uk-contrast .uk-form input[type="week"]:focus, +.uk-contrast .uk-form input[type="number"]:focus, +.uk-contrast .uk-form input[type="email"]:focus, +.uk-contrast .uk-form input[type="url"]:focus, +.uk-contrast .uk-form input[type="search"]:focus, +.uk-contrast .uk-form input[type="tel"]:focus, +.uk-contrast .uk-form input[type="color"]:focus { + border-color: #fff; + background: #fff; + color: #444; +} +.uk-contrast .uk-form :-ms-input-placeholder { + color: rgba(68, 68, 68, 0.7) !important; +} +.uk-contrast .uk-form ::-moz-placeholder { + color: rgba(68, 68, 68, 0.7); +} +.uk-contrast .uk-form ::-webkit-input-placeholder { + color: rgba(68, 68, 68, 0.7); +} +.uk-contrast .uk-button { + color: #444; + background: #fff; +} +.uk-contrast .uk-button:hover, +.uk-contrast .uk-button:focus { + background-color: rgba(255, 255, 255, 0.8); + color: #444; +} +.uk-contrast .uk-button:active, +.uk-contrast .uk-button.uk-active { + background-color: rgba(255, 255, 255, 0.7); + color: #444; +} +.uk-contrast .uk-button-primary { + background-color: #00a8e6; + color: #fff; +} +.uk-contrast .uk-button-primary:hover, +.uk-contrast .uk-button-primary:focus { + background-color: #35b3ee; + color: #fff; +} +.uk-contrast .uk-button-primary:active, +.uk-contrast .uk-button-primary.uk-active { + background-color: #0091ca; + color: #fff; +} +.uk-contrast .uk-icon-hover { + color: rgba(255, 255, 255, 0.7); +} +.uk-contrast .uk-icon-hover:hover { + color: #fff; +} +.uk-contrast .uk-icon-button { + background: #fff; + color: #444; +} +.uk-contrast .uk-icon-button:hover, +.uk-contrast .uk-icon-button:focus { + background-color: rgba(255, 255, 255, 0.8); + color: #444; +} +.uk-contrast .uk-icon-button:active { + background-color: rgba(255, 255, 255, 0.7); + color: #444; +} +.uk-contrast .uk-text-muted { + color: rgba(255, 255, 255, 0.6) !important; +} +.uk-contrast .uk-text-primary { + color: #2d7091 !important; +} +/* ======================================================================== + Component: Print + ========================================================================== */ +@media print { + *, + *:before, + *:after { + background: transparent !important; + color: black !important; + box-shadow: none !important; + text-shadow: none !important; + } + a, + a:visited { + text-decoration: underline; + } + pre, + blockquote { + border: 1px solid #999; + page-break-inside: avoid; + } + thead { + display: table-header-group; + } + tr, + img { + page-break-inside: avoid; + } + img { + max-width: 100% !important; + } + @page { + margin: 0.5cm; + } + p, + h2, + h3 { + orphans: 3; + widows: 3; + } + h2, + h3 { + page-break-after: avoid; + } +} diff --git a/test/Fixtures/lessjs-3.13.1/css/_main/calc.css b/test/Fixtures/lessjs-3.13.1/css/_main/calc.css new file mode 100644 index 00000000..7f335c69 --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/css/_main/calc.css @@ -0,0 +1,28 @@ +.no-math { + root: calc(100% - 30px); + root2: calc(100% - 40px); + width: calc(50% + (25vh - 20px)); + height: calc(50% + (25vh - 20px)); + min-height: calc(10vh + calc(5vh)); + foo: 3 calc(3 + 4) 11; + bar: calc(1 + 20%); +} +.b { + one: calc(100% - 20px); + two: calc(100% - (10px + 10px)); + three: calc(100% - (3 * 1)); + four: calc(100% - (3 * 1)); + nested: calc(calc(2.25rem + 2px) - 1px * 2); +} +.c { + height: calc(100% - ((10px * 3) + (10px * 2))); +} +.correctly-exit-calc-mode h2 { + width: 10px; +} +.correctly-exit-calc-mode div { + width: calc(100px * 2); +} +.correctly-exit-calc-mode h1 { + color: white; +} diff --git a/test/Fixtures/lessjs-3.13.1/css/_main/charsets.css b/test/Fixtures/lessjs-3.13.1/css/_main/charsets.css new file mode 100644 index 00000000..9f44090c --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/css/_main/charsets.css @@ -0,0 +1 @@ +@charset "UTF-8"; diff --git a/test/Fixtures/lessjs-3.13.1/css/_main/colors.css b/test/Fixtures/lessjs-3.13.1/css/_main/colors.css new file mode 100644 index 00000000..eb391ff0 --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/css/_main/colors.css @@ -0,0 +1,104 @@ +#yelow #short { + color: #fea; +} +#yelow #long { + color: #ffeeaa; +} +#yelow #rgba { + color: rgba(255, 238, 170, 0.1); +} +#yelow #argb { + color: #1affeeaa; +} +#blue #short { + color: #00f; +} +#blue #long { + color: #0000ff; +} +#blue #rgba { + color: rgba(0, 0, 255, 0.1); +} +#blue #argb { + color: #1a0000ff; +} +#alpha #hsla { + color: hsla(11, 20%, 20%, 0.6); +} +#overflow .a { + color: #000000; +} +#overflow .b { + color: #ffffff; +} +#overflow .c { + color: #ffffff; +} +#overflow .d { + color: #00ff00; +} +#overflow .e { + color: rgba(0, 31, 255, 0.42); +} +#grey { + color: #c8c8c8; +} +#aa3333 { + color: #aa3333; +} +#bb8080 { + color: hsl(0, 30%, 62%); +} +#ccff00 { + color: hsl(72, 100%, 50%); +} +.lightenblue { + color: #3333ff; +} +.darkenblue { + color: #0000cc; +} +.unknowncolors { + color: blue2; + border: 2px solid superred; +} +.transparent { + color: transparent; + background-color: rgba(0, 0, 0, 0); +} +#alpha #fromvar { + opacity: 0.7; +} +#alpha #short { + opacity: 1; +} +#alpha #long { + opacity: 1; +} +#alpha #rgba { + opacity: 0.2; +} +#alpha #hsl { + opacity: 1; +} +#percentage { + color: 255; + border-color: rgba(255, 0, 0, 0.5); +} +#rrggbbaa { + test-1: #55FF5599; + test-2: #5F59; + test-3: rgba(136, 255, 136, 0.6); + test-4: rgba(85, 255, 85, 0.1); + test-5: rgba(85, 255, 85, 0.6); + test-6: rgba(85, 255, 85, 0.6); + test-7: rgba(85, 255, 85, 0.5); + test-8: rgba(var(--color-accent), 0.2); + test-9: rgb(var(--color-accent)); + test-9: hsla(var(--color-accent)); + test-10: #55FF5599; + test-11: hsla(120, 100%, 66.66666667%, 0.6); + test-12: hsla(120, 100%, 66.66666667%, 0.5); + --semi-transparent-dark-background: #001e00ee; + --semi-transparent-dark-background-2: #001e00; +} diff --git a/test/Fixtures/lessjs-3.13.1/css/_main/comments.css b/test/Fixtures/lessjs-3.13.1/css/_main/comments.css new file mode 100644 index 00000000..3a24255a --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/css/_main/comments.css @@ -0,0 +1,83 @@ +/******************\ +* * +* Comment Header * +* * +\******************/ +/* + + Comment + +*/ +/* + * Comment Test + * + * - cloudhead (http://cloudhead.net) + * + */ +/* Colors + * ------ + * #EDF8FC (background blue) + * #166C89 (darkest blue) + * + * Text: + * #333 (standard text) // A comment within a comment! + * #1F9EC9 (standard link) + * + */ +/* @group Variables +------------------- */ +#comments, +.comments { + /**/ + color: red; + /* A C-style comment */ + /* A C-style comment */ + background-color: orange; + font-size: 12px; + /* lost comment */ + content: "content"; + border: 1px solid black; + padding: 0; + margin: 2em; +} +/* commented out + #more-comments { + color: grey; + } +*/ +.selector, +.lots, +.comments { + color: grey, /* blue */ orange; + -webkit-border-radius: 2px /* webkit only */; + -moz-border-radius: 8px /* moz only with operation */; +} +.test-rule { + color: 1px; +} +.sr-only-focusable { + clip: auto; +} +@-webkit-keyframes hover { + /* and Chrome */ + 0% { + color: red; + } +} +#last { + color: blue; +} +/* */ +/* { */ +/* */ +/* */ +/* */ +#div { + color: #A33; +} +/* } */ +/*by block */ +#output-block { + comment: /* // Not commented out // */; +} +/*comment on last line*/ diff --git a/test/Fixtures/lessjs-3.13.1/css/_main/comments2.css b/test/Fixtures/lessjs-3.13.1/css/_main/comments2.css new file mode 100644 index 00000000..02cad29d --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/css/_main/comments2.css @@ -0,0 +1,18 @@ +@-webkit-keyframes hover { + /* Safari and Chrome */ +} +.bg { + background-image: linear-gradient(#333 /*{comment}*/, #111); +} +#planadvisor, +.first, +.planning { + margin: 10px; + total-width: 96em; +} +.some-inline-comments { + a: yes /* comment */; + b: red /* comment */; + c: yes /* comment */; + d: red /* comment */; +} diff --git a/test/Fixtures/lessjs-3.13.1/css/_main/css-3.css b/test/Fixtures/lessjs-3.13.1/css/_main/css-3.css new file mode 100644 index 00000000..95725b87 --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/css/_main/css-3.css @@ -0,0 +1,146 @@ +.comma-delimited { + text-shadow: -1px -1px 1px red, 6px 5px 5px yellow; + -moz-box-shadow: 0pt 0pt 2px rgba(255, 255, 255, 0.4) inset, 0pt 4px 6px rgba(255, 255, 255, 0.4) inset; + -webkit-transform: rotate(0deg); +} +@font-face { + font-family: Headline; + unicode-range: U+??????, U+0???, U+0-7F, U+A5; +} +.other { + -moz-transform: translate(0, 11em) rotate(-90deg); + transform: rotateX(45deg); +} +.item[data-cra_zy-attr1b-ut3=bold] { + font-weight: bold; +} +p:not([class*="lead"]) { + color: black; +} +input[type="text"].class#id[attr=32]:not(1) { + color: inherit; +} +div#id.class[a=1][b=2].class:not(1) { + color: inherit; +} +ul.comma > li:not(:only-child)::after { + color: inherit; +} +ol.comma > li:nth-last-child(2)::after { + color: inherit; +} +li:nth-child(4n+1), +li:nth-child(-5n), +li:nth-child(-n+2) { + color: inherit; +} +a[href^="http://"] { + color: black; +} +a[href$="http://"] { + color: black; +} +form[data-disabled] { + color: black; +} +p::before { + color: black; +} +#issue322 { + -webkit-animation: anim2 7s infinite ease-in-out; +} +@-webkit-keyframes frames { + 0% { + border: 1px; + } + 5.5% { + border: 2px; + } + 100% { + border: 3px; + } +} +@keyframes fontbulger1 { + to { + font-size: 15px; + } + from, + to { + font-size: 12px; + } + 0%, + 100% { + font-size: 12px; + } +} +@supports ( box-shadow: 2px 2px 2px black ) or + ( -moz-box-shadow: 2px 2px 2px black ) { + .outline { + box-shadow: 2px 2px 2px black; + -moz-box-shadow: 2px 2px 2px black; + } +} +@-x-document url-prefix(""github.com"") { + h1 { + color: red; + } +} +@viewport { + font-size: 10px; +} +@namespace foo url(http://www.example.com); +foo|h1 { + color: blue; +} +foo|* { + color: yellow; +} +*|h1 { + color: green; +} +h1 { + color: green; +} +.upper-test { + UpperCaseProperties: allowed; +} +@host { + div { + display: block; + } +} +::distributed(input::placeholder) { + color: #b3b3b3; +} +.shadow > .dom, +body > .shadow { + display: done; +} +:host(.sel .a), +:host-context(.sel .b), +.sel > .b, +::content .sel { + type: shadow-dom; +} +* b { + c: 'd'; +} +* b[e] { + f: 'g'; +} +#issue2066 { + background: url('/images/icon-team.svg') 0 0 / contain; +} +@counter-style triangle { + system: cyclic; + symbols: ‣; + suffix: " "; +} +@-ms-viewport { +} +@unknown foo 42 (bar) { + x { + y: z; + } +} +@unknown foo 43; diff --git a/test/Fixtures/lessjs-3.13.1/css/_main/css-escapes.css b/test/Fixtures/lessjs-3.13.1/css/_main/css-escapes.css new file mode 100644 index 00000000..82471cb5 --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/css/_main/css-escapes.css @@ -0,0 +1,31 @@ +.escape\|random\|char { + color: red; +} +.mixin\!tUp { + font-weight: bold; +} +.\34 04 { + background: red; +} +.\34 04 strong { + color: fuchsia; + font-weight: bold; +} +.trailingTest\+ { + color: red; +} +/* This hideous test of hideousness checks for the selector "blockquote" with various permutations of hex escapes */ +\62\6c\6f \63 \6B \0071 \000075o\74 e { + color: silver; +} +[ng\:cloak], +ng\:form { + display: none; +} +.bootstrap { + background-color: #000 \9; +} +textarea { + font-family: 'helvetica neue', 'wenquanyi micro hei', \5FAE\8F6F\96C5\9ED1, \5B8B\4F53, sans-serif; +} +anything to unquote diff --git a/test/Fixtures/lessjs-3.13.1/css/_main/css-grid.css b/test/Fixtures/lessjs-3.13.1/css/_main/css-grid.css new file mode 100644 index 00000000..df36a63a --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/css/_main/css-grid.css @@ -0,0 +1,24 @@ +.wrapper { + display: grid; + grid-template-columns: [col1-start] 9fr [col1-end] 10px [col2-start] 3fr [col2-end]; + grid-template-rows: auto; +} +.wrapper { + display: grid; + grid-template-columns: [left-bound] auto [container-left] 1170px [container-right] auto [right-bound]; + grid-template-rows: [row-1-start] 140px [row-2-start] 390px [row-3-start] 200px [row-4-start] 120px [row-5-start] 120px [row-6-start] 120px; +} +.container-12 { + z-index: 20; + display: grid; + grid-column: container-left / span 1; + grid-row: 2; + grid-template-columns: [wrapcol-1-start] 1fr [wrapcol-1-end] 15px [wrapcol-2-start] 1fr [wrapcol-2-end] 15px [wrapcol-3-start] 1fr [wrapcol-3-end] 15px [wrapcol-4-start] 1fr [wrapcol-4-end] 15px [wrapcol-5-start] 1fr [wrapcol-5-end] 15px [wrapcol-6-start] 1fr [wrapcol-6-end] 15px [wrapcol-7-start] 1fr [wrapcol-7-end] 15px [wrapcol-8-start] 1fr [wrapcol-8-end] 15px [wrapcol-9-start] 1fr [wrapcol-9-end] 15px [wrapcol-10-start] 1fr [wrapcol-10-end] 15px [wrapcol-11-start] 1fr [wrapcol-11-end] 15px [wrapcol-12-start] 1fr [wrapcol-12-end]; + grid-template-rows: repeat(14, [gutter] 10px [row] 60px); +} +.wrapper { + display: grid; + grid-template-columns: 9fr 1.875em 3fr; + grid-template-rows: auto; + grid-template-areas: "header header header" "content . sidebar" "footer footer footer"; +} diff --git a/test/Fixtures/lessjs-3.13.1/css/_main/css-guards.css b/test/Fixtures/lessjs-3.13.1/css/_main/css-guards.css new file mode 100644 index 00000000..d4649084 --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/css/_main/css-guards.css @@ -0,0 +1,37 @@ +.light { + color: green; +} +.see-the { + color: green; +} +.hide-the { + color: green; +} +.multiple-conditions-1 { + color: red; +} +.inheritance .test-rule { + color: black; +} +.inheritance:hover { + color: pink; +} +.clsWithGuard { + dispaly: none; +} +.dont-split-me-up { + width: 1px; + color: red; + height: 1px; +} +* .dont-split-me-up { + sibling: true; +} +.scope-check { + sub-prop: 2px; + prop: 1px; +} +.scope-check-2 { + sub-prop: 2px; + prop: 1px; +} diff --git a/test/Fixtures/lessjs-3.13.1/css/_main/detached-rulesets.css b/test/Fixtures/lessjs-3.13.1/css/_main/detached-rulesets.css new file mode 100644 index 00000000..9c9091ea --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/css/_main/detached-rulesets.css @@ -0,0 +1,76 @@ +.wrap-selector { + color: black; + one: 1px; + four: magic-frame; + visible-one: visible; + visible-two: visible; +} +.wrap-selector { + color: red; + visible-one: visible; + visible-two: visible; +} +.wrap-selector { + color: black; + background: white; + visible-one: visible; + visible-two: visible; +} +header { + background: blue; +} +@media screen and (min-width: 1200) { + header { + background: red; + } +} +html.lt-ie9 header { + background: red; +} +.wrap-selector { + test: extra-wrap; + visible-one: visible; + visible-two: visible; +} +.wrap-selector .wrap-selector { + test: wrapped-twice; + visible-one: visible; + visible-two: visible; +} +.wrap-selector { + test-func: 90; + test-arithmetic: 18px; + visible-one: visible; + visible-two: visible; +} +.without-mixins { + b: 1; +} +@media (orientation: portrait) and (tv) { + .my-selector { + background-color: black; + } +} +@media (orientation: portrait) and (widescreen) and (print) and (tv) { + .triple-wrapped-mq { + triple: true; + } +} +@media (orientation: portrait) and (widescreen) and (tv) { + .triple-wrapped-mq { + triple: true; + } +} +@media (orientation: portrait) and (tv) { + .triple-wrapped-mq { + triple: true; + } +} +.a { + test: test; +} +.argument-default { + default: works; + direct: works; + named: works; +} diff --git a/test/Fixtures/lessjs-3.13.1/css/_main/directives-bubling.css b/test/Fixtures/lessjs-3.13.1/css/_main/directives-bubling.css new file mode 100644 index 00000000..4f5254b3 --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/css/_main/directives-bubling.css @@ -0,0 +1,119 @@ +.parent { + color: green; +} +@document url-prefix() { + .parent .child { + color: red; + } +} +@supports (sandwitch: butter) { + .inside .top { + property: value; + } +} +@supports (sandwitch: bread) { + .in1 .in2 { + property: value; + } +} +@supports (sandwitch: ham) { + .inside .top { + property: value; + } +} +@supports (font-family: weirdFont) { + @font-face { + font-family: something; + src: made-up-url; + } +} +@font-face { + @supports not (-webkit-font-smoothing: subpixel-antialiased) { + font-family: something; + src: made-up-url; + } +} +@supports (property: value) { + @media (max-size: 2px) { + @supports (whatever: something) { + .outOfMedia { + property: value; + } + } + } +} +@supports (property: value) { + @media (max-size: 2px) { + @supports (whatever: something) { + .onTop { + property: value; + } + } + } +} +@media print { + html { + in-html: visible; + } + @supports (upper: test) { + html { + in-supports: first; + } + html div { + in-div: visible; + } + @supports not (-webkit-font-smoothing: subpixel-antialiased) { + html div { + in-supports: second; + } + @media screen { + html div { + font-weight: 400; + } + html div nested { + property: value; + } + } + } + } +} +@media print and (max-size: 2px) { + .in1 { + stay: here; + } + @supports not (-webkit-font-smoothing: subpixel-antialiased) { + @supports (whatever: something) { + .in2 .in1 { + property: value; + } + } + } +} +html { + font-weight: 300; + -webkit-font-smoothing: subpixel-antialiased; +} +@supports not (-webkit-font-smoothing: subpixel-antialiased) { + html { + font-weight: 400; + } + html nested { + property: value; + } +} +.onTop { + animation: "textscale"; + font-family: something; +} +@font-face { + font-family: something; + src: made-up-url; +} +@keyframes "textscale" { + 0% { + font-size: 1em; + } + 100% { + font-size: 2em; + } +} diff --git a/test/Fixtures/lessjs-3.13.1/css/_main/empty.css b/test/Fixtures/lessjs-3.13.1/css/_main/empty.css new file mode 100644 index 00000000..e69de29b diff --git a/test/Fixtures/lessjs-3.13.1/css/_main/extend-chaining.css b/test/Fixtures/lessjs-3.13.1/css/_main/extend-chaining.css new file mode 100644 index 00000000..b75ca156 --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/css/_main/extend-chaining.css @@ -0,0 +1,81 @@ +.a, +.b, +.c { + color: black; +} +.f, +.e, +.d { + color: black; +} +.g.h, +.i.j.h, +.k.j.h { + color: black; +} +.i.j, +.k.j { + color: inherit; +} +.l, +.m, +.n, +.o, +.p, +.q, +.r, +.s, +.t { + color: black; +} +.u, +.v.u.v { + color: black; +} +.w, +.v.w.v { + color: black; +} +.x, +.y, +.z { + color: x; +} +.y, +.z, +.x { + color: y; +} +.z, +.x, +.y { + color: z; +} +.va, +.vb, +.vc { + color: black; +} +.vb, +.vc { + color: inherit; +} +@media (tv) { + .ma, + .mb, + .mc { + color: black; + } + .md, + .ma, + .mb, + .mc { + color: inherit; + } +} +@media (tv) and (plasma) { + .me, + .mf { + background: red; + } +} diff --git a/test/Fixtures/lessjs-3.13.1/css/_main/extend-clearfix.css b/test/Fixtures/lessjs-3.13.1/css/_main/extend-clearfix.css new file mode 100644 index 00000000..966892a2 --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/css/_main/extend-clearfix.css @@ -0,0 +1,19 @@ +.clearfix, +.foo, +.bar { + *zoom: 1; +} +.clearfix:after, +.foo:after, +.bar:after { + content: ''; + display: block; + clear: both; + height: 0; +} +.foo { + color: red; +} +.bar { + color: blue; +} diff --git a/test/Fixtures/lessjs-3.13.1/css/_main/extend-exact.css b/test/Fixtures/lessjs-3.13.1/css/_main/extend-exact.css new file mode 100644 index 00000000..beff4133 --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/css/_main/extend-exact.css @@ -0,0 +1,37 @@ +.replace.replace .replace, +.c.replace + .replace .replace, +.replace.replace .c, +.c.replace + .replace .c, +.rep_ace { + prop: copy-paste-replace; +} +.a .b .c { + prop: not_effected; +} +.a, +.effected { + prop: is_effected; +} +.a .b { + prop: not_effected; +} +.a .b.c { + prop: not_effected; +} +.c .b .a, +.a .b .a, +.c .a .a, +.a .a .a, +.c .b .c, +.a .b .c, +.c .a .c, +.a .a .c { + prop: not_effected; +} +.e.e, +.dbl { + prop: extend-double; +} +.e.e:hover { + hover: not-extended; +} diff --git a/test/Fixtures/lessjs-3.13.1/css/_main/extend-media.css b/test/Fixtures/lessjs-3.13.1/css/_main/extend-media.css new file mode 100644 index 00000000..1bebabea --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/css/_main/extend-media.css @@ -0,0 +1,24 @@ +.ext1 .ext2, +.all .ext2 { + background: black; +} +@media (tv) { + .ext1 .ext3, + .tv-lowres .ext3, + .all .ext3 { + color: inherit; + } + .tv-lowres { + background: blue; + } +} +@media (tv) and (hires) { + .ext1 .ext4, + .tv-hires .ext4, + .all .ext4 { + color: green; + } + .tv-hires { + background: red; + } +} diff --git a/test/Fixtures/lessjs-3.13.1/css/_main/extend-nest.css b/test/Fixtures/lessjs-3.13.1/css/_main/extend-nest.css new file mode 100644 index 00000000..e4b48a4b --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/css/_main/extend-nest.css @@ -0,0 +1,57 @@ +.sidebar, +.sidebar2, +.type1 .sidebar3, +.type2.sidebar4 { + width: 300px; + background: red; +} +.sidebar .box, +.sidebar2 .box, +.type1 .sidebar3 .box, +.type2.sidebar4 .box { + background: #FFF; + border: 1px solid #000; + margin: 10px 0; +} +.sidebar2 { + background: blue; +} +.type1 .sidebar3 { + background: green; +} +.type2.sidebar4 { + background: red; +} +.button, +.submit { + color: black; +} +.button:hover, +.submit:hover { + color: inherit; +} +.button2 :hover { + nested: white; +} +.button2 :hover { + notnested: black; +} +.amp-test-h, +.amp-test-f.amp-test-c .amp-test-a.amp-test-d.amp-test-a.amp-test-e + .amp-test-c .amp-test-a.amp-test-d.amp-test-a.amp-test-e.amp-test-g, +.amp-test-f.amp-test-c .amp-test-a.amp-test-d.amp-test-a.amp-test-e + .amp-test-c .amp-test-a.amp-test-d.amp-test-b.amp-test-e.amp-test-g, +.amp-test-f.amp-test-c .amp-test-a.amp-test-d.amp-test-a.amp-test-e + .amp-test-c .amp-test-b.amp-test-d.amp-test-a.amp-test-e.amp-test-g, +.amp-test-f.amp-test-c .amp-test-a.amp-test-d.amp-test-a.amp-test-e + .amp-test-c .amp-test-b.amp-test-d.amp-test-b.amp-test-e.amp-test-g, +.amp-test-f.amp-test-c .amp-test-a.amp-test-d.amp-test-b.amp-test-e + .amp-test-c .amp-test-a.amp-test-d.amp-test-a.amp-test-e.amp-test-g, +.amp-test-f.amp-test-c .amp-test-a.amp-test-d.amp-test-b.amp-test-e + .amp-test-c .amp-test-a.amp-test-d.amp-test-b.amp-test-e.amp-test-g, +.amp-test-f.amp-test-c .amp-test-a.amp-test-d.amp-test-b.amp-test-e + .amp-test-c .amp-test-b.amp-test-d.amp-test-a.amp-test-e.amp-test-g, +.amp-test-f.amp-test-c .amp-test-a.amp-test-d.amp-test-b.amp-test-e + .amp-test-c .amp-test-b.amp-test-d.amp-test-b.amp-test-e.amp-test-g, +.amp-test-f.amp-test-c .amp-test-b.amp-test-d.amp-test-a.amp-test-e + .amp-test-c .amp-test-a.amp-test-d.amp-test-a.amp-test-e.amp-test-g, +.amp-test-f.amp-test-c .amp-test-b.amp-test-d.amp-test-a.amp-test-e + .amp-test-c .amp-test-a.amp-test-d.amp-test-b.amp-test-e.amp-test-g, +.amp-test-f.amp-test-c .amp-test-b.amp-test-d.amp-test-a.amp-test-e + .amp-test-c .amp-test-b.amp-test-d.amp-test-a.amp-test-e.amp-test-g, +.amp-test-f.amp-test-c .amp-test-b.amp-test-d.amp-test-a.amp-test-e + .amp-test-c .amp-test-b.amp-test-d.amp-test-b.amp-test-e.amp-test-g, +.amp-test-f.amp-test-c .amp-test-b.amp-test-d.amp-test-b.amp-test-e + .amp-test-c .amp-test-a.amp-test-d.amp-test-a.amp-test-e.amp-test-g, +.amp-test-f.amp-test-c .amp-test-b.amp-test-d.amp-test-b.amp-test-e + .amp-test-c .amp-test-a.amp-test-d.amp-test-b.amp-test-e.amp-test-g, +.amp-test-f.amp-test-c .amp-test-b.amp-test-d.amp-test-b.amp-test-e + .amp-test-c .amp-test-b.amp-test-d.amp-test-a.amp-test-e.amp-test-g, +.amp-test-f.amp-test-c .amp-test-b.amp-test-d.amp-test-b.amp-test-e + .amp-test-c .amp-test-b.amp-test-d.amp-test-b.amp-test-e.amp-test-g { + test: extended by masses of selectors; +} diff --git a/test/Fixtures/lessjs-3.13.1/css/_main/extend-selector.css b/test/Fixtures/lessjs-3.13.1/css/_main/extend-selector.css new file mode 100644 index 00000000..3c6c01f2 --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/css/_main/extend-selector.css @@ -0,0 +1,87 @@ +.error, +.badError { + border: 1px #f00; + background: #fdd; +} +.error.intrusion, +.badError.intrusion { + font-size: 1.3em; + font-weight: bold; +} +.intrusion .error, +.intrusion .badError { + display: none; +} +.badError { + border-width: 3px; +} +.foo .bar, +.foo .baz, +.ext1 .ext2 .bar, +.ext1 .ext2 .baz, +.ext3 .bar, +.ext3 .baz, +.ext4 .bar, +.ext4 .baz { + display: none; +} +div.ext5, +.ext6 > .ext5, +div.ext7, +.ext6 > .ext7 { + width: 100px; +} +.ext, +.a .c, +.b .c { + test: 1; +} +.a, +.b { + test: 2; +} +.a .c, +.b .c { + test: 3; +} +.a .c .d, +.b .c .d { + test: 4; +} +.replace.replace .replace, +.c.replace + .replace .replace, +.replace.replace .c, +.c.replace + .replace .c, +.rep_ace.rep_ace .rep_ace, +.c.rep_ace + .rep_ace .rep_ace, +.rep_ace.rep_ace .c, +.c.rep_ace + .rep_ace .c { + prop: copy-paste-replace; +} +.attributes [data="test"], +.attributes .attributes .attribute-test { + extend: attributes; +} +.attributes [data], +.attributes .attributes .attribute-test2 { + extend: attributes2; +} +.attributes [data="test3"], +.attributes .attributes .attribute-test { + extend: attributes2; +} +.header .header-nav, +.footer .footer-nav { + background: red; +} +.header .header-nav:before, +.footer .footer-nav:before { + background: blue; +} +.issue-2586-bordered, +.issue-2586-somepage .content { + border: solid 1px black; +} +.issue-2586-somepage .content > span { + margin-bottom: 10px; +} diff --git a/test/Fixtures/lessjs-3.13.1/css/_main/extend.css b/test/Fixtures/lessjs-3.13.1/css/_main/extend.css new file mode 100644 index 00000000..2895641a --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/css/_main/extend.css @@ -0,0 +1,76 @@ +.error, +.badError { + border: 1px #f00; + background: #fdd; +} +.error.intrusion, +.badError.intrusion { + font-size: 1.3em; + font-weight: bold; +} +.intrusion .error, +.intrusion .badError { + display: none; +} +.badError { + border-width: 3px; +} +.foo .bar, +.foo .baz, +.ext1 .ext2 .bar, +.ext1 .ext2 .baz, +.ext3 .bar, +.ext3 .baz, +.foo .ext3, +.ext4 .bar, +.ext4 .baz, +.foo .ext4 { + display: none; +} +div.ext5, +.ext6 > .ext5, +div.ext7, +.ext6 > .ext7 { + width: 100px; +} +.ext8.ext9, +.fuu { + result: add-foo; +} +.ext8 .ext9, +.ext8 + .ext9, +.ext8 > .ext9, +.buu, +.zap, +.zoo { + result: bar-matched; +} +.ext8.nomatch { + result: none; +} +.ext8 .ext9, +.buu { + result: match-nested-bar; +} +.ext8.ext9, +.fuu { + result: match-nested-foo; +} +.aa, +.cc { + color: black; +} +.aa .dd, +.aa .ee { + background: red; +} +.bb, +.cc, +.ee, +.ff { + background: red; +} +.bb .bb, +.ff .ff { + color: black; +} diff --git a/test/Fixtures/lessjs-3.13.1/css/_main/extract-and-length.css b/test/Fixtures/lessjs-3.13.1/css/_main/extract-and-length.css new file mode 100644 index 00000000..dc69341c --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/css/_main/extract-and-length.css @@ -0,0 +1,133 @@ +.multiunit { + length: 6; + extract: abc "abc" 1 1px 1% #123; +} +.incorrect-index { + v1: extract(a b c, 5); + v2: extract(a, b, c, -2); +} +.scalar { + var-value: variable; + var-length: 1; + ill-index: extract(variable, 2); + name-value: name; + string-value: "string"; + number-value: 12345678; + color-value: blue; + rgba-value: rgba(80, 160, 240, 0.67); + empty-value: ; + name-length: 1; + string-length: 1; + number-length: 1; + color-length: 1; + rgba-length: 1; + empty-length: 1; +} +.mixin-arguments-1 { + length: 4; + extract: c | b | a; +} +.mixin-arguments-2 { + length: 4; + extract: c | b | a; +} +.mixin-arguments-3 { + length: 4; + extract: c | b | a; +} +.mixin-arguments-4 { + length: 0; + extract: extract(, 2) | extract(, 1); +} +.mixin-arguments-2 { + length: 4; + extract: c | b | a; +} +.mixin-arguments-3 { + length: 4; + extract: c | b | a; +} +.mixin-arguments-4 { + length: 3; + extract: c | b; +} +.mixin-arguments-2 { + length: 4; + extract: 3 | 2 | 1; +} +.mixin-arguments-3 { + length: 4; + extract: 3 | 2 | 1; +} +.mixin-arguments-4 { + length: 3; + extract: 3 | 2; +} +.md-space-comma { + length-1: 3; + extract-1: 1 2 3; + length-2: 3; + extract-2: 2; +} +.md-space-comma-as-args-2 { + length: 3; + extract: "x" "y" "z" | 1 2 3 | a b c; +} +.md-space-comma-as-args-3 { + length: 3; + extract: "x" "y" "z" | 1 2 3 | a b c; +} +.md-space-comma-as-args-4 { + length: 2; + extract: "x" "y" "z" | 1 2 3; +} +.md-cat-space-comma { + length-1: 3; + extract-1: 1 2 3; + length-2: 3; + extract-2: 2; +} +.md-cat-space-comma-as-args-2 { + length: 3; + extract: "x" "y" "z" | 1 2 3 | a b c; +} +.md-cat-space-comma-as-args-3 { + length: 3; + extract: "x" "y" "z" | 1 2 3 | a b c; +} +.md-cat-space-comma-as-args-4 { + length: 2; + extract: "x" "y" "z" | 1 2 3; +} +.md-cat-comma-space { + length-1: 3; + extract-1: 1, 2, 3; + length-2: 3; + extract-2: 2; +} +.md-cat-comma-space-as-args-1 { + length: 3; + extract: "x", "y", "z" | 1, 2, 3 | a, b, c; +} +.md-cat-comma-space-as-args-2 { + length: 3; + extract: "x", "y", "z" | 1, 2, 3 | a, b, c; +} +.md-cat-comma-space-as-args-3 { + length: 3; + extract: "x", "y", "z" | 1, 2, 3 | a, b, c; +} +.md-cat-comma-space-as-args-4 { + length: 0; + extract: extract(, 2) | extract(, 1); +} +.md-3D { + length-1: 2; + extract-1: a b c d, 1 2 3 4; + length-2: 2; + extract-2: 5 6 7 8; + length-3: 4; + extract-3: 7; + length-4: 1; + extract-4: 8; +} diff --git a/test/Fixtures/lessjs-3.13.1/css/_main/functions-each.css b/test/Fixtures/lessjs-3.13.1/css/_main/functions-each.css new file mode 100644 index 00000000..782dc327 --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/css/_main/functions-each.css @@ -0,0 +1,92 @@ +.sel-blue { + a: b; +} +.sel-green { + a: b; +} +.sel-red { + a: b; +} +.each { + index: 1, 2, 3, 4; + item1: a; + item2: b; + item3: c; + item4: d; + nest-1-1: 10px 1; + nest-2-1: 15px 2; + nest-1-2: 20px 1; + nest-2-2: 25px 2; + padding: 10px 20px 30px 40px; +} +.each .nest-anon { + nest-1-1: a c; + nest-1-2: a d; + nest-2-1: b c; + nest-2-2: b d; +} +.set { + one: blue; + two: green; + three: red; +} +.set-2 { + one-1: blue; + two-2: green; + three-3: red; +} +.single { + val: true; + val2: 2; + val3: 4; +} +.column-list { + list: 1 2 3 4; +} +.col-1 { + width: 25%; +} +.col-2 { + width: 25%; +} +.col-3 { + width: 25%; +} +.col-4 { + width: 25%; +} +.row-1 { + width: 10px; +} +.row-2 { + width: 20px; +} +.row-3 { + width: 30px; +} +.box { + -less-log: a; + -less-log: b; + -less-log: c; + -less-log: d; +} +.test-rule { + color: blue; + color: red; +} +.foo { + content: red; +} +.bar { + content: blue; +} +span { + content: 'foo'; + content: 'bar'; +} +div { + content: 'foo'; +} +.a .w-1 { + width: 90 100 110; +} diff --git a/test/Fixtures/lessjs-3.13.1/css/_main/functions.css b/test/Fixtures/lessjs-3.13.1/css/_main/functions.css new file mode 100644 index 00000000..99323620 --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/css/_main/functions.css @@ -0,0 +1,234 @@ +#functions { + color: #660000; + width: 16; + height: undefined("self"); + border-width: 5; + variable: 11; + background: linear-gradient(#000, #fff); +} +#built-in { + escaped: -Some::weird(#thing, y); + lighten: #ffcccc; + lighten-relative: #ff6666; + darken: #330000; + darken-relative: #990000; + saturate: #203c31; + saturate-relative: #28342f; + desaturate: #29332f; + desaturate-relative: #233930; + greyscale: #2e2e2e; + hsl-clamp: hsl(0, 0%, 100%); + spin-p: hsl(20, 50%, 50%); + spin-n: hsl(350, 50%, 50%); + luma-white: 100%; + luma-black: 0%; + luma-black-alpha: 0%; + luma-red: 21.26%; + luma-green: 71.52%; + luma-blue: 7.22%; + luma-yellow: 92.78%; + luma-cyan: 78.74%; + luma-differs-from-luminance: 23.89833349%; + luminance-white: 100%; + luminance-black: 0%; + luminance-black-alpha: 0%; + luminance-red: 21.26%; + luminance-differs-from-luma: 36.40541176%; + contrast-filter: contrast(30%); + saturate-filter: saturate(5%); + contrast-white: #000000; + contrast-black: #ffffff; + contrast-red: #ffffff; + contrast-green: #000000; + contrast-blue: #ffffff; + contrast-yellow: #000000; + contrast-cyan: #000000; + contrast-light: #111111; + contrast-dark: #eeeeee; + contrast-wrongorder: #111111; + contrast-light-thresh: #111111; + contrast-dark-thresh: #eeeeee; + contrast-high-thresh: #eeeeee; + contrast-low-thresh: #111111; + contrast-light-thresh-per: #111111; + contrast-dark-thresh-per: #eeeeee; + contrast-high-thresh-per: #eeeeee; + contrast-low-thresh-per: #111111; + replace: "Hello, World!"; + replace-captured: "This is a new string."; + replace-with-flags: "2 + 2 = 4"; + replace-single-quoted: 'foo-2'; + replace-escaped-string: bar-2; + replace-keyword: baz-2; + replace-with-color: "#135#1357"; + replace-with-number: "2em07"; + format: "rgb(32, 128, 64)"; + format-string: "hello world"; + format-multiple: "hello earth 2"; + format-url-encode: "red is %23ff0000"; + format-single-quoted: 'hello single world'; + format-escaped-string: hello escaped world; + format-color-as-string: "#123"; + format-number-as-string: "4px"; + eformat: rgb(32, 128, 64); + unitless: 12; + unit: 14em; + unitpercentage: 100%; + get-unit: px; + get-unit-empty: ; + hue: 98; + saturation: 12%; + lightness: 95%; + hsvhue: 98; + hsvsaturation: 12%; + hsvvalue: 95%; + red: 255; + green: 255; + blue: 255; + rounded: 11; + rounded-two: 10.67; + roundedpx: 3px; + roundedpx-three: 3.333px; + rounded-percentage: 10%; + ceil: 11px; + floor: 12px; + sqrt: 5px; + pi: 3.14159265; + mod: 2m; + abs: 4%; + tan: 0.90040404; + sin: 0.17364818; + cos: 0.84385396; + atan: 0.1rad; + atan: 34deg; + atan: 45deg; + pow: 64px; + pow: 64; + pow: 27; + min: 0; + min: 5; + min: 1pt; + min: 3mm; + max: 3; + max: 5em; + percentage: 20%; + color-quoted-digit: #dda0dd; + color-quoted-keyword: #dda0dd; + color-color: #dda0dd; + color-keyword: #dda0dd; + tint: #898989; + tint-full: #ffffff; + tint-percent: #898989; + tint-negative: #656565; + shade: #686868; + shade-full: #000000; + shade-percent: #686868; + shade-negative: #868686; + fade-out: rgba(255, 0, 0, 0.95); + fade-in: rgba(255, 0, 0, 0.95); + fade-out-relative: rgba(255, 0, 0, 0.95); + fade-in-relative: rgba(255, 0, 0, 0.945); + fade-out2: rgba(255, 0, 0, 0); + fade-out2-relative: rgba(255, 0, 0, 0.25); + hsv: #4d2926; + hsva: rgba(77, 40, 38, 0.2); + mix: #ff3300; + mix-0: #ffff00; + mix-100: #ff0000; + mix-weightless: #ff8000; + mixt: rgba(255, 0, 0, 0.5); +} +#built-in .is-a { + ruleset: true; + color: true; + color1: true; + color2: true; + color3: true; + keyword: true; + number: true; + string: true; + pixel: true; + percent: true; + em: true; + ex: true; + rem: true; + vw: true; + vh: true; + vmin: true; + vmax: true; + ch: true; + cm: true; + mm: true; + pt: true; + q: true; + in: true; + cat: true; + no-unit-is-empty: true; + case-insensitive-1: true; + case-insensitive-2: true; +} +#alpha { + alpha: hsla(25, 50%, 40%, 0.6); + alpha2: 0.5; + alpha3: 0; +} +#blendmodes { + multiply: #ed0000; + screen: #f600f6; + overlay: #ed0000; + softlight: #fa0000; + hardlight: #0000ed; + difference: #f600f6; + exclusion: #f600f6; + average: #7b007b; + negation: #d73131; +} +#extract-and-length { + extract: 3 2 1 C B A; + length: 6; +} +#quoted-functions-in-mixin { + replace-double-quoted: 'foo-2'; + replace-single-quoted: 'foo-4'; + replace-escaped-string: bar-2; + replace-keyword: baz-2; + replace-anonymous: qux-2; + format-double-quoted: "hello world"; + format-single-quoted: 'hello single world'; + format-escaped-string: hello escaped world; + format-keyword: hello; + format-anonymous: hello anonymous world; +} +#list-details { + length: 2; + one: a 1; + two: b 2; + two-length: 2; + two-one: b; + two-two: 2; +} +/* comment1 */ +html { + color: #8080ff; +} +#boolean { + a: true; + b: false; + c: false; +} +#if { + a: 1; + b: 2; + c: 3; + e: ; + f: 6; + g: 3; + h: 5; + i: 6; + j: 8; + k: 1; + l: black; + /* results in void */ + color: green; + color: purple; +} diff --git a/test/Fixtures/lessjs-3.13.1/css/_main/ie-filters.css b/test/Fixtures/lessjs-3.13.1/css/_main/ie-filters.css new file mode 100644 index 00000000..007aa536 --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/css/_main/ie-filters.css @@ -0,0 +1,9 @@ +.nav { + filter: progid:DXImageTransform.Microsoft.Alpha(opacity=20); + filter: progid:DXImageTransform.Microsoft.Alpha(opacity=0); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr="#333333", endColorstr="#000000", GradientType=0); +} +.evalTest1 { + filter: progid:DXImageTransform.Microsoft.Alpha(opacity=30); + filter: progid:DXImageTransform.Microsoft.Alpha(opacity=5); +} diff --git a/test/Fixtures/lessjs-3.13.1/css/_main/import-inline.css b/test/Fixtures/lessjs-3.13.1/css/_main/import-inline.css new file mode 100644 index 00000000..6e956898 --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/css/_main/import-inline.css @@ -0,0 +1,8 @@ +#import { + color: red; +} +@media (min-width: 600px) { + #css { color: yellow; } + +} +this isn't very valid CSS. diff --git a/test/Fixtures/lessjs-3.13.1/css/_main/import-interpolation.css b/test/Fixtures/lessjs-3.13.1/css/_main/import-interpolation.css new file mode 100644 index 00000000..ee44ac41 --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/css/_main/import-interpolation.css @@ -0,0 +1,13 @@ +body { + width: 100%; +} +#logo { + width: 100px; + height: 100px; + background: url('../assets/logo.png'); + background: url("#inline-svg"); +} + +.a { + var: test; +} diff --git a/test/Fixtures/lessjs-3.13.1/css/_main/import-module.css b/test/Fixtures/lessjs-3.13.1/css/_main/import-module.css new file mode 100644 index 00000000..c25cc856 --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/css/_main/import-module.css @@ -0,0 +1,9 @@ +.three { + color: green; +} +.two { + color: blue; +} +.one { + color: red; +} diff --git a/test/Fixtures/lessjs-3.13.1/css/_main/import-once.css b/test/Fixtures/lessjs-3.13.1/css/_main/import-once.css new file mode 100644 index 00000000..a0823b88 --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/css/_main/import-once.css @@ -0,0 +1,15 @@ +#import { + color: red; +} +body { + width: 100%; +} +.test-rule-f { + height: 10px; +} +body { + width: 100%; +} +.test-rule-f { + height: 10px; +} diff --git a/test/Fixtures/lessjs-3.13.1/css/_main/import-reference-issues.css b/test/Fixtures/lessjs-3.13.1/css/_main/import-reference-issues.css new file mode 100644 index 00000000..92daa29a --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/css/_main/import-reference-issues.css @@ -0,0 +1,24 @@ +.test-rule-c { + background-color: green; +} +.theOnlySelector { + shall-have: one selector; +} +show-all-content { + /* + tralala +*/ +} +show-all-content .fix { + fix: fix; +} +show-all-content .something { + inside: something; +} +#used-namespaced-mixin { + was: included; + shall-see: another property above; +} +call-mixin-with-import-by-reference-inside { + the-only-property: nothing-below-this; +} diff --git a/test/Fixtures/lessjs-3.13.1/css/_main/import-reference.css b/test/Fixtures/lessjs-3.13.1/css/_main/import-reference.css new file mode 100644 index 00000000..a0d71245 --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/css/_main/import-reference.css @@ -0,0 +1,97 @@ +input[type="text"].class#id[attr=32]:not(1) { + color: inherit; +} +div#id.class[a=1][b=2].class:not(1) { + color: inherit; +} +@media print { + .class { + color: blue; + } + .class .sub { + width: 42; + } +} +.visible { + color: red; +} +.visible .c { + color: green; +} +.visible { + color: green; +} +.visible:hover { + color: green; +} +.only-with-visible + .visible, +.visible + .only-with-visible, +.visible + .visible { + color: green; +} +.only-with-visible + .visible .sub, +.visible + .only-with-visible .sub, +.visible + .visible .sub { + color: green; +} +@supports (something: else) { + .class { + something: else; + } + .nestedToo .class { + something: else; + } +} +.b { + color: red; + color: green; +} +.b .c { + color: green; +} +.b:hover { + color: green; +} +.b + .b { + color: green; +} +.b + .b .sub { + color: green; +} +.y { + pulled-in: yes /* inline comment survives */; +} +/* comment pulled in */ +.visible { + extend: test; +} +.test-rule-mediaq-import { + color: green; + test: 340px; +} +@media (max-size: 450px) { + .test-rule-mediaq-import { + color: red; + } +} +.test-rule { + color: red; +} +.test-rule:first-child { + color: blue; +} +@keyframes some-name { + property: value; +} +@supports (animation-name: test) { + @keyframes some-name { + property: value; + } + .selector { + color: red; + } +} +div { + this isn't very valid CSS. +} +this isn't very valid CSS. diff --git a/test/Fixtures/lessjs-3.13.1/css/_main/import-remote.css b/test/Fixtures/lessjs-3.13.1/css/_main/import-remote.css new file mode 100644 index 00000000..23ef8dbc --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/css/_main/import-remote.css @@ -0,0 +1,3 @@ +.test { + color: blue; +} diff --git a/test/Fixtures/lessjs-3.13.1/css/_main/import.css b/test/Fixtures/lessjs-3.13.1/css/_main/import.css new file mode 100644 index 00000000..4590222e --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/css/_main/import.css @@ -0,0 +1,49 @@ +@charset "UTF-8"; +/** comment at the top**/ +@import url(/absolute/something.css) screen and (color) and (max-width: 600px); +@import url("//ha.com/file.css") (min-width: 100px); +#import-test { + height: 10px; + color: red; + width: 10px; + height: 30%; + value: 3.141592653589793; +} +@media screen and (max-width: 600px) { + body { + width: 100%; + } +} +#import { + color: red; +} +.mixin { + height: 10px; + color: red; +} +.test-rule-f { + height: 10px; +} +.deep-import-url { + color: red; +} +@media screen and (max-width: 601px) { + #css { + color: yellow; + } +} +@media screen and (max-width: 602px) { + body { + width: 100%; + } +} +@media screen and (max-width: 603px) { + #css { + color: yellow; + } +} +@media print { + body { + width: 100%; + } +} diff --git a/test/Fixtures/lessjs-3.13.1/css/_main/javascript.css b/test/Fixtures/lessjs-3.13.1/css/_main/javascript.css new file mode 100644 index 00000000..9a168270 --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/css/_main/javascript.css @@ -0,0 +1,29 @@ +.eval { + js: 42; + js: 2; + js: "hello world"; + js: 1, 2, 3; + title: "string"; + ternary: true; + multiline: 2; +} +.scope { + empty: ; + var: 42; + escaped: 7px; +} +.vars { + width: 8; +} +.escape-interpol { + width: hello world; +} +.arrays { + ary: "1, 2, 3"; + ary1: "1, 2, 3"; +} +.test-rule-tran { + one: opacity 0.3s ease-in 0.3s, max-height 0.6s linear, margin-bottom 0.4s linear; + two: [opacity 0.3s ease-in 0.3s, max-height 0.6s linear, margin-bottom 0.4s linear]; + three: opacity 0.3s ease-in 0.3s, max-height 0.6s linear, margin-bottom 0.4s linear; +} diff --git a/test/Fixtures/lessjs-3.13.1/css/_main/lazy-eval.css b/test/Fixtures/lessjs-3.13.1/css/_main/lazy-eval.css new file mode 100644 index 00000000..1adfb8f3 --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/css/_main/lazy-eval.css @@ -0,0 +1,3 @@ +.lazy-eval { + width: 100%; +} diff --git a/test/Fixtures/lessjs-3.13.1/css/_main/media.css b/test/Fixtures/lessjs-3.13.1/css/_main/media.css new file mode 100644 index 00000000..2016c0e7 --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/css/_main/media.css @@ -0,0 +1,223 @@ +@media print { + .class { + color: blue; + } + .class .sub { + width: 42; + } + .top, + header > h1 { + color: #444444; + } +} +@media screen { + .body { + max-width: 480; + } +} +@media all and (device-aspect-ratio: 16 / 9) { + .body { + max-width: 800px; + } +} +@media all and (orientation: portrait) { + aside { + float: none; + } +} +@media handheld and (min-width: 42), screen and (min-width: 20em) { + .body { + max-width: 480px; + } +} +@media print { + .body { + padding: 20px; + } + .body header { + background-color: red; + } +} +@media print and (orientation: landscape) { + .body { + margin-left: 20px; + } +} +@media screen { + .sidebar { + width: 300px; + } +} +@media screen and (orientation: landscape) { + .sidebar { + width: 500px; + } +} +@media a and (b) { + .first .second .third { + width: 300px; + } + .first .second .fourth { + width: 3; + } +} +@media a and (b) and (c) { + .first .second .third { + width: 500px; + } +} +@media a, (b) and (c) { + .body { + width: 95%; + } +} +@media a and (x), (b) and (c) and (x), a and (y), (b) and (c) and (y) { + .body { + width: 100%; + } +} +.a { + background: black; +} +@media handheld { + .a { + background: white; + } +} +@media handheld and (max-width: 100px) { + .a { + background: red; + } +} +.b { + background: black; +} +@media handheld { + .b { + background: white; + } +} +@media handheld and (max-width: 200px) { + .b { + background: red; + } +} +@media only screen and (max-width: 200px) { + .body { + width: 480px; + } +} +@media print { + @page :left { + margin: 0.5cm; + } + @page :right { + margin: 0.5cm; + } + @page Test:first { + margin: 1cm; + } + @page :first { + size: 8.5in 11in; + @top-left { + margin: 1cm; + } + @top-left-corner { + margin: 1cm; + } + @top-center { + margin: 1cm; + } + @top-right { + margin: 1cm; + } + @top-right-corner { + margin: 1cm; + } + @bottom-left { + margin: 1cm; + } + @bottom-left-corner { + margin: 1cm; + } + @bottom-center { + margin: 1cm; + } + @bottom-right { + margin: 1cm; + } + @bottom-right-corner { + margin: 1cm; + } + @left-top { + margin: 1cm; + } + @left-middle { + margin: 1cm; + } + @left-bottom { + margin: 1cm; + } + @right-top { + margin: 1cm; + } + @right-middle { + content: "Page " counter(page); + } + @right-bottom { + margin: 1cm; + } + } +} +@media (-webkit-min-device-pixel-ratio: 2), (min--moz-device-pixel-ratio: 2), (-o-min-device-pixel-ratio: 2/1), (min-resolution: 2dppx), (min-resolution: 128dpcm) { + .b { + background: red; + } +} +.body { + background: red; +} +@media (max-width: 500px) { + .body { + background: green; + } +} +@media (max-width: 1000px) { + .body { + background: red; + background: blue; + } +} +@media (max-width: 1000px) and (max-width: 500px) { + .body { + background: green; + } +} +@media (max-width: 1200px) { + /* a comment */ +} +@media (max-width: 1200px) and (max-width: 900px) { + .body { + font-size: 11px; + } +} +@media (min-width: 480px) { + .nav-justified > li { + display: table-cell; + } +} +@media (min-width: 768px) and (min-width: 480px) { + .menu > li { + display: table-cell; + } +} +@media all and (tv) { + .all-and-tv-variables { + var: all-and-tv; + } +} +@media screen and (min-width: 61px) { + .selector { + foo: bar; + } +} diff --git a/test/Fixtures/lessjs-3.13.1/css/_main/merge.css b/test/Fixtures/lessjs-3.13.1/css/_main/merge.css new file mode 100644 index 00000000..e02ff630 --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/css/_main/merge.css @@ -0,0 +1,35 @@ +.test-rule1 { + transform: rotate(90deg), skew(30deg), scale(2, 4); +} +.test-rule2 { + transform: rotate(90deg), skew(30deg); + transform: scaleX(45deg); +} +.test-rule3 { + transform: scaleX(45deg); + background: url(data://img1.png); +} +.test-rule4 { + transform: rotate(90deg), skew(30deg), scale(2, 4) !important; +} +.test-rule5 { + transform: rotate(90deg), skew(30deg), scale(2, 4) !important; +} +.test-rule6 { + transform: scale(2, 4); +} +.test-rule7 { + transform: scale(2, 4), scale(2, 4), scale(2, 4) !important; +} +.test-rule-interleaved { + transform: t1, t2, t3; + background: b1, b2, b3; +} +.test-rule-spaced { + transform: t1 t2 t3; + background: b1 b2, b3; +} +.test-rule-interleaved-with-spaced { + transform: t1s, t2 t3s, t4 t5s t6s; + background: b1 b2s, b3, b4; +} diff --git a/test/Fixtures/lessjs-3.13.1/css/_main/mixins-closure.css b/test/Fixtures/lessjs-3.13.1/css/_main/mixins-closure.css new file mode 100644 index 00000000..b1021b6f --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/css/_main/mixins-closure.css @@ -0,0 +1,9 @@ +.class { + width: 99px; +} +.overwrite { + width: 99px; +} +.nested .class { + width: 5px; +} diff --git a/test/Fixtures/lessjs-3.13.1/css/_main/mixins-guards-default-func.css b/test/Fixtures/lessjs-3.13.1/css/_main/mixins-guards-default-func.css new file mode 100644 index 00000000..3a11c657 --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/css/_main/mixins-guards-default-func.css @@ -0,0 +1,129 @@ +guard-default-basic-1-1 { + case: 1; +} +guard-default-basic-1-2 { + default: 2; +} +guard-default-basic-2-0 { + default: 0; +} +guard-default-basic-2-2 { + case: 2; +} +guard-default-basic-3-0 { + default: 0; +} +guard-default-basic-3-2 { + case: 2; +} +guard-default-basic-3-3 { + case: 3; +} +guard-default-definition-order-0 { + default: 0; +} +guard-default-definition-order-2 { + case: 2; +} +guard-default-definition-order-2 { + case: 3; +} +guard-default-out-of-guard-0 { + case-0: default(); + case-1: 1; + default: 2; + case-2: default(); +} +guard-default-out-of-guard-1 { + default: default(); +} +guard-default-out-of-guard-2 { + default: default(); +} +guard-default-expr-not-1 { + case: 1; + default: 1; +} +guard-default-expr-eq-true { + case: true; +} +guard-default-expr-eq-false { + case: false; + default: false; +} +guard-default-expr-or-1 { + case: 1; +} +guard-default-expr-or-2 { + case: 2; + default: 2; +} +guard-default-expr-or-3 { + default: 3; +} +guard-default-expr-and-1 { + case: 1; +} +guard-default-expr-and-2 { + case: 2; +} +guard-default-expr-and-3 { + default: 3; +} +guard-default-expr-always-1 { + case: 1; + default: 1; +} +guard-default-expr-always-2 { + default: 2; +} +guard-default-expr-never-1 { + case: 1; +} +guard-default-multi-1-0 { + case: 0; +} +guard-default-multi-1-1 { + default-1: 1; +} +guard-default-multi-2-1 { + default-1: no; +} +guard-default-multi-2-2 { + default-2: no; +} +guard-default-multi-2-3 { + default-3: 3; +} +guard-default-multi-3-blue { + case-2: darkblue; +} +guard-default-multi-3-green { + default-color: green; +} +guard-default-multi-3-foo { + case-1: I am 'foo'; +} +guard-default-multi-3-baz { + default-string: I am 'baz'; +} +guard-default-multi-4 { + always: 1; + always: 2; + case: 2; +} +guard-default-not-ambiguous-2 { + case: 1; + not-default: 2; +} +guard-default-not-ambiguous-3 { + case: 1; + not-default-1: 2; + not-default-2: 2; +} +guard-default-scopes-3 { + three: when default; +} +guard-default-scopes-1 { + one: no condition; +} diff --git a/test/Fixtures/lessjs-3.13.1/css/_main/mixins-guards.css b/test/Fixtures/lessjs-3.13.1/css/_main/mixins-guards.css new file mode 100644 index 00000000..c54eca77 --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/css/_main/mixins-guards.css @@ -0,0 +1,211 @@ +.light1 { + color: inherit; + margin: 1px; +} +.light2 { + color: black; + margin: 1px; +} +.max1 { + width: 6; +} +.max2 { + width: 8; +} +.glob1 { + margin: auto auto; +} +.ops1 { + height: gt-or-eq; + height: lt-or-eq; + height: lt-or-eq-alias; +} +.ops2 { + height: gt-or-eq; + height: not-eq; +} +.ops3 { + height: lt-or-eq; + height: lt-or-eq-alias; + height: not-eq; +} +.default1 { + content: default; +} +.test-rule1 { + content: "true."; +} +.test-rule2 { + content: "false."; +} +.test-rule3 { + content: "false."; +} +.test-rule4 { + content: "false."; +} +.test-rule5 { + content: "false."; +} +.bool1 { + content: true and true; + content: true; + content: false, true; + content: false and true and true, true; + content: false, true and true; + content: false, false, true; + content: false, true and true and true, false; + content: not false; + content: not false and false, not false; +} +.equality-units { + test: pass; +} +.colorguardtest { + content: is red; + content: is not blue its red; + content: is not blue its purple; +} +.stringguardtest { + content: "theme1" is "theme1"; + content: "theme1" is not "theme2"; + content: "theme1" is 'theme1'; + content: "theme1" is not 'theme2'; + content: 'theme1' is "theme1"; + content: 'theme1' is not "theme2"; + content: 'theme1' is 'theme1'; + content: 'theme1' is not 'theme2'; + content: theme1 is not "theme2"; + content: theme1 is not 'theme2'; + content: theme1 is theme1; +} +.variouse-types-comparison { + /**/ + content: true is not equal to false; + content: false is not equal to true too; + /**/ + content: 1 is not equal to true; + content: true is not equal to 1 too; + /**/ + content: 2 is equal to 2px; + content: 2px is equal to 2 too; + /**/ + content: 3 is equal to 3; + content: 3 is equal to 3 too; + /**/ + content: 5 is not equal to 4; + content: 4 is not equal to 5 too; + /**/ + content: abc is equal to abc; + content: abc is equal to abc too; + /**/ + content: abc is not equal to "abc"; + content: "abc" is not equal to abc too; + /**/ + content: 'abc' is less than "abd"; + content: "abd" is greater than 'abc' too; + content: 'abc' is not equal to "abd"; + content: "abd" is not equal to 'abc' too; + /**/ + content: 6 is equal to 6; + content: 6 is equal to 6 too; + /**/ + content: 8 is less than 9 too; + content: 9 is greater than 8; + content: 9 is not equal to 8; + content: 8 is not equal to 9 too; + /**/ + content: a is not equal to b; + content: b is not equal to a too; + /**/ + content: 1 2 is not equal to 3; + content: 3 is not equal to 1 2 too; +} +.list-comparison { + /**/ + content: a b c is equal to a b c; + content: a b c is equal to a b c too; + /**/ + content: a b c is not equal to a b d; + content: a b d is not equal to a b c too; + /**/ + content: a, b, c is equal to a, b, c; + content: a, b, c is equal to a, b, c too; + /**/ + content: a, b, c is not equal to a, b, d; + content: a, b, d is not equal to a, b, c too; + /**/ + content: 1 2px 300ms is equal to 1em 2 0.3s; + content: 1em 2 0.3s is equal to 1 2px 300ms too; + /**/ + content: 1 2 3 is not equal to 1, 2, 3; + content: 1, 2, 3 is not equal to 1 2 3 too; + /**/ + content: 1, 2, 3 is equal to 1, 2, 3; + content: 1, 2, 3 is equal to 1, 2, 3 too; + /**/ + content: 1 2 3 1, 2, 3 is equal to 1 2 3 1, 2, 3; + content: 1 2 3 1, 2, 3 is equal to 1 2 3 1, 2, 3 too; + /**/ + content: 1 2 3 1, 2, 3 is not equal to 1, 2, 3 1 2 3; + content: 1, 2, 3 1 2 3 is not equal to 1 2 3 1, 2, 3 too; + /**/ + content: 1 2 3 1, 2, 3 4 is equal to 1 2 3 1, 2, 3 4; + content: 1 2 3 1, 2, 3 4 is equal to 1 2 3 1, 2, 3 4 too; +} +#tryNumberPx { + catch: all; + declare: 4; + declare: 4px; +} +.call-lock-mixin .call-inner-lock-mixin { + a: 1; + x: 1; +} +.mixin-generated-class { + a: 1; +} +#guarded-caller { + guarded: namespace; + silent: namespace; + guarded: with default; +} +#guarded-deeper { + should: match 1; +} +#parenthesisNot-true { + parenthesisNot: just-value; + parenthesisNot: negated twice 1; + parenthesisNot: negated twice 2; + parenthesisNot: negated twice 3; +} +#parenthesisNot-false { + parenthesisNot: negated once inside; + parenthesisNot: negated once outside; + parenthesisNot: negated once middle; +} +#orderOfEvaluation-false-false-true { + no-parenthesis: evaluated true 1a; + no-parenthesis: evaluated true 1b; + no-parenthesis: evaluated true 1d; + no-parenthesis: evaluated true 3; + no-parenthesis: evaluated true 4; + with-parenthesis: evaluated true; +} +#orderOfEvaluation-false-false-false { + no-parenthesis: evaluated true 2a; + no-parenthesis: evaluated true 2b; + no-parenthesis: evaluated true 2c; +} +#orderOfEvaluation-true-true-false { + no-parenthesis: evaluated true 1a; + no-parenthesis: evaluated true 1b; + no-parenthesis: evaluated true 1c; + no-parenthesis: evaluated true 1d; + no-parenthesis: evaluated true 1e; + no-parenthesis: evaluated true 2a; + no-parenthesis: evaluated true 2b; + no-parenthesis: evaluated true 2c; + no-parenthesis: evaluated true 4; + with-parenthesis: evaluated true; +} diff --git a/test/Fixtures/lessjs-3.13.1/css/_main/mixins-important.css b/test/Fixtures/lessjs-3.13.1/css/_main/mixins-important.css new file mode 100644 index 00000000..3d53d431 --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/css/_main/mixins-important.css @@ -0,0 +1,57 @@ +.class { + border: 1; + boxer: 1; + border-width: 1; + border: 2 !important; + boxer: 2 !important; + border-width: 2 !important; + border: 3; + boxer: 3; + border-width: 3; + border: 4 !important; + boxer: 4 !important; + border-width: 4 !important; + border: 5; + boxer: 5; + border-width: 5; + border: 0 !important; + boxer: 0 !important; + border-width: 0 !important; + border: 9 !important; + border: 9; + boxer: 9; + border-width: 9; +} +.class .inner { + test: 1; +} +.class .inner { + test: 2 !important; +} +.class .inner { + test: 3; +} +.class .inner { + test: 4 !important; +} +.class .inner { + test: 5; +} +.class .inner { + test: 0 !important; +} +.class .inner { + test: 9; +} +.when-calling-nested-issue-2394 { + width: auto !important; +} +.when-calling-nested-with-param-issue-2394 { + width: 10px !important; +} +.class1-2421 { + margin: 5px !important; +} +.class2-2421 { + margin: 5px; +} diff --git a/test/Fixtures/lessjs-3.13.1/css/_main/mixins-interpolated.css b/test/Fixtures/lessjs-3.13.1/css/_main/mixins-interpolated.css new file mode 100644 index 00000000..0d511fc6 --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/css/_main/mixins-interpolated.css @@ -0,0 +1,43 @@ +.123 { + a: 0; +} +.foo { + a: 1; +} +.foo { + a: 2; +} +#foo { + a: 3; +} +#foo { + a: 4; +} +mi-test-a { + a: 0; + a: 1; + a: 2; + a: 3; + a: 4; +} +.b .bb.foo-xxx .yyy-foo#foo .foo.bbb { + b: 1; +} +mi-test-b { + b: 1; +} +#foo-foo > .bar .baz { + c: c; +} +mi-test-c-1 > .bar .baz { + c: c; +} +mi-test-c-2 .baz { + c: c; +} +mi-test-c-3 { + c: c; +} +mi-test-d { + gender: "Male"; +} diff --git a/test/Fixtures/lessjs-3.13.1/css/_main/mixins-named-args.css b/test/Fixtures/lessjs-3.13.1/css/_main/mixins-named-args.css new file mode 100644 index 00000000..e460aa10 --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/css/_main/mixins-named-args.css @@ -0,0 +1,27 @@ +.named-arg { + color: blue; + width: 5px; + height: 99%; + args: 1px 100%; + text-align: center; +} +.class { + width: 5px; + height: 19%; + args: 1px 20%; +} +.all-args-wrong-args { + width: 10px; + height: 9%; + args: 2px 10%; +} +.named-args2 { + width: 15px; + height: 49%; + color: #646464; +} +.named-args3 { + width: 5px; + height: 29%; + color: #123456; +} diff --git a/test/Fixtures/lessjs-3.13.1/css/_main/mixins-nested.css b/test/Fixtures/lessjs-3.13.1/css/_main/mixins-nested.css new file mode 100644 index 00000000..6378c475 --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/css/_main/mixins-nested.css @@ -0,0 +1,14 @@ +.class .inner { + height: 300; +} +.class .inner .innest { + width: 30; + border-width: 60; +} +.class2 .inner { + height: 600; +} +.class2 .inner .innest { + width: 60; + border-width: 120; +} diff --git a/test/Fixtures/lessjs-3.13.1/css/_main/mixins-pattern.css b/test/Fixtures/lessjs-3.13.1/css/_main/mixins-pattern.css new file mode 100644 index 00000000..1515f32a --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/css/_main/mixins-pattern.css @@ -0,0 +1,51 @@ +.zero { + variadic: true; + named-variadic: true; + zero: 0; + one: 1; + two: 2; + three: 3; +} +.one { + variadic: true; + named-variadic: true; + one: 1; + one-req: 1; + two: 2; + three: 3; +} +.two { + variadic: true; + named-variadic: true; + two: 2; + three: 3; +} +.three { + variadic: true; + named-variadic: true; + three-req: 3; + three: 3; +} +.left { + left: 1; +} +.right { + right: 1; +} +.border-right { + color: black; + border-right: 4px; +} +.border-left { + color: black; + border-left: 4px; +} +.only-right { + right: 33; +} +.only-left { + left: 33; +} +.left-right { + both: 330; +} diff --git a/test/Fixtures/lessjs-3.13.1/css/_main/mixins.css b/test/Fixtures/lessjs-3.13.1/css/_main/mixins.css new file mode 100644 index 00000000..c9087c0a --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/css/_main/mixins.css @@ -0,0 +1,144 @@ +.mixin { + border: 1px solid black; +} +.mixout { + border-color: orange; +} +.borders { + border-style: dashed; +} +.mixin > * { + border: do not match me; +} +#namespace .borders { + border-style: dotted; +} +#namespace .biohazard { + content: "death"; +} +#namespace .biohazard .man { + color: transparent; +} +#theme > .mixin { + background-color: grey; +} +#container { + color: black; + border: 1px solid black; + border-color: orange; + background-color: grey; +} +#header .milk { + color: inherit; + border: 1px solid black; + background-color: grey; +} +#header #cookie { + border-style: dashed; +} +#header #cookie .chips { + border-style: dotted; +} +#header #cookie .chips .calories { + color: black; + border: 1px solid black; + border-color: orange; + background-color: grey; +} +.secure-zone { + color: transparent; +} +.direct { + border-style: dotted; +} +.bo, +.bar { + width: 100%; +} +.bo { + border: 1px; +} +.ar.bo.ca { + color: black; +} +.jo.ki { + background: none; +} +.amp.support { + color: orange; +} +.amp.support .higher { + top: 0px; +} +.amp.support.deeper { + height: auto; +} +.extended { + width: 100%; + border: 1px; + background: none; + color: orange; + top: 0px; + height: auto; +} +.extended .higher { + top: 0px; +} +.extended.deeper { + height: auto; +} +.do .re .mi .fa .sol .la .si { + color: cyan; +} +.mutli-selector-parents { + color: cyan; +} +.foo .bar { + width: 100%; +} +.underParents { + color: red; +} +.parent .underParents { + color: red; +} +* + h1 { + margin-top: 25px; +} +legend + h1 { + margin-top: 0; +} +h1 + * { + margin-top: 10px; +} +* + h2 { + margin-top: 20px; +} +legend + h2 { + margin-top: 0; +} +h2 + * { + margin-top: 8px; +} +* + h3 { + margin-top: 15px; +} +legend + h3 { + margin-top: 0; +} +h3 + * { + margin-top: 5px; +} +.error { + background-image: "/a.png"; + background-position: center center; +} +.test-rule-rec .recursion { + color: black; +} +.button { + padding-left: 44px; +} +.button.large { + padding-left: 40em; +} diff --git a/test/Fixtures/lessjs-3.13.1/css/_main/no-output.css b/test/Fixtures/lessjs-3.13.1/css/_main/no-output.css new file mode 100644 index 00000000..e69de29b diff --git a/test/Fixtures/lessjs-3.13.1/css/_main/operations.css b/test/Fixtures/lessjs-3.13.1/css/_main/operations.css new file mode 100644 index 00000000..61ce933f --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/css/_main/operations.css @@ -0,0 +1,50 @@ +#operations { + color: #111111; + color-2: #f8f800; + height: 9px; + width: 3em; + subtraction: 0; + division: 1; +} +#operations .spacing { + height: 9px; + width: 3em; +} +.with-variables { + height: 16em; + width: 24em; + size: 1cm; +} +.with-functions { + color: #646464; + color: #ff8080; + color: #c94a4a; +} +.negative { + height: 0px; + width: 4px; +} +.shorthands { + padding: -1px 2px 0 -4px; +} +.rem-dimensions { + font-size: 5.5rem; +} +.colors { + color: #123; + border-color: #334455; + background-color: #000000; +} +.colors .other { + color: #222222; + border-color: #222222; +} +.negations { + variable: -4px; + variable1: 0px; + variable2: 0px; + variable3: 8px; + variable4: 0px; + paren: -4px; + paren2: 16px; +} diff --git a/test/Fixtures/lessjs-3.13.1/css/_main/parse-interpolation.css b/test/Fixtures/lessjs-3.13.1/css/_main/parse-interpolation.css new file mode 100644 index 00000000..21122d72 --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/css/_main/parse-interpolation.css @@ -0,0 +1,36 @@ +input[type=text]:focus, +input[type=email]:focus, +input[type=password]:focus, +textarea:focus { + foo: bar; +} +.a + .z, +.b + .z, +.c + .z { + color: blue; +} +.bar .d.a, +.bar .b, +.c.bar:hover, +.bar baz { + color: blue; +} +.a + .e, +.b.c + .e, +.d + .e { + foo: bar; +} +input[class="text"], +input.text { + background: red; +} +.master-page-1 .selector-1, +.master-page-1 .selector-2 { + background-color: red; +} +.fruit-apple, +.fruit-satsuma, +.fruit-banana, +.fruit-pear { + content: "Just a test."; +} diff --git a/test/Fixtures/lessjs-3.13.1/css/_main/permissive-parse.css b/test/Fixtures/lessjs-3.13.1/css/_main/permissive-parse.css new file mode 100644 index 00000000..58eb55e6 --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/css/_main/permissive-parse.css @@ -0,0 +1,37 @@ +@-moz-document regexp("(\d{0,15})") { + a { + color: red; + } +} +.custom-property { + --this: () => { + basically anything until final semi-colon; + even other stuff; // i\'m serious; + }; + --that: () => { + basically anything until final semi-colon; + even other stuff; // i\'m serious; + }; + --custom-color: #ff3333 #ff3333; + custom-color: #ff3333 #ff3333; +} +.var { + --fortran: read (*, *, iostat=1) radius, height; +} +@-moz-whatever (foo: "(" bam ")") { + bar: foo; +} +#selector, +.bar, +foo[attr="blah"] { + bar: value; +} +@media (min-width: 640px) { + .holy-crap { + this: works; + } +} +.test-rule-comment { + --value: a /* { ; } */; + --comment-within: ( /* okay?; comment; */ ); +} diff --git a/test/Fixtures/lessjs-3.13.1/css/_main/plugin-module.css b/test/Fixtures/lessjs-3.13.1/css/_main/plugin-module.css new file mode 100644 index 00000000..f13af217 --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/css/_main/plugin-module.css @@ -0,0 +1 @@ +a{background:0 0} \ No newline at end of file diff --git a/test/Fixtures/lessjs-3.13.1/css/_main/plugin-preeval.css b/test/Fixtures/lessjs-3.13.1/css/_main/plugin-preeval.css new file mode 100644 index 00000000..920ee35f --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/css/_main/plugin-preeval.css @@ -0,0 +1,3 @@ +:root.two .one { + --foo: bar !important; +} diff --git a/test/Fixtures/lessjs-3.13.1/css/_main/plugin.css b/test/Fixtures/lessjs-3.13.1/css/_main/plugin.css new file mode 100644 index 00000000..0201704a --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/css/_main/plugin.css @@ -0,0 +1,69 @@ +@charset "utf-8"; +.other { + trans: transitive; +} +.class { + trans: transitive; + global: global; + local: test-local(); + shadow: global; +} +.class .local { + global: global; + local: local; + shadow: local; +} +.class { + ns-mixin-global: global; + ns-mixin-local: local; + ns-mixin-shadow: local; + mixin-local: local; + mixin-global: global; + mixin-shadow: local; + ruleset-local: local; + ruleset-global: global; + ruleset-shadow: local; + class-local: test-local(); +} +@media screen { + .test-rule { + result: global; + } +} +@font-face { + result: global; +} +@media screen and (min-width: 100px) and (max-width: 400px) { + .test-rule { + result: global; + } +} +@media screen { + .test-rule { + result: local; + } +} +.root { + prop: value; +} +.test-rule-empty { + val1: foo; + val2: foo; +} +.test-rule-simple { + value: 3.141592653589793; + value: 6.28318531; +} +.test-rule-conflicts { + value: foo; +} +.test-rule-conflicts { + value: bar; +} +.test-rule-conflicts { + value: foo; +} +.test-rule-collection { + list: 32, 5, "bird"; +} +@arbitrary value after (); diff --git a/test/Fixtures/lessjs-3.13.1/css/_main/property-accessors.css b/test/Fixtures/lessjs-3.13.1/css/_main/property-accessors.css new file mode 100644 index 00000000..d48dfc24 --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/css/_main/property-accessors.css @@ -0,0 +1,49 @@ +.block_1 { + color: red; + background-color: red; + width: 50px; + height: 25px; + border: 1px solid #ff3333; + content: "red"; + prop: red; +} +.block_1:hover { + background-color: green; + color: green; +} +.block_1 .one { + background: red; +} +.block_2 { + color: red; + color: blue; +} +.block_2 .two { + background-color: blue; +} +.block_3 { + color: red; + color: yellow; + color: blue; +} +.block_3 .three { + background-color: blue; +} +.block_4 { + color: red; + color: blue; + color: yellow; +} +.block_4 .four { + background-color: yellow; +} +a { + background-color: red, foo; +} +ab { + background: red, foo; +} +.value_as_property { + prop1: color; + color: #FF0000; +} diff --git a/test/Fixtures/lessjs-3.13.1/css/_main/property-name-interp.css b/test/Fixtures/lessjs-3.13.1/css/_main/property-name-interp.css new file mode 100644 index 00000000..315815e3 --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/css/_main/property-name-interp.css @@ -0,0 +1,21 @@ +pi-test { + border: 0; + @not-variable: @not-variable; + ufo-width: 50%; + *-z-border: 1px dashed blue; + -www-border-top: 2px; + radius-is-not-a-border: true; + border-top-left-radius: 2em; + border-top-red-radius-: 3pt; + global-local-mixer-property: strong; +} +pi-test-merge { + pre-property-ish: high, middle, low, base; + pre-property-ish+: nice try dude; +} +pi-indirect-vars { + auto: auto; +} +pi-complex-values { + 3px rgba(255, 255, 0, 0.5), 3.141592653589793 /* foo */3px rgba(255, 255, 0, 0.5), 3.141592653589793 /* foo */: none; +} diff --git a/test/Fixtures/lessjs-3.13.1/css/_main/rulesets.css b/test/Fixtures/lessjs-3.13.1/css/_main/rulesets.css new file mode 100644 index 00000000..408c76aa --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/css/_main/rulesets.css @@ -0,0 +1,33 @@ +#first > .one { + font-size: 2em; +} +#first > .one > #second .two > #deux { + width: 50%; +} +#first > .one > #second .two > #deux #third { + height: 100%; +} +#first > .one > #second .two > #deux #third:focus { + color: black; +} +#first > .one > #second .two > #deux #third:focus #fifth > #sixth .seventh #eighth + #ninth { + color: purple; +} +#first > .one > #second .two > #deux #fourth, +#first > .one > #second .two > #deux #five, +#first > .one > #second .two > #deux #six { + color: #110000; +} +#first > .one > #second .two > #deux #fourth .seven, +#first > .one > #second .two > #deux #five .seven, +#first > .one > #second .two > #deux #six .seven, +#first > .one > #second .two > #deux #fourth .eight > #nine, +#first > .one > #second .two > #deux #five .eight > #nine, +#first > .one > #second .two > #deux #six .eight > #nine { + border: 1px solid black; +} +#first > .one > #second .two > #deux #fourth #ten, +#first > .one > #second .two > #deux #five #ten, +#first > .one > #second .two > #deux #six #ten { + color: red; +} diff --git a/test/Fixtures/lessjs-3.13.1/css/_main/scope.css b/test/Fixtures/lessjs-3.13.1/css/_main/scope.css new file mode 100644 index 00000000..caeb1f0a --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/css/_main/scope.css @@ -0,0 +1,38 @@ +.tiny-scope { + color: #989; +} +.scope1 { + color: blue; + border-color: black; +} +.scope1 .scope2 { + color: blue; +} +.scope1 .scope2 .scope3 { + color: red; + border-color: black; + background-color: white; +} +.scope { + scoped-val: green; +} +.heightIsSet { + height: 1024px; +} +.useHeightInMixinCall { + mixin-height: 1024px; +} +.imported { + exists: true; +} +.testImported { + exists: true; +} +#allAreUsedHere { + default: 'top level'; + scope: 'top level'; + sub-scope-only: 'inside'; +} +#parentSelectorScope { + prop: white; +} diff --git a/test/Fixtures/lessjs-3.13.1/css/_main/selectors.css b/test/Fixtures/lessjs-3.13.1/css/_main/selectors.css new file mode 100644 index 00000000..10716d45 --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/css/_main/selectors.css @@ -0,0 +1,170 @@ +h1 a:hover, +h2 a:hover, +h3 a:hover, +h1 p:hover, +h2 p:hover, +h3 p:hover { + color: red; +} +#all { + color: blue; +} +#the { + color: blue; +} +#same { + color: blue; +} +ul, +li, +div, +q, +blockquote, +textarea { + margin: 0; +} +td { + margin: 0; + padding: 0; +} +td, +input { + line-height: 1em; +} +a { + color: red; +} +a:hover { + color: blue; +} +div a { + color: green; +} +p a span { + color: yellow; +} +.foo .bar .qux, +.foo .baz .qux { + display: block; +} +.qux .foo .bar, +.qux .foo .baz { + display: inline; +} +.qux.foo .bar, +.qux.foo .baz { + display: inline-block; +} +.qux .foo .bar .biz, +.qux .foo .baz .biz { + display: none; +} +.a.b.c { + color: red; +} +.c .b.a { + color: red; +} +.foo .p.bar { + color: red; +} +.foo.p.bar { + color: red; +} +.foo + .foo { + background: amber; +} +.foo + .foo { + background: amber; +} +.foo + .foo, +.foo + .bar, +.bar + .foo, +.bar + .bar { + background: amber; +} +.foo a > .foo a, +.foo a > .bar a, +.foo a > .foo b, +.foo a > .bar b, +.bar a > .foo a, +.bar a > .bar a, +.bar a > .foo b, +.bar a > .bar b, +.foo b > .foo a, +.foo b > .bar a, +.foo b > .foo b, +.foo b > .bar b, +.bar b > .foo a, +.bar b > .bar a, +.bar b > .foo b, +.bar b > .bar b { + background: amber; +} +.other ::fnord { + color: red; +} +.other::fnord { + color: red; +} +.other ::bnord { + color: red; +} +.other::bnord { + color: red; +} +.blood { + color: red; +} +.bloodred { + color: green; +} +#blood.blood.red.black:blood { + color: black; +} +:nth-child(3) { + selector: interpolated; +} +.test-rule:nth-child(3) { + selector: interpolated; +} +.test-rule:nth-child(odd):not(:nth-child(3)) { + color: #ff0000; +} +[prop], +[prop=10%], +[prop|="value3"], +[prop*="val3"], +[|prop~="val3"], +[*|prop$="val3"], +[ns|prop^="val3"], +[p^="val3"], +[p=3], +[p] { + attributes: yes; +} +/* +Large comment means chunk will be emitted after } which means chunk will begin with whitespace... +blank blank blank blank blank blank blank blank blank blank blank blank blank blank blank blank +blank blank blank blank blank blank blank blank blank blank blank blank blank blank blank blank +blank blank blank blank blank blank blank blank blank blank blank blank blank blank blank blank +blank blank blank blank blank blank blank blank blank blank blank blank blank blank blank blank +blank blank blank blank blank blank blank blank blank blank blank blank blank blank blank blank +*/ +.blood { + color: red; +} +.foo:not(.tst.only-nested .level2:hover) { + test: only-nested; +} +.foo.nestend-and-non-nested:not(.tst.nestend-and-non-nested:hover) { + test: nestend-and-non-nested; +} +.selector:not(:hover) { + test: global scope; +} +.extend-this, +.active.first-level .second-level, +.first-level .second-level.active2 { + content: '\2661'; +} diff --git a/test/Fixtures/lessjs-3.13.1/css/_main/strings.css b/test/Fixtures/lessjs-3.13.1/css/_main/strings.css new file mode 100644 index 00000000..b40cf6ab --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/css/_main/strings.css @@ -0,0 +1,55 @@ +#strings { + background-image: url("http://son-of-a-banana.com"); + quotes: "~" "~"; + content: "#*%:&^,)!.(~*})"; + empty: ""; + brackets: "{" "}"; + escapes: "\"hello\" \\world"; + escapes2: "\"llo"; +} +#comments { + content: "/* hello */ // not-so-secret"; +} +#single-quote { + quotes: "'" "'"; + content: '""#!&""'; + empty: ''; + semi-colon: ';'; +} +#escaped { + filter: DX.Transform.MS.BS.filter(opacity=50); +} +#one-line { + image: url(http://tooks.com); +} +#crazy { + image: url(http://), "}", url("http://}"); +} +#interpolation { + url: "http://lesscss.org/dev/image.jpg"; + url2: "http://lesscss.org/image-256.jpg"; + url3: "http://lesscss.org#456"; + url4: "http://lesscss.org/hello"; + url5: "http://lesscss.org/54.4px"; +} +.mix-mul-class { + color: blue; + color: red; + color: black; + color: orange; +} +.watermark { + family: Univers, Arial, Verdana, San-Serif; +} +#iterated-interpolation .mixin { + width: 100px; + weird: 100px; + width-str: "100px"; + weird-str: "100px"; +} +#iterated-interpolation .interpolation-mixin { + width: 100px; + weird: 100px; + width-str: "100px"; + weird-str: "100px"; +} diff --git a/test/Fixtures/lessjs-3.13.1/css/_main/urls.css b/test/Fixtures/lessjs-3.13.1/css/_main/urls.css new file mode 100644 index 00000000..1ca83e80 --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/css/_main/urls.css @@ -0,0 +1,86 @@ +@import "css/background.css"; +@import "import/import-test-d.css"; +@import "file.css"; +.gray-gradient { + background: url('data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%201%201%22%3E%3ClinearGradient%20id%3D%22g%22%20x1%3D%220%25%22%20y1%3D%220%25%22%20x2%3D%220%25%22%20y2%3D%22100%25%22%3E%3Cstop%20offset%3D%220%25%22%20stop-color%3D%22%23999999%22%20stop-opacity%3D%220%22%2F%3E%3Cstop%20offset%3D%2260%25%22%20stop-color%3D%22%23999999%22%20stop-opacity%3D%220.05%22%2F%3E%3Cstop%20offset%3D%2270%25%22%20stop-color%3D%22%23999999%22%20stop-opacity%3D%220.1%22%2F%3E%3Cstop%20offset%3D%2273%25%22%20stop-color%3D%22%23999999%22%20stop-opacity%3D%220.15%22%2F%3E%3Cstop%20offset%3D%2275%25%22%20stop-color%3D%22%23999999%22%20stop-opacity%3D%220.2%22%2F%3E%3Cstop%20offset%3D%2280%25%22%20stop-color%3D%22%23999999%22%20stop-opacity%3D%220.25%22%2F%3E%3Cstop%20offset%3D%2285%25%22%20stop-color%3D%22%23999999%22%20stop-opacity%3D%220.3%22%2F%3E%3Cstop%20offset%3D%2288%25%22%20stop-color%3D%22%23999999%22%20stop-opacity%3D%220.35%22%2F%3E%3Cstop%20offset%3D%2290%25%22%20stop-color%3D%22%23999999%22%20stop-opacity%3D%220.4%22%2F%3E%3Cstop%20offset%3D%2295%25%22%20stop-color%3D%22%23999999%22%20stop-opacity%3D%220.45%22%2F%3E%3Cstop%20offset%3D%22100%25%22%20stop-color%3D%22%23999999%22%20stop-opacity%3D%220.5%22%2F%3E%3C%2FlinearGradient%3E%3Crect%20x%3D%220%22%20y%3D%220%22%20width%3D%221%22%20height%3D%221%22%20fill%3D%22url(%23g)%22%20%2F%3E%3C%2Fsvg%3E'); +} +@font-face { + src: url("/fonts/garamond-pro.ttf"); + src: local(Futura-Medium), url(fonts.svg#MyGeometricModern) format("svg"); + not-a-comment: url(//z); +} +#shorthands { + background: url("http://www.lesscss.org/spec.html") no-repeat 0 4px; + background: url("img.jpg") center / 100px; + background: #fff url(image.png) center / 1px 100px repeat-x scroll content-box padding-box; +} +#misc { + background-image: url(images/image.jpg); +} +#data-uri { + background: url(data:image/png;charset=utf-8;base64, + kiVBORw0KGgoAAAANSUhEUgAAABAAAAAQAQMAAAAlPW0iAAAABlBMVEUAAAD/ + k//+l2Z/dAAAAM0lEQVR4nGP4/5/h/1+G/58ZDrAz3D/McH8yw83NDDeNGe4U + kg9C9zwz3gVLMDA/A6P9/AFGGFyjOXZtQAAAAAElFTkSuQmCC); + background-image: url(data:image/x-png,f9difSSFIIGFIFJD1f982FSDKAA9==); + background-image: url(http://fonts.googleapis.com/css?family=\"Rokkitt\":\(400\),700); + background-image: url("http://fonts.googleapis.com/css?family=\"Rokkitt\":\(400\),700"); +} +#svg-data-uri { + background: transparent url('data:image/svg+xml, '); +} +.comma-delimited { + background: url(bg.jpg) no-repeat, url(bg.png) repeat-x top left, url(bg); +} +.values { + url: url('Trebuchet'); +} +#logo { + width: 100px; + height: 100px; + background: url('./import/assets/logo.png'); + background: url("#inline-svg"); +} +@font-face { + font-family: xecret; + src: url('./import/assets/xecret.ttf'); +} +#secret { + font-family: xecret, sans-serif; +} +#imported-relative-path { + background-image: url(../data/image.jpg); + border-image: url('../data/image.jpg'); +} +#relative-url-import { + background-image: url(../data/image.jpg); + border-image: url('../data/image.jpg'); +} +#data-uri { + uri: url("data:image/jpeg;base64,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U3v/APtyCCCCCO+++6CD9tLCS2+++OCpCVCBCyyhylaHiCBCCCCGe+++yCDf999LDC2++++lCcJTCCCxCBCpCQJCCGe++++iCDf9R999LDCS2+62P888f7IhCZCvKPMP+++++yCCHd99BR999vDCCy188888885AOtK4+P3j+++yCCDP999xBBB1999PDU88888888j8P9pr1V496yCDBHf999hBtBBBR9999l88888888n8nWp8fvfCBCDTV9995BBB9tBBBBx9938888888708XEy/8880Mrz+d95hBBBN899JBBBBxe/888888v8AO/JwFuPPPPPPOOYQQQRXfdPPfbSQQQQ6d/8Az9/3/wA/8sd5FdZbz8wwBBBBN998AQ8899tJBBRjFHEyUnQGzgdp9hWxhwBBBBN99984AAA08899tNBBg18vro5/j0PfvfoBBBBFN99984gAOAAAQ088999NNBBBDJ0AATAQ/RBBFN999988wAAA+uIAAAQw8899999NNNNNOcuetN99999884wAAAAO+++uKAAAAw088899999999999998888wgAAAAO++C2+++uKAAAAAQw0888888888888wwAAAAAAO++++CCS2+++uOCAAAAAAAAAQwwAAAAAAAAAAGe++++yC/8QAJhEBAAICAgEDBAMBAAAAAAAAAQARITEQQUAgUWEwUHGRcIHRof/aAAgBAwEBPxD7r3B7/H2eyo5KiFOmDrZvrERI/ZU7w7ht4fmELvyzKzuT3+PsJRst+qmFGxyejqKmnJUB1mWdtvtojstnqrT3Guuh+/HBzQkwZiUOjVXLd/b/AHlj+07hN4fmXD/LN8Mx2Kz/ALMgE1NcEwaaMMQ4mbhTfv8AuEEaeMRRs+Z1YR5d8vtwFQwlRAU1H14zLqtXymWZI4qojvyHfBvkjge4fTPuOAau/wAzHPEfQbj5Dvg3z1EIunX9QAXK41sorfdxKa4fQb8l3wb5Yt2xgxa/8lo0o7jALoZorWz/ACFWg5PJd8G+XfJvgDayWS0pCkFu3PXku+DfBv0HFudTBVn6iqlrz15LKuF2p8Eo69HXBx1wAvUAKWP2eThgA16EHcU1wDx1wJASg0QT2FjmWEqLsHse78evL6DL8kSo8UL4SXT2hVlXLg10eNiPovA5RzDYIlkRGmdcPoNgjjwRi/on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"); + background-image: url("data:image/jpeg;base64,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U3v/APtyCCCCCO+++6CD9tLCS2+++OCpCVCBCyyhylaHiCBCCCCGe+++yCDf999LDC2++++lCcJTCCCxCBCpCQJCCGe++++iCDf9R999LDCS2+62P888f7IhCZCvKPMP+++++yCCHd99BR999vDCCy188888885AOtK4+P3j+++yCCDP999xBBB1999PDU88888888j8P9pr1V496yCDBHf999hBtBBBR9999l88888888n8nWp8fvfCBCDTV9995BBB9tBBBBx9938888888708XEy/8880Mrz+d95hBBBN899JBBBBxe/888888v8AO/JwFuPPPPPPOOYQQQRXfdPPfbSQQQQ6d/8Az9/3/wA/8sd5FdZbz8wwBBBBN998AQ8899tJBBRjFHEyUnQGzgdp9hWxhwBBBBN99984AAA08899tNBBg18vro5/j0PfvfoBBBBFN99984gAOAAAQ088999NNBBBDJ0AATAQ/RBBFN999988wAAA+uIAAAQw8899999NNNNNOcuetN99999884wAAAAO+++uKAAAAw088899999999999998888wgAAAAO++C2+++uKAAAAAQw0888888888888wwAAAAAAO++++CCS2+++uOCAAAAAAAAAQwwAAAAAAAAAAGe++++yC/8QAJhEBAAICAgEDBAMBAAAAAAAAAQARITEQQUAgUWEwUHGRcIHRof/aAAgBAwEBPxD7r3B7/H2eyo5KiFOmDrZvrERI/ZU7w7ht4fmELvyzKzuT3+PsJRst+qmFGxyejqKmnJUB1mWdtvtojstnqrT3Guuh+/HBzQkwZiUOjVXLd/b/AHlj+07hN4fmXD/LN8Mx2Kz/ALMgE1NcEwaaMMQ4mbhTfv8AuEEaeMRRs+Z1YR5d8vtwFQwlRAU1H14zLqtXymWZI4qojvyHfBvkjge4fTPuOAau/wAzHPEfQbj5Dvg3z1EIunX9QAXK41sorfdxKa4fQb8l3wb5Yt2xgxa/8lo0o7jALoZorWz/ACFWg5PJd8G+XfJvgDayWS0pCkFu3PXku+DfBv0HFudTBVn6iqlrz15LKuF2p8Eo69HXBx1wAvUAKWP2eThgA16EHcU1wDx1wJASg0QT2FjmWEqLsHse78evL6DL8kSo8UL4SXT2hVlXLg10eNiPovA5RzDYIlkRGmdcPoNgjjwRi/on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"), url("data:image/jpeg;base64,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U3v/APtyCCCCCO+++6CD9tLCS2+++OCpCVCBCyyhylaHiCBCCCCGe+++yCDf999LDC2++++lCcJTCCCxCBCpCQJCCGe++++iCDf9R999LDCS2+62P888f7IhCZCvKPMP+++++yCCHd99BR999vDCCy188888885AOtK4+P3j+++yCCDP999xBBB1999PDU88888888j8P9pr1V496yCDBHf999hBtBBBR9999l88888888n8nWp8fvfCBCDTV9995BBB9tBBBBx9938888888708XEy/8880Mrz+d95hBBBN899JBBBBxe/888888v8AO/JwFuPPPPPPOOYQQQRXfdPPfbSQQQQ6d/8Az9/3/wA/8sd5FdZbz8wwBBBBN998AQ8899tJBBRjFHEyUnQGzgdp9hWxhwBBBBN99984AAA08899tNBBg18vro5/j0PfvfoBBBBFN99984gAOAAAQ088999NNBBBDJ0AATAQ/RBBFN999988wAAA+uIAAAQw8899999NNNNNOcuetN99999884wAAAAO+++uKAAAAw088899999999999998888wgAAAAO++C2+++uKAAAAAQw0888888888888wwAAAAAAO++++CCS2+++uOCAAAAAAAAAQwwAAAAAAAAAAGe++++yC/8QAJhEBAAICAgEDBAMBAAAAAAAAAQARITEQQUAgUWEwUHGRcIHRof/aAAgBAwEBPxD7r3B7/H2eyo5KiFOmDrZvrERI/ZU7w7ht4fmELvyzKzuT3+PsJRst+qmFGxyejqKmnJUB1mWdtvtojstnqrT3Guuh+/HBzQkwZiUOjVXLd/b/AHlj+07hN4fmXD/LN8Mx2Kz/ALMgE1NcEwaaMMQ4mbhTfv8AuEEaeMRRs+Z1YR5d8vtwFQwlRAU1H14zLqtXymWZI4qojvyHfBvkjge4fTPuOAau/wAzHPEfQbj5Dvg3z1EIunX9QAXK41sorfdxKa4fQb8l3wb5Yt2xgxa/8lo0o7jALoZorWz/ACFWg5PJd8G+XfJvgDayWS0pCkFu3PXku+DfBv0HFudTBVn6iqlrz15LKuF2p8Eo69HXBx1wAvUAKWP2eThgA16EHcU1wDx1wJASg0QT2FjmWEqLsHse78evL6DL8kSo8UL4SXT2hVlXLg10eNiPovA5RzDYIlkRGmdcPoNgjjwRi/on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"); + uri-fragment: url("data:image/jpeg;base64,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U3v/APtyCCCCCO+++6CD9tLCS2+++OCpCVCBCyyhylaHiCBCCCCGe+++yCDf999LDC2++++lCcJTCCCxCBCpCQJCCGe++++iCDf9R999LDCS2+62P888f7IhCZCvKPMP+++++yCCHd99BR999vDCCy188888885AOtK4+P3j+++yCCDP999xBBB1999PDU88888888j8P9pr1V496yCDBHf999hBtBBBR9999l88888888n8nWp8fvfCBCDTV9995BBB9tBBBBx9938888888708XEy/8880Mrz+d95hBBBN899JBBBBxe/888888v8AO/JwFuPPPPPPOOYQQQRXfdPPfbSQQQQ6d/8Az9/3/wA/8sd5FdZbz8wwBBBBN998AQ8899tJBBRjFHEyUnQGzgdp9hWxhwBBBBN99984AAA08899tNBBg18vro5/j0PfvfoBBBBFN99984gAOAAAQ088999NNBBBDJ0AATAQ/RBBFN999988wAAA+uIAAAQw8899999NNNNNOcuetN99999884wAAAAO+++uKAAAAw088899999999999998888wgAAAAO++C2+++uKAAAAAQw0888888888888wwAAAAAAO++++CCS2+++uOCAAAAAAAAAQwwAAAAAAAAAAGe++++yC/8QAJhEBAAICAgEDBAMBAAAAAAAAAQARITEQQUAgUWEwUHGRcIHRof/aAAgBAwEBPxD7r3B7/H2eyo5KiFOmDrZvrERI/ZU7w7ht4fmELvyzKzuT3+PsJRst+qmFGxyejqKmnJUB1mWdtvtojstnqrT3Guuh+/HBzQkwZiUOjVXLd/b/AHlj+07hN4fmXD/LN8Mx2Kz/ALMgE1NcEwaaMMQ4mbhTfv8AuEEaeMRRs+Z1YR5d8vtwFQwlRAU1H14zLqtXymWZI4qojvyHfBvkjge4fTPuOAau/wAzHPEfQbj5Dvg3z1EIunX9QAXK41sorfdxKa4fQb8l3wb5Yt2xgxa/8lo0o7jALoZorWz/ACFWg5PJd8G+XfJvgDayWS0pCkFu3PXku+DfBv0HFudTBVn6iqlrz15LKuF2p8Eo69HXBx1wAvUAKWP2eThgA16EHcU1wDx1wJASg0QT2FjmWEqLsHse78evL6DL8kSo8UL4SXT2hVlXLg10eNiPovA5RzDYIlkRGmdcPoNgjjwRi/on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#fragment"); +} +#data-uri-guess { + uri: url("data:image/jpeg;base64,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U3v/APtyCCCCCO+++6CD9tLCS2+++OCpCVCBCyyhylaHiCBCCCCGe+++yCDf999LDC2++++lCcJTCCCxCBCpCQJCCGe++++iCDf9R999LDCS2+62P888f7IhCZCvKPMP+++++yCCHd99BR999vDCCy188888885AOtK4+P3j+++yCCDP999xBBB1999PDU88888888j8P9pr1V496yCDBHf999hBtBBBR9999l88888888n8nWp8fvfCBCDTV9995BBB9tBBBBx9938888888708XEy/8880Mrz+d95hBBBN899JBBBBxe/888888v8AO/JwFuPPPPPPOOYQQQRXfdPPfbSQQQQ6d/8Az9/3/wA/8sd5FdZbz8wwBBBBN998AQ8899tJBBRjFHEyUnQGzgdp9hWxhwBBBBN99984AAA08899tNBBg18vro5/j0PfvfoBBBBFN99984gAOAAAQ088999NNBBBDJ0AATAQ/RBBFN999988wAAA+uIAAAQw8899999NNNNNOcuetN99999884wAAAAO+++uKAAAAw088899999999999998888wgAAAAO++C2+++uKAAAAAQw0888888888888wwAAAAAAO++++CCS2+++uOCAAAAAAAAAQwwAAAAAAAAAAGe++++yC/8QAJhEBAAICAgEDBAMBAAAAAAAAAQARITEQQUAgUWEwUHGRcIHRof/aAAgBAwEBPxD7r3B7/H2eyo5KiFOmDrZvrERI/ZU7w7ht4fmELvyzKzuT3+PsJRst+qmFGxyejqKmnJUB1mWdtvtojstnqrT3Guuh+/HBzQkwZiUOjVXLd/b/AHlj+07hN4fmXD/LN8Mx2Kz/ALMgE1NcEwaaMMQ4mbhTfv8AuEEaeMRRs+Z1YR5d8vtwFQwlRAU1H14zLqtXymWZI4qojvyHfBvkjge4fTPuOAau/wAzHPEfQbj5Dvg3z1EIunX9QAXK41sorfdxKa4fQb8l3wb5Yt2xgxa/8lo0o7jALoZorWz/ACFWg5PJd8G+XfJvgDayWS0pCkFu3PXku+DfBv0HFudTBVn6iqlrz15LKuF2p8Eo69HXBx1wAvUAKWP2eThgA16EHcU1wDx1wJASg0QT2FjmWEqLsHse78evL6DL8kSo8UL4SXT2hVlXLg10eNiPovA5RzDYIlkRGmdcPoNgjjwRi/on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"); +} +#data-uri-ascii { + uri-1: url("data:text/html,%3Chtml%3E%3Ch1%3EThis%20page%20is%20100%25%20Awesome.%3C%2Fh1%3E%3C%2Fhtml%3E%0A"); + uri-2: url("data:text/html,%3Chtml%3E%3Ch1%3EThis%20page%20is%20100%25%20Awesome.%3C%2Fh1%3E%3C%2Fhtml%3E%0A"); +} +#file-functions { + svg-not-base-64: url("data:image/svg+xml,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%20standalone%3D%22no%22%3F%3E%0A%3Csvg%20height%3D%22100%22%20width%3D%22100%22%3E%0A%20%20%3Ccircle%20cx%3D%2250%22%20cy%3D%2250%22%20r%3D%2240%22%20stroke%3D%22black%22%20stroke-width%3D%221%22%20fill%3D%22blue%22%20%2F%3E%0A%3C%2Fsvg%3E%0A"); + size: 640px 430px; + width: 640px; + height: 430px; +} +#svg-functions { + background-image: url('data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%201%201%22%3E%3ClinearGradient%20id%3D%22g%22%20x1%3D%220%25%22%20y1%3D%220%25%22%20x2%3D%220%25%22%20y2%3D%22100%25%22%3E%3Cstop%20offset%3D%220%25%22%20stop-color%3D%22%23000000%22%2F%3E%3Cstop%20offset%3D%22100%25%22%20stop-color%3D%22%23ffffff%22%2F%3E%3C%2FlinearGradient%3E%3Crect%20x%3D%220%22%20y%3D%220%22%20width%3D%221%22%20height%3D%221%22%20fill%3D%22url(%23g)%22%20%2F%3E%3C%2Fsvg%3E'); + background-image: url('data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%201%201%22%3E%3ClinearGradient%20id%3D%22g%22%20x1%3D%220%25%22%20y1%3D%220%25%22%20x2%3D%220%25%22%20y2%3D%22100%25%22%3E%3Cstop%20offset%3D%220%25%22%20stop-color%3D%22%23000000%22%2F%3E%3Cstop%20offset%3D%223%25%22%20stop-color%3D%22%23ffa500%22%2F%3E%3Cstop%20offset%3D%22100%25%22%20stop-color%3D%22%23ffffff%22%2F%3E%3C%2FlinearGradient%3E%3Crect%20x%3D%220%22%20y%3D%220%22%20width%3D%221%22%20height%3D%221%22%20fill%3D%22url(%23g)%22%20%2F%3E%3C%2Fsvg%3E'); + background-image: url('data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%201%201%22%3E%3ClinearGradient%20id%3D%22g%22%20x1%3D%220%25%22%20y1%3D%220%25%22%20x2%3D%220%25%22%20y2%3D%22100%25%22%3E%3Cstop%20offset%3D%221%25%22%20stop-color%3D%22%23c4c4c4%22%2F%3E%3Cstop%20offset%3D%223%25%22%20stop-color%3D%22%23ffa500%22%2F%3E%3Cstop%20offset%3D%225%25%22%20stop-color%3D%22%23008000%22%2F%3E%3Cstop%20offset%3D%2295%25%22%20stop-color%3D%22%23ffffff%22%2F%3E%3C%2FlinearGradient%3E%3Crect%20x%3D%220%22%20y%3D%220%22%20width%3D%221%22%20height%3D%221%22%20fill%3D%22url(%23g)%22%20%2F%3E%3C%2Fsvg%3E'); +} +@font-face { + font-family: 'MyWebFont'; + src: url(webfont.eot); + src: url('webfont.eot?#iefix') format('embedded-opentype'), url('webfont.woff') format('woff'), format('truetype') url('webfont.ttf'), url('webfont.svg#svgFontName') format('svg'); +} diff --git a/test/Fixtures/lessjs-3.13.1/css/_main/variables-in-at-rules.css b/test/Fixtures/lessjs-3.13.1/css/_main/variables-in-at-rules.css new file mode 100644 index 00000000..0327eb18 --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/css/_main/variables-in-at-rules.css @@ -0,0 +1,18 @@ +@charset "UTF-8"; +@namespace less "http://lesscss.org"; +@keyframes enlarger { + from { + font-size: 12px; + } + to { + font-size: 15px; + } +} +@-webkit-keyframes reducer { + from { + font-size: 13px; + } + to { + font-size: 10px; + } +} diff --git a/test/Fixtures/lessjs-3.13.1/css/_main/variables.css b/test/Fixtures/lessjs-3.13.1/css/_main/variables.css new file mode 100644 index 00000000..fa03b1eb --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/css/_main/variables.css @@ -0,0 +1,71 @@ +.variables { + width: 14cm; +} +.variable-dash .q { + padding: 30px 15px; +} +.variables { + height: 24px; + color: #888; + font-family: "Trebuchet MS", Verdana, sans-serif; + quotes: "~" "~"; +} +.redef { + zero: 0; +} +.redef .inition { + three: 3; +} +.values { + minus-one: -1; + font-family: 'Trebuchet', 'Trebuchet', 'Trebuchet'; + color: #888 !important; + same-color: #888 !important; + same-again: #888 !important; + multi-important: #888 #888, 'Trebuchet' !important; + multi: something 'A', B, C, 'Trebuchet'; +} +.variable-names .quoted { + name: 'hello'; +} +.variable-names .unquoted { + name: 'hello'; +} +.variable-names .color-keyword { + name: 'hello'; +} +.alpha { + filter: alpha(opacity=42); +} +.test-rulePollution { + a: 'no-pollution'; +} +.units { + width: 1px; + same-unit-as-previously: 1px; + square-pixel-divided: 1px; + odd-unit: 2; + percentage: 500%; + pixels: 500px; + conversion-metric-a: 30mm; + conversion-metric-b: 3cm; + conversion-imperial: 3in; + custom-unit: 420octocats; + custom-unit-cancelling: 18dogs; + mix-units: 2px; + invalid-units: 1px; +} +.units .fallback { + div-px-1: 10px; + div-px-2: 1px; + sub-px-1: 12.6px; + sub-cm-1: 9.666625cm; + mul-px-1: 19.6px; + mul-em-1: 19.6em; + mul-em-2: 196em; + mul-cm-1: 196cm; + add-px-1: 15.4px; + add-px-2: 393.35275591px; + mul-px-2: 140px; + mul-px-3: 140px; +} diff --git a/test/Fixtures/lessjs-3.13.1/css/_main/whitespace.css b/test/Fixtures/lessjs-3.13.1/css/_main/whitespace.css new file mode 100644 index 00000000..38ad81c1 --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/css/_main/whitespace.css @@ -0,0 +1,42 @@ +.whitespace { + color: white; +} +.whitespace { + color: white; +} +.whitespace { + color: white; +} +.whitespace { + color: white; +} +.whitespace { + color: white ; +} +.white, +.space, +.mania { + color: white; +} +.no-semi-column { + color: white; +} +.no-semi-column { + color: white; + white-space: pre; +} +.no-semi-column { + border: 2px solid white; +} +.newlines { + background: the, + great, + wall; + border: 2px + solid + black; +} +.sel .newline_ws .tab_ws { + color: white; + background-position: 45 -23; +} diff --git a/test/Fixtures/lessjs-3.13.1/css/compression/compression.css b/test/Fixtures/lessjs-3.13.1/css/compression/compression.css new file mode 100644 index 00000000..00f98ef4 --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/css/compression/compression.css @@ -0,0 +1,3 @@ +#colours{color1:#fea;color2:#ffeeaa;color3:rgba(255,238,170,0.1);string:"#fea";/*! but not this type + Note preserved whitespace + */}dimensions{val:.1px;val:0em;val:4cm;val:.2;val:5;angles-must-have-unit:0deg;durations-must-have-unit:0s;length-doesnt-have-unit:0px;width:auto\9}@page{marks:none;@top-left-corner{vertical-align:top}@top-left{vertical-align:top}}.shadow^.dom,body^^.shadow{display:done} \ No newline at end of file diff --git a/test/Fixtures/lessjs-3.13.1/css/debug/linenumbers-all.css b/test/Fixtures/lessjs-3.13.1/css/debug/linenumbers-all.css new file mode 100644 index 00000000..fe107c95 --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/css/debug/linenumbers-all.css @@ -0,0 +1,49 @@ +@charset "UTF-8"; +/* line 1, {pathimport}test.less */ +@media -sass-debug-info{filename{font-family:file\:\/\/{pathimportesc}test\.less}line{font-family:\000031}} +/* @charset "ISO-8859-1"; */ +/* line 23, {pathimport}test.less */ +@media -sass-debug-info{filename{font-family:file\:\/\/{pathimportesc}test\.less}line{font-family:\0000323}} +.tst3 { + color: grey; +} +/* line 15, {path}linenumbers.less */ +@media -sass-debug-info{filename{font-family:file\:\/\/{pathesc}linenumbers\.less}line{font-family:\0000315}} +.test-rule1 { + color: black; +} +/* line 6, {path}linenumbers.less */ +@media -sass-debug-info{filename{font-family:file\:\/\/{pathesc}linenumbers\.less}line{font-family:\000036}} +.test-rule2 { + color: red; +} +@media all { + /* line 5, {pathimport}test.less */ + @media -sass-debug-info{filename{font-family:file\:\/\/{pathimportesc}test\.less}line{font-family:\000035}} + .tst { + color: black; + } +} +@media all and screen { + /* line 7, {pathimport}test.less */ + @media -sass-debug-info{filename{font-family:file\:\/\/{pathimportesc}test\.less}line{font-family:\000037}} + .tst { + color: red; + } + /* line 9, {pathimport}test.less */ + @media -sass-debug-info{filename{font-family:file\:\/\/{pathimportesc}test\.less}line{font-family:\000039}} + .tst .tst3 { + color: inherit; + } +} +/* line 18, {pathimport}test.less */ +@media -sass-debug-info{filename{font-family:file\:\/\/{pathimportesc}test\.less}line{font-family:\0000318}} +.tst2 { + color: inherit; +} +/* line 27, {path}linenumbers.less */ +@media -sass-debug-info{filename{font-family:file\:\/\/{pathesc}linenumbers\.less}line{font-family:\0000327}} +.test-rule { + color: red; + width: 2; +} diff --git a/test/Fixtures/lessjs-3.13.1/css/debug/linenumbers-comments.css b/test/Fixtures/lessjs-3.13.1/css/debug/linenumbers-comments.css new file mode 100644 index 00000000..083d93ee --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/css/debug/linenumbers-comments.css @@ -0,0 +1,40 @@ +@charset "UTF-8"; +/* line 1, {pathimport}test.less */ +/* @charset "ISO-8859-1"; */ +/* line 23, {pathimport}test.less */ +.tst3 { + color: grey; +} +/* line 15, {path}linenumbers.less */ +.test-rule1 { + color: black; +} +/* line 6, {path}linenumbers.less */ +.test-rule2 { + color: red; +} +@media all { + /* line 5, {pathimport}test.less */ + .tst { + color: black; + } +} +@media all and screen { + /* line 7, {pathimport}test.less */ + .tst { + color: red; + } + /* line 9, {pathimport}test.less */ + .tst .tst3 { + color: inherit; + } +} +/* line 18, {pathimport}test.less */ +.tst2 { + color: inherit; +} +/* line 27, {path}linenumbers.less */ +.test-rule { + color: red; + width: 2; +} diff --git a/test/Fixtures/lessjs-3.13.1/css/debug/linenumbers-mediaquery.css b/test/Fixtures/lessjs-3.13.1/css/debug/linenumbers-mediaquery.css new file mode 100644 index 00000000..488b29e5 --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/css/debug/linenumbers-mediaquery.css @@ -0,0 +1,40 @@ +@charset "UTF-8"; +@media -sass-debug-info{filename{font-family:file\:\/\/{pathimportesc}test\.less}line{font-family:\000031}} +/* @charset "ISO-8859-1"; */ +@media -sass-debug-info{filename{font-family:file\:\/\/{pathimportesc}test\.less}line{font-family:\0000323}} +.tst3 { + color: grey; +} +@media -sass-debug-info{filename{font-family:file\:\/\/{pathesc}linenumbers\.less}line{font-family:\0000315}} +.test-rule1 { + color: black; +} +@media -sass-debug-info{filename{font-family:file\:\/\/{pathesc}linenumbers\.less}line{font-family:\000036}} +.test-rule2 { + color: red; +} +@media all { + @media -sass-debug-info{filename{font-family:file\:\/\/{pathimportesc}test\.less}line{font-family:\000035}} + .tst { + color: black; + } +} +@media all and screen { + @media -sass-debug-info{filename{font-family:file\:\/\/{pathimportesc}test\.less}line{font-family:\000037}} + .tst { + color: red; + } + @media -sass-debug-info{filename{font-family:file\:\/\/{pathimportesc}test\.less}line{font-family:\000039}} + .tst .tst3 { + color: inherit; + } +} +@media -sass-debug-info{filename{font-family:file\:\/\/{pathimportesc}test\.less}line{font-family:\0000318}} +.tst2 { + color: inherit; +} +@media -sass-debug-info{filename{font-family:file\:\/\/{pathesc}linenumbers\.less}line{font-family:\0000327}} +.test-rule { + color: red; + width: 2; +} diff --git a/test/Fixtures/lessjs-3.13.1/css/filemanagerPlugin/filemanager.css b/test/Fixtures/lessjs-3.13.1/css/filemanagerPlugin/filemanager.css new file mode 100644 index 00000000..aa9930db --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/css/filemanagerPlugin/filemanager.css @@ -0,0 +1,3 @@ +.test-rule { + color: red; +} diff --git a/test/Fixtures/lessjs-3.13.1/css/globalVars/extended.css b/test/Fixtures/lessjs-3.13.1/css/globalVars/extended.css new file mode 100644 index 00000000..1149ac87 --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/css/globalVars/extended.css @@ -0,0 +1,12 @@ +/** + * Test + */ +#header { + color: #333333; + border-left: 1px; + border-right: 2px; +} +#footer { + color: #114411; + border-color: #f20d0d; +} diff --git a/test/Fixtures/lessjs-3.13.1/css/globalVars/simple.css b/test/Fixtures/lessjs-3.13.1/css/globalVars/simple.css new file mode 100644 index 00000000..630cc4c1 --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/css/globalVars/simple.css @@ -0,0 +1,6 @@ +/** + * Test + */ +.class { + color: red; +} diff --git a/test/Fixtures/lessjs-3.13.1/css/include-path-string/include-path-string.css b/test/Fixtures/lessjs-3.13.1/css/include-path-string/include-path-string.css new file mode 100644 index 00000000..74a92fd4 --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/css/include-path-string/include-path-string.css @@ -0,0 +1,3 @@ +data-uri { + property: url("data:image/svg+xml,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%20standalone%3D%22no%22%3F%3E%0A%3Csvg%20height%3D%22100%22%20width%3D%22100%22%3E%0A%20%20%3Ccircle%20cx%3D%2250%22%20cy%3D%2250%22%20r%3D%2240%22%20stroke%3D%22black%22%20stroke-width%3D%221%22%20fill%3D%22blue%22%20%2F%3E%0A%3C%2Fsvg%3E%0A"); +} diff --git a/test/Fixtures/lessjs-3.13.1/css/include-path/include-path.css b/test/Fixtures/lessjs-3.13.1/css/include-path/include-path.css new file mode 100644 index 00000000..3d805946 --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/css/include-path/include-path.css @@ -0,0 +1,9 @@ +body { + width: 100%; +} +data-uri { + property: url("data:image/svg+xml,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%20standalone%3D%22no%22%3F%3E%0A%3Csvg%20height%3D%22100%22%20width%3D%22100%22%3E%0A%20%20%3Ccircle%20cx%3D%2250%22%20cy%3D%2250%22%20r%3D%2240%22%20stroke%3D%22black%22%20stroke-width%3D%221%22%20fill%3D%22blue%22%20%2F%3E%0A%3C%2Fsvg%3E%0A"); +} +image-size { + property: 100px 100px; +} diff --git a/test/Fixtures/lessjs-3.13.1/css/legacy/legacy.css b/test/Fixtures/lessjs-3.13.1/css/legacy/legacy.css new file mode 100644 index 00000000..8d24387b --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/css/legacy/legacy.css @@ -0,0 +1,21 @@ +@media (-o-min-device-pixel-ratio: 2) { + .test-rule-math-and-units { + font: ignores 0/0 rules; + test-division: 7em; + simple: 2px; + } +} +#units { + t1: 22em; + t2: 22em; + t3: 2em; + t4: 22em; + t5: 22em; + t6: 2em; + t7: 22em; + t8: 22em; + t9: 2em; + t10: 22em; + t11: 22em; + t12: 2em; +} diff --git a/test/Fixtures/lessjs-3.13.1/css/math/parens-division/media-math.css b/test/Fixtures/lessjs-3.13.1/css/math/parens-division/media-math.css new file mode 100644 index 00000000..0b8be1c9 --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/css/math/parens-division/media-math.css @@ -0,0 +1,10 @@ +@media (min-width: 17) { + .foo { + bar: 1; + } +} +@media (min-width: 16 / 9) { + .foo { + bar: 1; + } +} diff --git a/test/Fixtures/lessjs-3.13.1/css/math/parens-division/mixins-args.css b/test/Fixtures/lessjs-3.13.1/css/math/parens-division/mixins-args.css new file mode 100644 index 00000000..ca82850f --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/css/math/parens-division/mixins-args.css @@ -0,0 +1,169 @@ +#hidden { + color: transparent; +} +#hidden1 { + color: transparent; +} +.two-args { + color: blue; + width: 10px; + height: 99%; + depth: 99%; + border: 2px dotted black; +} +.one-arg { + width: 15px; + height: 49%; + depth: 49%; +} +.no-parens { + width: 5px; + height: 49%; + depth: 49%; +} +.no-args { + width: 5px; + height: 49%; + depth: 49%; +} +.var-args { + width: 45; + height: 8%; + depth: 18 / 2 - 1%; +} +.multi-mix { + width: 10px; + height: 29%; + depth: 29%; + margin: 4; + padding: 5; +} +body { + padding: 30px; + color: #f00; +} +.scope-mix { + width: 8; +} +.content { + width: 600px; +} +.content .column { + margin: 600px; +} +#same-var-name { + radius: 5px; +} +#var-inside { + width: 10px; +} +.arguments { + border: 1px solid black; + width: 1px; +} +.arguments2 { + border: 0px; + width: 0px; +} +.arguments3 { + border: 0px; + width: 0px; +} +.arguments4 { + border: 0 1 2 3 4; + rest: 1 2 3 4; + width: 0; +} +.edge-case { + border: "{"; + width: "{"; +} +.slash-vs-math { + border-radius: 2px/5px; + border-radius: 5px/10px; + border-radius: 6px; +} +.comma-vs-semi-colon { + one: a; + two: b, c; + one: d, e; + two: f; + one: g; + one: h; + one: i; + one: j; + one: k; + two: l; + one: m, n; + one: o, p; + two: q; + one: r, s; + two: t; +} +#named-conflict { + four: a, 11, 12, 13; + four: a, 21, 22, 23; +} +.test-rule-mixin-default-arg { + defaults: 1px 1px 1px; + defaults: 2px 2px 2px; +} +.selector { + margin: 2, 2, 2, 2; +} +.selector2 { + margin: 2, 2, 2, 2; +} +.selector3 { + margin: 4; +} +mixins-args-expand-op-1 { + m3: 1, 2, 3; +} +mixins-args-expand-op-2 { + m3: 4, 5, 6; +} +mixins-args-expand-op-3a { + m3: a, b, c; +} +mixins-args-expand-op-3b { + m4: 0, a, b, c; +} +mixins-args-expand-op-3c { + m4: a, b, c, 4; +} +mixins-args-expand-op-4a { + m3: a, b, c, d; +} +mixins-args-expand-op-4b { + m4: 0, a, b, c, d; +} +mixins-args-expand-op-4c { + m4: a, b, c, d, 4; +} +mixins-args-expand-op-5a { + m3: 1, 2, 3; +} +mixins-args-expand-op-5b { + m4: 0, 1, 2, 3; +} +mixins-args-expand-op-5c { + m4: 1, 2, 3, 4; +} +mixins-args-expand-op-6 { + m4: 0, 1, 2, 3; +} +mixins-args-expand-op-7 { + m4: 0, 1, 2, 3; +} +mixins-args-expand-op-8 { + m4: 1, 1.5, 2, 3; +} +mixins-args-expand-op-9 { + aa: 4 5 6 1 2 3 and again 4 5 6; + a4: and; + a8: 5; +} +#test-mixin-matching-when-default-2645 { + height: 20px; +} diff --git a/test/Fixtures/lessjs-3.13.1/css/math/parens-division/new-division.css b/test/Fixtures/lessjs-3.13.1/css/math/parens-division/new-division.css new file mode 100644 index 00000000..7b2486d8 --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/css/math/parens-division/new-division.css @@ -0,0 +1,16 @@ +.units { + font: 1.2rem/2rem; + font: 8vw/9vw; + font: 10vh/12vh; + font: 12vm/15vm; + font: 12vmin/15vmin; + font: 1.2ch/1.5ch; +} +.math { + a: 2; + b: 2px / 2; + c: 1px; + d: 1px; + e: 4px / 2; + f: 2px; +} diff --git a/test/Fixtures/lessjs-3.13.1/css/math/parens-division/parens.css b/test/Fixtures/lessjs-3.13.1/css/math/parens-division/parens.css new file mode 100644 index 00000000..86c9cbc9 --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/css/math/parens-division/parens.css @@ -0,0 +1,37 @@ +.parens { + border: 2px solid black; + margin: 1px 3px 16 3; + width: 36; + padding: 2px 36px; +} +.more-parens { + padding: 8 4 4 4px; + width-all: 96; + width-first: 96; + width-keep: 96; + height: calc(100% + (25vh - 20px)); + height-keep: 113; + height-all: 113; + height-parts: 113; + margin-keep: 12; + margin-parts: 12; + margin-all: 12; + border-radius-keep: 8px / 4 + 3px; + border-radius-parts: 8px / 7px; + border-radius-all: 5px; +} +.negative { + neg-var: -1; + neg-var-paren: -1; +} +.nested-parens { + width: 71; + height: 6; +} +.mixed-units { + margin: 2px 4em 1 5pc; + padding: 6px 1em 2px 2; +} +.test-rule-false-negatives { + a: (; +} diff --git a/test/Fixtures/lessjs-3.13.1/css/math/strict-legacy/css.css b/test/Fixtures/lessjs-3.13.1/css/math/strict-legacy/css.css new file mode 100644 index 00000000..63364078 --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/css/math/strict-legacy/css.css @@ -0,0 +1,95 @@ +@charset "utf-8"; +div { + color: black; +} +div { + width: 99%; +} +* { + min-width: 45em; +} +h1, +h2 > a > p, +h3 { + color: none; +} +div.class { + color: blue; +} +div#id { + color: green; +} +.class#id { + color: purple; +} +.one.two.three { + color: grey; +} +@media print { + * { + font-size: 3em; + } +} +@media screen { + * { + font-size: 10px; + } +} +@font-face { + font-family: 'Garamond Pro'; +} +a:hover, +a:link { + color: #999; +} +p, +p:first-child { + text-transform: none; +} +q:lang(no) { + quotes: none; +} +p + h1 { + font-size: 2.2em; +} +#shorthands { + border: 1px solid #000; + font: 12px/16px Arial; + font: 100%/16px Arial; + margin: 1px 0; + padding: 0 auto; +} +#more-shorthands { + margin: 0; + padding: 1px 0 2px 0; + font: normal small / 20px 'Trebuchet MS', Verdana, sans-serif; + font: 0/0 a; + border-radius: 5px / 10px; +} +.misc { + -moz-border-radius: 2px; + display: -moz-inline-stack; + width: 0.1em; + background-color: #009998; + background: -webkit-gradient(linear, left top, left bottom, from(red), to(blue)); + margin: ; + filter: alpha(opacity=100); + width: auto\9; +} +.misc .nested-multiple { + multiple-semi-colons: yes; +} +#important { + color: red !important; + width: 100%!important; + height: 20px ! important; +} +@font-face { + font-family: font-a; +} +@font-face { + font-family: font-b; +} +.æøå { + margin: 0; +} diff --git a/test/Fixtures/lessjs-3.13.1/css/math/strict-legacy/media-math.css b/test/Fixtures/lessjs-3.13.1/css/math/strict-legacy/media-math.css new file mode 100644 index 00000000..1d2452a0 --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/css/math/strict-legacy/media-math.css @@ -0,0 +1,10 @@ +@media (min-width: 16 + 1) { + .foo { + bar: 1; + } +} +@media (min-width: 16 / 9) { + .foo { + bar: 1; + } +} diff --git a/test/Fixtures/lessjs-3.13.1/css/math/strict-legacy/mixins-args.css b/test/Fixtures/lessjs-3.13.1/css/math/strict-legacy/mixins-args.css new file mode 100644 index 00000000..f5d37b20 --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/css/math/strict-legacy/mixins-args.css @@ -0,0 +1,163 @@ +#hidden { + color: transparent; +} +#hidden1 { + color: transparent; +} +.two-args { + color: blue; + width: 10px; + height: 99%; + border: 2px dotted black; +} +.one-arg { + width: 15px; + height: 49%; +} +.no-parens { + width: 5px; + height: 49%; +} +.no-args { + width: 5px; + height: 49%; +} +.var-args { + width: 45; + height: 17%; +} +.multi-mix { + width: 10px; + height: 29%; + margin: 4; + padding: 5; +} +body { + padding: 30px; + color: #f00; +} +.scope-mix { + width: 8; +} +.content { + width: 600px; +} +.content .column { + margin: 600px; +} +#same-var-name { + radius: 5px; +} +#var-inside { + width: 10px; +} +.arguments { + border: 1px solid black; + width: 1px; +} +.arguments2 { + border: 0px; + width: 0px; +} +.arguments3 { + border: 0px; + width: 0px; +} +.arguments4 { + border: 0 1 2 3 4; + rest: 1 2 3 4; + width: 0; +} +.edge-case { + border: "{"; + width: "{"; +} +.slash-vs-math { + border-radius: 2px/5px; + border-radius: 5px/10px; + border-radius: 6px; +} +.comma-vs-semi-colon { + one: a; + two: b, c; + one: d, e; + two: f; + one: g; + one: h; + one: i; + one: j; + one: k; + two: l; + one: m, n; + one: o, p; + two: q; + one: r, s; + two: t; +} +#named-conflict { + four: a, 11, 12, 13; + four: a, 21, 22, 23; +} +.test-rule-mixin-default-arg { + defaults: 1px 1px 1px; + defaults: 2px 2px 2px; +} +.selector { + margin: 2, 2, 2, 2; +} +.selector2 { + margin: 2, 2, 2, 2; +} +.selector3 { + margin: 4; +} +mixins-args-expand-op-1 { + m3: 1, 2, 3; +} +mixins-args-expand-op-2 { + m3: 4, 5, 6; +} +mixins-args-expand-op-3a { + m3: a, b, c; +} +mixins-args-expand-op-3b { + m4: 0, a, b, c; +} +mixins-args-expand-op-3c { + m4: a, b, c, 4; +} +mixins-args-expand-op-4a { + m3: a, b, c, d; +} +mixins-args-expand-op-4b { + m4: 0, a, b, c, d; +} +mixins-args-expand-op-4c { + m4: a, b, c, d, 4; +} +mixins-args-expand-op-5a { + m3: 1, 2, 3; +} +mixins-args-expand-op-5b { + m4: 0, 1, 2, 3; +} +mixins-args-expand-op-5c { + m4: 1, 2, 3, 4; +} +mixins-args-expand-op-6 { + m4: 0, 1, 2, 3; +} +mixins-args-expand-op-7 { + m4: 0, 1, 2, 3; +} +mixins-args-expand-op-8 { + m4: 1, 1.5, 2, 3; +} +mixins-args-expand-op-9 { + aa: 4 5 6 1 2 3 and again 4 5 6; + a4: and; + a8: 5; +} +#test-mixin-matching-when-default-2645 { + height: 20px; +} diff --git a/test/Fixtures/lessjs-3.13.1/css/math/strict-legacy/parens.css b/test/Fixtures/lessjs-3.13.1/css/math/strict-legacy/parens.css new file mode 100644 index 00000000..89fe108a --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/css/math/strict-legacy/parens.css @@ -0,0 +1,40 @@ +.parens { + border: 2px solid black; + margin: 1px 3px 16 3; + width: 36; + padding: 2px 36px; +} +.in-function { + value: 2 + 1; +} +.more-parens { + padding: 8 4 4 4px; + width-all: 96; + width-first: 16 * 6; + width-keep: (4 * 4) * 6; + height: calc(100% + (25vh - 20px)); + height-keep: (7 * 7) + (8 * 8); + height-all: 113; + height-parts: 49 + 64; + margin-keep: (4 * (5 + 5) / 2) - (4 * 2); + margin-parts: 20 - 8; + margin-all: 12; + border-radius-keep: 4px * (1 + 1) / 4 + 3px; + border-radius-parts: 8px / 7px; + border-radius-all: 5px; +} +.negative { + neg-var: -1; + neg-var-paren: -1; +} +.nested-parens { + width: 2 * (4 * (2 + (1 + 6))) - 1; + height: ((2 + 3) * (2 + 3) / (9 - 4)) + 1; +} +.mixed-units { + margin: 2px 4em 1 5pc; + padding: 6px 1em 2px 2; +} +.test-rule-false-negatives { + a: (; +} diff --git a/test/Fixtures/lessjs-3.13.1/css/math/strict/css.css b/test/Fixtures/lessjs-3.13.1/css/math/strict/css.css new file mode 100644 index 00000000..63364078 --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/css/math/strict/css.css @@ -0,0 +1,95 @@ +@charset "utf-8"; +div { + color: black; +} +div { + width: 99%; +} +* { + min-width: 45em; +} +h1, +h2 > a > p, +h3 { + color: none; +} +div.class { + color: blue; +} +div#id { + color: green; +} +.class#id { + color: purple; +} +.one.two.three { + color: grey; +} +@media print { + * { + font-size: 3em; + } +} +@media screen { + * { + font-size: 10px; + } +} +@font-face { + font-family: 'Garamond Pro'; +} +a:hover, +a:link { + color: #999; +} +p, +p:first-child { + text-transform: none; +} +q:lang(no) { + quotes: none; +} +p + h1 { + font-size: 2.2em; +} +#shorthands { + border: 1px solid #000; + font: 12px/16px Arial; + font: 100%/16px Arial; + margin: 1px 0; + padding: 0 auto; +} +#more-shorthands { + margin: 0; + padding: 1px 0 2px 0; + font: normal small / 20px 'Trebuchet MS', Verdana, sans-serif; + font: 0/0 a; + border-radius: 5px / 10px; +} +.misc { + -moz-border-radius: 2px; + display: -moz-inline-stack; + width: 0.1em; + background-color: #009998; + background: -webkit-gradient(linear, left top, left bottom, from(red), to(blue)); + margin: ; + filter: alpha(opacity=100); + width: auto\9; +} +.misc .nested-multiple { + multiple-semi-colons: yes; +} +#important { + color: red !important; + width: 100%!important; + height: 20px ! important; +} +@font-face { + font-family: font-a; +} +@font-face { + font-family: font-b; +} +.æøå { + margin: 0; +} diff --git a/test/Fixtures/lessjs-3.13.1/css/math/strict/media-math.css b/test/Fixtures/lessjs-3.13.1/css/math/strict/media-math.css new file mode 100644 index 00000000..1d2452a0 --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/css/math/strict/media-math.css @@ -0,0 +1,10 @@ +@media (min-width: 16 + 1) { + .foo { + bar: 1; + } +} +@media (min-width: 16 / 9) { + .foo { + bar: 1; + } +} diff --git a/test/Fixtures/lessjs-3.13.1/css/math/strict/mixins-args.css b/test/Fixtures/lessjs-3.13.1/css/math/strict/mixins-args.css new file mode 100644 index 00000000..138ce0ae --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/css/math/strict/mixins-args.css @@ -0,0 +1,169 @@ +#hidden { + color: transparent; +} +#hidden1 { + color: transparent; +} +.two-args { + color: blue; + width: 10px; + height: 99%; + depth: 100% - 1%; + border: 2px dotted black; +} +.one-arg { + width: 15px; + height: 49%; + depth: 50% - 1%; +} +.no-parens { + width: 5px; + height: 49%; + depth: 50% - 1%; +} +.no-args { + width: 5px; + height: 49%; + depth: 50% - 1%; +} +.var-args { + width: 45; + height: 8%; + depth: 18 / 2 - 1%; +} +.multi-mix { + width: 10px; + height: 29%; + depth: 30% - 1%; + margin: 4; + padding: 5; +} +body { + padding: 30px; + color: #f00; +} +.scope-mix { + width: 8; +} +.content { + width: 600px; +} +.content .column { + margin: 600px; +} +#same-var-name { + radius: 5px; +} +#var-inside { + width: 10px; +} +.arguments { + border: 1px solid black; + width: 1px; +} +.arguments2 { + border: 0px; + width: 0px; +} +.arguments3 { + border: 0px; + width: 0px; +} +.arguments4 { + border: 0 1 2 3 4; + rest: 1 2 3 4; + width: 0; +} +.edge-case { + border: "{"; + width: "{"; +} +.slash-vs-math { + border-radius: 2px/5px; + border-radius: 5px/10px; + border-radius: 6px; +} +.comma-vs-semi-colon { + one: a; + two: b, c; + one: d, e; + two: f; + one: g; + one: h; + one: i; + one: j; + one: k; + two: l; + one: m, n; + one: o, p; + two: q; + one: r, s; + two: t; +} +#named-conflict { + four: a, 11, 12, 13; + four: a, 21, 22, 23; +} +.test-rule-mixin-default-arg { + defaults: 1px 1px 1px; + defaults: 2px 2px 2px; +} +.selector { + margin: 2, 2, 2, 2; +} +.selector2 { + margin: 2, 2, 2, 2; +} +.selector3 { + margin: 4; +} +mixins-args-expand-op-1 { + m3: 1, 2, 3; +} +mixins-args-expand-op-2 { + m3: 4, 5, 6; +} +mixins-args-expand-op-3a { + m3: a, b, c; +} +mixins-args-expand-op-3b { + m4: 0, a, b, c; +} +mixins-args-expand-op-3c { + m4: a, b, c, 4; +} +mixins-args-expand-op-4a { + m3: a, b, c, d; +} +mixins-args-expand-op-4b { + m4: 0, a, b, c, d; +} +mixins-args-expand-op-4c { + m4: a, b, c, d, 4; +} +mixins-args-expand-op-5a { + m3: 1, 2, 3; +} +mixins-args-expand-op-5b { + m4: 0, 1, 2, 3; +} +mixins-args-expand-op-5c { + m4: 1, 2, 3, 4; +} +mixins-args-expand-op-6 { + m4: 0, 1, 2, 3; +} +mixins-args-expand-op-7 { + m4: 0, 1, 2, 3; +} +mixins-args-expand-op-8 { + m4: 1, 1.5, 2, 3; +} +mixins-args-expand-op-9 { + aa: 4 5 6 1 2 3 and again 4 5 6; + a4: and; + a8: 5; +} +#test-mixin-matching-when-default-2645 { + height: 20px; +} diff --git a/test/Fixtures/lessjs-3.13.1/css/math/strict/parens.css b/test/Fixtures/lessjs-3.13.1/css/math/strict/parens.css new file mode 100644 index 00000000..c234b7bd --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/css/math/strict/parens.css @@ -0,0 +1,37 @@ +.parens { + border: 2px solid black; + margin: 1px 3px 16 3; + width: 36; + padding: 2px 36px; +} +.more-parens { + padding: 8 4 4 4px; + width-all: 96; + width-first: 16 * 6; + width-keep: 16 * 6; + height: calc(100% + (25vh - 20px)); + height-keep: 49 + 64; + height-all: 113; + height-parts: 49 + 64; + margin-keep: 20 - 8; + margin-parts: 20 - 8; + margin-all: 12; + border-radius-keep: 4px * 2 / 4 + 3px; + border-radius-parts: 8px / 7px; + border-radius-all: 5px; +} +.negative { + neg-var: -1; + neg-var-paren: -1; +} +.nested-parens { + width: 2 * 36 - 1; + height: 5 + 1; +} +.mixed-units { + margin: 2px 4em 1 5pc; + padding: 6px 1em 2px 2; +} +.test-rule-false-negatives { + a: (; +} diff --git a/test/Fixtures/lessjs-3.13.1/css/modifyVars/extended.css b/test/Fixtures/lessjs-3.13.1/css/modifyVars/extended.css new file mode 100644 index 00000000..32edb38f --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/css/modifyVars/extended.css @@ -0,0 +1,9 @@ +#header { + color: #333333; + border-left: 1px; + border-right: 2px; +} +#footer { + color: #114411; + border-color: #842210; +} diff --git a/test/Fixtures/lessjs-3.13.1/css/namespacing/namespacing-1.css b/test/Fixtures/lessjs-3.13.1/css/namespacing/namespacing-1.css new file mode 100644 index 00000000..f2097696 --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/css/namespacing/namespacing-1.css @@ -0,0 +1,20 @@ +.foo { + color1: red; + color2: yellow; + color3: red; + color4: yellow; + color5: red; + prop: uno; + var: dos; + sub: tres; +} +#ns1 { + foo: bar; +} +#ns1 { + foo: uno; +} +.button { + color: grey; + border-color: #AAA #CCC; +} diff --git a/test/Fixtures/lessjs-3.13.1/css/namespacing/namespacing-2.css b/test/Fixtures/lessjs-3.13.1/css/namespacing/namespacing-2.css new file mode 100644 index 00000000..83c50956 --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/css/namespacing/namespacing-2.css @@ -0,0 +1,10 @@ +.bar { + width: 800px; + height: 2px; +} +.foo { + width: 800px; +} +.lunch { + treat: ice cream; +} diff --git a/test/Fixtures/lessjs-3.13.1/css/namespacing/namespacing-3.css b/test/Fixtures/lessjs-3.13.1/css/namespacing/namespacing-3.css new file mode 100644 index 00000000..d56f639f --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/css/namespacing/namespacing-3.css @@ -0,0 +1,23 @@ +@media (min-width: 320px) { + .toolbar { + width: 400px; + height: 200px; + background: red; + color: inherit; + } +} +.cell { + margin: 0 5px !important; +} +.class1 { + color: #33acfe !important; + margin: 20px !important; + padding: 20px !important; + width: 0 !important; +} +.class2 { + color: #efca44; + margin: 10px; + padding: 40px 10px; + width: 0 !important; +} diff --git a/test/Fixtures/lessjs-3.13.1/css/namespacing/namespacing-4.css b/test/Fixtures/lessjs-3.13.1/css/namespacing/namespacing-4.css new file mode 100644 index 00000000..a0f0dddf --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/css/namespacing/namespacing-4.css @@ -0,0 +1,5 @@ +.foo { + width: 20px; + background: rebeccapurple; + color: inherit; +} diff --git a/test/Fixtures/lessjs-3.13.1/css/namespacing/namespacing-5.css b/test/Fixtures/lessjs-3.13.1/css/namespacing/namespacing-5.css new file mode 100644 index 00000000..bff65a47 --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/css/namespacing/namespacing-5.css @@ -0,0 +1,12 @@ +.my-navbar { + background: rebeccapurple; + val: output; +} +.another-navbar { + background: rebeccapurple !important; + border: 1px solid lightblue !important; +} +.another { + background: black; + border: 1px solid grey; +} diff --git a/test/Fixtures/lessjs-3.13.1/css/namespacing/namespacing-6.css b/test/Fixtures/lessjs-3.13.1/css/namespacing/namespacing-6.css new file mode 100644 index 00000000..2813c382 --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/css/namespacing/namespacing-6.css @@ -0,0 +1,10 @@ +.rule-1 { + width: 10px; +} +.rule-2 { + width: 10px; +} +.rule-3 { + width: 10px; + height: 10px; +} diff --git a/test/Fixtures/lessjs-3.13.1/css/namespacing/namespacing-7.css b/test/Fixtures/lessjs-3.13.1/css/namespacing/namespacing-7.css new file mode 100644 index 00000000..0ebcfcfb --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/css/namespacing/namespacing-7.css @@ -0,0 +1,12 @@ +.output { + a: b; +} +.output-2 { + c: d; +} +.dr { + a: b; +} +.dr-2 { + c: d; +} diff --git a/test/Fixtures/lessjs-3.13.1/css/namespacing/namespacing-8.css b/test/Fixtures/lessjs-3.13.1/css/namespacing/namespacing-8.css new file mode 100644 index 00000000..a68bb76a --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/css/namespacing/namespacing-8.css @@ -0,0 +1,10 @@ +:root { + --background-color: black; + --color: #fff; +} +div { + display: inline-block; + padding: 1rem; + background-color: var(--background-color); + color: var(--color); +} diff --git a/test/Fixtures/lessjs-3.13.1/css/namespacing/namespacing-functions.css b/test/Fixtures/lessjs-3.13.1/css/namespacing/namespacing-functions.css new file mode 100644 index 00000000..87208fd7 --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/css/namespacing/namespacing-functions.css @@ -0,0 +1,10 @@ +.foo { + width: 20px; + bar: val; +} +.bar { + width: test; +} +.example { + value: lookup; +} diff --git a/test/Fixtures/lessjs-3.13.1/css/namespacing/namespacing-media.css b/test/Fixtures/lessjs-3.13.1/css/namespacing/namespacing-media.css new file mode 100644 index 00000000..eca22b76 --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/css/namespacing/namespacing-media.css @@ -0,0 +1,5 @@ +@media not all and (min-width: 480px) { + .selector { + prop: val; + } +} diff --git a/test/Fixtures/lessjs-3.13.1/css/namespacing/namespacing-operations.css b/test/Fixtures/lessjs-3.13.1/css/namespacing/namespacing-operations.css new file mode 100644 index 00000000..06595bb4 --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/css/namespacing/namespacing-operations.css @@ -0,0 +1,3 @@ +.foo { + val: 35px; +} diff --git a/test/Fixtures/lessjs-3.13.1/css/no-strict-math/mixins-guards.css b/test/Fixtures/lessjs-3.13.1/css/no-strict-math/mixins-guards.css new file mode 100644 index 00000000..75561993 --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/css/no-strict-math/mixins-guards.css @@ -0,0 +1,12 @@ +.test-rule-2798 { + regression: fixed; +} +.conditions-parser-1 { + only-atomic: ok; +} +.conditions-parser-2 { + only-atomic-with-nested-parenthesis: ok; +} +.conditions-parser-3 { + only-atomic-nested-parenthesis-on-right: ok; +} diff --git a/test/Fixtures/lessjs-3.13.1/css/no-strict-math/no-sm-operations.css b/test/Fixtures/lessjs-3.13.1/css/no-strict-math/no-sm-operations.css new file mode 100644 index 00000000..f720ffbf --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/css/no-strict-math/no-sm-operations.css @@ -0,0 +1,18 @@ +.named-colors-in-expressions { + color-0: 0 -red; + color-1: #000101; + color-2: #ff0000; + color-3: #ff0000; + background-color: blue-2; + color: green-black; + animation: blue-change 5s infinite; +} +.named-colors-in-expressions-bar-red { + x: y; +} +.named-colors-in-expressions-barred { + a: a; +} +.division { + value: 2px; +} diff --git a/test/Fixtures/lessjs-3.13.1/css/postProcessorPlugin/postProcessor.css b/test/Fixtures/lessjs-3.13.1/css/postProcessorPlugin/postProcessor.css new file mode 100644 index 00000000..1b2413ac --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/css/postProcessorPlugin/postProcessor.css @@ -0,0 +1,4 @@ +hr {height:50px;} +.test-rule { + color: inherit; +} diff --git a/test/Fixtures/lessjs-3.13.1/css/preProcessorPlugin/preProcessor.css b/test/Fixtures/lessjs-3.13.1/css/preProcessorPlugin/preProcessor.css new file mode 100644 index 00000000..aa9930db --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/css/preProcessorPlugin/preProcessor.css @@ -0,0 +1,3 @@ +.test-rule { + color: red; +} diff --git a/test/Fixtures/lessjs-3.13.1/css/process-imports/google.css b/test/Fixtures/lessjs-3.13.1/css/process-imports/google.css new file mode 100644 index 00000000..5ab4dafe --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/css/process-imports/google.css @@ -0,0 +1,3 @@ +.a { + b: c; +} diff --git a/test/Fixtures/lessjs-3.13.1/css/rewrite-urls-all/rewrite-urls-all.css b/test/Fixtures/lessjs-3.13.1/css/rewrite-urls-all/rewrite-urls-all.css new file mode 100644 index 00000000..c3d115df --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/css/rewrite-urls-all/rewrite-urls-all.css @@ -0,0 +1,17 @@ +#imported-file { + background-image: url("./folder/relative/path"); + background-image: url("./relative/path"); + background-image: url("../relative/path"); + background-image: url("folder/module"); + background-image: url("folder/module/path"); + background-image: url("folder/module/relative/path"); +} +#rewrite-urls-all { + background-image: url("./relative/path"); + background-image: url("../relative/path"); + background-image: url("./path"); + background-image: url("./"); + background-image: url("module"); + background-image: url("module/path"); + background-image: url("module/relative/path"); +} diff --git a/test/Fixtures/lessjs-3.13.1/css/rewrite-urls-local/rewrite-urls-local.css b/test/Fixtures/lessjs-3.13.1/css/rewrite-urls-local/rewrite-urls-local.css new file mode 100644 index 00000000..b6ea2801 --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/css/rewrite-urls-local/rewrite-urls-local.css @@ -0,0 +1,17 @@ +#imported-file { + background-image: url("./folder/relative/path"); + background-image: url("./relative/path"); + background-image: url("../relative/path"); + background-image: url("module"); + background-image: url("module/path"); + background-image: url("module/relative/path"); +} +#rewrite-urls-local { + background-image: url("./relative/path"); + background-image: url("../relative/path"); + background-image: url("./path"); + background-image: url("./"); + background-image: url("module"); + background-image: url("module/path"); + background-image: url("module/relative/path"); +} diff --git a/test/Fixtures/lessjs-3.13.1/css/rootpath-rewrite-urls-all/rootpath-rewrite-urls-all.css b/test/Fixtures/lessjs-3.13.1/css/rootpath-rewrite-urls-all/rootpath-rewrite-urls-all.css new file mode 100644 index 00000000..65421a44 --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/css/rootpath-rewrite-urls-all/rootpath-rewrite-urls-all.css @@ -0,0 +1,17 @@ +#imported-file { + background-image: url("http://example.com/assets/css/folder/relative/path"); + background-image: url("http://example.com/assets/css/relative/path"); + background-image: url("http://example.com/assets/relative/path"); + background-image: url("http://example.com/assets/css/folder/module"); + background-image: url("http://example.com/assets/css/folder/module/path"); + background-image: url("http://example.com/assets/css/folder/module/relative/path"); +} +#rootpath-rewrite-urls-all { + background-image: url("http://example.com/assets/css/relative/path"); + background-image: url("http://example.com/assets/relative/path"); + background-image: url("http://example.com/assets/css/path"); + background-image: url("http://example.com/assets/css"); + background-image: url("http://example.com/assets/css/module"); + background-image: url("http://example.com/assets/css/module/path"); + background-image: url("http://example.com/assets/css/module/relative/path"); +} diff --git a/test/Fixtures/lessjs-3.13.1/css/rootpath-rewrite-urls-local/rootpath-rewrite-urls-local.css b/test/Fixtures/lessjs-3.13.1/css/rootpath-rewrite-urls-local/rootpath-rewrite-urls-local.css new file mode 100644 index 00000000..da99c0f8 --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/css/rootpath-rewrite-urls-local/rootpath-rewrite-urls-local.css @@ -0,0 +1,17 @@ +#imported-file { + background-image: url("http://example.com/assets/css/folder/relative/path"); + background-image: url("http://example.com/assets/css/relative/path"); + background-image: url("http://example.com/assets/relative/path"); + background-image: url("module"); + background-image: url("module/path"); + background-image: url("module/relative/path"); +} +#rootpath-rewrite-urls-local { + background-image: url("http://example.com/assets/css/relative/path"); + background-image: url("http://example.com/assets/relative/path"); + background-image: url("http://example.com/assets/css/path"); + background-image: url("http://example.com/assets/css"); + background-image: url("module"); + background-image: url("module/path"); + background-image: url("module/relative/path"); +} diff --git a/test/Fixtures/lessjs-3.13.1/css/static-urls/urls.css b/test/Fixtures/lessjs-3.13.1/css/static-urls/urls.css new file mode 100644 index 00000000..e9a417a6 --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/css/static-urls/urls.css @@ -0,0 +1,46 @@ +@import "css/background.css"; +@import "folder (1)/import-test-d.css"; +@font-face { + src: url("/fonts/garamond-pro.ttf"); + src: local(Futura-Medium), url(folder\ \(1\)/fonts.svg#MyGeometricModern) format("svg"); +} +#shorthands { + background: url("http://www.lesscss.org/spec.html") no-repeat 0 4px; +} +#misc { + background-image: url(folder\ \(1\)/images/image.jpg); +} +#data-uri { + background: url(data:image/png;charset=utf-8;base64, + kiVBORw0KGgoAAAANSUhEUgAAABAAAAAQAQMAAAAlPW0iAAAABlBMVEUAAAD/ + k//+l2Z/dAAAAM0lEQVR4nGP4/5/h/1+G/58ZDrAz3D/McH8yw83NDDeNGe4U + kg9C9zwz3gVLMDA/A6P9/AFGGFyjOXZtQAAAAAElFTkSuQmCC); + background-image: url(data:image/x-png,f9difSSFIIGFIFJD1f982FSDKAA9==); + background-image: url(http://fonts.googleapis.com/css?family=\"Rokkitt\":\(400\),700); +} +#svg-data-uri { + background: transparent url('data:image/svg+xml, '); +} +.comma-delimited { + background: url(folder\ \(1\)/bg.jpg) no-repeat, url(folder\ \(1\)/bg.png) repeat-x top left, url(folder\ \(1\)/bg); +} +.values { + url: url('folder (1)/Trebuchet'); +} +#logo { + width: 100px; + height: 100px; + background: url('./assets/logo.png'); + background: url("#inline-svg"); +} +@font-face { + font-family: xecret; + src: url('./assets/xecret.ttf'); +} +#secret { + font-family: xecret, sans-serif; +} +#imported-relative-path { + background-image: url(../data/image.jpg); + border-image: url('../data/image.jpg'); +} diff --git a/test/Fixtures/lessjs-3.13.1/css/strict-units/strict-units.css b/test/Fixtures/lessjs-3.13.1/css/strict-units/strict-units.css new file mode 100644 index 00000000..f09f0084 --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/css/strict-units/strict-units.css @@ -0,0 +1,4 @@ +.units { + cancels-to-nothing: 1; + cancels: 6px; +} diff --git a/test/Fixtures/lessjs-3.13.1/css/url-args/urls.css b/test/Fixtures/lessjs-3.13.1/css/url-args/urls.css new file mode 100644 index 00000000..8e446d9e --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/css/url-args/urls.css @@ -0,0 +1,56 @@ +@font-face { + src: url("/fonts/garamond-pro.ttf?424242"); + src: local(Futura-Medium), url(fonts.svg?424242#MyGeometricModern) format("svg"); +} +#shorthands { + background: url("http://www.lesscss.org/spec.html?424242") no-repeat 0 4px; + background: url("img.jpg?424242") center / 100px; + background: #fff url(image.png?424242) center / 1px 100px repeat-x scroll content-box padding-box; +} +#misc { + background-image: url(images/image.jpg?424242); +} +#data-uri { + background: url(data:image/png;charset=utf-8;base64, + kiVBORw0KGgoAAAANSUhEUgAAABAAAAAQAQMAAAAlPW0iAAAABlBMVEUAAAD/ + k//+l2Z/dAAAAM0lEQVR4nGP4/5/h/1+G/58ZDrAz3D/McH8yw83NDDeNGe4U + kg9C9zwz3gVLMDA/A6P9/AFGGFyjOXZtQAAAAAElFTkSuQmCC); + background-image: url(data:image/x-png,f9difSSFIIGFIFJD1f982FSDKAA9==); + background-image: url(http://fonts.googleapis.com/css?family=\"Rokkitt\":\(400\),700&424242); + background-image: url("http://fonts.googleapis.com/css?family=\"Rokkitt\":\(400\),700&424242"); +} +#svg-data-uri { + background: transparent url('data:image/svg+xml, '); +} +.comma-delimited { + background: url(bg.jpg?424242) no-repeat, url(bg.png?424242) repeat-x top left, url(bg?424242); +} +.values { + url: url('Trebuchet?424242'); +} +@font-face { + font-family: xecret; + src: url('../assets/xecret.ttf?424242'); +} +#secret { + font-family: xecret, sans-serif; +} +#data-uri { + uri: url("data:image/jpeg;base64,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U3v/APtyCCCCCO+++6CD9tLCS2+++OCpCVCBCyyhylaHiCBCCCCGe+++yCDf999LDC2++++lCcJTCCCxCBCpCQJCCGe++++iCDf9R999LDCS2+62P888f7IhCZCvKPMP+++++yCCHd99BR999vDCCy188888885AOtK4+P3j+++yCCDP999xBBB1999PDU88888888j8P9pr1V496yCDBHf999hBtBBBR9999l88888888n8nWp8fvfCBCDTV9995BBB9tBBBBx9938888888708XEy/8880Mrz+d95hBBBN899JBBBBxe/888888v8AO/JwFuPPPPPPOOYQQQRXfdPPfbSQQQQ6d/8Az9/3/wA/8sd5FdZbz8wwBBBBN998AQ8899tJBBRjFHEyUnQGzgdp9hWxhwBBBBN99984AAA08899tNBBg18vro5/j0PfvfoBBBBFN99984gAOAAAQ088999NNBBBDJ0AATAQ/RBBFN999988wAAA+uIAAAQw8899999NNNNNOcuetN99999884wAAAAO+++uKAAAAw088899999999999998888wgAAAAO++C2+++uKAAAAAQw0888888888888wwAAAAAAO++++CCS2+++uOCAAAAAAAAAQwwAAAAAAAAAAGe++++yC/8QAJhEBAAICAgEDBAMBAAAAAAAAAQARITEQQUAgUWEwUHGRcIHRof/aAAgBAwEBPxD7r3B7/H2eyo5KiFOmDrZvrERI/ZU7w7ht4fmELvyzKzuT3+PsJRst+qmFGxyejqKmnJUB1mWdtvtojstnqrT3Guuh+/HBzQkwZiUOjVXLd/b/AHlj+07hN4fmXD/LN8Mx2Kz/ALMgE1NcEwaaMMQ4mbhTfv8AuEEaeMRRs+Z1YR5d8vtwFQwlRAU1H14zLqtXymWZI4qojvyHfBvkjge4fTPuOAau/wAzHPEfQbj5Dvg3z1EIunX9QAXK41sorfdxKa4fQb8l3wb5Yt2xgxa/8lo0o7jALoZorWz/ACFWg5PJd8G+XfJvgDayWS0pCkFu3PXku+DfBv0HFudTBVn6iqlrz15LKuF2p8Eo69HXBx1wAvUAKWP2eThgA16EHcU1wDx1wJASg0QT2FjmWEqLsHse78evL6DL8kSo8UL4SXT2hVlXLg10eNiPovA5RzDYIlkRGmdcPoNgjjwRi/on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"); +} +#data-uri-guess { + uri: url("data:image/jpeg;base64,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U3v/APtyCCCCCO+++6CD9tLCS2+++OCpCVCBCyyhylaHiCBCCCCGe+++yCDf999LDC2++++lCcJTCCCxCBCpCQJCCGe++++iCDf9R999LDCS2+62P888f7IhCZCvKPMP+++++yCCHd99BR999vDCCy188888885AOtK4+P3j+++yCCDP999xBBB1999PDU88888888j8P9pr1V496yCDBHf999hBtBBBR9999l88888888n8nWp8fvfCBCDTV9995BBB9tBBBBx9938888888708XEy/8880Mrz+d95hBBBN899JBBBBxe/888888v8AO/JwFuPPPPPPOOYQQQRXfdPPfbSQQQQ6d/8Az9/3/wA/8sd5FdZbz8wwBBBBN998AQ8899tJBBRjFHEyUnQGzgdp9hWxhwBBBBN99984AAA08899tNBBg18vro5/j0PfvfoBBBBFN99984gAOAAAQ088999NNBBBDJ0AATAQ/RBBFN999988wAAA+uIAAAQw8899999NNNNNOcuetN99999884wAAAAO+++uKAAAAw088899999999999998888wgAAAAO++C2+++uKAAAAAQw0888888888888wwAAAAAAO++++CCS2+++uOCAAAAAAAAAQwwAAAAAAAAAAGe++++yC/8QAJhEBAAICAgEDBAMBAAAAAAAAAQARITEQQUAgUWEwUHGRcIHRof/aAAgBAwEBPxD7r3B7/H2eyo5KiFOmDrZvrERI/ZU7w7ht4fmELvyzKzuT3+PsJRst+qmFGxyejqKmnJUB1mWdtvtojstnqrT3Guuh+/HBzQkwZiUOjVXLd/b/AHlj+07hN4fmXD/LN8Mx2Kz/ALMgE1NcEwaaMMQ4mbhTfv8AuEEaeMRRs+Z1YR5d8vtwFQwlRAU1H14zLqtXymWZI4qojvyHfBvkjge4fTPuOAau/wAzHPEfQbj5Dvg3z1EIunX9QAXK41sorfdxKa4fQb8l3wb5Yt2xgxa/8lo0o7jALoZorWz/ACFWg5PJd8G+XfJvgDayWS0pCkFu3PXku+DfBv0HFudTBVn6iqlrz15LKuF2p8Eo69HXBx1wAvUAKWP2eThgA16EHcU1wDx1wJASg0QT2FjmWEqLsHse78evL6DL8kSo8UL4SXT2hVlXLg10eNiPovA5RzDYIlkRGmdcPoNgjjwRi/on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"); +} +#data-uri-ascii { + uri-1: url("data:text/html,%3Chtml%3E%3Ch1%3EThis%20page%20is%20100%25%20Awesome.%3C%2Fh1%3E%3C%2Fhtml%3E%0A"); + uri-2: url("data:text/html,%3Chtml%3E%3Ch1%3EThis%20page%20is%20100%25%20Awesome.%3C%2Fh1%3E%3C%2Fhtml%3E%0A"); +} +#svg-functions { + background-image: url('data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%201%201%22%3E%3ClinearGradient%20id%3D%22g%22%20x1%3D%220%25%22%20y1%3D%220%25%22%20x2%3D%220%25%22%20y2%3D%22100%25%22%3E%3Cstop%20offset%3D%220%25%22%20stop-color%3D%22%23000000%22%2F%3E%3Cstop%20offset%3D%22100%25%22%20stop-color%3D%22%23ffffff%22%2F%3E%3C%2FlinearGradient%3E%3Crect%20x%3D%220%22%20y%3D%220%22%20width%3D%221%22%20height%3D%221%22%20fill%3D%22url(%23g)%22%20%2F%3E%3C%2Fsvg%3E'); + background-image: url('data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%201%201%22%3E%3ClinearGradient%20id%3D%22g%22%20x1%3D%220%25%22%20y1%3D%220%25%22%20x2%3D%220%25%22%20y2%3D%22100%25%22%3E%3Cstop%20offset%3D%220%25%22%20stop-color%3D%22%23000000%22%2F%3E%3Cstop%20offset%3D%223%25%22%20stop-color%3D%22%23ffa500%22%2F%3E%3Cstop%20offset%3D%22100%25%22%20stop-color%3D%22%23ffffff%22%2F%3E%3C%2FlinearGradient%3E%3Crect%20x%3D%220%22%20y%3D%220%22%20width%3D%221%22%20height%3D%221%22%20fill%3D%22url(%23g)%22%20%2F%3E%3C%2Fsvg%3E'); + background-image: url('data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%201%201%22%3E%3ClinearGradient%20id%3D%22g%22%20x1%3D%220%25%22%20y1%3D%220%25%22%20x2%3D%220%25%22%20y2%3D%22100%25%22%3E%3Cstop%20offset%3D%221%25%22%20stop-color%3D%22%23c4c4c4%22%2F%3E%3Cstop%20offset%3D%223%25%22%20stop-color%3D%22%23ffa500%22%2F%3E%3Cstop%20offset%3D%225%25%22%20stop-color%3D%22%23008000%22%2F%3E%3Cstop%20offset%3D%2295%25%22%20stop-color%3D%22%23ffffff%22%2F%3E%3C%2FlinearGradient%3E%3Crect%20x%3D%220%22%20y%3D%220%22%20width%3D%221%22%20height%3D%221%22%20fill%3D%22url(%23g)%22%20%2F%3E%3C%2Fsvg%3E'); +} +#data-uri-with-spaces { + background-image: url(data:image/x-png,f9difSSFIIGFIFJD1f982FSDKAA9==); + background-image: url(' data:image/x-png,f9difSSFIIGFIFJD1f982FSDKAA9=='); +} diff --git a/test/Fixtures/lessjs-3.13.1/css/visitorPlugin/visitor.css b/test/Fixtures/lessjs-3.13.1/css/visitorPlugin/visitor.css new file mode 100644 index 00000000..aa9930db --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/css/visitorPlugin/visitor.css @@ -0,0 +1,3 @@ +.test-rule { + color: red; +} diff --git a/test/Fixtures/lessjs-3.13.1/less/3rd-party/bootstrap4.less b/test/Fixtures/lessjs-3.13.1/less/3rd-party/bootstrap4.less new file mode 100644 index 00000000..0760c8be --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/less/3rd-party/bootstrap4.less @@ -0,0 +1 @@ +@import "bootstrap-less-port/less/bootstrap"; \ No newline at end of file diff --git a/test/Fixtures/lessjs-3.13.1/less/3rd-party/uikit.less b/test/Fixtures/lessjs-3.13.1/less/3rd-party/uikit.less new file mode 100644 index 00000000..b8ac9a70 --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/less/3rd-party/uikit.less @@ -0,0 +1 @@ +@import "uikit/src/less/uikit"; \ No newline at end of file diff --git a/test/Fixtures/lessjs-3.13.1/less/_main/calc.less b/test/Fixtures/lessjs-3.13.1/less/_main/calc.less new file mode 100644 index 00000000..8bdf57b6 --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/less/_main/calc.less @@ -0,0 +1,46 @@ +@val: 10px; +.no-math { + @c: 10px + 20px; + @calc: (@val + 30px); + root: calc(100% - @c); + root2: calc(100% - @calc); + @var: 50vh/2; + width: calc(50% + (@var - 20px)); + height: calc(50% + ((@var - 20px))); + min-height: calc(((10vh)) + calc((5vh))); + foo: 1 + 2 calc(3 + 4) 5 + 6; + @floor: floor(1 + .1); + bar: calc(@floor + 20%); +} + +.b { + @a: 10px; + @b: 10px; + + one: calc(100% - ((min(@a + @b)))); + two: calc(100% - (((@a + @b)))); + three: calc(e('100%') - (3 * 1)); + four: calc(~'100%' - (3 * 1)); + nested: calc(calc(2.25rem + 2px) - 1px * 2); +} + +.c { + @v: 10px; + height: calc(100% - ((@v * 3) + (@v * 2))); +} + +.correctly-exit-calc-mode { + @a: 10; + h2 { width: unit(@a, px); } + + div { width: calc(100px * 2); } + + .mk-map() { + text: white; + background: black; + } + + @p: .mk-map(); + + h1 { color: @p[text]; } +} diff --git a/test/Fixtures/lessjs-3.13.1/less/_main/charsets.less b/test/Fixtures/lessjs-3.13.1/less/_main/charsets.less new file mode 100644 index 00000000..550d40e9 --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/less/_main/charsets.less @@ -0,0 +1,3 @@ +@charset "UTF-8"; + +@import "import/import-charset-test"; \ No newline at end of file diff --git a/test/Fixtures/lessjs-3.13.1/less/_main/colors.less b/test/Fixtures/lessjs-3.13.1/less/_main/colors.less new file mode 100644 index 00000000..9c7d17ef --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/less/_main/colors.less @@ -0,0 +1,116 @@ +#yelow { + #short { + color: #fea; + } + #long { + color: #ffeeaa; + } + #rgba { + color: rgba(255, 238, 170, 0.1); + } + #argb { + color: argb(rgba(255, 238, 170, 0.1)); + } +} + +#blue { + #short { + color: #00f; + } + #long { + color: #0000ff; + } + #rgba { + color: rgba(0, 0, 255, 0.1); + } + #argb { + color: argb(rgba(0, 0, 255, 0.1)); + } +} + +#alpha #hsla { + color: hsla(11, 20%, 20%, 0.6); +} + +#overflow { + .a { color: (#111111 - #444444); } // #000000 + .b { color: (#eee + #fff); } // #ffffff + .c { color: (#aaa * 3); } // #ffffff + .d { color: (#00ee00 + #009900); } // #00ff00 + .e { color: rgba(-99.9, 31.4159, 321, 0.42); } +} + +#grey { + color: rgb(200, 200, 200); +} + +#aa3333 { + color: rgb(66.66%, 20%, 20%); +} + +#bb8080 { + color: hsl(0deg, 30%, 62%); +} + +#ccff00 { + color: hsl(72deg, 100%, 50%); +} + +.lightenblue { + color: lighten(blue, 10%); +} + +.darkenblue { + color: darken(blue, 10%); +} + +.unknowncolors { + color: blue2; + border: 2px solid superred; +} + +.transparent { + color: transparent; + background-color: rgba(0, 0, 0, 0); +} +#alpha { + @colorvar: rgba(150, 200, 150, 0.7); + #fromvar { + opacity: alpha(@colorvar); + } + #short { + opacity: alpha(#aaa); + } + #long { + opacity: alpha(#bababa); + } + #rgba { + opacity: alpha(rgba(50, 120, 95, 0.2)); + } + #hsl { + opacity: alpha(hsl(120, 100%, 50%)); + } +} + +#percentage { + color: red(rgb(100%, 0, 0)); + border-color: rgba(100%, 0, 0, 50%); +} + +#rrggbbaa { + test-1: #55FF5599; + test-2: #5F59; + test-3: lighten(#55FF5599, 10%); + test-4: fade(#5F59, 10%); + test-5: rgba(#55FF5599); + test-6: rgba(#5F59); + test-7: rgba(#5F59, 0.5); + test-8: rgba(var(--color-accent), 0.2); + test-9: rgb(var(--color-accent)); + test-9: hsla(var(--color-accent)); + test-10: color('#55FF5599'); + test-11: hsla(#5F59); + test-12: hsla(#5F59, 0.5); + --semi-transparent-dark-background: #001e00ee; + --semi-transparent-dark-background-2: rgba(0, 30, 0, 238); // invalid opacity will be capped +} diff --git a/test/Fixtures/lessjs-3.13.1/less/_main/comments.less b/test/Fixtures/lessjs-3.13.1/less/_main/comments.less new file mode 100644 index 00000000..900d77da --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/less/_main/comments.less @@ -0,0 +1,102 @@ +/******************\ +* * +* Comment Header * +* * +\******************/ + +/* + + Comment + +*/ + +/* + * Comment Test + * + * - cloudhead (http://cloudhead.net) + * + */ + +//////////////// +@var: "content"; +//////////////// + +/* Colors + * ------ + * #EDF8FC (background blue) + * #166C89 (darkest blue) + * + * Text: + * #333 (standard text) // A comment within a comment! + * #1F9EC9 (standard link) + * + */ + +/* @group Variables +------------------- */ +#comments /* boo *//* boo again*/, +//.commented_out1 +//.commented_out2 +//.commented_out3 +.comments //end of comments1 +//end of comments2 +{ + /**/ // An empty comment + color: red; /* A C-style comment */ /* A C-style comment */ + background-color: orange; // A little comment + font-size: 12px; + + /* lost comment */ content: @var; + + border: 1px solid black; + + // padding & margin // + padding: 0; // }{ '" + margin: 2em; +} // + +/* commented out + #more-comments { + color: grey; + } +*/ + +.selector /* .with */, .lots, /* of */ .comments { + color/* survive */ /* me too */: grey, /* blue */ orange; + -webkit-border-radius: 2px /* webkit only */; + -moz-border-radius: (2px * 4) /* moz only with operation */; +} + +.mixin_def_with_colors(@a: white, // in + @b: 1px //put in @b - causes problems! ---> + ) // the + when (@a = white) { + .test-rule { + color: @b; + } +} +.mixin_def_with_colors(); + +// .s when +//R/2 + +.sr-only-focusable { + clip: auto; +} + +@-webkit-keyframes /* Safari */ hover /* and Chrome */ { + 0% { + color: red; + } +} + +#last { color: blue } +// + +/* *//* { *//* *//* *//* */#div { color:#A33; }/* } */ + +// line immediately followed +/*by block */ +@string_w_comment: ~"/* // Not commented out // */"; +#output-block { comment: @string_w_comment; } +/*comment on last line*/ \ No newline at end of file diff --git a/test/Fixtures/lessjs-3.13.1/less/_main/comments2.less b/test/Fixtures/lessjs-3.13.1/less/_main/comments2.less new file mode 100644 index 00000000..dce78baa --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/less/_main/comments2.less @@ -0,0 +1,31 @@ +@media all and/*! */(max-width:1024px) {} +@-webkit-keyframes hover /* Safari and Chrome */{ } +.bg { + background-image: linear-gradient(#333 /*{comment}*/, #111); +} +#planadvisor, +/*comment*//*comment*/ +.first,/*comment*//*comment*/.planning { + margin:10px; + total-width: @total-width; +} +@base : 1; +@column-width : @base * 6em; // Width of column */ +@gutter-width : 2em; // Width of column spacing */ +@columns : 12; // Number of Columns */ +@gridsystem-width : (@column-width * // For calculating the total */ + @columns) + ( // width of the content area. */ + @gutter-width * // We strongly recommend you */ + @columns); // do not change this formula. */ +@total-width : @gridsystem-width; // set to 100% for fluid grid */ + +// ............................................................................. + +.some-inline-comments { + a: yes /* comment */; + b: red /* comment */; + @c: yes /* comment */; + @d: red /* comment */; + c: @c; + d: @d; +} diff --git a/test/Fixtures/lessjs-3.13.1/less/_main/css-3.less b/test/Fixtures/lessjs-3.13.1/less/_main/css-3.less new file mode 100644 index 00000000..6ffac725 --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/less/_main/css-3.less @@ -0,0 +1,152 @@ +.comma-delimited { + text-shadow: -1px -1px 1px red, 6px 5px 5px yellow; + -moz-box-shadow: 0pt 0pt 2px rgba(255, 255, 255, 0.4) inset, + 0pt 4px 6px rgba(255, 255, 255, 0.4) inset; + -webkit-transform: rotate(-0.0000000001deg); +} +@font-face { + font-family: Headline; + unicode-range: U+??????, U+0???, U+0-7F, U+A5; +} +.other { + -moz-transform: translate(0, 11em) rotate(-90deg); + transform: rotateX(45deg); +} +.item[data-cra_zy-attr1b-ut3=bold] { + font-weight: bold; +} +p:not([class*="lead"]) { + color: black; +} + +input[type="text"].class#id[attr=32]:not(1) { + color: inherit; +} + +div#id.class[a=1][b=2].class:not(1) { + color: inherit; +} + +ul.comma > li:not(:only-child)::after { + color: inherit; +} + +ol.comma > li:nth-last-child(2)::after { + color: inherit; +} + +li:nth-child(4n+1), +li:nth-child(-5n), +li:nth-child(-n+2) { + color: inherit; +} + +a[href^="http://"] { + color: black; +} + +a[href$="http://"] { + color: black; +} + +form[data-disabled] { + color: black; +} + +p::before { + color: black; +} + +#issue322 { + -webkit-animation: anim2 7s infinite ease-in-out; +} + +@-webkit-keyframes frames { + 0% { border: 1px } + 5.5% { border: 2px } + 100% { border: 3px } +} + +@keyframes fontbulger1 { + to { + font-size: 15px; + } + from,to { + font-size: 12px; + } + 0%,100% { + font-size: 12px; + } +} + +@supports ( box-shadow: 2px 2px 2px black ) or + ( -moz-box-shadow: 2px 2px 2px black ) { + .outline { + box-shadow: 2px 2px 2px black; + -moz-box-shadow: 2px 2px 2px black; + } +} + +@-x-document url-prefix(""github.com"") { + h1 { + color: red; + } +} + +@viewport { + font-size: 10px; +} +@namespace foo url(http://www.example.com); + +foo|h1 { color: blue; } +foo|* { color: yellow; } +*|h1 { color: green; } +h1 { color: green; } +.upper-test { + UpperCaseProperties: allowed; +} +@host { + div { + display: block; + } +} +::distributed(input::placeholder) { + color: #b3b3b3; +} +.shadow > .dom, +body > .shadow { + display: done; +} + +:host(.sel .a), +:host-context(.sel .b), +.sel > .b, +::content .sel { + type: shadow-dom; +} +* b { + c: 'd'; + &[e]{ + f: 'g'; + } +} + +#issue2066 { + background: url('/images/icon-team.svg') 0 0 / contain; +} + +@counter-style triangle { + system: cyclic; + symbols: ‣; + suffix: " "; +} + +@-ms-viewport{ + // width: auto !important; +} + +@unknown foo 42 (bar) { + x {y: z} +} + +@unknown foo 43; diff --git a/test/Fixtures/lessjs-3.13.1/less/_main/css-escapes.less b/test/Fixtures/lessjs-3.13.1/less/_main/css-escapes.less new file mode 100644 index 00000000..a132f39f --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/less/_main/css-escapes.less @@ -0,0 +1,44 @@ +@ugly: fuchsia; + +.escape\|random\|char { + color: red; +} + +.mixin\!tUp { + font-weight: bold; +} + +// class="404" +.\34 04 { + background: red; + + strong { + color: @ugly; + .mixin\!tUp; + } +} + +.trailingTest\+ { + color: red; +} + +/* This hideous test of hideousness checks for the selector "blockquote" with various permutations of hex escapes */ +\62\6c\6f \63 \6B \0071 \000075o\74 e { + color: silver; +} + +[ng\:cloak], +ng\:form { + display: none; +} + +// In Bootstrap v3 +.bootstrap { + background-color: #000 \9; +} + +textarea { + font-family: 'helvetica neue','wenquanyi micro hei',\5FAE\8F6F\96C5\9ED1, \5B8B\4F53, sans-serif; +} + +e('anything to unquote'); \ No newline at end of file diff --git a/test/Fixtures/lessjs-3.13.1/less/_main/css-grid.less b/test/Fixtures/lessjs-3.13.1/less/_main/css-grid.less new file mode 100644 index 00000000..b4ca542e --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/less/_main/css-grid.less @@ -0,0 +1,30 @@ +.wrapper { + display: grid; + grid-template-columns: [col1-start] 9fr [col1-end] 10px [col2-start] 3fr [col2-end]; + grid-template-rows: auto; +} + +.wrapper { + display: grid; + grid-template-columns: [left-bound] auto [container-left] 1170px [container-right] auto [right-bound]; + grid-template-rows: [row-1-start] 140px [row-2-start] 390px [row-3-start] 200px [row-4-start] 120px [row-5-start] 120px [row-6-start] 120px; +} + +.container-12 { + z-index: 20; + display: grid; + grid-column: container-left / span 1; + grid-row: 2; + grid-template-columns: [wrapcol-1-start] 1fr [wrapcol-1-end] 15px [wrapcol-2-start] 1fr [wrapcol-2-end] 15px [wrapcol-3-start] 1fr [wrapcol-3-end] 15px [wrapcol-4-start] 1fr [wrapcol-4-end] 15px [wrapcol-5-start] 1fr [wrapcol-5-end] 15px [wrapcol-6-start] 1fr [wrapcol-6-end] 15px [wrapcol-7-start] 1fr [wrapcol-7-end] 15px [wrapcol-8-start] 1fr [wrapcol-8-end] 15px [wrapcol-9-start] 1fr [wrapcol-9-end] 15px [wrapcol-10-start] 1fr [wrapcol-10-end] 15px [wrapcol-11-start] 1fr [wrapcol-11-end] 15px [wrapcol-12-start] 1fr [wrapcol-12-end]; + grid-template-rows: repeat(14, [gutter] 10px [row] 60px); +} + +.wrapper { + display: grid; + grid-template-columns: 9fr 1.875em 3fr; + grid-template-rows: auto; + grid-template-areas: + "header header header" + "content . sidebar" + "footer footer footer"; +} \ No newline at end of file diff --git a/test/Fixtures/lessjs-3.13.1/less/_main/css-guards.less b/test/Fixtures/lessjs-3.13.1/less/_main/css-guards.less new file mode 100644 index 00000000..f082ace0 --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/less/_main/css-guards.less @@ -0,0 +1,103 @@ + +.light when (lightness(@a) > 50%) { + color: green; +} +.dark when (lightness(@a) < 50%) { + color: orange; +} +@a: #ddd; + +.see-the { + @a: #444; // this mirrors what mixins do - they evaluate the guards at the point of definition + .light(); + .dark(); +} + +.hide-the { + .light(); + .dark(); +} + +.multiple-conditions-1 when (@b = 1), (@c = 2), (@d = 3) { + color: red; +} + +.multiple-conditions-2 when (@b = 1), (@c = 2), (@d = 2) { + color: blue; +} + +@b: 2; +@c: 3; +@d: 3; + +.inheritance when (@b = 2) { + .test-rule { + color: black; + } + &:hover { + color: pink; + } + .hideme when (@b = 1) { + color: green; + } + & when (@b = 1) { + hideme: green; + } +} + +.hideme when (@b = 1) { + .test-rule { + color: black; + } + &:hover { + color: pink; + } + .hideme when (@b = 1) { + color: green; + } +} + +& when (@b = 1) { + .hideme { + color: red; + } +} + +.mixin-with-guard-inside(@colWidth) { + // selector with guard (applies also to & when() ...) + .clsWithGuard when (@colWidth <= 0) { + dispaly: none; + } +} + +.mixin-with-guard-inside(0px); + +.dont-split-me-up { + width: 1px; + & when (@c = 3) { + color: red; + } + & when (@c = 3) { + height: 1px; + } + * & when (@c = 3) { + sibling: true; + } +} + +.scope-check when (@c = 3) { + @k: 1px; + & when (@c = 3) { + @k: 2px; + sub-prop: @k; + } + prop: @k; +} +.scope-check-2 { + .scope-check(); + @k:4px; +} +.errors-if-called when (@c = never) { + .mixin-doesnt-exist(); +} +a:hover when (2 = true) {5:-} \ No newline at end of file diff --git a/test/Fixtures/lessjs-3.13.1/less/_main/detached-rulesets.less b/test/Fixtures/lessjs-3.13.1/less/_main/detached-rulesets.less new file mode 100644 index 00000000..0d84337c --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/less/_main/detached-rulesets.less @@ -0,0 +1,112 @@ +@ruleset: { + color: black; + background: white; +} + +@a: 1px; +.wrap-mixin(@ruleset) { + @a: hidden and if you see this in the output its a bug; + @b: visible; + @d: magic-frame; // same behaviour as mixin calls - falls back to this frame + .wrap-selector { + @c: visible; + @ruleset(); + visible-one: @b; + visible-two: @c; + } +} + +.wrap-mixin({ + color: black; + one: @a; + @b: hidden and if you see this in the output its a bug; + @c: hidden and if you see this in the output its a bug; + four: @d; +}); + +.wrap-mixin(@ruleset: { + color: red; +}); + +.wrap-mixin(@ruleset); + +.desktop-and-old-ie(@rules) { + @media screen and (min-width: 1200) { @rules() } + html.lt-ie9 & { @rules() } +} + +header { + background: blue; + + .desktop-and-old-ie({ + background: red; + }); +} + +.wrap-mixin-calls-wrap(@ruleset) { + .wrap-mixin(@ruleset); +}; + +.wrap-mixin({ + test: extra-wrap; + .wrap-mixin-calls-wrap({ + test: wrapped-twice; + }); +}); + +.wrap-mixin({ + test-func: unit(90px); + test-arithmetic: unit((9+9), px); +}); +// without mixins +@ruleset-2: { + b: 1; +}; +.without-mixins { + @ruleset-2(); +} +@my-ruleset: { + .my-selector { + @media (tv) { + background-color: black; + } + } + }; +@media (orientation:portrait) { + @my-ruleset(); + .wrap-media-mixin({ + @media (tv) { + .triple-wrapped-mq { + triple: true; + } + } + }); +} +.wrap-media-mixin(@ruleset) { + @media (widescreen) { + @media (print) { + @ruleset(); + } + @ruleset(); + } + @ruleset(); +} +// unlocking mixins +@my-mixins: { + .mixin() { + test: test; + } +}; +@my-mixins(); +.a { + .mixin(); +} +// as mixin argument default +.mixin-definition(@a: {}; @b: {default: works;};) { + @a(); + @b(); +} +.argument-default { + .mixin-definition(); + .mixin-definition({direct: works;}; @b: {named: works;}); +} \ No newline at end of file diff --git a/test/Fixtures/lessjs-3.13.1/less/_main/directives-bubling.less b/test/Fixtures/lessjs-3.13.1/less/_main/directives-bubling.less new file mode 100644 index 00000000..be352386 --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/less/_main/directives-bubling.less @@ -0,0 +1,142 @@ +//simple case: @document +.parent { + color:green; + + @document url-prefix() { + .child { + color:red; + } + } +} + +//selectors joinings test +.top { + @supports (sandwitch: butter) { + .inside & { + property: value; + } + } +} + +@supports (sandwitch: bread) { + .in1 { + .in2 { + property: value; + } + } +} + +.top { + .inside & { + @supports (sandwitch: ham) { + property: value; + } + } +} + +//combined with @font-face which has different kind of body +@supports (font-family: weirdFont) { + @font-face { + font-family: something; + src: made-up-url; + } +} + +@font-face { + @supports not (-webkit-font-smoothing: subpixel-antialiased) { + font-family: something; + src: made-up-url; + } +} + +//bubling through media +@supports (property: value) { + .outOfMedia & { + @media (max-size: 2px) { + @supports (whatever: something) { + property: value; + } + } + } +} + +.onTop & { + @supports (property: value) { + @media (max-size: 2px) { + @supports (whatever: something) { + property: value; + } + } + } +} + + +//long combination of supports and media +@media print { + html { + in-html: visible; + @supports (upper: test) { + in-supports: first; + div { + in-div: visible; + @supports not (-webkit-font-smoothing: subpixel-antialiased) { + in-supports: second; + @media screen { + font-weight: 400; + nested { + property: value; + } + } + } + } + } + } +} + +//another long combination of supports and media +@media print { + @media (max-size: 2px) { + .in1 { + stay: here; + @supports not (-webkit-font-smoothing: subpixel-antialiased) { + .in2 & { + @supports (whatever: something) { + property: value; + } + } + } + } + } +} + +//called from mixin +.nestedSupportsMixin() { + font-weight: 300; + -webkit-font-smoothing: subpixel-antialiased; + @supports not (-webkit-font-smoothing: subpixel-antialiased) { + font-weight: 400; + nested { + property: value; + } + } +} + +html { + .nestedSupportsMixin; +} + +// selectors should not propagate into all directive types +.onTop { + @font-face { + font-family: something; + src: made-up-url; + } + + @keyframes "textscale" { + 0% { font-size : 1em; } + 100% { font-size : 2em; } + } + + animation : "textscale"; + font-family : something; +} diff --git a/test/Fixtures/lessjs-3.13.1/less/_main/empty.less b/test/Fixtures/lessjs-3.13.1/less/_main/empty.less new file mode 100644 index 00000000..e69de29b diff --git a/test/Fixtures/lessjs-3.13.1/less/_main/extend-chaining.less b/test/Fixtures/lessjs-3.13.1/less/_main/extend-chaining.less new file mode 100644 index 00000000..8aae8730 --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/less/_main/extend-chaining.less @@ -0,0 +1,91 @@ +//very simple chaining +.a { + color: black; +} +.b:extend(.a) {} +.c:extend(.b) {} + +//very simple chaining, ordering not important + +.d:extend(.e) {} +.e:extend(.f) {} +.f { + color: black; +} + +//extend with all + +.g.h { + color: black; +} +.i.j:extend(.g all) { + color: inherit; +} +.k:extend(.i all) {} + +//extend multi-chaining + +.l { + color: black; +} +.m:extend(.l){} +.n:extend(.m){} +.o:extend(.n){} +.p:extend(.o){} +.q:extend(.p){} +.r:extend(.q){} +.s:extend(.r){} +.t:extend(.s){} + +// self referencing is ignored + +.u {color: black;} +.v.u.v:extend(.u all){} + +// circular reference because the new extend product will match the existing extend + +.w:extend(.w) {color: black;} +.v.w.v:extend(.w all){} + +// classic circular references + +.x:extend(.z) { + color: x; +} +.y:extend(.x) { + color: y; +} +.z:extend(.y) { + color: z; +} + +//very simple chaining, but with the extend inside the ruleset +.va { + color: black; +} +.vb { + &:extend(.va); + color: inherit; +} +.vc { + &:extend(.vb); +} + +// media queries - don't extend outside, do extend inside + +@media (tv) { + .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) { + color: black; + } + .md { + color: inherit; + } + @media (plasma) { + .me, .mf { + &:extend(.mb,.md); + background: red; + } + } +} +.mb:extend(.ma) {}; +.mc:extend(.mb) {}; \ No newline at end of file diff --git a/test/Fixtures/lessjs-3.13.1/less/_main/extend-clearfix.less b/test/Fixtures/lessjs-3.13.1/less/_main/extend-clearfix.less new file mode 100644 index 00000000..82445dfa --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/less/_main/extend-clearfix.less @@ -0,0 +1,19 @@ +.clearfix { + *zoom: 1; + &:after { + content: ''; + display: block; + clear: both; + height: 0; + } +} + +.foo { + &:extend(.clearfix all); + color: red; +} + +.bar { + &:extend(.clearfix all); + color: blue; +} diff --git a/test/Fixtures/lessjs-3.13.1/less/_main/extend-exact.less b/test/Fixtures/lessjs-3.13.1/less/_main/extend-exact.less new file mode 100644 index 00000000..41dc4130 --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/less/_main/extend-exact.less @@ -0,0 +1,46 @@ +.replace.replace, +.c.replace + .replace { + .replace, + .c { + prop: copy-paste-replace; + } +} +.rep_ace:extend(.replace.replace .replace) {} + +.a .b .c { + prop: not_effected; +} + +.a { + prop: is_effected; + .b { + prop: not_effected; + } + .b.c { + prop: not_effected; + } +} + +.c, .a { + .b, .a { + .a, .c { + prop: not_effected; + } + } +} + +.effected { + &:extend(.a); + &:extend(.b); + &:extend(.c); +} + +.e { + && { + prop: extend-double; + &:hover { + hover: not-extended; + } + } +} +.dbl:extend(.e.e) {} diff --git a/test/Fixtures/lessjs-3.13.1/less/_main/extend-media.less b/test/Fixtures/lessjs-3.13.1/less/_main/extend-media.less new file mode 100644 index 00000000..ead3be4f --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/less/_main/extend-media.less @@ -0,0 +1,24 @@ +.ext1 .ext2 { + background: black; +} + +@media (tv) { + .ext1 .ext3 { + color: inherit; + } + .tv-lowres :extend(.ext1 all) { + background: blue; + } + @media (hires) { + .ext1 .ext4 { + color: green; + } + .tv-hires :extend(.ext1 all) { + background: red; + } + } +} + +.all:extend(.ext1 all) { + +} \ No newline at end of file diff --git a/test/Fixtures/lessjs-3.13.1/less/_main/extend-nest.less b/test/Fixtures/lessjs-3.13.1/less/_main/extend-nest.less new file mode 100644 index 00000000..67243bfe --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/less/_main/extend-nest.less @@ -0,0 +1,65 @@ +.sidebar { + width: 300px; + background: red; + + .box { + background: #FFF; + border: 1px solid #000; + margin: 10px 0; + } +} + +.sidebar2 { + &:extend(.sidebar all); + background: blue; +} + +.type1 { + .sidebar3 { + &:extend(.sidebar all); + background: green; + } +} + +.type2 { + &.sidebar4 { + &:extend(.sidebar all); + background: red; + } +} + +.button { + color: black; + &:hover { + color: inherit; + } +} +.submit { + &:extend(.button); + &:hover:extend(.button:hover) {} +} + +.nomatch { + &:hover:extend(.button :hover) {} +} + +.button2 { + :hover { + nested: white; + } +} +.button2 :hover { + notnested: black; +} + +.nomatch :extend(.button2:hover) {} + +.amp-test-a, +.amp-test-b { + .amp-test-c &.amp-test-d&.amp-test-e { + .amp-test-f&+&.amp-test-g:extend(.amp-test-h) {} + } +} +.amp-test-h { + test: extended by masses of selectors; +} \ No newline at end of file diff --git a/test/Fixtures/lessjs-3.13.1/less/_main/extend-selector.less b/test/Fixtures/lessjs-3.13.1/less/_main/extend-selector.less new file mode 100644 index 00000000..39cef589 --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/less/_main/extend-selector.less @@ -0,0 +1,110 @@ +.error { + border: 1px #f00; + background: #fdd; +} +.error.intrusion { + font-size: 1.3em; + font-weight: bold; +} +.intrusion .error { + display: none; +} +.badError:extend(.error all) { + border-width: 3px; +} + +.foo .bar, .foo .baz { + display: none; +} + +.ext1 .ext2 + :extend(.foo all) { +} + +.ext3:extend(.foo all), +.ext4:extend(.foo all) { +} + +div.ext5, +.ext6 > .ext5 { + width: 100px; +} + +.should-not-exist-in-output, +.ext7:extend(.ext5 all) { +} + +.ext { + test: 1; +} +// same as +// .a .c:extend(.ext all) +// .b .c:extend(.ext all) +// .a .c .d +// .b .c .d +.a, .b { + test: 2; + .c:extend(.ext all) { + test: 3; + .d { + test: 4; + } + } +} + +.replace.replace, +.c.replace + .replace { + .replace, + .c { + prop: copy-paste-replace; + } +} +.rep_ace:extend(.replace all) {} + +.attributes { + [data="test"] { + extend: attributes; + } + .attribute-test { + &:extend([data="test"] all); + } + [data] { + extend: attributes2; + } + .attribute-test2 { + &:extend([data] all); //you could argue it should match [data="test"]... not for now though... + } + @attr-data: "test3"; + [data=@{attr-data}] { + extend: attributes2; + } + .attribute-test { + &:extend([data="test3"] all); + } +} + +.header { + .header-nav { + background: red; + &:before { + background: blue; + } + } +} + +.footer { + .footer-nav { + &:extend( .header .header-nav all ); + } +} + +.issue-2586-bordered { + border: solid 1px black; +} +.issue-2586-somepage { + .content:extend(.issue-2586-bordered) { + &>span { + margin-bottom: 10px; + } + } +} diff --git a/test/Fixtures/lessjs-3.13.1/less/_main/extend.less b/test/Fixtures/lessjs-3.13.1/less/_main/extend.less new file mode 100644 index 00000000..1db5d431 --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/less/_main/extend.less @@ -0,0 +1,81 @@ +.error { + border: 1px #f00; + background: #fdd; +} +.error.intrusion { + font-size: 1.3em; + font-weight: bold; +} +.intrusion .error { + display: none; +} +.badError { + &:extend(.error all); + border-width: 3px; +} + +.foo .bar, .foo .baz { + display: none; +} + +.ext1 .ext2 { + &:extend(.foo all); +} + +.ext3, +.ext4 { + &:extend(.foo all); + &:extend(.bar all); +} + +div.ext5, +.ext6 > .ext5 { + width: 100px; +} + +.ext7 { + &:extend(.ext5 all); +} + +.ext8.ext9 { + result: add-foo; +} +.ext8 .ext9, +.ext8 + .ext9, +.ext8 > .ext9 { + result: bar-matched; +} +.ext8.nomatch { + result: none; +} +.ext8 { + .ext9 { + result: match-nested-bar; + } +} +.ext8 { + &.ext9 { + result: match-nested-foo; + } +} + +.fuu:extend(.ext8.ext9 all) {} +.buu:extend(.ext8 .ext9 all) {} +.zap:extend(.ext8 + .ext9 all) {} +.zoo:extend(.ext8 > .ext9 all) {} + +.aa { + color: black; + .dd { + background: red; + } +} +.bb { + background: red; + .bb { + color: black; + } +} +.cc:extend(.aa,.bb) {} +.ee:extend(.dd all,.bb) {} +.ff:extend(.dd,.bb all) {} \ No newline at end of file diff --git a/test/Fixtures/lessjs-3.13.1/less/_main/extract-and-length.less b/test/Fixtures/lessjs-3.13.1/less/_main/extract-and-length.less new file mode 100644 index 00000000..d064bdb9 --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/less/_main/extract-and-length.less @@ -0,0 +1,146 @@ + +// test late parsing +@cols: 1, 2; + +.a(@i: length(@cols)) when (@i > 0) { + @divider: e(extract(@cols, @i)); +} +.a; + +.b(@j: 1) when (@j < length(@cols)) { + @divider: e(extract(@cols, @j)); +} +.b; + +// simple array/list: + +.multiunit { + @v: abc "abc" 1 1px 1% #123; + length: length(@v); + extract: extract(@v, 1) extract(@v, 2) extract(@v, 3) extract(@v, 4) extract(@v, 5) extract(@v, 6); +} + +.incorrect-index { + @v1: a b c; + @v2: a, b, c; + v1: extract(@v1, 5); + v2: extract(@v2, -2); +} + +.scalar { + @var: variable; + var-value: extract(@var, 1); + var-length: length(@var); + ill-index: extract(@var, 2); + + name-value: extract(name, 1); + string-value: extract("string", 1); + number-value: extract(12345678, 1); + color-value: extract(blue, 1); + rgba-value: extract(rgba(80, 160, 240, 0.67), 1); + empty-value: extract(~'', 1); + + name-length: length(name); + string-length: length("string"); + number-length: length(12345678); + color-length: length(blue); + rgba-length: length(rgba(80, 160, 240, 0.67)); + empty-length: length(~''); +} + +.mixin-arguments { + .mixin-args(a b c d); + .mixin-args(a, b, c, d); + .mixin-args(1; 2; 3; 4); +} + +.mixin-args(@value) { + &-1 { + length: length(@value); + extract: extract(@value, 3) ~"|" extract(@value, 2) ~"|" extract(@value, 1); + } +} + +.mixin-args(...) { + &-2 { + length: length(@arguments); + extract: extract(@arguments, 3) ~"|" extract(@arguments, 2) ~"|" extract(@arguments, 1); + } +} + +.mixin-args(@values...) { + &-3 { + length: length(@values); + extract: extract(@values, 3) ~"|" extract(@values, 2) ~"|" extract(@values, 1); + } +} + +.mixin-args(@head, @tail...) { + &-4 { + length: length(@tail); + extract: extract(@tail, 2) ~"|" extract(@tail, 1); + } +} + +// "multidimensional" array/list + +.md-space-comma { + @v: a b c, 1 2 3, "x" "y" "z"; + length-1: length(@v); + extract-1: extract(@v, 2); + length-2: length(extract(@v, 2)); + extract-2: extract(extract(@v, 2), 2); + + &-as-args {.mixin-args(a b c, 1 2 3, "x" "y" "z")} +} + +.md-cat-space-comma { + @a: a b c; + @b: 1 2 3; + @c: "x" "y" "z"; + @v: @a, @b, @c; + length-1: length(@v); + extract-1: extract(@v, 2); + length-2: length(extract(@v, 2)); + extract-2: extract(extract(@v, 2), 2); + + &-as-args {.mixin-args(@a, @b, @c)} +} + +.md-cat-comma-space { + @a: a, b, c; + @b: 1, 2, 3; + @c: "x", "y", "z"; + @v: @a @b @c; + length-1: length(@v); + extract-1: extract(@v, 2); + length-2: length(extract(@v, 2)); + extract-2: extract(extract(@v, 2), 2); + + &-as-args {.mixin-args(@a @b @c)} +} + +.md-3D { + @a: a b c d, 1 2 3 4; + @b: 5 6 7 8, e f g h; + .3D(@a, @b); + + .3D(...) { + + @v1: @arguments; + length-1: length(@v1); + extract-1: extract(@v1, 1); + + @v2: extract(@v1, 2); + length-2: length(@v2); + extract-2: extract(@v2, 1); + + @v3: extract(@v2, 1); + length-3: length(@v3); + extract-3: extract(@v3, 3); + + @v4: extract(@v3, 4); + length-4: length(@v4); + extract-4: extract(@v4, 1); + } +} diff --git a/test/Fixtures/lessjs-3.13.1/less/_main/functions-each.less b/test/Fixtures/lessjs-3.13.1/less/_main/functions-each.less new file mode 100644 index 00000000..d15b3558 --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/less/_main/functions-each.less @@ -0,0 +1,163 @@ +@selectors: blue, green, red; +@list: a b c d; + +each(@selectors, { + .sel-@{value} { + a: b; + } +}); + +.each { + each(@list, { + index+: @index; + item@{index}: @value; + }); + + // nested each + each(10px 15px, 20px 25px; { + // demonstrates nesting of each() + each(@value; #(@v, @k, @i) { + nest-@{i}-@{index}: @v @k; + }); + }); + + // nested anonymous mixin + .nest-anon { + each(a b, .(@v;@i) { + each(c d, .(@vv;@ii) { + nest-@{i}-@{ii}: @v @vv; + }); + }); + } + + // vector math + each(1 2 3 4, { + padding+_: (@value * 10px); + }); +} + +@set: { + one: blue; + // skip comments + two: green; + /** and these + */ + three: red; //and this +} +.set { + each(@set, { + @{key}: @value; + }); +} +.set-2() { + one: blue; + two: green; + three: red; +} +.set-2 { + each(.set-2(), .(@v, @k, @i) { + @{k}-@{i}: @v; + }); +} + +.pick(@a) when (@a = 4) { + val3: @a; +} +.single { + each(true, { + val: @value; + }); + @exp: 1 + 1; + each(@exp, { + val2: @value; + }); + each(1 2 3 4, { + .pick(@value); + }); +} + +@columns: range(4); +.column-list { + list: @columns; +} + +each(@columns, .(@val) { + .col-@{val} { + width: (100% / length(@columns)); + } +}); + +each(range(10px, 30px, 10px), .(@val, @index) { + .row-@{index} { + width: @val; + } +}); + +@list: a b c d; +.box { + each(@list, { + -less-log: extract(@list, @index); + }) +} + +// https://github.com/less/less.js/issues/3325 + +@color-schemes: { + @primary: { + @color: blue; + } + @secondary: { + @color: red; + } +} +.test-rule { + each(primary secondary, .(@color-name) { + @scheme: @color-schemes[@@color-name]; // e.g. @color-name = primary + color: @scheme[@color]; + }); +} + +@one: { + @two: { + foo: red; + bar: blue; + }; +}; + +each(@one[@two], { + .@{key} { + content: @value; + } +}); + +// https://github.com/less/less.js/issues/3354 +.log(@msgs) { + each(@msgs; { + content: @value; + }); +} + +@messages: 'foo', 'bar'; + +span { + .log(@messages); +} + +div { + .log('foo'); +} + +// https://github.com/less/less.js/issues/3345 +.mixin-create-width-style() { + @list: e("90 100 110"); + + each(@list, { + .w-@{key} { + width: @value; + } + }) +} + +.a { + .mixin-create-width-style(); +} \ No newline at end of file diff --git a/test/Fixtures/lessjs-3.13.1/less/_main/functions.less b/test/Fixtures/lessjs-3.13.1/less/_main/functions.less new file mode 100644 index 00000000..f6db3b41 --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/less/_main/functions.less @@ -0,0 +1,284 @@ +#functions { + @var: 10; + @colors: #000, #fff; + color: _color("evil red"); // #660000 + width: increment(15); + height: undefined("self"); + border-width: add(2, 3); + variable: increment(@var); + background: linear-gradient(@colors); +} + +#built-in { + @r: 32; + escaped: e("-Some::weird(#thing, y)"); + lighten: lighten(#ff0000, 40%); + lighten-relative: lighten(#ff0000, 40%, relative); + darken: darken(#ff0000, 40%); + darken-relative: darken(#ff0000, 40%, relative); + saturate: saturate(#29332f, 20%); + saturate-relative: saturate(#29332f, 20%, relative); + desaturate: desaturate(#203c31, 20%); + desaturate-relative: desaturate(#203c31, 20%, relative); + greyscale: greyscale(#203c31); + hsl-clamp: hsl(380, 150%, 150%); + spin-p: spin(hsl(340, 50%, 50%), 40); + spin-n: spin(hsl(30, 50%, 50%), -40); + luma-white: luma(#fff); + luma-black: luma(#000); + luma-black-alpha: luma(rgba(0,0,0,0.5)); + luma-red: luma(#ff0000); + luma-green: luma(#00ff00); + luma-blue: luma(#0000ff); + luma-yellow: luma(#ffff00); + luma-cyan: luma(#00ffff); + luma-differs-from-luminance: luma(#ff3600); + luminance-white: luma(#fff); + luminance-black: luma(#000); + luminance-black-alpha: luma(rgba(0,0,0,0.5)); + luminance-red: luma(#ff0000); + luminance-differs-from-luma: luminance(#ff3600); + contrast-filter: contrast(30%); + saturate-filter: saturate(5%); + contrast-white: contrast(#fff); + contrast-black: contrast(#000); + contrast-red: contrast(#ff0000); + contrast-green: contrast(#00ff00); + contrast-blue: contrast(#0000ff); + contrast-yellow: contrast(#ffff00); + contrast-cyan: contrast(#00ffff); + contrast-light: contrast(#fff, #111111, #eeeeee); + contrast-dark: contrast(#000, #111111, #eeeeee); + contrast-wrongorder: contrast(#fff, #eeeeee, #111111, 0.5); + contrast-light-thresh: contrast(#fff, #111111, #eeeeee, 0.5); + contrast-dark-thresh: contrast(#000, #111111, #eeeeee, 0.5); + contrast-high-thresh: contrast(#555, #111111, #eeeeee, 0.6); + contrast-low-thresh: contrast(#555, #111111, #eeeeee, 0.09); + contrast-light-thresh-per: contrast(#fff, #111111, #eeeeee, 50%); + contrast-dark-thresh-per: contrast(#000, #111111, #eeeeee, 50%); + contrast-high-thresh-per: contrast(#555, #111111, #eeeeee, 60%); + contrast-low-thresh-per: contrast(#555, #111111, #eeeeee, 9%); + replace: replace("Hello, Mars.", "Mars\.", "World!"); + replace-captured: replace("This is a string.", "(string)\.$", "new $1."); + replace-with-flags: replace("One + one = 4", "one", "2", "gi"); + replace-single-quoted: replace('foo-1', "1", "2"); + replace-escaped-string: replace(~"bar-1", "1", "2"); + replace-keyword: replace(baz-1, "1", "2"); + replace-with-color: replace("007", "0", #135, g); + replace-with-number: replace("007", "0", 2em); + format: %("rgb(%d, %d, %d)", @r, 128, 64); + format-string: %("hello %s", "world"); + format-multiple: %("hello %s %d", "earth", 2); + format-url-encode: %("red is %A", #ff0000); + format-single-quoted: %('hello %s', "single world"); + format-escaped-string: %(~"hello %s", "escaped world"); + format-color-as-string: %("%s", #123); + format-number-as-string: %("%s", 4px); + eformat: e(%("rgb(%d, %d, %d)", @r, 128, 64)); + + unitless: unit(12px); + unit: unit((13px + 1px), em); + unitpercentage: unit(100, %); + + get-unit: get-unit(10px); + get-unit-empty: get-unit(10); + + hue: hue(hsl(98, 12%, 95%)); + saturation: saturation(hsl(98, 12%, 95%)); + lightness: lightness(hsl(98, 12%, 95%)); + hsvhue: hsvhue(hsv(98, 12%, 95%)); + hsvsaturation: hsvsaturation(hsv(98, 12%, 95%)); + hsvvalue: hsvvalue(hsv(98, 12%, 95%)); + red: red(#f00); + green: green(#0f0); + blue: blue(#00f); + rounded: round((@r/3)); + rounded-two: round((@r/3), 2); + roundedpx: round((10px / 3)); + roundedpx-three: round((10px / 3), 3); + rounded-percentage: round(10.2%); + ceil: ceil(10.1px); + floor: floor(12.9px); + sqrt: sqrt(25px); + pi: pi(); + mod: mod(13m, 11cm); // could take into account units, doesn't at the moment + abs: abs(-4%); + tan: tan(42deg); + sin: sin(10deg); + cos: cos(12); + atan: atan(tan(0.1rad)); + atan: convert(acos(cos(34deg)), deg); + atan: convert(acos(cos(50grad)), deg); + pow: pow(8px, 2); + pow: pow(4, 3); + pow: pow(3, 3em); + min: min(0); + min: min(6, 5); + min: min(1pt, 3pt); + min: min(1cm, 3mm); + max: max(1, 3); + max: max(3em, 1em, 2em, 5em); + percentage: percentage((10px / 50)); + color-quoted-digit: color("#dda0dd"); + color-quoted-keyword: color("plum"); + color-color: color(#dda0dd); + color-keyword: color(plum); + tint: tint(#777777, 13); + tint-full: tint(#777777, 100); + tint-percent: tint(#777777, 13%); + tint-negative: tint(#777777, -13%); + shade: shade(#777777, 13); + shade-full: shade(#777777, 100); + shade-percent: shade(#777777, 13%); + shade-negative: shade(#777777, -13%); + + fade-out: fadeout(red, 5%); // support fadeOut and fadeout + fade-in: fadein(fadeout(red, 10%), 5%); + fade-out-relative: fadeout(red, 5%,relative); + fade-in-relative: fadein(fadeout(red, 10%, relative), 5%, relative); + fade-out2: fadeout(fadeout(red, 50%), 50%); + fade-out2-relative: fadeout(fadeout(red, 50%, relative), 50%, relative); + + hsv: hsv(5, 50%, 30%); + hsva: hsva(3, 50%, 30%, 0.2); + + mix: mix(#ff0000, #ffff00, 80); + mix-0: mix(#ff0000, #ffff00, 0); + mix-100: mix(#ff0000, #ffff00, 100); + mix-weightless: mix(#ff0000, #ffff00); + mixt: mix(#ff0000, transparent); + + .is-a { + @rules: { + color: red; + }; + ruleset: isruleset(@rules); + color: iscolor(#ddd); + color1: iscolor(red); + color2: iscolor(rgb(0, 0, 0)); + color3: iscolor(transparent); + keyword: iskeyword(hello); + number: isnumber(32); + string: isstring("hello"); + pixel: ispixel(32px); + percent: ispercentage(32%); + em: isem(32em); + ex: isunit(32ex, ex); + rem: isunit(32rem, rem); + vw: isunit(32vw, vw); + vh: isunit(32vh, vh); + vmin: isunit(32vmin, vmin); + vmax: isunit(32vmax, vmax); + ch: isunit(32ch, ch); + cm: isunit(32cm, cm); + mm: isunit(32mm, mm); + pt: isunit(32pt, pt); + q: isunit(32q, q); + in: isunit(32in, in); + cat: isunit(32cat, cat); + no-unit-is-empty: isunit(32, ''); + case-insensitive-1: isunit(32CAT, cat); + case-insensitive-2: isunit(32px, PX); + } +} + +#alpha { + alpha: darken(hsla(25, 50%, 50%, 0.6), 10%); + alpha2: alpha(rgba(3, 4, 5, 0.5)); + alpha3: alpha(transparent); +} + +#blendmodes { + multiply: multiply(#f60000, #f60000); + screen: screen(#f60000, #0000f6); + overlay: overlay(#f60000, #0000f6); + softlight: softlight(#f60000, #ffffff); + hardlight: hardlight(#f60000, #0000f6); + difference: difference(#f60000, #0000f6); + exclusion: exclusion(#f60000, #0000f6); + average: average(#f60000, #0000f6); + negation: negation(#f60000, #313131); +} + +#extract-and-length { + @anon: A B C 1 2 3; + extract: extract(@anon, 6) extract(@anon, 5) extract(@anon, 4) extract(@anon, 3) extract(@anon, 2) extract(@anon, 1); + length: length(@anon); +} + +#quoted-functions-in-mixin { + // Quoted type may have some weird side-effects when used in mixins (#2308) + .mixin(); + .mixin() { + replace-double-quoted: replace('foo-1', "1", "2"); + replace-single-quoted: replace('foo-3', "3", "4"); + replace-escaped-string: replace(~"bar-1", "1", "2"); + replace-keyword: replace(baz-1, "1", "2"); + replace-anonymous: replace(e("qux-1"), "1", "2"); + format-double-quoted: %("hello %s", "world"); + format-single-quoted: %('hello %s', "single world"); + format-escaped-string: %(~"hello %s", "escaped world"); + format-keyword: %(hello); + format-anonymous: %(e("hello %s"), "anonymous world"); + } +} + +#list-details { + @list: + a 1, // Some comment + b 2; + + length: length(@list); + one: extract(@list, 1); + @two: extract(@list, 2); + two: @two; + two-length: length(@two); + two-one: extract(@two, 1); + two-two: extract(@two, 2); +} +@color1: #FFF;/* comment1 */ +@color2: #FFF/* comment2 */; +html { + color: mix(blue, @color1, 50%); + color: mix(blue, @color2, 50%); +} + +#boolean { + a: boolean(not(2 < 1)); + b: boolean(not(2 > 1) and (true)); + c: boolean(not(boolean(true))); +} + +#if { + a: if(not(false), 1, 2); + b: if(not(true), 1, 2); + @1: if(not(false), {c: 3}, {d: 4}); @1(); + + e: if(not(true), 5); + @f: boolean(3 = 4); + f: if(not(@f), 6); + g: if(true, 3, 5); + h: if(false, 3, 5); + i: if(true and isnumber(6), 6, 8); + j: if(not(true) and true, 6, 8); + k: if(true or true, 1); + + // see: https://github.com/less/less.js/issues/3371 + @some: foo; + l: if((iscolor(@some)), darken(@some, 10%), black); + + + if((false), {g: 7}); /* results in void */ + + @conditional: if((true), { + color: green; + }, {}); + @conditional(); + + @falsey: if((false), { + color: orange; + }, { + color: purple; + }); + @falsey(); +} diff --git a/test/Fixtures/lessjs-3.13.1/less/_main/ie-filters.less b/test/Fixtures/lessjs-3.13.1/less/_main/ie-filters.less new file mode 100644 index 00000000..3350b653 --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/less/_main/ie-filters.less @@ -0,0 +1,15 @@ +@fat: 0; +@cloudhead: "#000000"; + +.nav { + filter: progid:DXImageTransform.Microsoft.Alpha(opacity = 20); + filter: progid:DXImageTransform.Microsoft.Alpha(opacity=@fat); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr="#333333", endColorstr=@cloudhead, GradientType=@fat); +} +.evalTest(@arg) { + filter: progid:DXImageTransform.Microsoft.Alpha(opacity=@arg); +} +.evalTest1 { + .evalTest(30); + .evalTest(5); +} \ No newline at end of file diff --git a/test/Fixtures/lessjs-3.13.1/less/_main/import-inline.less b/test/Fixtures/lessjs-3.13.1/less/_main/import-inline.less new file mode 100644 index 00000000..213a5749 --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/less/_main/import-inline.less @@ -0,0 +1,3 @@ +@import url("import/import-test-c.less");// import inline should not float above this #1954 +@import (inline) url("import/import-test-d.css") (min-width:600px); +@import (inline, css) url("import/invalid-css.less"); \ No newline at end of file diff --git a/test/Fixtures/lessjs-3.13.1/less/_main/import-interpolation.less b/test/Fixtures/lessjs-3.13.1/less/_main/import-interpolation.less new file mode 100644 index 00000000..6c513b5a --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/less/_main/import-interpolation.less @@ -0,0 +1,8 @@ +@my_theme: "test"; + +@import "import/import-@{my_theme}-e.less"; + +@import "import/import-@{in}@{terpolation}.less"; + +@import "import/interpolation-vars.less"; + diff --git a/test/Fixtures/lessjs-3.13.1/less/_main/import-module.less b/test/Fixtures/lessjs-3.13.1/less/_main/import-module.less new file mode 100644 index 00000000..495b8a30 --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/less/_main/import-module.less @@ -0,0 +1,3 @@ +@import "@less/test-import-module/one/two/three/3.less"; +@import "@less/test-import-module/one/two/2"; +@import "@less/test-import-module/one/1.less"; diff --git a/test/Fixtures/lessjs-3.13.1/less/_main/import-once.less b/test/Fixtures/lessjs-3.13.1/less/_main/import-once.less new file mode 100644 index 00000000..0a4024a3 --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/less/_main/import-once.less @@ -0,0 +1,6 @@ +@import "import/import-once-test-c"; +@import "import/import-once-test-c"; +@import "import/import-once-test-c.less"; +@import "import/deeper/import-once-test-a"; +@import (multiple) "import/import-test-f.less"; +@import (multiple) "import/import-test-f.less"; \ No newline at end of file diff --git a/test/Fixtures/lessjs-3.13.1/less/_main/import-reference-issues.less b/test/Fixtures/lessjs-3.13.1/less/_main/import-reference-issues.less new file mode 100644 index 00000000..f35e90fe --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/less/_main/import-reference-issues.less @@ -0,0 +1,50 @@ +// Tests following past issues: +// * #1851 - Extend within (reference) imported files +// * #1896 - Namespace imported less code does not get properly referenced, when there's a (reference) keyword. +// * #1878 - extend inside referenced file should not extend outside selectors +// * #2716 - A file imported by reference and then normally - multiple imports should be independent +// * #1968 - When using an @import (reference), mixins that contain an & selector get added to the compiled output improperly +// * #2162 - Cannot put import by reference inside of a mixin (also doubles #1896) + +// #1878: extend inside referenced file should not extend outside selectors +@import (reference) "import-reference-issues/global-scope-import.less"; +.theOnlySelector { + shall-have: one selector; +} + +// #2716: A file imported by reference and then normally - multiple imports should be independent +// #1878: - double nested version +#do-not-show-import { + @import (reference, multiple) "import-reference-issues/multiple-import.less"; +} + +show-all-content { + @import (multiple) "import-reference-issues/multiple-import.less"; +} +// #1896: Namespace imported less code does not get properly referenced, when there's a (reference) keyword. +#Namespace { + @import (less, reference) "import-reference-issues/simple-mixin.css"; +} +#used-namespaced-mixin { + #Namespace > .mixin(); + shall-see: another property above; +} + +// #1851: Extend within (reference) imported files +// test-b is in global-scope-import.less file +.test-rule-c { + &:extend(.test-rule-b all); +} + +// #1968: When using an @import (reference), mixins that contain an & selector get added to the compiled output improperly +@import "import-reference-issues/mixin-1968.less"; +@import (reference) "import-reference-issues/appender-reference-1968.less"; + +// #2162 - Cannot put import by reference inside of a mixin (also doubles #1896) +.mixin-with-import-by-reference-inside() { + the-only-property: nothing-below-this; + @import (reference) "import-reference-issues/simple-ruleset-2162.less"; +} +call-mixin-with-import-by-reference-inside { + .mixin-with-import-by-reference-inside(); +} diff --git a/test/Fixtures/lessjs-3.13.1/less/_main/import-reference-issues/appender-reference-1968.less b/test/Fixtures/lessjs-3.13.1/less/_main/import-reference-issues/appender-reference-1968.less new file mode 100644 index 00000000..68cfc8c0 --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/less/_main/import-reference-issues/appender-reference-1968.less @@ -0,0 +1,6 @@ +.container-no-parent-selector { + .mixin-no-parent-selector(); +} +.container-with-parent-selector { + .mixin-with-parent-selector() +} diff --git a/test/Fixtures/lessjs-3.13.1/less/_main/import-reference-issues/global-scope-import.less b/test/Fixtures/lessjs-3.13.1/less/_main/import-reference-issues/global-scope-import.less new file mode 100644 index 00000000..8a2168b5 --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/less/_main/import-reference-issues/global-scope-import.less @@ -0,0 +1,13 @@ +.theOnlySelector { + avoid: warning; +} +.unusedAndReference:extend(.theOnlySelector) { + unused-and: reference; +} + +@import (reference) "global-scope-nested.less"; + +.test-rule-b { + background-color: green; + &:extend(.test-rule-a all); +} diff --git a/test/Fixtures/lessjs-3.13.1/less/_main/import-reference-issues/global-scope-nested.less b/test/Fixtures/lessjs-3.13.1/less/_main/import-reference-issues/global-scope-nested.less new file mode 100644 index 00000000..93e1309a --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/less/_main/import-reference-issues/global-scope-nested.less @@ -0,0 +1,3 @@ +.test-rule-a { + color: red; +} diff --git a/test/Fixtures/lessjs-3.13.1/less/_main/import-reference-issues/mixin-1968.less b/test/Fixtures/lessjs-3.13.1/less/_main/import-reference-issues/mixin-1968.less new file mode 100644 index 00000000..b045ee75 --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/less/_main/import-reference-issues/mixin-1968.less @@ -0,0 +1,8 @@ +.mixin-no-parent-selector() { + background-color: red; +} +.mixin-with-parent-selector() { + &:first-child{ // USING AN & SELECTOR HERE + background-color: blue; + } +} diff --git a/test/Fixtures/lessjs-3.13.1/less/_main/import-reference-issues/multiple-import-nested.less b/test/Fixtures/lessjs-3.13.1/less/_main/import-reference-issues/multiple-import-nested.less new file mode 100644 index 00000000..df83923e --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/less/_main/import-reference-issues/multiple-import-nested.less @@ -0,0 +1,12 @@ +/* double nested file */ +should { + be: invisible; +} +/* do not extend outside of this */ +.something { + invisible: suppress warning; +} +.invisible { + &:extend(.something all); +} + diff --git a/test/Fixtures/lessjs-3.13.1/less/_main/import-reference-issues/multiple-import.less b/test/Fixtures/lessjs-3.13.1/less/_main/import-reference-issues/multiple-import.less new file mode 100644 index 00000000..a3a81487 --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/less/_main/import-reference-issues/multiple-import.less @@ -0,0 +1,10 @@ +/* + tralala +*/ +.fix { + fix: fix; +} +.something { + @import (reference) "multiple-import-nested.less"; + inside: something; +} diff --git a/test/Fixtures/lessjs-3.13.1/less/_main/import-reference-issues/simple-mixin.css b/test/Fixtures/lessjs-3.13.1/less/_main/import-reference-issues/simple-mixin.css new file mode 100644 index 00000000..98fb0d4e --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/less/_main/import-reference-issues/simple-mixin.css @@ -0,0 +1,3 @@ +.mixin { + was: included; +} diff --git a/test/Fixtures/lessjs-3.13.1/less/_main/import-reference-issues/simple-ruleset-2162.less b/test/Fixtures/lessjs-3.13.1/less/_main/import-reference-issues/simple-ruleset-2162.less new file mode 100644 index 00000000..e8b2ef84 --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/less/_main/import-reference-issues/simple-ruleset-2162.less @@ -0,0 +1,3 @@ +ruleset { + shall-be-invisible: less; +} diff --git a/test/Fixtures/lessjs-3.13.1/less/_main/import-reference.less b/test/Fixtures/lessjs-3.13.1/less/_main/import-reference.less new file mode 100644 index 00000000..9625cc52 --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/less/_main/import-reference.less @@ -0,0 +1,26 @@ +@import (reference) url("import-once.less"); +@import (reference) url("css-3.less"); +@import (reference) url("media.less"); +@import (reference) url("import/import-reference.less"); +@import (reference) url("import/css-import.less"); + +.b { + .z(); +} + +.zz(); + +.visible:extend(.z all) { + extend: test; +} + +.test-rule-mediaq-import { + .mixin-with-mediaq(340px); +} + +.class:extend(.class all) { +} +.mixin-with-nested-selectors(); +.mixin-with-directives(some-name); + +.print-referenced-import-inline(); diff --git a/test/Fixtures/lessjs-3.13.1/less/_main/import-remote.less b/test/Fixtures/lessjs-3.13.1/less/_main/import-remote.less new file mode 100644 index 00000000..6e2a947c --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/less/_main/import-remote.less @@ -0,0 +1,8 @@ +// https://github.com/less/less.js/issues/3541 +@import (reference) url(https://cdn.jsdelivr.net/npm/@less/test-data/less/_main/selectors.less); +@import (reference) url("https://cdn.jsdelivr.net/npm/@less/test-data/less/_main/scope.less"); +@import (reference) url("https://cdn.jsdelivr.net/npm/@less/test-data/less/_main/empty.less?arg"); + +.test { + color: @x; +} \ No newline at end of file diff --git a/test/Fixtures/lessjs-3.13.1/less/_main/import.less b/test/Fixtures/lessjs-3.13.1/less/_main/import.less new file mode 100644 index 00000000..2b0d19ed --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/less/_main/import.less @@ -0,0 +1,32 @@ +/** comment at the top**/ +@plugin "../../plugin/plugin-simple"; + +@import url(/absolute/something.css) screen and (color) and (max-width: 600px); + +@import (optional) "file-does-not-exist.does-not-exist"; + +@var: 100px; +@import url("//ha.com/file.css") (min-width:@var); + +#import-test { + .mixin; + width: 10px; + height: (@a + 10%); + value: pi-anon(); +} +@import "import/import-test-e" screen and (max-width: 600px); + +@import url("import/import-test-a.less"); + +@import (less, multiple) "import/import-test-d.css" screen and (max-width: 601px); + +@import (multiple) "import/import-test-e" screen and (max-width: 602px); + +@import (less, multiple) url("import/import-test-d.css") screen and (max-width: 603px); + +@media print { + @import (multiple) "import/import-test-e"; +} + +@charset "UTF-8"; // climb on top #2126 + diff --git a/test/Fixtures/lessjs-3.13.1/less/_main/import/css-import.less b/test/Fixtures/lessjs-3.13.1/less/_main/import/css-import.less new file mode 100644 index 00000000..d5df0a4e --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/less/_main/import/css-import.less @@ -0,0 +1 @@ +@import url("test.css"); diff --git a/test/Fixtures/lessjs-3.13.1/less/_main/import/deeper/deeper-2/url-import-2.less b/test/Fixtures/lessjs-3.13.1/less/_main/import/deeper/deeper-2/url-import-2.less new file mode 100644 index 00000000..727ea57a --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/less/_main/import/deeper/deeper-2/url-import-2.less @@ -0,0 +1,3 @@ +.deep-import-url { + color: red; +} \ No newline at end of file diff --git a/test/Fixtures/lessjs-3.13.1/less/_main/import/deeper/deeper-2/url-import.less b/test/Fixtures/lessjs-3.13.1/less/_main/import/deeper/deeper-2/url-import.less new file mode 100644 index 00000000..2ec87bc2 --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/less/_main/import/deeper/deeper-2/url-import.less @@ -0,0 +1 @@ +@import url("url-import-2.less"); \ No newline at end of file diff --git a/test/Fixtures/lessjs-3.13.1/less/_main/import/deeper/import-once-test-a.less b/test/Fixtures/lessjs-3.13.1/less/_main/import/deeper/import-once-test-a.less new file mode 100644 index 00000000..8a747fc0 --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/less/_main/import/deeper/import-once-test-a.less @@ -0,0 +1 @@ +@import "../import-once-test-c"; \ No newline at end of file diff --git a/test/Fixtures/lessjs-3.13.1/less/_main/import/deeper/url-import.less b/test/Fixtures/lessjs-3.13.1/less/_main/import/deeper/url-import.less new file mode 100644 index 00000000..003b0778 --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/less/_main/import/deeper/url-import.less @@ -0,0 +1 @@ +@import url("deeper-2/url-import.less"); \ No newline at end of file diff --git a/test/Fixtures/lessjs-3.13.1/less/_main/import/import-and-relative-paths-test.less b/test/Fixtures/lessjs-3.13.1/less/_main/import/import-and-relative-paths-test.less new file mode 100644 index 00000000..d6256c6b --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/less/_main/import/import-and-relative-paths-test.less @@ -0,0 +1,17 @@ +@import "../css/background.css"; +@import "import-test-d.css"; + +@import "imports/logo"; +@import "imports/font"; + +.unquoted-relative-path-bg() { + background-image: url(../../data/image.jpg); +} +.quoted-relative-path-border-image() { + border-image: url('../../data/image.jpg'); +} + +#imported-relative-path { + .unquoted-relative-path-bg; + .quoted-relative-path-border-image; +} \ No newline at end of file diff --git a/test/Fixtures/lessjs-3.13.1/less/_main/import/import-charset-test.less b/test/Fixtures/lessjs-3.13.1/less/_main/import/import-charset-test.less new file mode 100644 index 00000000..07a66e1a --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/less/_main/import/import-charset-test.less @@ -0,0 +1 @@ +@charset "ISO-8859-1"; \ No newline at end of file diff --git a/test/Fixtures/lessjs-3.13.1/less/_main/import/import-inline-invalid-css.less b/test/Fixtures/lessjs-3.13.1/less/_main/import/import-inline-invalid-css.less new file mode 100644 index 00000000..274a76e3 --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/less/_main/import/import-inline-invalid-css.less @@ -0,0 +1 @@ +@import (inline) "invalid-css.less"; \ No newline at end of file diff --git a/test/Fixtures/lessjs-3.13.1/less/_main/import/import-interpolation.less b/test/Fixtures/lessjs-3.13.1/less/_main/import/import-interpolation.less new file mode 100644 index 00000000..656f3cba --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/less/_main/import/import-interpolation.less @@ -0,0 +1,2 @@ +@import (inline) "imports/logo.less"; +@import "import-@{in}@{terpolation}2.less"; \ No newline at end of file diff --git a/test/Fixtures/lessjs-3.13.1/less/_main/import/import-interpolation2.less b/test/Fixtures/lessjs-3.13.1/less/_main/import/import-interpolation2.less new file mode 100644 index 00000000..12bfb4e1 --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/less/_main/import/import-interpolation2.less @@ -0,0 +1,5 @@ +.a { + var: test; +} + +@in: "redefined-does-nothing"; \ No newline at end of file diff --git a/test/Fixtures/lessjs-3.13.1/less/_main/import/import-once-test-c.less b/test/Fixtures/lessjs-3.13.1/less/_main/import/import-once-test-c.less new file mode 100644 index 00000000..686747a8 --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/less/_main/import/import-once-test-c.less @@ -0,0 +1,6 @@ + +@c: red; + +#import { + color: @c; +} diff --git a/test/Fixtures/lessjs-3.13.1/less/_main/import/import-reference.less b/test/Fixtures/lessjs-3.13.1/less/_main/import/import-reference.less new file mode 100644 index 00000000..c545f266 --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/less/_main/import/import-reference.less @@ -0,0 +1,98 @@ +.z { + color: red; + .c { + color: green; + } +} +.only-with-visible, +.z { + color: green; + &:hover { + color: green; + } + & { + color: green; + } + & + & { + color: green; + .sub { + color: green; + } + } +} + +& { + .hidden { + hidden: true; + } +} + +@media tv { + .hidden { + hidden: true; + } +} + +/* comment is not output */ + +.zz { + .y { + pulled-in: yes /* inline comment survives */; + } + /* comment pulled in */ +} +@max-size: 450px; +.mixin-with-mediaq(@num) { + color: green; + test: @num; + @media (max-size: @max-size) { + color: red; + } +} +//https://github.com/less/less.js/issues/2359 +@supports (something: else) { + .class { + something: else; + } + .nestedToo { + .class { + something: else; + } + } + .invisible { + something: else; + } +} +//https://github.com/less/less.js/issues/1979 +.mixin-with-nested-selectors() { + .test-rule { + color: red; + &:first-child { + color: blue; + } + } +} +.mixin-with-directives(@keyframeName) { + @keyframes @keyframeName { + @rules1(); + } + @supports (animation-name: test) { + @keyframes @keyframeName { + @rules2(); + } + .selector { + color: red; + } + } + @rules1: {property: value;}; + @rules2: {property: value;}; +} + +@import (inline, multiple) "invalid-css.less"; +@import "import-inline-invalid-css.less"; +.print-referenced-import-inline() { + div { + @import (inline, multiple) "invalid-css.less"; + } + @import (inline, multiple) "invalid-css.less"; +} \ No newline at end of file diff --git a/test/Fixtures/lessjs-3.13.1/less/_main/import/import-test-a.less b/test/Fixtures/lessjs-3.13.1/less/_main/import/import-test-a.less new file mode 100644 index 00000000..6916f17c --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/less/_main/import/import-test-a.less @@ -0,0 +1,5 @@ +@import "import-test-b.less"; +@import url(import-test-f.less); +@import url("deeper/url-import.less"); +@a: 20%; +@import "urls.less"; \ No newline at end of file diff --git a/test/Fixtures/lessjs-3.13.1/less/_main/import/import-test-b.less b/test/Fixtures/lessjs-3.13.1/less/_main/import/import-test-b.less new file mode 100644 index 00000000..ce2d35a8 --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/less/_main/import/import-test-b.less @@ -0,0 +1,8 @@ +@import "import-test-c"; + +@b: 100%; + +.mixin { + height: 10px; + color: @c; +} diff --git a/test/Fixtures/lessjs-3.13.1/less/_main/import/import-test-c.less b/test/Fixtures/lessjs-3.13.1/less/_main/import/import-test-c.less new file mode 100644 index 00000000..686747a8 --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/less/_main/import/import-test-c.less @@ -0,0 +1,6 @@ + +@c: red; + +#import { + color: @c; +} diff --git a/test/Fixtures/lessjs-3.13.1/less/_main/import/import-test-d.css b/test/Fixtures/lessjs-3.13.1/less/_main/import/import-test-d.css new file mode 100644 index 00000000..30575f01 --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/less/_main/import/import-test-d.css @@ -0,0 +1 @@ +#css { color: yellow; } diff --git a/test/Fixtures/lessjs-3.13.1/less/_main/import/import-test-e.less b/test/Fixtures/lessjs-3.13.1/less/_main/import/import-test-e.less new file mode 100644 index 00000000..98b84b0a --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/less/_main/import/import-test-e.less @@ -0,0 +1,2 @@ + +body { width: 100% } diff --git a/test/Fixtures/lessjs-3.13.1/less/_main/import/import-test-f.less b/test/Fixtures/lessjs-3.13.1/less/_main/import/import-test-f.less new file mode 100644 index 00000000..f7bd660d --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/less/_main/import/import-test-f.less @@ -0,0 +1,5 @@ +@import "import-test-e"; + +.test-rule-f { + height: 10px; +} diff --git a/test/Fixtures/lessjs-3.13.1/less/_main/import/imports/font.less b/test/Fixtures/lessjs-3.13.1/less/_main/import/imports/font.less new file mode 100644 index 00000000..822279f2 --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/less/_main/import/imports/font.less @@ -0,0 +1,8 @@ +@font-face { + font-family: xecret; + src: url('../assets/xecret.ttf'); +} + +#secret { + font-family: xecret, sans-serif; +} diff --git a/test/Fixtures/lessjs-3.13.1/less/_main/import/imports/logo.less b/test/Fixtures/lessjs-3.13.1/less/_main/import/imports/logo.less new file mode 100644 index 00000000..f782c6fb --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/less/_main/import/imports/logo.less @@ -0,0 +1,6 @@ +#logo { + width: 100px; + height: 100px; + background: url('../assets/logo.png'); + background: url("#inline-svg"); +} diff --git a/test/Fixtures/lessjs-3.13.1/less/_main/import/interpolation-vars.less b/test/Fixtures/lessjs-3.13.1/less/_main/import/interpolation-vars.less new file mode 100644 index 00000000..c611ed62 --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/less/_main/import/interpolation-vars.less @@ -0,0 +1,6 @@ +@in: "in"; +@terpolation: "terpolation"; + +// should be ignored because its already imported +// and it uses a variable from the parent scope +@import "import-@{my_theme}-e.less"; diff --git a/test/Fixtures/lessjs-3.13.1/less/_main/import/invalid-css.less b/test/Fixtures/lessjs-3.13.1/less/_main/import/invalid-css.less new file mode 100644 index 00000000..ed585d63 --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/less/_main/import/invalid-css.less @@ -0,0 +1 @@ +this isn't very valid CSS. \ No newline at end of file diff --git a/test/Fixtures/lessjs-3.13.1/less/_main/import/json/index.json b/test/Fixtures/lessjs-3.13.1/less/_main/import/json/index.json new file mode 100644 index 00000000..4dc72c3c --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/less/_main/import/json/index.json @@ -0,0 +1,11 @@ +[ + "{path}/import/import-test-a.less", + "{path}/import/import-test-b.less", + "{path}/import/deeper/url-import.less", + "{path}/import/urls.less", + "{path}/import/import-test-c.less", + "{path}/import/deeper/deeper-2/url-import.less", + "{path}/import/deeper/deeper-2/url-import-2.less", + "{path}/import/import-test-f.less", + "{path}/import/import-test-e.less" +] \ No newline at end of file diff --git a/test/Fixtures/lessjs-3.13.1/less/_main/import/json/index.less b/test/Fixtures/lessjs-3.13.1/less/_main/import/json/index.less new file mode 100644 index 00000000..f865e531 --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/less/_main/import/json/index.less @@ -0,0 +1 @@ +@import "../import-test-a"; \ No newline at end of file diff --git a/test/Fixtures/lessjs-3.13.1/less/_main/import/urls.less b/test/Fixtures/lessjs-3.13.1/less/_main/import/urls.less new file mode 100644 index 00000000..bb48f77a --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/less/_main/import/urls.less @@ -0,0 +1 @@ +// empty file showing that it loads from the relative path first diff --git a/test/Fixtures/lessjs-3.13.1/less/_main/javascript.less b/test/Fixtures/lessjs-3.13.1/less/_main/javascript.less new file mode 100644 index 00000000..b535dd99 --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/less/_main/javascript.less @@ -0,0 +1,39 @@ +.eval { + js: `42`; + js: `1 + 1`; + js: `"hello world"`; + js: `[1, 2, 3]`; + title: `typeof process.title`; + ternary: `(1 + 1 == 2 ? true : false)`; + multiline: `(function(){var x = 1 + 1; + return x})()`; +} +.scope { + empty: `+function(){}`; + @foo: 42; + var: `parseInt(this.foo.toJS())`; + escaped: ~`2 + 5 + 'px'`; +} +.vars { + @var: `4 + 4`; + width: @var; +} +.escape-interpol { + @world: "world"; + width: ~`"hello" + " " + @{world}`; +} +.arrays { + @ary: 1, 2, 3; + @ary2: 1 2 3; + ary: `@{ary}.join(', ')`; + ary1: `@{ary2}.join(', ')`; +} +.transitions(...) { + @arg: ~`"@{arguments}".replace(/[\[\]]*/g, '')`; + one: @arg; // rounded to integers + two: ~`"@{arguments}"`; // rounded to integers + three: @arguments; // OK +} +.test-rule-tran { + .transitions(opacity 0.3s ease-in 0.3s, max-height 0.6s linear, margin-bottom 0.4s linear;); +} diff --git a/test/Fixtures/lessjs-3.13.1/less/_main/lazy-eval.less b/test/Fixtures/lessjs-3.13.1/less/_main/lazy-eval.less new file mode 100644 index 00000000..72b3fd46 --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/less/_main/lazy-eval.less @@ -0,0 +1,6 @@ +@var: @a; +@a: 100%; + +.lazy-eval { + width: @var; +} diff --git a/test/Fixtures/lessjs-3.13.1/less/_main/media.less b/test/Fixtures/lessjs-3.13.1/less/_main/media.less new file mode 100644 index 00000000..51bebb56 --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/less/_main/media.less @@ -0,0 +1,241 @@ + +// For now, variables can't be declared inside @media blocks. + +@var: 42; + +@media print { + .class { + color: blue; + .sub { + width: @var; + } + } + .top, header > h1 { + color: (#222 * 2); + } +} + +@media screen { + @base: 8; + .body { max-width: (@base * 60); } +} + +@ratio_large: 16; +@ratio_small: 9; + +@media all and (device-aspect-ratio: ~'@{ratio_large} / @{ratio_small}') { + .body { max-width: 800px; } +} + +@media all and (orientation:portrait) { + aside { float: none; } +} + +@media handheld and (min-width: @var), screen and (min-width: 20em) { + .body { + max-width: 480px; + } +} + +.body { + @media print { + padding: 20px; + + header { + background-color: red; + } + + @media (orientation:landscape) { + margin-left: 20px; + } + } +} + +@media screen { + .sidebar { + width: 300px; + @media (orientation: landscape) { + width: 500px; + } + } +} + +@media a { + .first { + @media (b) { + .second { + .third { + width: 300px; + @media (c) { + width: 500px; + } + } + .fourth { + width: 3; + } + } + } + } +} + +.body { + @media a, (b) and (c) { + width: 95%; + + @media (x), (y) { + width: 100%; + } + } +} + +.mediaMixin(@fallback: 200px) { + background: black; + + @media handheld { + background: white; + + @media (max-width: @fallback) { + background: red; + } + } +} + +.a { + .mediaMixin(100px); +} + +.b { + .mediaMixin(); +} +@smartphone: ~"only screen and (max-width: 200px)"; +@media @smartphone { + .body { + width: 480px; + } +} + +@media print { + @page :left { + margin: 0.5cm; + } + @page :right { + margin: 0.5cm; + } + @page Test:first { + margin: 1cm; + } + @page :first { + size: 8.5in 11in; + @top-left { + margin: 1cm; + } + @top-left-corner { + margin: 1cm; + } + @top-center { + margin: 1cm; + } + @top-right { + margin: 1cm; + } + @top-right-corner { + margin: 1cm; + } + @bottom-left { + margin: 1cm; + } + @bottom-left-corner { + margin: 1cm; + } + @bottom-center { + margin: 1cm; + } + @bottom-right { + margin: 1cm; + } + @bottom-right-corner { + margin: 1cm; + } + @left-top { + margin: 1cm; + } + @left-middle { + margin: 1cm; + } + @left-bottom { + margin: 1cm; + } + @right-top { + margin: 1cm; + } + @right-middle { + content: "Page " counter(page); + } + @right-bottom { + margin: 1cm; + } + } +} + +@media (-webkit-min-device-pixel-ratio: 2), (min--moz-device-pixel-ratio: 2), (-o-min-device-pixel-ratio: ~"2/1"), (min-resolution: 2dppx), (min-resolution: 128dpcm) { + .b { + background: red; + } +} + +.bg() { + background: red; + + @media (max-width: 500px) { + background: green; + } +} + +.body { + .bg(); +} + +@bpMedium: 1000px; +@media (max-width: @bpMedium) { + .body { + .bg(); + background: blue; + } +} + +@media (max-width: 1200px) { + /* a comment */ + + @media (max-width: 900px) { + .body { font-size: 11px; } + } +} + +.nav-justified { + @media (min-width: 480px) { + > li { + display: table-cell; + } + } +} + +.menu +{ + @media (min-width: 768px) { + .nav-justified(); + } +} +@all: ~"all"; +@tv: ~"(tv)"; +@media @all and @tv { + .all-and-tv-variables { + var: all-and-tv; + } +} + +@some-var: 60px; +@media screen and (min-width: (@some-var + 1)) { + .selector { + foo: bar; + } +} \ No newline at end of file diff --git a/test/Fixtures/lessjs-3.13.1/less/_main/merge.less b/test/Fixtures/lessjs-3.13.1/less/_main/merge.less new file mode 100644 index 00000000..d7f7cc5e --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/less/_main/merge.less @@ -0,0 +1,81 @@ +.first-transform() { + transform+: rotate(90deg), skew(30deg); +} +.second-transform() { + transform+: scale(2,4); +} +.third-transform() { + transform: scaleX(45deg); +} +.fourth-transform() { + transform+: scaleX(45deg); +} +.fifth-transform() { + transform+: scale(2,4) !important; +} +.first-background() { + background+: url(data://img1.png); +} +.second-background() { + background+: url(data://img2.png); +} + +.test-rule1 { + // Can merge values + .first-transform(); + .second-transform(); +} +.test-rule2 { + // Won't merge values without +: merge directive, for backwards compatibility with css + .first-transform(); + .third-transform(); +} +.test-rule3 { + // Won't merge values from two sources with different properties + .fourth-transform(); + .first-background(); +} +.test-rule4 { + .first-transform(); + .fifth-transform(); +} +.test-rule5 { + .first-transform(); + .second-transform() !important; +} +.test-rule6 { + .second-transform(); +} +.test-rule7 { + // inherit !important from merged subrules + .second-transform(); + .second-transform() !important; + .second-transform(); +} + +.test-rule-interleaved { + transform+: t1; + background+: b1; + transform+: t2; + background+: b2, b3; + transform+: t3; +} + +.test-rule-spaced { + transform+_: t1; + background+_: b1; + transform+_: t2; + background+_: b2, b3; + transform+_: t3; +} + +.test-rule-interleaved-with-spaced { + transform+_: t1s; + transform+: t2; + background+: b1; + transform+_: t3s; + transform+: t4 t5s; + background+_: b2s, b3; + transform+_: t6s; + background+: b4; +} diff --git a/test/Fixtures/lessjs-3.13.1/less/_main/mixins-closure.less b/test/Fixtures/lessjs-3.13.1/less/_main/mixins-closure.less new file mode 100644 index 00000000..26c8b6e9 --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/less/_main/mixins-closure.less @@ -0,0 +1,26 @@ +.scope { + @var: 99px; + .mixin () { + width: @var; + } +} + +.class { + .scope > .mixin; +} + +.overwrite { + @var: 0px; + .scope > .mixin; +} + +.nested { + @var: 5px; + .mixin () { + width: @var; + } + .class { + @var: 10px; + .mixin; + } +} diff --git a/test/Fixtures/lessjs-3.13.1/less/_main/mixins-guards-default-func.less b/test/Fixtures/lessjs-3.13.1/less/_main/mixins-guards-default-func.less new file mode 100644 index 00000000..1bf7203e --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/less/_main/mixins-guards-default-func.less @@ -0,0 +1,195 @@ + +// basics: + +guard-default-basic-1 { + .m(1) {case: 1} + .m(@x) when (default()) {default: @x} + + &-1 {.m(1)} + &-2 {.m(2)} +} + +guard-default-basic-2 { + .m(1) {case: 1} + .m(2) {case: 2} + .m(3) {case: 3} + .m(@x) when (default()) {default: @x} + + &-0 {.m(0)} + &-2 {.m(2)} +} + +guard-default-basic-3 { + .m(@x) when (@x = 1) {case: 1} + .m(2) {case: 2} + .m(@x) when (@x = 3) {case: 3} + .m(@x) when (default()) {default: @x} + + &-0 {.m(0)} + &-2 {.m(2)} + &-3 {.m(3)} +} + +guard-default-definition-order { + .m(@x) when (default()) {default: @x} + .m(@x) when (@x = 1) {case: 1} + .m(2) {case: 2} + .m(@x) when (@x = 3) {case: 3} + + &-0 {.m(0)} + &-2 {.m(2)} + &-2 {.m(3)} +} + +// out of guard: + +guard-default-out-of-guard { + .m(1) {case-1: 1} + .m(@x: default()) when (default()) {default: @x} + + &-0 { + case-0: default(); + .m(1); + .m(2); + case-2: default(); + } + &-1 {.m(default())} + &-2 {.m()} +} + +// expressions: + +guard-default-expr-not { + .m(1) {case: 1} + .m(@x) when not(default()) {default: @x} + + &-1 {.m(1)} + &-2 {.m(2)} +} + +guard-default-expr-eq { + .m(@x) when (@x = true) {case: @x} + .m(@x) when (@x = false) {case: @x} + .m(@x) when (@x = default()) {default: @x} + + &-true {.m(true)} + &-false {.m(false)} +} + +guard-default-expr-or { + .m(1) {case: 1} + .m(2) {case: 2} + .m(@x) when (default()), (@x = 2) {default: @x} + + &-1 {.m(1)} + &-2 {.m(2)} + &-3 {.m(3)} +} + +guard-default-expr-and { + .m(1) {case: 1} + .m(2) {case: 2} + .m(@x) when (default()) and (@x = 3) {default: @x} + + &-1 {.m(1)} + &-2 {.m(2)} + &-3 {.m(3)} + &-4 {.m(4)} +} + +guard-default-expr-always { + .m(1) {case: 1} + .m(@x) when (default()), not(default()) {default: @x} // always match + + &-1 {.m(1)} + &-2 {.m(2)} +} + +guard-default-expr-never { + .m(1) {case: 1} + .m(@x) when (default()) and not(default()) {default: @x} // never match + + &-1 {.m(1)} + &-2 {.m(2)} +} + + +// not conflicting multiple default() uses: + +guard-default-multi-1 { + .m(0) {case: 0} + .m(@x) when (default()) {default-1: @x} + .m(2) when (default()) {default-2: @x} + + &-0 {.m(0)} + &-1 {.m(1)} +} + +guard-default-multi-2 { + .m(1, @x) when (default()) {default-1: @x} + .m(2, @x) when (default()) {default-2: @x} + .m(@x, yes) when (default()) {default-3: @x} + + &-1 {.m(1, no)} + &-2 {.m(2, no)} + &-3 {.m(3, yes)} +} + +guard-default-multi-3 { + .m(red) {case-1: darkred} + .m(blue) {case-2: darkblue} + .m(@x) when (iscolor(@x)) and (default()) {default-color: @x} + .m('foo') {case-1: I am 'foo'} + .m('bar') {case-2: I am 'bar'} + .m(@x) when (isstring(@x)) and (default()) {default-string: I am @x} + + &-blue {.m(blue)} + &-green {.m(green)} + &-foo {.m('foo')} + &-baz {.m('baz')} +} + +guard-default-multi-4 { + .m(@x) when (default()), not(default()) {always: @x} + .m(@x) when (default()) and not(default()) {never: @x} + .m(2) {case: 2} + + .m(1); + .m(2); +} + +guard-default-not-ambiguous-2 { + .m(@x) {case: 1} + .m(@x) when (default()) {default: @x} + .m(@x) when not(default()) {not-default: @x} + + .m(2); +} + +guard-default-not-ambiguous-3 { + .m(@x) {case: 1} + .m(@x) when not(default()) {not-default-1: @x} + .m(@x) when not(default()) {not-default-2: @x} + + .m(2); +} + +// default & scope + +guard-default-scopes { + .s1() {.m(@v) {one: no condition}} + .s2() {.m(@v) when (@v) {two: when true}} + .s3() {.m(@v) when (default()) {three: when default}} + + &-3 { + .s2(); + .s3(); + .m(false); + } + + &-1 { + .s1(); + .s3(); + .m(false); + } +} diff --git a/test/Fixtures/lessjs-3.13.1/less/_main/mixins-guards.less b/test/Fixtures/lessjs-3.13.1/less/_main/mixins-guards.less new file mode 100644 index 00000000..338ece78 --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/less/_main/mixins-guards.less @@ -0,0 +1,358 @@ + +// Stacking, functions.. + +.light (@a) when (lightness(@a) > 50%) { + color: inherit; +} +.light (@a) when (lightness(@a) < 50%) { + color: black; +} +.light (@a) { + margin: 1px; +} + +.light1 { .light(#ddd) } +.light2 { .light(#444) } + +// Arguments against each other + +.max (@a, @b) when (@a > @b) { + width: @a; +} +.max (@a, @b) when (@a < @b) { + width: @b; +} + +.max1 { .max(3, 6) } +.max2 { .max(8, 1) } + +// Globals inside guards + +@g: auto; + +.glob (@a) when (@a = @g) { + margin: @a @g; +} +.glob1 { .glob(auto) } + +// Other operators + +.ops (@a) when (@a >= 0) { + height: gt-or-eq; +} +.ops (@a) when (@a =< 0) { + height: lt-or-eq; +} +.ops (@a) when (@a <= 0) { + height: lt-or-eq-alias; +} +.ops (@a) when not(@a = 0) { + height: not-eq; +} +.ops1 { .ops(0) } +.ops2 { .ops(1) } +.ops3 { .ops(-1) } + +// Scope and default values + +@a: auto; + +.default (@a: inherit) when (@a = inherit) { + content: default; +} +.default1 { .default } + +// true & false keywords +.test-rule (@a) when (@a) { + content: "true."; +} +.test-rule (@a) when not (@a) { + content: "false."; +} + +.test-rule1 { .test-rule(true) } +.test-rule2 { .test-rule(false) } +.test-rule3 { .test-rule(1) } +.test-rule4 { .test-rule(boo) } +.test-rule5 { .test-rule("true") } + +// Boolean expressions + +.bool () when (true) and (false) { content: true and false } // FALSE +.bool () when (true) and (true) { content: true and true } // TRUE +.bool () when (true) { content: true } // TRUE +.bool () when (false) and (false) { content: true } // FALSE +.bool () when (false), (true) { content: false, true } // TRUE +.bool () when (false) and (true) and (true), (true) { content: false and true and true, true } // TRUE +.bool () when (true) and (true) and (false), (false) { content: true and true and false, false } // FALSE +.bool () when (false), (true) and (true) { content: false, true and true } // TRUE +.bool () when (false), (false), (true) { content: false, false, true } // TRUE +.bool () when (false), (false) and (true), (false) { content: false, false and true, false } // FALSE +.bool () when (false), (true) and (true) and (true), (false) { content: false, true and true and true, false } // TRUE +.bool () when not (false) { content: not false } +.bool () when not (true) and not (false) { content: not true and not false } +.bool () when not (true) and not (true) { content: not true and not true } +.bool () when not (false) and (false), not (false) { content: not false and false, not false } + +.bool1 { .bool } + +.equality-unit-test(@num) when (@num = 1%) { + test: fail; +} +.equality-unit-test(@num) when (@num = 2) { + test: pass; +} +.equality-units { + .equality-unit-test(1px); + .equality-unit-test(2px); +} + +.colorguard(@col) when (@col = red) { content: is @col; } +.colorguard(@col) when not (blue = @col) { content: is not blue its @col; } +.colorguard(@col) {} +.colorguardtest { + .colorguard(red); + .colorguard(blue); + .colorguard(purple); +} + +.stringguard(@str) when (@str = "theme1") { content: @str is "theme1"; } +.stringguard(@str) when not ("theme2" = @str) { content: @str is not "theme2"; } +.stringguard(@str) when (@str = 'theme1') { content: @str is 'theme1'; } +.stringguard(@str) when not ('theme2' = @str) { content: @str is not 'theme2'; } +.stringguard(@str) when (~"theme1" = @str) { content: @str is theme1; } +.stringguard(@str) {} +.stringguardtest { + .stringguard("theme1"); + .stringguard("theme2"); + .stringguard('theme1'); + .stringguard('theme2'); + .stringguard(theme1); +} + +.generic(@a, @b) {/**/} +.generic(@a, @b) when (@a = @b) {content: @a is equal to @b} +.generic(@a, @b) when (@b = @a) {content: @b is equal to @a too} +.generic(@a, @b) when (@a < @b) {content: @a is less than @b} +.generic(@a, @b) when (@b < @a) {content: @b is less than @a too} +.generic(@a, @b) when (@a > @b) {content: @a is greater than @b} +.generic(@a, @b) when (@b > @a) {content: @b is greater than @a too} +.generic(@a, @b) when not(@a = @b) {content: @a is not equal to @b} +.generic(@a, @b) when not(@b = @a) {content: @b is not equal to @a too} + +.variouse-types-comparison { + .generic(true, false); + .generic(1, true); + .generic(2, 2px); + .generic(3, ~"3"); + .generic(5, ~"4"); + .generic(abc, ~"abc"); + .generic(abc, "abc"); + .generic('abc', "abd"); + .generic(6, e("6")); + .generic(9, 8); + .generic(a, b); + .generic(1 2, 3); +} + +.list-comparison { + .generic(a b c, a b c); + .generic(a b c, a b d); + .generic(a, b, c; a, b, c); + .generic(a, b, c; a, b, d); + .generic(1 2px 300ms, 1em 2 .3s); + + @space-list: 1 2 3; + @comma-list: 1, 2, 3; + @compound: @space-list @comma-list; + + .generic(@space-list, @comma-list); + .generic(@comma-list, ~"1, 2, 3"); + .generic(@compound, @space-list @comma-list); + .generic(@compound, @comma-list @space-list); + .generic(@compound 4, ~"1 2 3 1, 2, 3 4"); +} + +.mixin(...) { + catch:all; +} +.mixin(@var) when (@var=4) { + declare: 4; +} +.mixin(@var) when (@var=4px) { + declare: 4px; +} +#tryNumberPx { + .mixin(4px); +} + +.lock-mixin(@a) { + .inner-locked-mixin(@x: @a) when (@a = 1) { + a: @a; + x: @x; + } +} +.call-lock-mixin { + .lock-mixin(1); + .call-inner-lock-mixin { + .inner-locked-mixin(); + } +} +.bug-100cm-1m(@a) when (@a = 1) { + .failed { + one-hundred: not-equal-to-1; + } +} +.bug-100cm-1m(100cm); + +#ns { + .mixin-for-root-usage(@a) when (@a > 0) { + .mixin-generated-class { + a: @a; + } + } +} + +#ns > .mixin-for-root-usage(1); + +@namespaceGuard: 1; +#guarded when (@namespaceGuard>0) { + #deeper { + .mixin() { + guarded: namespace; + } + } +} +#guarded() when (@namespaceGuard>0) { + #deeper { + .mixin() { + silent: namespace; + } + } +} +#guarded(@variable) when (@namespaceGuard>0) { + #deeper { + .mixin() { + should: not match because namespace argument; + } + } +} +#guarded(@variable: default) when (@namespaceGuard>0) { + #deeper { + .mixin() { + guarded: with default; + } + } +} +#guarded when (@namespaceGuard<0) { + #deeper { + .mixin() { + should: not match because namespace guard; + } + } +} +#guarded-caller { + #guarded > #deeper > .mixin(); +} +#top { + #deeper when (@namespaceGuard<0) { + .mixin(@a) { + should: not match because namespace guard; + } + } + #deeper() when (@namespaceGuard>0) { + .mixin(@a) { + should: match @a; + } + } +} +#guarded-deeper { + #top > #deeper > .mixin(1); +} + +// namespaced & guarded mixin in root +// outputs nothing but should pass: + +@guarded-mixin-for-root: true; +#ns { + .guarded-mixin-for-root() when (@guarded-mixin-for-root) {} +} +#ns > .guarded-mixin-for-root(); +// various combinations of nested or, and, parenthesis and negation +.parenthesisNot(@value) when ((((@value)))) { + parenthesisNot: just-value; +} +.parenthesisNot(@value) when (((not(@value)))) { + parenthesisNot: negated once inside; +} +.parenthesisNot(@value) when not((((@value)))) { + parenthesisNot: negated once outside; +} +.parenthesisNot(@value) when ((not((@value)))) { + parenthesisNot: negated once middle; +} +.parenthesisNot(@value) when not(((not(@value)))) { + parenthesisNot: negated twice 1; +} +.parenthesisNot(@value) when (not((not(@value)))) { + parenthesisNot: negated twice 2; +} +.parenthesisNot(@value) when ((not(not(@value)))) { + parenthesisNot: negated twice 3; +} +.parenthesisNot (...) when (default()) { + parenthesisNot: none matched; +} + +#parenthesisNot-true { + .parenthesisNot(true); +} +#parenthesisNot-false { + .parenthesisNot(false); +} + +.orderOfEvaluation(@a1, @a2, @a3) when ((@a1) and (@a2) or (@a3)) { + no-parenthesis: evaluated true 1a; +} +.orderOfEvaluation(@a1, @a2, @a3) when ((@a3) or (@a1) and (@a2)) { + no-parenthesis: evaluated true 1b; +} +.orderOfEvaluation(@a1, @a2, @a3) when ((@a1) and ((@a2) or (@a3))) { + no-parenthesis: evaluated true 1c; +} +.orderOfEvaluation(@a1, @a2, @a3) when (@a3), (@a1) and (@a2) { + no-parenthesis: evaluated true 1d; +} +.orderOfEvaluation(@a1, @a2, @a3) when (((@a3) or (@a1)) and (@a2)) { + no-parenthesis: evaluated true 1e; +} +.orderOfEvaluation(@a1, @a2, @a3) when ((@a1) and (@a2) or not (@a3)) { + no-parenthesis: evaluated true 2a; +} +.orderOfEvaluation(@a1, @a2, @a3) when (not (@a3) or (@a1) and (@a2)) { + no-parenthesis: evaluated true 2b; +} +.orderOfEvaluation(@a1, @a2, @a3) when not (@a3), (@a1) and (@a2) { + no-parenthesis: evaluated true 2c; +} +.orderOfEvaluation(@a1, @a2, @a3) when (not (@a1) and (@a2) or (@a3)) { + no-parenthesis: evaluated true 3; +} +.orderOfEvaluation(@a1, @a2, @a3) when ((((@a1) and (@a2) or (@a3)))) { + no-parenthesis: evaluated true 4; +} +.orderOfEvaluation(@a1, @a2, @a3) when (((@a1) and (@a2)) or (@a3)) { + with-parenthesis: evaluated true; +} +.orderOfEvaluation(...) when (default()) { + orderOfEvaluation: evaluated false; +} +#orderOfEvaluation-false-false-true { + .orderOfEvaluation(false, false, true); +} +#orderOfEvaluation-false-false-false { + .orderOfEvaluation(false, false, false); +} +#orderOfEvaluation-true-true-false { + .orderOfEvaluation(true, true, false); +} diff --git a/test/Fixtures/lessjs-3.13.1/less/_main/mixins-important.less b/test/Fixtures/lessjs-3.13.1/less/_main/mixins-important.less new file mode 100644 index 00000000..ecdb2923 --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/less/_main/mixins-important.less @@ -0,0 +1,53 @@ +.submixin(@a) { + border-width: @a; +} +.mixin (9) { + border: 9 !important; +} +.mixin (@a: 0) { + border: @a; + boxer: @a; + .inner { + test: @a; + } + // comment + .submixin(@a); +} + +.class { + .mixin(1); + .mixin(2) !important; + .mixin(3); + .mixin(4) !important; + .mixin(5); + .mixin !important; + .mixin(9); +} +.size(@aaa: auto) { + .set-width(@aaa) { + width: @aaa; + } + .set-width(@aaa); +} +.when-calling-nested-issue-2394 { + .size() !important; +} +.when-calling-nested-with-param-issue-2394 { + .size(10px) !important; +} +.test-ruleMixin-2421 () { + .topCheck-2421 () { + .nestedCheck-2421() { + margin: 5px; + } + .nestedCheck-2421(); + } + .topCheck-2421(); +} +.class1-2421 { + .test-ruleMixin-2421() !important; +} +.class2-2421 { + .test-ruleMixin-2421(); +} + diff --git a/test/Fixtures/lessjs-3.13.1/less/_main/mixins-interpolated.less b/test/Fixtures/lessjs-3.13.1/less/_main/mixins-interpolated.less new file mode 100644 index 00000000..b79fa89a --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/less/_main/mixins-interpolated.less @@ -0,0 +1,75 @@ + +@a0: 123; +@a1: foo; +@a2: ~".foo"; +@a4: ~"#foo"; + +.@{a0} { + a: 0; +} + +.@{a1} { + a: 1; +} + +@{a2} { + a: 2; +} + +#@{a1} { + a: 3; +} + +@{a4} { + a: 4; +} + +mi-test-a { + .123; + .foo; + #foo; +} + +.b .bb { + &.@{a1}-xxx .yyy-@{a1}@{a4} { + & @{a2}.bbb { + b: 1; + } + } +} + +mi-test-b { + .b.bb.foo-xxx.yyy-foo#foo.foo.bbb; +} + +@c1: @a1; +@c2: bar; +@c3: baz; + +#@{c1}-foo { + > .@{c2} { + .@{c3} { + c: c; + } + } +} + +mi-test-c { + &-1 {#foo-foo;} + &-2 {#foo-foo > .bar;} + &-3 {#foo-foo > .bar.baz;} +} + +.Person(@name, @gender_) { + .@{name} { + @gender: @gender_; + .sayGender() { + gender: @gender; + } + } +} + +mi-test-d { + .Person(person, "Male"); + .person.sayGender(); +} diff --git a/test/Fixtures/lessjs-3.13.1/less/_main/mixins-named-args.less b/test/Fixtures/lessjs-3.13.1/less/_main/mixins-named-args.less new file mode 100644 index 00000000..196f2aca --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/less/_main/mixins-named-args.less @@ -0,0 +1,36 @@ +.mixin (@a: 1px, @b: 50%) { + width: (@a * 5); + height: (@b - 1%); + args: @arguments; +} +.mixin (@a: 1px, @b: 50%) when (@b > 75%){ + text-align: center; +} + +.named-arg { + color: blue; + .mixin(@b: 100%); +} + +.class { + @var: 20%; + .mixin(@b: @var); +} + +.all-args-wrong-args { + .mixin(@b: 10%, @a: 2px); +} + +.mixin2 (@a: 1px, @b: 50%, @c: 50) { + width: (@a * 5); + height: (@b - 1%); + color: (#000000 + @c); +} + +.named-args2 { + .mixin2(3px, @c: 100); +} + +.named-args3 { + .mixin2(@b: 30%, @c: #123456); +} \ No newline at end of file diff --git a/test/Fixtures/lessjs-3.13.1/less/_main/mixins-nested.less b/test/Fixtures/lessjs-3.13.1/less/_main/mixins-nested.less new file mode 100644 index 00000000..cc741a11 --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/less/_main/mixins-nested.less @@ -0,0 +1,22 @@ +.mix-inner (@var) { + border-width: @var; +} + +.mix (@a: 10) { + .inner { + height: (@a * 10); + + .innest { + width: @a; + .mix-inner((@a * 2)); + } + } +} + +.class { + .mix(30); +} + +.class2 { + .mix(60); +} diff --git a/test/Fixtures/lessjs-3.13.1/less/_main/mixins-pattern.less b/test/Fixtures/lessjs-3.13.1/less/_main/mixins-pattern.less new file mode 100644 index 00000000..e769b0cf --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/less/_main/mixins-pattern.less @@ -0,0 +1,102 @@ +.mixin (...) { + variadic: true; +} +.mixin (@a...) { + named-variadic: true; +} +.mixin () { + zero: 0; +} +.mixin (@a: 1px) { + one: 1; +} +.mixin (@a) { + one-req: 1; +} +.mixin (@a: 1px, @b: 2px) { + two: 2; +} + +.mixin (@a, @b, @c) { + three-req: 3; +} + +.mixin (@a: 1px, @b: 2px, @c: 3px) { + three: 3; +} + +.zero { + .mixin(); +} + +.one { + .mixin(1); +} + +.two { + .mixin(1, 2); +} + +.three { + .mixin(1, 2, 3); +} + +// + +.mixout ('left') { + left: 1; +} + +.mixout ('right') { + right: 1; +} + +.left { + .mixout('left'); +} +.right { + .mixout('right'); +} + +// + +.border (@side, @width) { + color: black; + .border-side(@side, @width); +} +.border-side (left, @w) { + border-left: @w; +} +.border-side (right, @w) { + border-right: @w; +} + +.border-right { + .border(right, 4px); +} +.border-left { + .border(left, 4px); +} + +// + + +.border-radius (@r) { + both: (@r * 10); +} +.border-radius (@r, left) { + left: @r; +} +.border-radius (@r, right) { + right: @r; +} + +.only-right { + .border-radius(33, right); +} +.only-left { + .border-radius(33, left); +} +.left-right { + .border-radius(33); +} diff --git a/test/Fixtures/lessjs-3.13.1/less/_main/mixins.less b/test/Fixtures/lessjs-3.13.1/less/_main/mixins.less new file mode 100644 index 00000000..7ffa9dac --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/less/_main/mixins.less @@ -0,0 +1,145 @@ +.mixin { border: 1px solid black; } +.mixout { border-color: orange; } +.borders { border-style: dashed; } +.mixin > * { border: do not match me; } + +#namespace { + .borders { + border-style: dotted; + } + .biohazard { + content: "death"; + .man { + color: transparent; + } + } +} +#theme { + > .mixin { + background-color: grey; + } +} +#container { + color: black; + .mixin; + .mixout; + #theme > .mixin; +} + +#header { + .milk { + color: inherit; + .mixin; + #theme > .mixin; + } + #cookie { + .chips { + #namespace .borders; + .calories { + #container; + } + } + .borders; + } +} +.secure-zone { #namespace .biohazard .man; } +.direct { + #namespace > .borders; +} + +.bo, .bar { + width: 100%; +} +.bo { + border: 1px; +} +.ar.bo.ca { + color: black; +} +.jo.ki { + background: none; +} +.amp { + &.support { + color: orange; + .higher { + top: 0px; + } + &.deeper { + height: auto; + } + } +} +.extended { + .bo; + .jo.ki; + .amp.support; + .amp.support.higher; + .amp.support.deeper; +} +.do .re .mi .fa { + .sol .la { + .si { + color: cyan; + } + } +} +.mutli-selector-parents { + .do.re.mi.fa.sol.la.si; +} +.foo .bar { + .bar; +} +.has_parents() { + & .underParents { + color: red; + } +} +.has_parents(); +.parent { + .has_parents(); +} +.margin_between(@above, @below) { + * + & { margin-top: @above; } + legend + & { margin-top: 0; } + & + * { margin-top: @below; } +} +h1 { .margin_between(25px, 10px); } +h2 { .margin_between(20px, 8px); } +h3 { .margin_between(15px, 5px); } + +.mixin_def(@url, @position){ + background-image: @url; + background-position: @position; +} +.error{ + @s: "/"; + .mixin_def( "@{s}a.png", center center); +} +.recursion() { + color: black; +} +.test-rule-rec { + .recursion { + .recursion(); + } +} +.paddingFloat(@padding) { padding-left: @padding; } + +.button { + .paddingFloat(((10px + 12) * 2)); + + &.large { .paddingFloat(((10em * 2) * 2)); } +} +.clearfix() { + // ... +} +.clearfix { + .clearfix(); +} +.clearfix { + .clearfix(); +} +.foo { + .clearfix(); +} \ No newline at end of file diff --git a/test/Fixtures/lessjs-3.13.1/less/_main/nested-gradient-with-svg-gradient/mixin-consumer.less b/test/Fixtures/lessjs-3.13.1/less/_main/nested-gradient-with-svg-gradient/mixin-consumer.less new file mode 100644 index 00000000..12bba2ea --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/less/_main/nested-gradient-with-svg-gradient/mixin-consumer.less @@ -0,0 +1,5 @@ +@import "svg-gradient-mixin.less"; + +.gray-gradient { + .gradient-mixin(#999); +} diff --git a/test/Fixtures/lessjs-3.13.1/less/_main/nested-gradient-with-svg-gradient/svg-gradient-mixin.less b/test/Fixtures/lessjs-3.13.1/less/_main/nested-gradient-with-svg-gradient/svg-gradient-mixin.less new file mode 100644 index 00000000..fad96ea5 --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/less/_main/nested-gradient-with-svg-gradient/svg-gradient-mixin.less @@ -0,0 +1,15 @@ +.gradient-mixin(@color) { + background: svg-gradient(to bottom, + fade(@color, 0%) 0%, + fade(@color, 5%) 60%, + fade(@color, 10%) 70%, + fade(@color, 15%) 73%, + fade(@color, 20%) 75%, + fade(@color, 25%) 80%, + fade(@color, 30%) 85%, + fade(@color, 35%) 88%, + fade(@color, 40%) 90%, + fade(@color, 45%) 95%, + fade(@color, 50%) 100% + ); +} diff --git a/test/Fixtures/lessjs-3.13.1/less/_main/no-output.less b/test/Fixtures/lessjs-3.13.1/less/_main/no-output.less new file mode 100644 index 00000000..b4e6a499 --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/less/_main/no-output.less @@ -0,0 +1,2 @@ +.mixin() { +} \ No newline at end of file diff --git a/test/Fixtures/lessjs-3.13.1/less/_main/operations.less b/test/Fixtures/lessjs-3.13.1/less/_main/operations.less new file mode 100644 index 00000000..ef3a5cac --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/less/_main/operations.less @@ -0,0 +1,63 @@ +#operations { + color: (#110000 + #000011 + #001100); // #111111 + color-2: (yellow - #070707); + height: (10px / 2px + 6px - 1px * 2); // 9px + width: (2 * 4 - 5em); // 3em + .spacing { + height: (10px / 2px+6px-1px*2); + width: (2 * 4-5em); + } + subtraction: (20 - 10 - 5 - 5); // 0 + division: (20 / 5 / 4); // 1 +} + +@x: 4; +@y: 12em; + +.with-variables { + height: (@x + @y); // 16em + width: (12 + @y); // 24em + size: (5cm - @x); // 1cm +} + +.with-functions { + color: (rgb(200, 200, 200) / 2); + color: (2 * hsl(0, 50%, 50%)); + color: (rgb(10, 10, 10) + hsl(0, 50%, 50%)); +} + +@z: -2; + +.negative { + height: (2px + @z); // 0px + width: (2px - @z); // 4px +} + +.shorthands { + padding: -1px 2px 0 -4px; // +} + +.rem-dimensions { + font-size: (20rem / 5 + 1.5rem); // 5.5rem +} + +.colors { + color: #123; // #112233 + border-color: (#234 + #111111); // #334455 + background-color: (#222222 - #fff); // #000000 + .other { + color: (2 * #111); // #222222 + border-color: (#333333 / 3 + #111); // #222222 + } +} + +.negations { + @var: 4px; + variable: (-@var); // 4 + variable1: (-@var + @var); // 0 + variable2: (@var + -@var); // 0 + variable3: (@var - -@var); // 8 + variable4: (-@var - -@var); // 0 + paren: (-(@var)); // -4px + paren2: (-(2 + 2) * -@var); // 16 +} diff --git a/test/Fixtures/lessjs-3.13.1/less/_main/parse-interpolation.less b/test/Fixtures/lessjs-3.13.1/less/_main/parse-interpolation.less new file mode 100644 index 00000000..9c9c7afc --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/less/_main/parse-interpolation.less @@ -0,0 +1,53 @@ +@inputs: input[type=text], input[type=email], input[type=password], textarea; + +@{inputs} { + &:focus { + foo: bar; + } +} + +@classes: .a, .b, .c; + +@{classes} { + + .z { + color: blue; + } +} + +.bar { + .d@{classes}&:hover, baz { + color: blue; + } +} + +@c: ~'.a, .b'; +@d: ~'.c, .d'; +@e: ~' + .e'; + +@{c}@{d} { + @{e} { + foo: bar; + } +} + +@textClasses: ~'&[class="text"], &.text'; + +input { + @{textClasses} { + background: red; + } +} + +@my-selector: ~'.selector-1, .selector-2'; +.master-page-1 { + @{my-selector} { + background-color: red; + } +} + +@list: apple, satsuma, banana, pear; +@{list} { + .fruit-& { + content: "Just a test."; + } +} \ No newline at end of file diff --git a/test/Fixtures/lessjs-3.13.1/less/_main/permissive-parse.less b/test/Fixtures/lessjs-3.13.1/less/_main/permissive-parse.less new file mode 100644 index 00000000..67b1b421 --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/less/_main/permissive-parse.less @@ -0,0 +1,50 @@ +@function-name: regexp; +@d-value: 15; +@-moz-document @function-name("(\d{0,@{d-value}})") { + a { + color: red; + } +} + +.custom-property { + --this: () => { + basically anything until final semi-colon; + even other stuff; // i\'m serious; + }; + @this: () => { + basically anything until final semi-colon; + even other stuff; // i\'m serious; + }; + --that: @this; + @red: lighten(red, 10%); + --custom-color: @red lighten(red, 10%); + custom-color: $--custom-color; +} + +@iostat: 1; +.var { + --fortran: read (*, *, iostat=@iostat) radius, height; +} + +@boom-boom: bam; +@-moz-whatever (foo: "(" @boom-boom ")") { + bar: foo; +} + +@selectorList: #selector, .bar, foo[attr="blah"]; +@{selectorList} { + bar: value; +} + +@size: 640px; +@tablet: (min-width: @size); +@media @tablet { + .holy-crap { + this: works; + } +} +// @todo - fix comment absorption after property +.test-rule-comment { + --value: a/* { ; } */; + --comment-within: ( /* okay?; comment; */ ); +} \ No newline at end of file diff --git a/test/Fixtures/lessjs-3.13.1/less/_main/plugin-module.less b/test/Fixtures/lessjs-3.13.1/less/_main/plugin-module.less new file mode 100644 index 00000000..dd1ace5e --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/less/_main/plugin-module.less @@ -0,0 +1,7 @@ +// Test NPM import +@plugin "clean-css"; + +a { + background: none; +} + diff --git a/test/Fixtures/lessjs-3.13.1/less/_main/plugin-preeval.less b/test/Fixtures/lessjs-3.13.1/less/_main/plugin-preeval.less new file mode 100644 index 00000000..acd0524d --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/less/_main/plugin-preeval.less @@ -0,0 +1,15 @@ +@plugin "../../plugin/plugin-preeval"; + +.two(@rules: {}) { + :root.two & { + @rules(); + } +} + +.one { + .two({ + --foo: @replace !important; + }); +} + +@stop: end; \ No newline at end of file diff --git a/test/Fixtures/lessjs-3.13.1/less/_main/plugin.less b/test/Fixtures/lessjs-3.13.1/less/_main/plugin.less new file mode 100644 index 00000000..1619098a --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/less/_main/plugin.less @@ -0,0 +1,142 @@ +// importing plugin globally +@plugin "../../plugin/plugin-global"; + +// transitively include plugins from importing another sheet +@import "../../plugin/plugin-transitive"; + + +// `test-global` function should be reachable +// `test-local` function should not be reachable +// `test-shadow` function should return global version +.class { + trans : test-transitive(); + global : test-global(); + local : test-local(); + shadow : test-shadow(); + + // `test-global` function should propagate and be reachable + // `test-local` function should be reachable + // `test-shadow` function should return local version, shadowing global version + .local { + @plugin (option) "../../plugin/plugin-local"; + global : test-global(); + local : test-local(); + shadow : test-shadow(); + } +} + +// calling a mixin or detached ruleset should not bubble local plugins +// imported inside either into the parent scope. +.mixin() { + @plugin "../../plugin/plugin-local"; + mixin-local : test-local(); + mixin-global : test-global(); + mixin-shadow : test-shadow(); +} +@ruleset : { + @plugin "../../plugin/plugin-local"; + ruleset-local : test-local(); + ruleset-global : test-global(); + ruleset-shadow : test-shadow(); +}; +#ns { + @plugin (test=test) "../../plugin/plugin-local"; + .mixin() { + ns-mixin-global : test-global(); + ns-mixin-local : test-local(); + ns-mixin-shadow : test-shadow(); + } +} +.class { + #ns > .mixin(); + .mixin(); + @ruleset(); + class-local : test-local(); +} + + +// `test-global` function should propagate into directive scope +@media screen { + .test-rule { + result : test-global(); + } +} +@font-face { + result : test-global(); +} + +// `test-global` function should propagate into nested directive scopes +@media screen and (min-width:100px) { + @media (max-width:400px) { + .test-rule { + result : test-global(); + } + } +} + +.test-rule { + @media screen { + @plugin "../../plugin/plugin-local"; + result : test-local(); + } +} + +@plugin "../../plugin/plugin-tree-nodes"; +@ruleset2: test-detached-ruleset(); +.root { + @ruleset2(); +} +.test-rule-empty { + val1: foo; + test-collapse(); + val2: foo; +} +.test-rule-simple { + @plugin "../../plugin/plugin-simple"; + value: pi-anon(); + value: (pi() * 2); +} +.test-rule-conflicts { + @plugin "../../plugin/plugin-scope1"; + value: foo(); +} +.test-rule-conflicts { + @plugin "../../plugin/plugin-scope2"; + value: foo(); +} +.test-rule-conflicts { + @plugin "../../plugin/plugin-scope1"; + value: foo(); +} +.test-rule-collection { + @plugin "../../plugin/plugin-collection"; + @var: 32; + store(@var); + store(5); + store("bird"); + list: list(); +} + +test-atrule("@charset"; '"utf-8"'); +test-atrule("@arbitrary"; "value after ()"); + +// no minVersion specified +@plugin (option1) "../../plugin/plugin-set-options"; +@plugin "../../plugin/plugin-set-options"; +@plugin (option2) "../../plugin/plugin-set-options"; +@plugin "../../plugin/plugin-set-options"; +@plugin (option3) "../../plugin/plugin-set-options"; + +// specifies minVersion: [2,0,0] +@plugin (option1) "../../plugin/plugin-set-options-v2"; +@plugin "../../plugin/plugin-set-options-v2"; +@plugin (option2) "../../plugin/plugin-set-options-v2"; +@plugin "../../plugin/plugin-set-options-v2"; +@plugin (option3) "../../plugin/plugin-set-options-v2"; + +// specifies minVersion: [3,0,0] +@plugin (option1) "../../plugin/plugin-set-options-v3"; +@plugin "../../plugin/plugin-set-options-v3"; +@plugin (option2) "../../plugin/plugin-set-options-v3"; +@plugin "../../plugin/plugin-set-options-v3"; +@plugin (option3) "../../plugin/plugin-set-options-v3"; diff --git a/test/Fixtures/lessjs-3.13.1/less/_main/property-accessors.less b/test/Fixtures/lessjs-3.13.1/less/_main/property-accessors.less new file mode 100644 index 00000000..e679f0d2 --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/less/_main/property-accessors.less @@ -0,0 +1,67 @@ + +.block_1 { + color: red; + background-color: $color; + @width: 50px; + width: @width; + height: ($width / 2); + @color: red; + border: 1px solid lighten($color, 10%); + &:hover { + color: $color; + background-color: $color; + .mixin1(); + } + .one { + background: $color; + } + content: "${color}"; + prop: $color; + +} + +.block_2 { + color: red; + .two { + background-color: $color; + } + color: blue; +} + +.block_3 { + color: red; + .three { + background-color: $color; + } + .mixin2(); + color: blue; +} +.block_4 { + color: red; + .four { + background-color: $color; + } + color: blue; + .mixin2(); +} +// property merging +a { + background-color+: red; + background-color+: foo; + + &b { + background: $background-color; + } +} + +.value_as_property { + prop1: color; + ${prop1}: #FF0000; // not sure why you'd want to do this, but ok +} + +.mixin1() { + color: green; +} +.mixin2() { + color: yellow; +} diff --git a/test/Fixtures/lessjs-3.13.1/less/_main/property-name-interp.less b/test/Fixtures/lessjs-3.13.1/less/_main/property-name-interp.less new file mode 100644 index 00000000..ad1dd419 --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/less/_main/property-name-interp.less @@ -0,0 +1,56 @@ + +pi-test { + @prefix: ufo-; + @a: border; + @bb: top; + @c_c: left; + @d-d4: radius; + @-: -; + + @var: ~'@not-variable'; + + @{a}: 0; + @{var}: @var; + @{prefix}width: 50%; + *-z-@{a} :1px dashed blue; + -www-@{a}-@{bb}: 2px; + @{d-d4}-is-not-a-@{a}:true; + @{a}-@{bb}-@{c_c}-@{d-d4} : 2em; + @{a}@{-}@{bb}@{-}red@{-}@{d-d4}-: 3pt; + + .mixin(mixer); + .merge(ish, base); +} + +@global: global; + +.mixin(@arg) { + @local: local; + @{global}-@{local}-@{arg}-property: strong; +} + +.merge(@p, @v) { + &-merge { + @prefix: pre; + @suffix: ish; + @{prefix}-property-ish+ :high; + pre-property-@{suffix} +: middle; + @{prefix}-property-@{suffix}+: low; + @{prefix}-property-@{p} + : @v; + + @subterfuge: ~'+'; + pre-property-ish@{subterfuge}: nice try dude; + } +} + +pi-indirect-vars { + @{p}: @p; + @p: @@a; + @a: b; + @b: auto; +} + +pi-complex-values { + @{p}@{p}: none; + @p: (1 + 2px) fadeout(#ff0, 50%), pi() /* foo */; +} diff --git a/test/Fixtures/lessjs-3.13.1/less/_main/rulesets.less b/test/Fixtures/lessjs-3.13.1/less/_main/rulesets.less new file mode 100644 index 00000000..e81192db --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/less/_main/rulesets.less @@ -0,0 +1,30 @@ +#first > .one { + > #second .two > #deux { + width: 50%; + #third { + &:focus { + color: black; + #fifth { + > #sixth { + .seventh #eighth { + + #ninth { + color: purple; + } + } + } + } + } + height: 100%; + } + #fourth, #five, #six { + color: #110000; + .seven, .eight > #nine { + border: 1px solid black; + } + #ten { + color: red; + } + } + } + font-size: 2em; +} diff --git a/test/Fixtures/lessjs-3.13.1/less/_main/scope.less b/test/Fixtures/lessjs-3.13.1/less/_main/scope.less new file mode 100644 index 00000000..13d01a17 --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/less/_main/scope.less @@ -0,0 +1,104 @@ +@x: red; +@x: blue; +@z: transparent; +@mix: none; + +.mixin { + @mix: #989; +} +@mix: blue; +.tiny-scope { + color: @mix; // #989 + .mixin; +} + +.scope1 { + @y: orange; + @z: black; + color: @x; // blue + border-color: @z; // black + .hidden { + @x: #131313; + } + .scope2 { + @y: red; + color: @x; // blue + .scope3 { + @local: white; + color: @y; // red + border-color: @z; // black + background-color: @local; // white + } + } +} + +#namespace { + .scoped_mixin() { + @local-will-be-made-global: green; + .scope { + scoped-val: @local-will-be-made-global; + } + } +} + +#namespace > .scoped_mixin(); + +.setHeight(@h) { @height: 1024px; } +.useHeightInMixinCall(@h) { .useHeightInMixinCall { mixin-height: @h; } } +@mainHeight: 50%; +.setHeight(@mainHeight); +.heightIsSet { height: @height; } +.useHeightInMixinCall(@height); + +.importRuleset() { + .imported { + exists: true; + } +} +.importRuleset(); +.testImported { + .imported; +} + +@parameterDefault: 'top level'; +@anotherVariable: 'top level'; +//mixin uses top-level variables +.mixinNoParam(@parameter: @parameterDefault) when (@parameter = 'top level') { + default: @parameter; + scope: @anotherVariable; + sub-scope-only: @subScopeOnly; +} + +#allAreUsedHere { + //redefine top-level variables in different scope + @parameterDefault: 'inside'; + @anotherVariable: 'inside'; + @subScopeOnly: 'inside'; + //use the mixin + .mixinNoParam(); +} +#parentSelectorScope { + @col: white; + & { + @col: black; + } + prop: @col; + & { + @col: black; + } +} +.test-empty-mixin() { +} +#parentSelectorScopeMixins { + & { + .test-empty-mixin() { + should: never seee 1; + } + } + .test-empty-mixin(); + & { + .test-empty-mixin() { + should: never seee 2; + } + } +} \ No newline at end of file diff --git a/test/Fixtures/lessjs-3.13.1/less/_main/selectors.less b/test/Fixtures/lessjs-3.13.1/less/_main/selectors.less new file mode 100644 index 00000000..005524cc --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/less/_main/selectors.less @@ -0,0 +1,185 @@ +h1, h2, h3 { + a, p { + &:hover { + color: red; + } + } +} + +#all { color: blue; } +#the { color: blue; } +#same { color: blue; } + +ul, li, div, q, blockquote, textarea { + margin: 0; +} + +td { + margin: 0; + padding: 0; +} + +td, input { + line-height: 1em; +} + +a { + color: red; + + &:hover { color: blue; } + + div & { color: green; } + + p & span { color: yellow; } +} + +.foo { + .bar, .baz { + & .qux { + display: block; + } + .qux & { + display: inline; + } + .qux& { + display: inline-block; + } + .qux & .biz { + display: none; + } + } +} + +.b { + &.c { + .a& { + color: red; + } + } +} + +.b { + .c & { + &.a { + color: red; + } + } +} + +.p { + .foo &.bar { + color: red; + } +} + +.p { + .foo&.bar { + color: red; + } +} + +.foo { + .foo + & { + background: amber; + } + & + & { + background: amber; + } +} + +.foo, .bar { + & + & { + background: amber; + } +} + +.foo, .bar { + a, b { + & > & { + background: amber; + } + } +} + +.other ::fnord { color: red } +.other::fnord { color: red } +.other { + ::bnord {color: red } + &::bnord {color: red } +} +// selector interpolation +@theme: blood; +@selector: ~".@{theme}"; +@{selector} { + color:red; +} +@{selector}red { + color: green; +} +.red { + #@{theme}.@{theme}&.black:@{theme} { + color:black; + } +} +@num: 3; +:nth-child(@{num}) { + selector: interpolated; +} +.test-rule { + &:nth-child(@{num}) { + selector: interpolated; + } + &:nth-child(odd):not(:nth-child(3)) { + color: #ff0000; + } +} +@prop: p; +[prop], +[prop=10%], +[prop|="value@{num}"], +[prop*="val@{num}"], +[|prop~="val@{num}"], +[*|prop$="val@{num}"], +[ns|prop^="val@{num}"], +[@{prop}^="val@{num}"], +[@{prop}=@{num}], +[@{prop}] { + attributes: yes; +} + +/* +Large comment means chunk will be emitted after } which means chunk will begin with whitespace... +blank blank blank blank blank blank blank blank blank blank blank blank blank blank blank blank +blank blank blank blank blank blank blank blank blank blank blank blank blank blank blank blank +blank blank blank blank blank blank blank blank blank blank blank blank blank blank blank blank +blank blank blank blank blank blank blank blank blank blank blank blank blank blank blank blank +blank blank blank blank blank blank blank blank blank blank blank blank blank blank blank blank +*/ +@{selector} { + color: red; +} +.only-nested { + .level2 { + .foo:not(.tst&:hover) { + test: only-nested; + } + } +} +.nestend-and-non-nested { + .foo&:not(.tst&:hover) { + test: nestend-and-non-nested; + } +} +.selector:not(&:hover) { + test: global scope; +} +// https://github.com/less/less.js/issues/2206 +.extend-this { + content: '\2661'; +} +.first-level { + .second-level { + .active&:extend(.extend-this) { } + &.active2:extend(.extend-this) { } + } +} diff --git a/test/Fixtures/lessjs-3.13.1/less/_main/strings.less b/test/Fixtures/lessjs-3.13.1/less/_main/strings.less new file mode 100644 index 00000000..43746053 --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/less/_main/strings.less @@ -0,0 +1,73 @@ +#strings { + background-image: url("http://son-of-a-banana.com"); + quotes: "~" "~"; + content: "#*%:&^,)!.(~*})"; + empty: ""; + brackets: "{" "}"; + escapes: "\"hello\" \\world"; + escapes2: "\"llo"; +} +#comments { + content: "/* hello */ // not-so-secret"; +} +#single-quote { + quotes: "'" "'"; + content: '""#!&""'; + empty: ''; + semi-colon: ';'; +} +#escaped { + filter: ~"DX.Transform.MS.BS.filter(opacity=50)"; +} +#one-line { image: url(http://tooks.com) } +#crazy { image: url(http://), "}", url("http://}") } +#interpolation { + @var: '/dev'; + url: "http://lesscss.org@{var}/image.jpg"; + + @var2: 256; + url2: "http://lesscss.org/image-@{var2}.jpg"; + + @var3: #456; + url3: "http://lesscss.org@{var3}"; + + @var4: hello; + url4: "http://lesscss.org/@{var4}"; + + @var5: 54.4px; + url5: "http://lesscss.org/@{var5}"; +} + +// multiple calls with string interpolation + +.mix-mul (@a: green) { + color: ~"@{a}"; +} +.mix-mul-class { + .mix-mul(blue); + .mix-mul(red); + .mix-mul(black); + .mix-mul(orange); +} + +@test: Arial, Verdana, San-Serif; +.watermark { + @family: ~"Univers, @{test}"; + family: @family; +} +#iterated-interpolation { + @box-small: 10px; + @box-large: 100px; + + .mixin { // both ruleset and mixin + width: ~"@{box-@{suffix}}"; + weird: ~"@{box}-@{suffix}}"; + width-str: "@{box-@{suffix}}"; + weird-str: "@{box}-@{suffix}}"; + @box: ~"@{box"; + @suffix: large; + } + .interpolation-mixin { + .mixin(); //call the above as mixin + } +} diff --git a/test/Fixtures/lessjs-3.13.1/less/_main/urls.less b/test/Fixtures/lessjs-3.13.1/less/_main/urls.less new file mode 100644 index 00000000..244488bf --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/less/_main/urls.less @@ -0,0 +1,93 @@ +@import "nested-gradient-with-svg-gradient/mixin-consumer.less"; + +@font-face { + src: url("/fonts/garamond-pro.ttf"); + src: local(Futura-Medium), + url(fonts.svg#MyGeometricModern) format("svg"); + not-a-comment: url(//z); +} +#shorthands { + background: url("http://www.lesscss.org/spec.html") no-repeat 0 4px; + background: url("img.jpg") center / 100px; + background: #fff url(image.png) center / 1px 100px repeat-x scroll content-box padding-box; +} +#misc { + background-image: url(images/image.jpg); +} +#data-uri { + background: url(data:image/png;charset=utf-8;base64, + kiVBORw0KGgoAAAANSUhEUgAAABAAAAAQAQMAAAAlPW0iAAAABlBMVEUAAAD/ + k//+l2Z/dAAAAM0lEQVR4nGP4/5/h/1+G/58ZDrAz3D/McH8yw83NDDeNGe4U + kg9C9zwz3gVLMDA/A6P9/AFGGFyjOXZtQAAAAAElFTkSuQmCC); + background-image: url(data:image/x-png,f9difSSFIIGFIFJD1f982FSDKAA9==); + background-image: url(http://fonts.googleapis.com/css?family=\"Rokkitt\":\(400\),700); + background-image: url("http://fonts.googleapis.com/css?family=\"Rokkitt\":\(400\),700"); +} + +#svg-data-uri { + background: transparent url('data:image/svg+xml, '); +} + +.comma-delimited { + background: url(bg.jpg) no-repeat, url(bg.png) repeat-x top left, url(bg); +} +.values { + @a: 'Trebuchet'; + url: url(@a); +} + +@import "import/import-and-relative-paths-test"; + +#relative-url-import { + .unquoted-relative-path-bg; + .quoted-relative-path-border-image; +} + +#data-uri { + uri: data-uri('image/jpeg;base64', '../data/image.jpg'); + @var: replace('../data/replace.jpg', "replace", "image"); + background-image: data-uri(@var), data-uri(replace('../data/image.filext', "filext", "jpg")); + + uri-fragment: data-uri('image/jpeg;base64', '../data/image.jpg#fragment'); +} + +#data-uri-guess { + uri: data-uri('../data/image.jpg'); +} + +#data-uri-ascii { + uri-1: data-uri('text/html', '../data/page.html'); + uri-2: data-uri('../data/page.html'); +} + +#file-functions { + svg-not-base-64: data-uri('../data/image.svg'); + size: image-size('../data/data-uri-fail.png'); + width: image-width('../data/data-uri-fail.png'); + height: image-height('../data/data-uri-fail.png'); +} +.add_an_import(@file_to_import) { +@import "@{file_to_import}"; +} + +.add_an_import("file.css"); + +#svg-functions { + background-image: svg-gradient(to bottom, black, white); + background-image: svg-gradient(to bottom, black, orange 3%, white); + @green_5: green 5%; + @orange_percentage: 3%; + @orange_color: orange; + background-image: svg-gradient(to bottom, (mix(black, white) + #444) 1%, @orange_color @orange_percentage, ((@green_5)), white 95%); +} +//it should work also inside @font-face #2035 +@font-face { + font-family: 'MyWebFont'; + src: url(webfont.eot); + src+: url('webfont.eot?#iefix'); + src+_: format('embedded-opentype'); + src+: url('webfont.woff') format('woff'); + src+: format('truetype'); + src+_: url('webfont.ttf'); + src+: url('webfont.svg#svgFontName') format('svg'); +} diff --git a/test/Fixtures/lessjs-3.13.1/less/_main/variables-in-at-rules.less b/test/Fixtures/lessjs-3.13.1/less/_main/variables-in-at-rules.less new file mode 100644 index 00000000..96d8c611 --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/less/_main/variables-in-at-rules.less @@ -0,0 +1,20 @@ + +@Eight: 8; +@charset "UTF-@{Eight}"; + +@ns: less; +@namespace @ns "http://lesscss.org"; + +@name: enlarger; +@keyframes @name { + from {font-size: 12px;} + to {font-size: 15px;} +} + +.m(reducer); +.m(@name) { + @-webkit-keyframes @name { + from {font-size: 13px;} + to {font-size: 10px;} + } +} diff --git a/test/Fixtures/lessjs-3.13.1/less/_main/variables.less b/test/Fixtures/lessjs-3.13.1/less/_main/variables.less new file mode 100644 index 00000000..ae8c9be4 --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/less/_main/variables.less @@ -0,0 +1,127 @@ +@a: 2; +@x: (@a * @a); +@y: (@x + 1); +@z: (@x * 2 + @y); +@var: -1; + +.variables { + width: (@z + 1cm); // 14cm +} + +.variable-dash { + @jumbotron-padding: 30px; + + .q { + padding: @jumbotron-padding (@jumbotron-padding/2); + } +} + +@b: @a * 10; +@c: #888; + +@fonts: "Trebuchet MS", Verdana, sans-serif; +@f: @fonts; + +@quotes: "~" "~"; +@q: @quotes; +@onePixel: 1px; + +.variables { + height: (@b + @x + 0px); // 24px + color: @c; + font-family: @f; + quotes: @q; +} + +.redef { + @var: 0; + .inition { + @var: 4; + @var: 2; + three: @var; + @var: 3; + } + zero: @var; +} + +@important-var: @c !important; +@important-var-two: @a !important; +.values { + minus-one: @var; + @a: 'Trebuchet'; + @multi: 'A', B, C; + font-family: @a, @a, @a; + color: @c !important; + same-color: @important-var; + same-again: @important-var !important; + multi-important: @important-var @important-var, @important-var-two; + multi: something @multi, @a; +} + +.variable-names { + .quoted { + @var: 'hello'; + @name: 'var'; + name: @@name; + } + + .unquoted { + @var: 'hello'; + @name: var; + name: @@name; + } + + .color-keyword { + @red: 'hello'; + @name: red; + name: @@name; + } +} + +.alpha { + @var: 42; + filter: alpha(opacity=@var); +} + +.polluteMixin() { + @a: 'pollution'; +} +.test-rulePollution { + @a: 'no-pollution'; + a: @a; + .polluteMixin(); + a: @a; +} + +.units { + width: @onePixel; + same-unit-as-previously: (@onePixel / @onePixel); + square-pixel-divided: (@onePixel * @onePixel / @onePixel); + odd-unit: unit((@onePixel * 4em / 2cm)); + percentage: (10 * 50%); + pixels: (50px * 10); + conversion-metric-a: (20mm + 1cm); + conversion-metric-b: (1cm + 20mm); + conversion-imperial: (1in + 72pt + 6pc); + custom-unit: (42octocats * 10); + custom-unit-cancelling: (8cats * 9dogs / 4cats); + mix-units: (1px + 1em); + invalid-units: (1px * 1px); + .fallback { + @px: 14px; + @em: 1.4em; + @cm: 10cm; + div-px-1: (@px / @em); + div-px-2: ((@px / @em) / @cm); + sub-px-1: (@px - @em); + sub-cm-1: (@cm - (@px - @em)); + mul-px-1: (@px * @em); + mul-em-1: (@em * @px); + mul-em-2: ((@em * @px) * @cm); + mul-cm-1: (@cm * (@em * @px)); + add-px-1: (@px + @em); + add-px-2: ((@px + @em) + @cm); + mul-px-2: ((1 * @px) * @cm); + mul-px-3: ((@px * 1) * @cm); + } +} diff --git a/test/Fixtures/lessjs-3.13.1/less/_main/whitespace.less b/test/Fixtures/lessjs-3.13.1/less/_main/whitespace.less new file mode 100644 index 00000000..050ac734 --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/less/_main/whitespace.less @@ -0,0 +1,44 @@ + + +.whitespace + { color: white; } + +.whitespace +{ + color: white; +} + .whitespace +{ color: white; } + +.whitespace{color:white;} +.whitespace { color : white ; } + +.white, +.space, +.mania +{ color: white; } + +.no-semi-column { color: white } +.no-semi-column { + color: white; + white-space: pre +} +.no-semi-column {border: 2px solid white} +.newlines { + background: the, + great, + wall; + border: 2px + solid + black; +} +.empty { + +} +.sel +.newline_ws .tab_ws { +color: +white; +background-position: 45 +-23; +} diff --git a/test/Fixtures/lessjs-3.13.1/less/compression/compression.less b/test/Fixtures/lessjs-3.13.1/less/compression/compression.less new file mode 100644 index 00000000..c196336a --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/less/compression/compression.less @@ -0,0 +1,36 @@ +#colours { + color1: #fea; + color2: #ffeeaa; + color3: rgba(255, 238, 170, 0.1); + @color1: #fea; + string: "@{color1}"; + /* comments are stripped */ + // both types! + /*! but not this type + Note preserved whitespace + */ +} +dimensions { + val: 0.1px; + val: 0em; + val: 4cm; + val: 0.2; + val: 5; + angles-must-have-unit: 0deg; + durations-must-have-unit: 0s; + length-doesnt-have-unit: 0px; + width: auto\9; +} +@page { + marks: none; +@top-left-corner { + vertical-align: top; +} +@top-left { + vertical-align: top; +} +} +.shadow ^ .dom, +body ^^ .shadow { + display: done; +} diff --git a/test/Fixtures/lessjs-3.13.1/less/data/data-uri-fail.png b/test/Fixtures/lessjs-3.13.1/less/data/data-uri-fail.png new file mode 100644 index 00000000..f91b59fb Binary files /dev/null and b/test/Fixtures/lessjs-3.13.1/less/data/data-uri-fail.png differ diff --git a/test/Fixtures/lessjs-3.13.1/less/data/image.jpg b/test/Fixtures/lessjs-3.13.1/less/data/image.jpg new file mode 100644 index 00000000..51389197 Binary files /dev/null and b/test/Fixtures/lessjs-3.13.1/less/data/image.jpg differ diff --git a/test/Fixtures/lessjs-3.13.1/less/data/image.svg b/test/Fixtures/lessjs-3.13.1/less/data/image.svg new file mode 100644 index 00000000..0d69314d --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/less/data/image.svg @@ -0,0 +1,4 @@ + + + + diff --git a/test/Fixtures/lessjs-3.13.1/less/data/page.html b/test/Fixtures/lessjs-3.13.1/less/data/page.html new file mode 100644 index 00000000..597f1ed2 --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/less/data/page.html @@ -0,0 +1 @@ +

This page is 100% Awesome.

diff --git a/test/Fixtures/lessjs-3.13.1/less/debug/import/test.less b/test/Fixtures/lessjs-3.13.1/less/debug/import/test.less new file mode 100644 index 00000000..ce3dfac0 --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/less/debug/import/test.less @@ -0,0 +1,25 @@ +@charset "ISO-8859-1"; + +.mixin_import1() { + @media all { + .tst { + color: black; + @media screen { + color: red; + .tst3 { + color: inherit; + } + } + } + } +} + +.mixin_import2() { + .tst2 { + color: inherit; + } +} + +.tst3 { + color: grey; +} \ No newline at end of file diff --git a/test/Fixtures/lessjs-3.13.1/less/debug/linenumbers.less b/test/Fixtures/lessjs-3.13.1/less/debug/linenumbers.less new file mode 100644 index 00000000..b3760d40 --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/less/debug/linenumbers.less @@ -0,0 +1,33 @@ +@charset "UTF-8"; + +@import "import/test.less"; + +.start() { + .test-rule2 { + color: red; + } +} + +.mix() { + color: black; +} + +.test-rule1 { + .mix(); +} + +.start(); + +.mixin_import1(); + +.mixin_import2(); + +@debug: 1; +& when (@debug = 1) { + .test-rule { + color: red; + & when (@debug = 1) { + width: 2; + } + } +} \ No newline at end of file diff --git a/test/Fixtures/lessjs-3.13.1/less/filemanagerPlugin/colors.test b/test/Fixtures/lessjs-3.13.1/less/filemanagerPlugin/colors.test new file mode 100644 index 00000000..3d86b9ff --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/less/filemanagerPlugin/colors.test @@ -0,0 +1 @@ +@color: red; diff --git a/test/Fixtures/lessjs-3.13.1/less/filemanagerPlugin/filemanager.less b/test/Fixtures/lessjs-3.13.1/less/filemanagerPlugin/filemanager.less new file mode 100644 index 00000000..36e8db86 --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/less/filemanagerPlugin/filemanager.less @@ -0,0 +1,4 @@ +@import "test.test"; +.test-rule { + color: @color; +} diff --git a/test/Fixtures/lessjs-3.13.1/less/globalVars/extended.json b/test/Fixtures/lessjs-3.13.1/less/globalVars/extended.json new file mode 100644 index 00000000..6bd2a484 --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/less/globalVars/extended.json @@ -0,0 +1,5 @@ +{ + "the-border": "1px", + "base-color": "#111", + "red": "#842210" +} \ No newline at end of file diff --git a/test/Fixtures/lessjs-3.13.1/less/globalVars/extended.less b/test/Fixtures/lessjs-3.13.1/less/globalVars/extended.less new file mode 100644 index 00000000..7a3bf291 --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/less/globalVars/extended.less @@ -0,0 +1,10 @@ +#header { + color: (@base-color * 3); + border-left: @the-border; + border-right: (@the-border * 2); +} +#footer { + color: (@base-color + #003300); + border-color: @red; +} +@red: desaturate(red, 10%); // less file overrides passed in color <- note line comment on last line to check it is okay \ No newline at end of file diff --git a/test/Fixtures/lessjs-3.13.1/less/globalVars/simple.json b/test/Fixtures/lessjs-3.13.1/less/globalVars/simple.json new file mode 100644 index 00000000..2bccdc51 --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/less/globalVars/simple.json @@ -0,0 +1,3 @@ +{ + "my-color": "red" +} \ No newline at end of file diff --git a/test/Fixtures/lessjs-3.13.1/less/globalVars/simple.less b/test/Fixtures/lessjs-3.13.1/less/globalVars/simple.less new file mode 100644 index 00000000..c3c5e3b8 --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/less/globalVars/simple.less @@ -0,0 +1,3 @@ +.class { + color: @my-color; +} \ No newline at end of file diff --git a/test/Fixtures/lessjs-3.13.1/less/include-path-string/include-path-string.less b/test/Fixtures/lessjs-3.13.1/less/include-path-string/include-path-string.less new file mode 100644 index 00000000..db49715e --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/less/include-path-string/include-path-string.less @@ -0,0 +1,3 @@ +data-uri { + property: data-uri('image.svg'); +} diff --git a/test/Fixtures/lessjs-3.13.1/less/include-path/include-path.less b/test/Fixtures/lessjs-3.13.1/less/include-path/include-path.less new file mode 100644 index 00000000..3e9e7652 --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/less/include-path/include-path.less @@ -0,0 +1,8 @@ +@import "import-test-e"; + +data-uri { + property: data-uri('image.svg'); +} +image-size { + property: image-size('image.svg'); +} diff --git a/test/Fixtures/lessjs-3.13.1/less/legacy/legacy.less b/test/Fixtures/lessjs-3.13.1/less/legacy/legacy.less new file mode 100644 index 00000000..b4502d34 --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/less/legacy/legacy.less @@ -0,0 +1,21 @@ +@media (-o-min-device-pixel-ratio: 2) { + .test-rule-math-and-units { + font: ignores 0/0 rules; + test-division: 4 / 2 + 5em; + simple: 1px + 1px; + } +} +#units { + t1: (2em/1em) + 20; + t2: 20 + (2em/1em); + t3: 2em/1em; + t4: (2em/1px) + 20; + t5: 20 + (2em/1px); + t6: 2em/1px; + t7: (2em*1em) + 20; + t8: 20 + (2em*1em); + t9: 2em*1em; + t10: (2em*1px) + 20; + t11: 20 + (2em*1px); + t12: 2em*1px; +} \ No newline at end of file diff --git a/test/Fixtures/lessjs-3.13.1/less/math/parens-division/media-math.less b/test/Fixtures/lessjs-3.13.1/less/math/parens-division/media-math.less new file mode 100644 index 00000000..b3df9118 --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/less/math/parens-division/media-math.less @@ -0,0 +1,9 @@ +@var: 16; + +@media (min-width: @var + 1) { + .foo { bar: 1; } +} + +@media (min-width: @var / 9) { + .foo { bar: 1; } +} \ No newline at end of file diff --git a/test/Fixtures/lessjs-3.13.1/less/math/parens-division/mixins-args.less b/test/Fixtures/lessjs-3.13.1/less/math/parens-division/mixins-args.less new file mode 100644 index 00000000..fe006de9 --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/less/math/parens-division/mixins-args.less @@ -0,0 +1,264 @@ +.mixin (@a: 1px, @b: 50%) { + width: (@a * 5); + height: (@b - 1%); + depth: @b - 1%; +} + +.mixina (@style, @width, @color: black) { + border: @width @style @color; +} + +.mixiny +(@a: 0, @b: 0) { + margin: @a; + padding: @b; +} + +.hidden() { + color: transparent; // asd +} + +#hidden { + .hidden; +} + +#hidden1 { + .hidden(); +} + +.two-args { + color: blue; + .mixin(2px, 100%); + .mixina(dotted, 2px); +} + +.one-arg { + .mixin(3px); +} + +.no-parens { + .mixin; +} + +.no-args { + .mixin(); +} + +.var-args { + @var: 9; + .mixin(@var, (@var * 2) / 2); +} + +.multi-mix { + .mixin(2px, 30%); + .mixiny(4, 5); +} + +.maxa(@arg1: 10, @arg2: #f00) { + padding: (@arg1 * 2px); + color: @arg2; +} + +body { + .maxa(15); +} + +@glob: 5; +.global-mixin(@a:2) { + width: (@glob + @a); +} + +.scope-mix { + .global-mixin(3); +} + +.nested-ruleset (@width: 200px) { + width: @width; + .column { margin: @width; } +} +.content { + .nested-ruleset(600px); +} + +// + +.same-var-name2(@radius) { + radius: @radius; +} +.same-var-name(@radius) { + .same-var-name2(@radius); +} +#same-var-name { + .same-var-name(5px); +} + +// + +.var-inside () { + @var: 10px; + width: @var; +} +#var-inside { .var-inside; } + +.mixin-arguments (@width: 0px, ...) { + border: @arguments; + width: @width; +} + +.arguments { + .mixin-arguments(1px, solid, black); +} +.arguments2 { + .mixin-arguments(); +} +.arguments3 { + .mixin-arguments; +} + +.mixin-arguments2 (@width, @rest...) { + border: @arguments; + rest: @rest; + width: @width; +} +.arguments4 { + .mixin-arguments2(0, 1, 2, 3, 4); +} + +// Edge cases + +.edge-case { + .mixin-arguments("{"); +} + +// Division vs. Literal Slash +.border-radius(@r: 2px/5px) { + border-radius: @r; +} +.slash-vs-math { + .border-radius(); + .border-radius(5px/10px); + .border-radius((3px * 2)); +} +// semi-colon vs comma for delimiting + +.mixin-takes-one(@a) { + one: @a; +} + +.mixin-takes-two(@a; @b) { + one: @a; + two: @b; +} + +.comma-vs-semi-colon { + .mixin-takes-two(@a : a; @b : b, c); + .mixin-takes-two(@a : d, e; @b : f); + .mixin-takes-one(@a: g); + .mixin-takes-one(@a : h;); + .mixin-takes-one(i); + .mixin-takes-one(j;); + .mixin-takes-two(k, l); + .mixin-takes-one(m, n;); + .mixin-takes-two(o, p; q); + .mixin-takes-two(r, s; t;); +} + +.mixin-conflict(@a:defA, @b:defB, @c:defC) { + three: @a, @b, @c; +} + +.mixin-conflict(@a:defA, @b:defB, @c:defC, @d:defD) { + four: @a, @b, @c, @d; +} + +#named-conflict { + .mixin-conflict(11, 12, 13, @a:a); + .mixin-conflict(@a:a, 21, 22, 23); +} +@a: 3px; +.mixin-default-arg(@a: 1px, @b: @a, @c: @b) { + defaults: 1px 1px 1px; + defaults: 2px 2px 2px; +} + +.test-rule-mixin-default-arg { + .mixin-default-arg(); + .mixin-default-arg(2px); +} + +.mixin-comma-default1(@color; @padding; @margin: 2, 2, 2, 2) { + margin: @margin; +} +.selector { + .mixin-comma-default1(#33acfe; 4); +} +.mixin-comma-default2(@margin: 2, 2, 2, 2;) { + margin: @margin; +} +.selector2 { + .mixin-comma-default2(); +} +.mixin-comma-default3(@margin: 2, 2, 2, 2) { + margin: @margin; +} +.selector3 { + .mixin-comma-default3(4,2,2,2); +} + +.test-rule-calling-one-arg-mixin(@a) { +} + +.test-rule-calling-one-arg-mixin(@a, @b, @rest...) { +} + +div { + .test-rule-calling-one-arg-mixin(1); +} + +mixins-args-expand-op- { + @x: 1, 2, 3; + @y: 4 5 6; + + &1 {.m3(@x...)} + &2 {.m3(@y...)} + &3 {.wr(a, b, c)} + &4 {.wr(a; b; c, d)} + &5 {.wr(@x...)} + &6 {.m4(0; @x...)} + &7 {.m4(@x..., @a: 0)} + &8 {.m4(@b: 1.5; @x...)} + &9 {.aa(@y, @x..., and again, @y...)} + + .m3(@a, @b, @c) { + m3: @a, @b, @c; + } + + .m4(@a, @b, @c, @d) { + m4: @a, @b, @c, @d; + } + + .wr(@a...) { + &a {.m3(@a...)} + &b {.m4(0, @a...)} + &c {.m4(@a..., 4)} + } + + .aa(@a...) { + aa: @a; + a4: extract(@a, 5); + a8: extract(@a, 8); + } +} +#test-mixin-matching-when-default-2645 { + .mixin(@height) { + height: @height; + } + + .mixin(@width, @height: 10px) { + width: @width; + + .mixin(@height: @height); + } + + .mixin(@height: 20px); +} \ No newline at end of file diff --git a/test/Fixtures/lessjs-3.13.1/less/math/parens-division/new-division.less b/test/Fixtures/lessjs-3.13.1/less/math/parens-division/new-division.less new file mode 100644 index 00000000..b81c26e2 --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/less/math/parens-division/new-division.less @@ -0,0 +1,17 @@ +.units { + font: 1.2rem/2rem; + font: 8vw/9vw; + font: 10vh/12vh; + font: 12vm/15vm; + font: 12vmin/15vmin; + font: 1.2ch/1.5ch; +} + +.math { + a: 1 + 1; + b: 2px / 2; + c: 2px ./ 2; + d: (10px / 10px); + e: ((16px ./ 2) / 2) / 2; + f: ((16px ./ 2) / 2) ./ 2; +} \ No newline at end of file diff --git a/test/Fixtures/lessjs-3.13.1/less/math/parens-division/parens.less b/test/Fixtures/lessjs-3.13.1/less/math/parens-division/parens.less new file mode 100644 index 00000000..947a2c14 --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/less/math/parens-division/parens.less @@ -0,0 +1,46 @@ +.parens { + @var: 1px; + border: (@var * 2) solid black; + margin: (@var * 1) (@var + 2) (4 * 4) 3; + width: (6 * 6); + padding: 2px (6 * 6px); +} + +.more-parens { + @var: (2 * 2); + padding: (2 * @var) 4 4 (@var * 1px); + width-all: ((@var * @var) * 6); + width-first: ((@var * @var)) * 6; + width-keep: (@var * @var) * 6; + height: calc(100% + (25vh - 20px)); + height-keep: (7 * 7) + (8 * 8); + height-all: ((7 * 7) + (8 * 8)); + height-parts: ((7 * 7)) + ((8 * 8)); + margin-keep: (4 * (5 + 5) / 2) - (@var * 2); + margin-parts: ((4 * (5 + 5) / 2)) - ((@var * 2)); + margin-all: ((4 * (5 + 5) / 2) + (-(@var * 2))); + border-radius-keep: 4px * (1 + 1) / @var + 3px; + border-radius-parts: ((4px * (1 + 1))) / ((@var + 3px)); + border-radius-all: (4px * (1 + 1) / @var + 3px); + // margin: (6 * 6)px; +} + +.negative { + @var: 1; + neg-var: -@var; // -1 ? + neg-var-paren: -(@var); // -(1) ? +} + +.nested-parens { + width: 2 * (4 * (2 + (1 + 6))) - 1; + height: ((2 + 3) * (2 + 3) / (9 - 4)) + 1; +} + +.mixed-units { + margin: 2px 4em 1 5pc; + padding: (2px + 4px) 1em 2px 2; +} + +.test-rule-false-negatives { + a: ~"("; +} diff --git a/test/Fixtures/lessjs-3.13.1/less/math/strict-legacy/css.less b/test/Fixtures/lessjs-3.13.1/less/math/strict-legacy/css.less new file mode 100644 index 00000000..0cdebae8 --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/less/math/strict-legacy/css.less @@ -0,0 +1,108 @@ +@charset "utf-8"; +div { color: black; } +div { width: 99%; } + +* { + min-width: 45em; +} + +h1, h2 > a > p, h3 { + color: none; +} + +div.class { + color: blue; +} + +div#id { + color: green; +} + +.class#id { + color: purple; +} + +.one.two.three { + color: grey; +} + +@media print { + * { + font-size: 3em; + } +} + +@media screen { + * { + font-size: 10px; + } +} + +@font-face { + font-family: 'Garamond Pro'; +} + +a:hover, a:link { + color: #999; +} + +p, p:first-child { + text-transform: none; +} + +q:lang(no) { + quotes: none; +} + +p + h1 { + font-size: +2.2em; +} + +#shorthands { + border: 1px solid #000; + font: 12px/16px Arial; + font: 100%/16px Arial; + margin: 1px 0; + padding: 0 auto; +} + +#more-shorthands { + margin: 0; + padding: 1px 0 2px 0; + font: normal small/20px 'Trebuchet MS', Verdana, sans-serif; + font: 0/0 a; + border-radius: 5px / 10px; +} + +.misc { + -moz-border-radius: 2px; + display: -moz-inline-stack; + width: .1em; + background-color: #009998; + background: -webkit-gradient(linear, left top, left bottom, from(red), to(blue)); + margin: ; + .nested-multiple { + multiple-semi-colons: yes;;;;;; + }; + filter: alpha(opacity=100); + width: auto\9; +} + +#important { + color: red !important; + width: 100%!important; + height: 20px ! important; +} + +.def-font(@name) { + @font-face { + font-family: @name + } +} + +.def-font(font-a); +.def-font(font-b); + +.æøå { + margin: 0; +} diff --git a/test/Fixtures/lessjs-3.13.1/less/math/strict-legacy/media-math.less b/test/Fixtures/lessjs-3.13.1/less/math/strict-legacy/media-math.less new file mode 100644 index 00000000..b3df9118 --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/less/math/strict-legacy/media-math.less @@ -0,0 +1,9 @@ +@var: 16; + +@media (min-width: @var + 1) { + .foo { bar: 1; } +} + +@media (min-width: @var / 9) { + .foo { bar: 1; } +} \ No newline at end of file diff --git a/test/Fixtures/lessjs-3.13.1/less/math/strict-legacy/mixins-args.less b/test/Fixtures/lessjs-3.13.1/less/math/strict-legacy/mixins-args.less new file mode 100644 index 00000000..1bc868a5 --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/less/math/strict-legacy/mixins-args.less @@ -0,0 +1,263 @@ +.mixin (@a: 1px, @b: 50%) { + width: (@a * 5); + height: (@b - 1%); +} + +.mixina (@style, @width, @color: black) { + border: @width @style @color; +} + +.mixiny +(@a: 0, @b: 0) { + margin: @a; + padding: @b; +} + +.hidden() { + color: transparent; // asd +} + +#hidden { + .hidden; +} + +#hidden1 { + .hidden(); +} + +.two-args { + color: blue; + .mixin(2px, 100%); + .mixina(dotted, 2px); +} + +.one-arg { + .mixin(3px); +} + +.no-parens { + .mixin; +} + +.no-args { + .mixin(); +} + +.var-args { + @var: 9; + .mixin(@var, (@var * 2)); +} + +.multi-mix { + .mixin(2px, 30%); + .mixiny(4, 5); +} + +.maxa(@arg1: 10, @arg2: #f00) { + padding: (@arg1 * 2px); + color: @arg2; +} + +body { + .maxa(15); +} + +@glob: 5; +.global-mixin(@a:2) { + width: (@glob + @a); +} + +.scope-mix { + .global-mixin(3); +} + +.nested-ruleset (@width: 200px) { + width: @width; + .column { margin: @width; } +} +.content { + .nested-ruleset(600px); +} + +// + +.same-var-name2(@radius) { + radius: @radius; +} +.same-var-name(@radius) { + .same-var-name2(@radius); +} +#same-var-name { + .same-var-name(5px); +} + +// + +.var-inside () { + @var: 10px; + width: @var; +} +#var-inside { .var-inside; } + +.mixin-arguments (@width: 0px, ...) { + border: @arguments; + width: @width; +} + +.arguments { + .mixin-arguments(1px, solid, black); +} +.arguments2 { + .mixin-arguments(); +} +.arguments3 { + .mixin-arguments; +} + +.mixin-arguments2 (@width, @rest...) { + border: @arguments; + rest: @rest; + width: @width; +} +.arguments4 { + .mixin-arguments2(0, 1, 2, 3, 4); +} + +// Edge cases + +.edge-case { + .mixin-arguments("{"); +} + +// Division vs. Literal Slash +.border-radius(@r: 2px/5px) { + border-radius: @r; +} +.slash-vs-math { + .border-radius(); + .border-radius(5px/10px); + .border-radius((3px * 2)); +} +// semi-colon vs comma for delimiting + +.mixin-takes-one(@a) { + one: @a; +} + +.mixin-takes-two(@a; @b) { + one: @a; + two: @b; +} + +.comma-vs-semi-colon { + .mixin-takes-two(@a : a; @b : b, c); + .mixin-takes-two(@a : d, e; @b : f); + .mixin-takes-one(@a: g); + .mixin-takes-one(@a : h;); + .mixin-takes-one(i); + .mixin-takes-one(j;); + .mixin-takes-two(k, l); + .mixin-takes-one(m, n;); + .mixin-takes-two(o, p; q); + .mixin-takes-two(r, s; t;); +} + +.mixin-conflict(@a:defA, @b:defB, @c:defC) { + three: @a, @b, @c; +} + +.mixin-conflict(@a:defA, @b:defB, @c:defC, @d:defD) { + four: @a, @b, @c, @d; +} + +#named-conflict { + .mixin-conflict(11, 12, 13, @a:a); + .mixin-conflict(@a:a, 21, 22, 23); +} +@a: 3px; +.mixin-default-arg(@a: 1px, @b: @a, @c: @b) { + defaults: 1px 1px 1px; + defaults: 2px 2px 2px; +} + +.test-rule-mixin-default-arg { + .mixin-default-arg(); + .mixin-default-arg(2px); +} + +.mixin-comma-default1(@color; @padding; @margin: 2, 2, 2, 2) { + margin: @margin; +} +.selector { + .mixin-comma-default1(#33acfe; 4); +} +.mixin-comma-default2(@margin: 2, 2, 2, 2;) { + margin: @margin; +} +.selector2 { + .mixin-comma-default2(); +} +.mixin-comma-default3(@margin: 2, 2, 2, 2) { + margin: @margin; +} +.selector3 { + .mixin-comma-default3(4,2,2,2); +} + +.test-rule-calling-one-arg-mixin(@a) { +} + +.test-rule-calling-one-arg-mixin(@a, @b, @rest...) { +} + +div { + .test-rule-calling-one-arg-mixin(1); +} + +mixins-args-expand-op- { + @x: 1, 2, 3; + @y: 4 5 6; + + &1 {.m3(@x...)} + &2 {.m3(@y...)} + &3 {.wr(a, b, c)} + &4 {.wr(a; b; c, d)} + &5 {.wr(@x...)} + &6 {.m4(0; @x...)} + &7 {.m4(@x..., @a: 0)} + &8 {.m4(@b: 1.5; @x...)} + &9 {.aa(@y, @x..., and again, @y...)} + + .m3(@a, @b, @c) { + m3: @a, @b, @c; + } + + .m4(@a, @b, @c, @d) { + m4: @a, @b, @c, @d; + } + + .wr(@a...) { + &a {.m3(@a...)} + &b {.m4(0, @a...)} + &c {.m4(@a..., 4)} + } + + .aa(@a...) { + aa: @a; + a4: extract(@a, 5); + a8: extract(@a, 8); + } +} +#test-mixin-matching-when-default-2645 { + .mixin(@height) { + height: @height; + } + + .mixin(@width, @height: 10px) { + width: @width; + + .mixin(@height: @height); + } + + .mixin(@height: 20px); +} \ No newline at end of file diff --git a/test/Fixtures/lessjs-3.13.1/less/math/strict-legacy/parens.less b/test/Fixtures/lessjs-3.13.1/less/math/strict-legacy/parens.less new file mode 100644 index 00000000..4520119f --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/less/math/strict-legacy/parens.less @@ -0,0 +1,50 @@ +.parens { + @var: 1px; + border: (@var * 2) solid black; + margin: (@var * 1) (@var + 2) (4 * 4) 3; + width: (6 * 6); + padding: 2px (6 * 6px); +} + +.in-function { + value: min((1 + 1)) + 1; +} + +.more-parens { + @var: (2 * 2); + padding: (2 * @var) 4 4 (@var * 1px); + width-all: ((@var * @var) * 6); + width-first: ((@var * @var)) * 6; + width-keep: (@var * @var) * 6; + height: calc(100% + (25vh - 20px)); + height-keep: (7 * 7) + (8 * 8); + height-all: ((7 * 7) + (8 * 8)); + height-parts: ((7 * 7)) + ((8 * 8)); + margin-keep: (4 * (5 + 5) / 2) - (@var * 2); + margin-parts: ((4 * (5 + 5) / 2)) - ((@var * 2)); + margin-all: ((4 * (5 + 5) / 2) + (-(@var * 2))); + border-radius-keep: 4px * (1 + 1) / @var + 3px; + border-radius-parts: ((4px * (1 + 1))) / ((@var + 3px)); + border-radius-all: (4px * (1 + 1) / @var + 3px); + // margin: (6 * 6)px; +} + +.negative { + @var: 1; + neg-var: -@var; // -1 ? + neg-var-paren: -(@var); // -(1) ? +} + +.nested-parens { + width: 2 * (4 * (2 + (1 + 6))) - 1; + height: ((2 + 3) * (2 + 3) / (9 - 4)) + 1; +} + +.mixed-units { + margin: 2px 4em 1 5pc; + padding: (2px + 4px) 1em 2px 2; +} + +.test-rule-false-negatives { + a: ~"("; +} diff --git a/test/Fixtures/lessjs-3.13.1/less/math/strict/css.less b/test/Fixtures/lessjs-3.13.1/less/math/strict/css.less new file mode 100644 index 00000000..0cdebae8 --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/less/math/strict/css.less @@ -0,0 +1,108 @@ +@charset "utf-8"; +div { color: black; } +div { width: 99%; } + +* { + min-width: 45em; +} + +h1, h2 > a > p, h3 { + color: none; +} + +div.class { + color: blue; +} + +div#id { + color: green; +} + +.class#id { + color: purple; +} + +.one.two.three { + color: grey; +} + +@media print { + * { + font-size: 3em; + } +} + +@media screen { + * { + font-size: 10px; + } +} + +@font-face { + font-family: 'Garamond Pro'; +} + +a:hover, a:link { + color: #999; +} + +p, p:first-child { + text-transform: none; +} + +q:lang(no) { + quotes: none; +} + +p + h1 { + font-size: +2.2em; +} + +#shorthands { + border: 1px solid #000; + font: 12px/16px Arial; + font: 100%/16px Arial; + margin: 1px 0; + padding: 0 auto; +} + +#more-shorthands { + margin: 0; + padding: 1px 0 2px 0; + font: normal small/20px 'Trebuchet MS', Verdana, sans-serif; + font: 0/0 a; + border-radius: 5px / 10px; +} + +.misc { + -moz-border-radius: 2px; + display: -moz-inline-stack; + width: .1em; + background-color: #009998; + background: -webkit-gradient(linear, left top, left bottom, from(red), to(blue)); + margin: ; + .nested-multiple { + multiple-semi-colons: yes;;;;;; + }; + filter: alpha(opacity=100); + width: auto\9; +} + +#important { + color: red !important; + width: 100%!important; + height: 20px ! important; +} + +.def-font(@name) { + @font-face { + font-family: @name + } +} + +.def-font(font-a); +.def-font(font-b); + +.æøå { + margin: 0; +} diff --git a/test/Fixtures/lessjs-3.13.1/less/math/strict/media-math.less b/test/Fixtures/lessjs-3.13.1/less/math/strict/media-math.less new file mode 100644 index 00000000..b3df9118 --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/less/math/strict/media-math.less @@ -0,0 +1,9 @@ +@var: 16; + +@media (min-width: @var + 1) { + .foo { bar: 1; } +} + +@media (min-width: @var / 9) { + .foo { bar: 1; } +} \ No newline at end of file diff --git a/test/Fixtures/lessjs-3.13.1/less/math/strict/mixins-args.less b/test/Fixtures/lessjs-3.13.1/less/math/strict/mixins-args.less new file mode 100644 index 00000000..fe006de9 --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/less/math/strict/mixins-args.less @@ -0,0 +1,264 @@ +.mixin (@a: 1px, @b: 50%) { + width: (@a * 5); + height: (@b - 1%); + depth: @b - 1%; +} + +.mixina (@style, @width, @color: black) { + border: @width @style @color; +} + +.mixiny +(@a: 0, @b: 0) { + margin: @a; + padding: @b; +} + +.hidden() { + color: transparent; // asd +} + +#hidden { + .hidden; +} + +#hidden1 { + .hidden(); +} + +.two-args { + color: blue; + .mixin(2px, 100%); + .mixina(dotted, 2px); +} + +.one-arg { + .mixin(3px); +} + +.no-parens { + .mixin; +} + +.no-args { + .mixin(); +} + +.var-args { + @var: 9; + .mixin(@var, (@var * 2) / 2); +} + +.multi-mix { + .mixin(2px, 30%); + .mixiny(4, 5); +} + +.maxa(@arg1: 10, @arg2: #f00) { + padding: (@arg1 * 2px); + color: @arg2; +} + +body { + .maxa(15); +} + +@glob: 5; +.global-mixin(@a:2) { + width: (@glob + @a); +} + +.scope-mix { + .global-mixin(3); +} + +.nested-ruleset (@width: 200px) { + width: @width; + .column { margin: @width; } +} +.content { + .nested-ruleset(600px); +} + +// + +.same-var-name2(@radius) { + radius: @radius; +} +.same-var-name(@radius) { + .same-var-name2(@radius); +} +#same-var-name { + .same-var-name(5px); +} + +// + +.var-inside () { + @var: 10px; + width: @var; +} +#var-inside { .var-inside; } + +.mixin-arguments (@width: 0px, ...) { + border: @arguments; + width: @width; +} + +.arguments { + .mixin-arguments(1px, solid, black); +} +.arguments2 { + .mixin-arguments(); +} +.arguments3 { + .mixin-arguments; +} + +.mixin-arguments2 (@width, @rest...) { + border: @arguments; + rest: @rest; + width: @width; +} +.arguments4 { + .mixin-arguments2(0, 1, 2, 3, 4); +} + +// Edge cases + +.edge-case { + .mixin-arguments("{"); +} + +// Division vs. Literal Slash +.border-radius(@r: 2px/5px) { + border-radius: @r; +} +.slash-vs-math { + .border-radius(); + .border-radius(5px/10px); + .border-radius((3px * 2)); +} +// semi-colon vs comma for delimiting + +.mixin-takes-one(@a) { + one: @a; +} + +.mixin-takes-two(@a; @b) { + one: @a; + two: @b; +} + +.comma-vs-semi-colon { + .mixin-takes-two(@a : a; @b : b, c); + .mixin-takes-two(@a : d, e; @b : f); + .mixin-takes-one(@a: g); + .mixin-takes-one(@a : h;); + .mixin-takes-one(i); + .mixin-takes-one(j;); + .mixin-takes-two(k, l); + .mixin-takes-one(m, n;); + .mixin-takes-two(o, p; q); + .mixin-takes-two(r, s; t;); +} + +.mixin-conflict(@a:defA, @b:defB, @c:defC) { + three: @a, @b, @c; +} + +.mixin-conflict(@a:defA, @b:defB, @c:defC, @d:defD) { + four: @a, @b, @c, @d; +} + +#named-conflict { + .mixin-conflict(11, 12, 13, @a:a); + .mixin-conflict(@a:a, 21, 22, 23); +} +@a: 3px; +.mixin-default-arg(@a: 1px, @b: @a, @c: @b) { + defaults: 1px 1px 1px; + defaults: 2px 2px 2px; +} + +.test-rule-mixin-default-arg { + .mixin-default-arg(); + .mixin-default-arg(2px); +} + +.mixin-comma-default1(@color; @padding; @margin: 2, 2, 2, 2) { + margin: @margin; +} +.selector { + .mixin-comma-default1(#33acfe; 4); +} +.mixin-comma-default2(@margin: 2, 2, 2, 2;) { + margin: @margin; +} +.selector2 { + .mixin-comma-default2(); +} +.mixin-comma-default3(@margin: 2, 2, 2, 2) { + margin: @margin; +} +.selector3 { + .mixin-comma-default3(4,2,2,2); +} + +.test-rule-calling-one-arg-mixin(@a) { +} + +.test-rule-calling-one-arg-mixin(@a, @b, @rest...) { +} + +div { + .test-rule-calling-one-arg-mixin(1); +} + +mixins-args-expand-op- { + @x: 1, 2, 3; + @y: 4 5 6; + + &1 {.m3(@x...)} + &2 {.m3(@y...)} + &3 {.wr(a, b, c)} + &4 {.wr(a; b; c, d)} + &5 {.wr(@x...)} + &6 {.m4(0; @x...)} + &7 {.m4(@x..., @a: 0)} + &8 {.m4(@b: 1.5; @x...)} + &9 {.aa(@y, @x..., and again, @y...)} + + .m3(@a, @b, @c) { + m3: @a, @b, @c; + } + + .m4(@a, @b, @c, @d) { + m4: @a, @b, @c, @d; + } + + .wr(@a...) { + &a {.m3(@a...)} + &b {.m4(0, @a...)} + &c {.m4(@a..., 4)} + } + + .aa(@a...) { + aa: @a; + a4: extract(@a, 5); + a8: extract(@a, 8); + } +} +#test-mixin-matching-when-default-2645 { + .mixin(@height) { + height: @height; + } + + .mixin(@width, @height: 10px) { + width: @width; + + .mixin(@height: @height); + } + + .mixin(@height: 20px); +} \ No newline at end of file diff --git a/test/Fixtures/lessjs-3.13.1/less/math/strict/parens.less b/test/Fixtures/lessjs-3.13.1/less/math/strict/parens.less new file mode 100644 index 00000000..947a2c14 --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/less/math/strict/parens.less @@ -0,0 +1,46 @@ +.parens { + @var: 1px; + border: (@var * 2) solid black; + margin: (@var * 1) (@var + 2) (4 * 4) 3; + width: (6 * 6); + padding: 2px (6 * 6px); +} + +.more-parens { + @var: (2 * 2); + padding: (2 * @var) 4 4 (@var * 1px); + width-all: ((@var * @var) * 6); + width-first: ((@var * @var)) * 6; + width-keep: (@var * @var) * 6; + height: calc(100% + (25vh - 20px)); + height-keep: (7 * 7) + (8 * 8); + height-all: ((7 * 7) + (8 * 8)); + height-parts: ((7 * 7)) + ((8 * 8)); + margin-keep: (4 * (5 + 5) / 2) - (@var * 2); + margin-parts: ((4 * (5 + 5) / 2)) - ((@var * 2)); + margin-all: ((4 * (5 + 5) / 2) + (-(@var * 2))); + border-radius-keep: 4px * (1 + 1) / @var + 3px; + border-radius-parts: ((4px * (1 + 1))) / ((@var + 3px)); + border-radius-all: (4px * (1 + 1) / @var + 3px); + // margin: (6 * 6)px; +} + +.negative { + @var: 1; + neg-var: -@var; // -1 ? + neg-var-paren: -(@var); // -(1) ? +} + +.nested-parens { + width: 2 * (4 * (2 + (1 + 6))) - 1; + height: ((2 + 3) * (2 + 3) / (9 - 4)) + 1; +} + +.mixed-units { + margin: 2px 4em 1 5pc; + padding: (2px + 4px) 1em 2px 2; +} + +.test-rule-false-negatives { + a: ~"("; +} diff --git a/test/Fixtures/lessjs-3.13.1/less/modifyVars/extended.json b/test/Fixtures/lessjs-3.13.1/less/modifyVars/extended.json new file mode 100644 index 00000000..6bd2a484 --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/less/modifyVars/extended.json @@ -0,0 +1,5 @@ +{ + "the-border": "1px", + "base-color": "#111", + "red": "#842210" +} \ No newline at end of file diff --git a/test/Fixtures/lessjs-3.13.1/less/modifyVars/extended.less b/test/Fixtures/lessjs-3.13.1/less/modifyVars/extended.less new file mode 100644 index 00000000..0badc671 --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/less/modifyVars/extended.less @@ -0,0 +1,11 @@ +#header { + color: (@base-color * 3); + border-left: @the-border; + border-right: (@the-border * 2); +} +#footer { + color: (@base-color + #003300); + border-color: @red; +} +@red: blue; // var is overridden by the modifyVars +//@base-color: green; \ No newline at end of file diff --git a/test/Fixtures/lessjs-3.13.1/less/namespacing/imports/a-better-bootstrap.less b/test/Fixtures/lessjs-3.13.1/less/namespacing/imports/a-better-bootstrap.less new file mode 100644 index 00000000..b39c05f4 --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/less/namespacing/imports/a-better-bootstrap.less @@ -0,0 +1,13 @@ +#theme() { + .light() {} //... + .dark() { + // ... + .navbar() { + .colors() { + primary: blue; + secondary: lightblue; + } + } + // ... + } +} \ No newline at end of file diff --git a/test/Fixtures/lessjs-3.13.1/less/namespacing/imports/library.less b/test/Fixtures/lessjs-3.13.1/less/namespacing/imports/library.less new file mode 100644 index 00000000..ca2f0093 --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/less/namespacing/imports/library.less @@ -0,0 +1,14 @@ + +// I am a library +#library { + .sizes() { + @width: 600px; + } + .add-one(@val) { + @return: @val + 1px; + } + .sizes(@test) when (@test = true) { + @width: 400px; + } +} + diff --git a/test/Fixtures/lessjs-3.13.1/less/namespacing/namespacing-1.less b/test/Fixtures/lessjs-3.13.1/less/namespacing/namespacing-1.less new file mode 100644 index 00000000..b5890e53 --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/less/namespacing/namespacing-1.less @@ -0,0 +1,52 @@ +@varToGet: default-color; +.foo { + color1: @defaults[@default-color]; + color2: @defaults[@nested][@color]; + color3: @theme[color]; + color4: @theme[@nested][color]; + color5: @defaults[@@varToGet]; + prop: #ns1[foo]; + var: #ns1[@foo]; + sub: #ns1.vars[$sub]; +} + +@defaults: { + @default-color: red; + @nested: { + @color: yellow; + } +}; + +@theme: { + color: red; + @nested: { + color: yellow; + } +}; + +#ns1 { + foo: bar; + @foo: baz; + .vars() { + sub: value; + } +} + +// Test that it matches more than one mixin +#ns1 { + foo: uno; + @foo: dos; + .vars() { + sub: tres; + } +} + +// https://github.com/less/less.js/issues/3346 +#DEF() { + .colors() { primary: grey; } +} + +.button { + color: #DEF.colors[primary]; + border-color: #AAA #CCC; +} \ No newline at end of file diff --git a/test/Fixtures/lessjs-3.13.1/less/namespacing/namespacing-2.less b/test/Fixtures/lessjs-3.13.1/less/namespacing/namespacing-2.less new file mode 100644 index 00000000..9e821108 --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/less/namespacing/namespacing-2.less @@ -0,0 +1,27 @@ +@import "imports/library.less"; + +.bar { + width: #library.sizes[@width]; + height: #library.add-one(1px)[@return]; +} + +// I'm gonna override some values +#library { + .sizes() { + @width: 800px; + } +} + +.foo { + width: #library.sizes[@width]; +} + +.foods() { + @dessert: ice cream; +} + +@key-to-lookup: dessert; + +.lunch { + treat: .foods[@@key-to-lookup]; +} \ No newline at end of file diff --git a/test/Fixtures/lessjs-3.13.1/less/namespacing/namespacing-3.less b/test/Fixtures/lessjs-3.13.1/less/namespacing/namespacing-3.less new file mode 100644 index 00000000..f184f690 --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/less/namespacing/namespacing-3.less @@ -0,0 +1,51 @@ +@map: { + @width: 400px; + @colors: { + toolbar-background: red; + toolbar-foreground: inherit; + } +}; + +#ns { + .mixin() { + @height: 200px; + } +} + +@breakpoints: { + mobile: 320px; + tablet: 768px; + desktop: 1024px; +}; + +@media (min-width: @breakpoints[mobile]) { + .toolbar { + width: @map[@width]; + height: #ns.mixin[@height]; + background: @map[@colors][toolbar-background]; + color: @map[@colors][toolbar-foreground]; + } +} + +// !important after map usage +// https://github.com/less/less.js/issues/3430 +@margins: { + zero: 0; + ten: 10px; +} +.cell { + margin: @margins[zero] @margins[ten]/2 !important; +} + +.mixin(@color: black; @margin: 10px; @padding: 20px) { + color: @color; + margin: @margin; + padding: @padding; + width: @margins[zero] !important +} +.class1 { + .mixin(@margin: 20px; @color: #33acfe) !important; +} +.class2 { + .mixin(#efca44; @padding: 40px 10px); +} diff --git a/test/Fixtures/lessjs-3.13.1/less/namespacing/namespacing-4.less b/test/Fixtures/lessjs-3.13.1/less/namespacing/namespacing-4.less new file mode 100644 index 00000000..cbd32a27 --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/less/namespacing/namespacing-4.less @@ -0,0 +1,33 @@ +#ns { + .mixin(@a) when (@a = 1) { + @a: 20px; + } +} + +.alias() { + #ns.mixin(1); +} + +#library { + .core() { + .colors() { + primary: blue; + foreground: inherit; + } + } +} + +#library { + .core() { + .colors() { + primary: rebeccapurple; + } + } +} + +.foo { + .colors() { #library.core.colors; } + width: .alias[@a]; + background: .colors[primary]; + color: .colors[foreground]; +} \ No newline at end of file diff --git a/test/Fixtures/lessjs-3.13.1/less/namespacing/namespacing-5.less b/test/Fixtures/lessjs-3.13.1/less/namespacing/namespacing-5.less new file mode 100644 index 00000000..5a839147 --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/less/namespacing/namespacing-5.less @@ -0,0 +1,32 @@ +@import "imports/a-better-bootstrap"; + +#theme.dark.navbar { + .colors() { + primary: rebeccapurple; + } + .colors(dark) { + primary: black; + secondary: grey; + } + .test-rule() { + val: output; + } +} + +.my-navbar { + #theme.dark.navbar(); + background: .colors[primary]; + .test-rule(); +} + +.another-navbar { + @colors: #theme.dark.navbar.colors() !important; + background: @colors[primary]; + border: 1px solid @colors[secondary]; +} + +.another { + @colors: #theme.dark.navbar.colors(dark); + background: @colors[primary]; + border: 1px solid @colors[secondary]; +} \ No newline at end of file diff --git a/test/Fixtures/lessjs-3.13.1/less/namespacing/namespacing-6.less b/test/Fixtures/lessjs-3.13.1/less/namespacing/namespacing-6.less new file mode 100644 index 00000000..334122eb --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/less/namespacing/namespacing-6.less @@ -0,0 +1,26 @@ +.wrapper(@another-mixin) { + @another-mixin(); +} + +.something(foo) { + width: 10px; +} + +.output-height() { + height: 10px; +} + +.rule-1 { + @alias: .something(foo); + @alias(); +} + +.rule-2 { + @alias: .something(foo); + .wrapper(@alias); +} + +.rule-3 { + .wrapper(.something(foo)); + .wrapper(.output-height()); +} \ No newline at end of file diff --git a/test/Fixtures/lessjs-3.13.1/less/namespacing/namespacing-7.less b/test/Fixtures/lessjs-3.13.1/less/namespacing/namespacing-7.less new file mode 100644 index 00000000..18c34343 --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/less/namespacing/namespacing-7.less @@ -0,0 +1,48 @@ +#ns { + .options() { + option: true; + } +} + +@ns: { + @options: { + option: true; + }; +}; + +& when (#ns.options[option]) { + .output { + a: b; + } +} + +& when (#ns.options[option] = true) { + .output-2 { + c: d; + } +} + +& when (#ns.options[option] = false) { + .no-reach { + c: d; + } +} + +// DR access +& when (@ns[@options][option]) { + .dr { + a: b; + } +} + +& when (@ns[@options][option] = true) { + .dr-2 { + c: d; + } +} + +& when (@ns[@options][option] = false) { + .dr-no-reach { + c: d; + } +} \ No newline at end of file diff --git a/test/Fixtures/lessjs-3.13.1/less/namespacing/namespacing-8.less b/test/Fixtures/lessjs-3.13.1/less/namespacing/namespacing-8.less new file mode 100644 index 00000000..e73835c6 --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/less/namespacing/namespacing-8.less @@ -0,0 +1,31 @@ +// see: https://github.com/less/less.js/issues/3368 +@vars: { + background-color: black; + color: contrast($background-color, #000, #fff); +} + +:root { + each(@vars, { + --@{key}: @value; + }); +} + +div { + display: inline-block; + padding: 1rem; + background-color: var(--background-color); + color: var(--color); +} + +// see: https://github.com/less/less.js/issues/3339 +// still fails - move to 4.0 +// @components: { +// columns: true; +// ratios: false; +// }; + +// each(@components, { +// & when (@value = true) { +// @import (optional) "components/@{key}.less"; +// } +// }); \ No newline at end of file diff --git a/test/Fixtures/lessjs-3.13.1/less/namespacing/namespacing-functions.less b/test/Fixtures/lessjs-3.13.1/less/namespacing/namespacing-functions.less new file mode 100644 index 00000000..8e09263a --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/less/namespacing/namespacing-functions.less @@ -0,0 +1,37 @@ +.add(@a, @b) { + @r: @a + @b; +} +.foo { + width: .add(10px, 10px)[]; + bar: @return[]; +} + +@return: { + single: val; +} + +// Issue #3405 +#lookup { + @prop: test; +} + +.mix (@var) { + width: @var; +} + +.bar { + .mix(#lookup[@prop]); +} + +// Issue #3406 +.mix2 (@n) { + value: @n; +} +#lookup2 { + @var: .mix2(lookup); +} +.example { + // #lookup[@var](); -- fails, need the following alias + @dr: #lookup2[@var]; + @dr(); +} \ No newline at end of file diff --git a/test/Fixtures/lessjs-3.13.1/less/namespacing/namespacing-media.less b/test/Fixtures/lessjs-3.13.1/less/namespacing/namespacing-media.less new file mode 100644 index 00000000..c23fdbb1 --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/less/namespacing/namespacing-media.less @@ -0,0 +1,26 @@ +#ns { + .sizes() { + @small: 600px; + } + .breakpoint(@size) { + @val: #ns.sizes[@@size]; + @min: (min-width: @val); + @max: not all and @min; + } +} + +#ns { + .sizes() { + @small: 480px; + } +} + +.valToGet() { + keyword: small; +} + +@media #ns.breakpoint(.valToGet[])[@max] { + .selector { + prop: val; + } +} \ No newline at end of file diff --git a/test/Fixtures/lessjs-3.13.1/less/namespacing/namespacing-operations.less b/test/Fixtures/lessjs-3.13.1/less/namespacing/namespacing-operations.less new file mode 100644 index 00000000..109c5680 --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/less/namespacing/namespacing-operations.less @@ -0,0 +1,15 @@ +#ns { + .options() { + val1: 10px; + } +} + +@ns: { + @options: { + val2: 20px; + } +} + +.foo { + val: #ns.options[val1] + @ns[@options][val2] + 5px; +} \ No newline at end of file diff --git a/test/Fixtures/lessjs-3.13.1/less/no-js-errors/no-js-errors.less b/test/Fixtures/lessjs-3.13.1/less/no-js-errors/no-js-errors.less new file mode 100644 index 00000000..15ef8a45 --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/less/no-js-errors/no-js-errors.less @@ -0,0 +1,3 @@ +.a { + a: `1 + 1`; +} \ No newline at end of file diff --git a/test/Fixtures/lessjs-3.13.1/less/no-js-errors/no-js-errors.txt b/test/Fixtures/lessjs-3.13.1/less/no-js-errors/no-js-errors.txt new file mode 100644 index 00000000..10b3cd15 --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/less/no-js-errors/no-js-errors.txt @@ -0,0 +1,4 @@ +SyntaxError: Inline JavaScript is not enabled. Is it set in your options? in {path}no-js-errors.less on line 2, column 6: +1 .a { +2 a: `1 + 1`; +3 } diff --git a/test/Fixtures/lessjs-3.13.1/less/no-strict-math/mixins-guards.less b/test/Fixtures/lessjs-3.13.1/less/no-strict-math/mixins-guards.less new file mode 100644 index 00000000..9774e117 --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/less/no-strict-math/mixins-guards.less @@ -0,0 +1,25 @@ +// https://github.com/less/less.js/issues/2798 +.test-rule-2798 when ((8+4) < 13) { + regression: fixed; +} +.test-rule-2798 when ((8+6) < 13) { + regression: should not be visible; +} +.conditions-parser-1 when (8+4 < 13) { + only-atomic: ok; +} +.conditions-parser-1 when (8+6 < 13) { + only-atomic: should not be visible; +} +.conditions-parser-2 when (8+(5-1) < 13) { + only-atomic-with-nested-parenthesis: ok; +} +.conditions-parser-2 when (8+(15-1) < 13) { + only-atomic-with-nested-parenthesis: should not be visible; +} +.conditions-parser-3 when (8 < (13+1)) { + only-atomic-nested-parenthesis-on-right: ok; +} +.conditions-parser-3 when (8 < (3+1)) { + only-atomic-nested-parenthesis-on-right: should not be visible; +} diff --git a/test/Fixtures/lessjs-3.13.1/less/no-strict-math/no-sm-operations.less b/test/Fixtures/lessjs-3.13.1/less/no-strict-math/no-sm-operations.less new file mode 100644 index 00000000..d4bfdb97 --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/less/no-strict-math/no-sm-operations.less @@ -0,0 +1,16 @@ +.named-colors-in-expressions { + color-0: 0 -red; + color-1: 1 - red; + color-2: red * 2; + color-3: 2 * red; + @3: -red; + &-bar@{3} {x: y} + @color: red; + &-bar@{color} {a: a}; + background-color: blue-2; + color: green-black; + animation: blue-change 5s infinite; +} +.division { + value: ((16px ./ 2) / 2) / 2; +} \ No newline at end of file diff --git a/test/Fixtures/lessjs-3.13.1/less/postProcessorPlugin/postProcessor.less b/test/Fixtures/lessjs-3.13.1/less/postProcessorPlugin/postProcessor.less new file mode 100644 index 00000000..143ad879 --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/less/postProcessorPlugin/postProcessor.less @@ -0,0 +1,4 @@ +@color: inherit; +.test-rule { + color: @color; +} diff --git a/test/Fixtures/lessjs-3.13.1/less/preProcessorPlugin/preProcessor.less b/test/Fixtures/lessjs-3.13.1/less/preProcessorPlugin/preProcessor.less new file mode 100644 index 00000000..d2db1259 --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/less/preProcessorPlugin/preProcessor.less @@ -0,0 +1,3 @@ +.test-rule { + color: @color; +} diff --git a/test/Fixtures/lessjs-3.13.1/less/process-imports/google.less b/test/Fixtures/lessjs-3.13.1/less/process-imports/google.less new file mode 100644 index 00000000..844b081a --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/less/process-imports/google.less @@ -0,0 +1,3 @@ +@import url('https://fonts.googleapis.com/css?family=Open+Sans:400,700'); + +.a { b: c; } \ No newline at end of file diff --git a/test/Fixtures/lessjs-3.13.1/less/rewrite-urls-all/folder/file.less b/test/Fixtures/lessjs-3.13.1/less/rewrite-urls-all/folder/file.less new file mode 100644 index 00000000..7ab3847e --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/less/rewrite-urls-all/folder/file.less @@ -0,0 +1,8 @@ +#imported-file { + background-image: url("./relative/path"); + background-image: url("../relative/path"); + background-image: url("../../relative/path"); + background-image: url("module"); + background-image: url("module/path"); + background-image: url("module/path/../relative/path"); +} diff --git a/test/Fixtures/lessjs-3.13.1/less/rewrite-urls-all/rewrite-urls-all.less b/test/Fixtures/lessjs-3.13.1/less/rewrite-urls-all/rewrite-urls-all.less new file mode 100644 index 00000000..aae6d610 --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/less/rewrite-urls-all/rewrite-urls-all.less @@ -0,0 +1,11 @@ +@import "./folder/file.less"; + +#rewrite-urls-all { + background-image: url("./relative/path"); + background-image: url("../relative/path"); + background-image: url("./relative/../path"); + background-image: url("./relative/../path/.."); + background-image: url("module"); + background-image: url("module/path"); + background-image: url("module/path/../relative/path"); +} diff --git a/test/Fixtures/lessjs-3.13.1/less/rewrite-urls-local/folder/file.less b/test/Fixtures/lessjs-3.13.1/less/rewrite-urls-local/folder/file.less new file mode 100644 index 00000000..7ab3847e --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/less/rewrite-urls-local/folder/file.less @@ -0,0 +1,8 @@ +#imported-file { + background-image: url("./relative/path"); + background-image: url("../relative/path"); + background-image: url("../../relative/path"); + background-image: url("module"); + background-image: url("module/path"); + background-image: url("module/path/../relative/path"); +} diff --git a/test/Fixtures/lessjs-3.13.1/less/rewrite-urls-local/rewrite-urls-local.less b/test/Fixtures/lessjs-3.13.1/less/rewrite-urls-local/rewrite-urls-local.less new file mode 100644 index 00000000..fb9a40e5 --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/less/rewrite-urls-local/rewrite-urls-local.less @@ -0,0 +1,11 @@ +@import "./folder/file.less"; + +#rewrite-urls-local { + background-image: url("./relative/path"); + background-image: url("../relative/path"); + background-image: url("./relative/../path"); + background-image: url("./relative/../path/.."); + background-image: url("module"); + background-image: url("module/path"); + background-image: url("module/path/../relative/path"); +} diff --git a/test/Fixtures/lessjs-3.13.1/less/root-registry/file.less b/test/Fixtures/lessjs-3.13.1/less/root-registry/file.less new file mode 100644 index 00000000..55cfd4ea --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/less/root-registry/file.less @@ -0,0 +1 @@ +@charset "utf-8"; \ No newline at end of file diff --git a/test/Fixtures/lessjs-3.13.1/less/root-registry/root.less b/test/Fixtures/lessjs-3.13.1/less/root-registry/root.less new file mode 100644 index 00000000..a77c8c1e --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/less/root-registry/root.less @@ -0,0 +1,3 @@ +// https://github.com/less/less.js/issues/3112 +@file: ext(); +@import '@{file}'; \ No newline at end of file diff --git a/test/Fixtures/lessjs-3.13.1/less/rootpath-rewrite-urls-all/folder/file.less b/test/Fixtures/lessjs-3.13.1/less/rootpath-rewrite-urls-all/folder/file.less new file mode 100644 index 00000000..7ab3847e --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/less/rootpath-rewrite-urls-all/folder/file.less @@ -0,0 +1,8 @@ +#imported-file { + background-image: url("./relative/path"); + background-image: url("../relative/path"); + background-image: url("../../relative/path"); + background-image: url("module"); + background-image: url("module/path"); + background-image: url("module/path/../relative/path"); +} diff --git a/test/Fixtures/lessjs-3.13.1/less/rootpath-rewrite-urls-all/rootpath-rewrite-urls-all.less b/test/Fixtures/lessjs-3.13.1/less/rootpath-rewrite-urls-all/rootpath-rewrite-urls-all.less new file mode 100644 index 00000000..6cf5ff11 --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/less/rootpath-rewrite-urls-all/rootpath-rewrite-urls-all.less @@ -0,0 +1,11 @@ +@import "./folder/file.less"; + +#rootpath-rewrite-urls-all { + background-image: url("./relative/path"); + background-image: url("../relative/path"); + background-image: url("./relative/../path"); + background-image: url("./relative/../path/.."); + background-image: url("module"); + background-image: url("module/path"); + background-image: url("module/path/../relative/path"); +} diff --git a/test/Fixtures/lessjs-3.13.1/less/rootpath-rewrite-urls-local/folder/file.less b/test/Fixtures/lessjs-3.13.1/less/rootpath-rewrite-urls-local/folder/file.less new file mode 100644 index 00000000..7ab3847e --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/less/rootpath-rewrite-urls-local/folder/file.less @@ -0,0 +1,8 @@ +#imported-file { + background-image: url("./relative/path"); + background-image: url("../relative/path"); + background-image: url("../../relative/path"); + background-image: url("module"); + background-image: url("module/path"); + background-image: url("module/path/../relative/path"); +} diff --git a/test/Fixtures/lessjs-3.13.1/less/rootpath-rewrite-urls-local/rootpath-rewrite-urls-local.less b/test/Fixtures/lessjs-3.13.1/less/rootpath-rewrite-urls-local/rootpath-rewrite-urls-local.less new file mode 100644 index 00000000..d58e40ad --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/less/rootpath-rewrite-urls-local/rootpath-rewrite-urls-local.less @@ -0,0 +1,11 @@ +@import "./folder/file.less"; + +#rootpath-rewrite-urls-local { + background-image: url("./relative/path"); + background-image: url("../relative/path"); + background-image: url("./relative/../path"); + background-image: url("./relative/../path/.."); + background-image: url("module"); + background-image: url("module/path"); + background-image: url("module/path/../relative/path"); +} diff --git a/test/Fixtures/lessjs-3.13.1/less/sourcemaps-disable-annotation/basic.less b/test/Fixtures/lessjs-3.13.1/less/sourcemaps-disable-annotation/basic.less new file mode 100644 index 00000000..409f77c6 --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/less/sourcemaps-disable-annotation/basic.less @@ -0,0 +1,4 @@ +body { + /*# sourceMappingURL=this-should-be-ok.css.map */ + color: white; +} \ No newline at end of file diff --git a/test/Fixtures/lessjs-3.13.1/less/sourcemaps-empty/empty.less b/test/Fixtures/lessjs-3.13.1/less/sourcemaps-empty/empty.less new file mode 100644 index 00000000..e69de29b diff --git a/test/Fixtures/lessjs-3.13.1/less/sourcemaps-empty/var-defs.less b/test/Fixtures/lessjs-3.13.1/less/sourcemaps-empty/var-defs.less new file mode 100644 index 00000000..19465415 --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/less/sourcemaps-empty/var-defs.less @@ -0,0 +1 @@ +@test-var: 'something'; \ No newline at end of file diff --git a/test/Fixtures/lessjs-3.13.1/less/sourcemaps/basic.json b/test/Fixtures/lessjs-3.13.1/less/sourcemaps/basic.json new file mode 100644 index 00000000..2bccdc51 --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/less/sourcemaps/basic.json @@ -0,0 +1,3 @@ +{ + "my-color": "red" +} \ No newline at end of file diff --git a/test/Fixtures/lessjs-3.13.1/less/sourcemaps/basic.less b/test/Fixtures/lessjs-3.13.1/less/sourcemaps/basic.less new file mode 100644 index 00000000..4ee8b4f6 --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/less/sourcemaps/basic.less @@ -0,0 +1,27 @@ +@var: black; + +.a() { + color: red; +} + +.b { + color: green; + .a(); + color: blue; + background: @var; +} + +.a, .b { + background: green; + .c, .d { + background: gray; + & + & { + color: red; + } + } +} + +.extend:extend(.a all) { + color: pink; +} +@import (inline) "imported.css"; \ No newline at end of file diff --git a/test/Fixtures/lessjs-3.13.1/less/sourcemaps/custom-props.less b/test/Fixtures/lessjs-3.13.1/less/sourcemaps/custom-props.less new file mode 100644 index 00000000..925973ae --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/less/sourcemaps/custom-props.less @@ -0,0 +1,8 @@ +@color: var(--foo); + +body { + border-left: 1px solid @color; + width: calc(50% - 5px); + border-top: 1px solid @color; +} + diff --git a/test/Fixtures/lessjs-3.13.1/less/sourcemaps/imported.css b/test/Fixtures/lessjs-3.13.1/less/sourcemaps/imported.css new file mode 100644 index 00000000..eec262ee --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/less/sourcemaps/imported.css @@ -0,0 +1,7 @@ +/*comments*/ +.unused-css { + color: inherit; +} +.imported { + color: black; +} \ No newline at end of file diff --git a/test/Fixtures/lessjs-3.13.1/less/static-urls/urls.less b/test/Fixtures/lessjs-3.13.1/less/static-urls/urls.less new file mode 100644 index 00000000..3a2a58cd --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/less/static-urls/urls.less @@ -0,0 +1,33 @@ +@font-face { + src: url("/fonts/garamond-pro.ttf"); + src: local(Futura-Medium), + url(fonts.svg#MyGeometricModern) format("svg"); +} +#shorthands { + background: url("http://www.lesscss.org/spec.html") no-repeat 0 4px; +} +#misc { + background-image: url(images/image.jpg); +} +#data-uri { + background: url(data:image/png;charset=utf-8;base64, + kiVBORw0KGgoAAAANSUhEUgAAABAAAAAQAQMAAAAlPW0iAAAABlBMVEUAAAD/ + k//+l2Z/dAAAAM0lEQVR4nGP4/5/h/1+G/58ZDrAz3D/McH8yw83NDDeNGe4U + kg9C9zwz3gVLMDA/A6P9/AFGGFyjOXZtQAAAAAElFTkSuQmCC); + background-image: url(data:image/x-png,f9difSSFIIGFIFJD1f982FSDKAA9==); + background-image: url(http://fonts.googleapis.com/css?family=\"Rokkitt\":\(400\),700); +} + +#svg-data-uri { + background: transparent url('data:image/svg+xml, '); +} + +.comma-delimited { + background: url(bg.jpg) no-repeat, url(bg.png) repeat-x top left, url(bg); +} +.values { + @a: 'Trebuchet'; + url: url(@a); +} + +@import "../_main/import/import-and-relative-paths-test"; diff --git a/test/Fixtures/lessjs-3.13.1/less/strict-units/strict-units.less b/test/Fixtures/lessjs-3.13.1/less/strict-units/strict-units.less new file mode 100644 index 00000000..a7d0bb0d --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/less/strict-units/strict-units.less @@ -0,0 +1,4 @@ +.units { + cancels-to-nothing: (1px / 1px); + cancels: ((((10px / 5em) / 1px) * 3em) * 1px); +} diff --git a/test/Fixtures/lessjs-3.13.1/less/url-args/urls.less b/test/Fixtures/lessjs-3.13.1/less/url-args/urls.less new file mode 100644 index 00000000..c9fd0dbf --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/less/url-args/urls.less @@ -0,0 +1,63 @@ +@font-face { + src: url("/fonts/garamond-pro.ttf"); + src: local(Futura-Medium), + url(fonts.svg#MyGeometricModern) format("svg"); +} +#shorthands { + background: url("http://www.lesscss.org/spec.html") no-repeat 0 4px; + background: url("img.jpg") center / 100px; + background: #fff url(image.png) center / 1px 100px repeat-x scroll content-box padding-box; +} +#misc { + background-image: url(images/image.jpg); +} +#data-uri { + background: url(data:image/png;charset=utf-8;base64, + kiVBORw0KGgoAAAANSUhEUgAAABAAAAAQAQMAAAAlPW0iAAAABlBMVEUAAAD/ + k//+l2Z/dAAAAM0lEQVR4nGP4/5/h/1+G/58ZDrAz3D/McH8yw83NDDeNGe4U + kg9C9zwz3gVLMDA/A6P9/AFGGFyjOXZtQAAAAAElFTkSuQmCC); + background-image: url(data:image/x-png,f9difSSFIIGFIFJD1f982FSDKAA9==); + background-image: url(http://fonts.googleapis.com/css?family=\"Rokkitt\":\(400\),700); + background-image: url("http://fonts.googleapis.com/css?family=\"Rokkitt\":\(400\),700"); +} + +#svg-data-uri { + background: transparent url('data:image/svg+xml, '); +} + +.comma-delimited { + background: url(bg.jpg) no-repeat, url(bg.png) repeat-x top left, url(bg); +} +.values { + @a: 'Trebuchet'; + url: url(@a); +} + +@import "../_main/import/imports/font"; + +#data-uri { + uri: data-uri('image/jpeg;base64', '../data/image.jpg'); +} + +#data-uri-guess { + uri: data-uri('../data/image.jpg'); +} + +#data-uri-ascii { + uri-1: data-uri('text/html', '../data/page.html'); + uri-2: data-uri('../data/page.html'); +} + +#svg-functions { + background-image: svg-gradient(to bottom, black, white); + background-image: svg-gradient(to bottom, black, orange 3%, white); + @green_5: green 5%; + @orange_percentage: 3%; + @orange_color: orange; + background-image: svg-gradient(to bottom, (mix(black, white) + #444) 1%, @orange_color @orange_percentage, ((@green_5)), white 95%); +} + +#data-uri-with-spaces { + background-image: url( data:image/x-png,f9difSSFIIGFIFJD1f982FSDKAA9==); + background-image: url( ' data:image/x-png,f9difSSFIIGFIFJD1f982FSDKAA9=='); +} diff --git a/test/Fixtures/lessjs-3.13.1/less/visitorPlugin/visitor.less b/test/Fixtures/lessjs-3.13.1/less/visitorPlugin/visitor.less new file mode 100644 index 00000000..2f7b1bd5 --- /dev/null +++ b/test/Fixtures/lessjs-3.13.1/less/visitorPlugin/visitor.less @@ -0,0 +1,4 @@ +.test-rule { + color: red; + -some-aribitrary-property: value; +} diff --git a/test/fixtures.php b/test/fixtures.php index 13d32559..de95c6da 100644 --- a/test/fixtures.php +++ b/test/fixtures.php @@ -54,4 +54,35 @@ ], ], ], + 'lessjs-3.13.1' => [ + 'lessDir' => "$fixtureDir/lessjs-3.13.1/less/_main", + 'cssDir' => "$fixtureDir/lessjs-3.13.1/css/_main", + // 'overrideDir' => "$fixtureDir/lessjs-3.13.1/override", + ], + 'lessjs-3.13.1/compression' => [ + 'lessDir' => "$fixtureDir/lessjs-2.5.3/less/compression", + 'cssDir' => "$fixtureDir/lessjs-2.5.3/css/compression", + // 'overrideDir' => "$fixtureDir/lessjs-3.13.1/override/compression", + 'options' => [ + 'compress' => true, + ], + ], + 'lessjs-3.13.1/strict-units' => [ + 'lessDir' => "$fixtureDir/lessjs-3.13.1/less/strict-units", + 'cssDir' => "$fixtureDir/lessjs-3.13.1/css/strict-units", + 'options' => [ + 'strictUnits' => true, + ], + ], + 'lessjs-3.13.1/include-path' => [ + 'lessDir' => "$fixtureDir/lessjs-3.13.1/less/include-path", + 'cssDir' => "$fixtureDir/lessjs-3.13.1/css/include-path", + // 'overrideDir' => "$fixtureDir/lessjs-3.13.1/override/include-path", + 'options' => [ + 'import_dirs' => [ + "$fixtureDir/lessjs-3.13.1/data" => '', + "$fixtureDir/lessjs-3.13.1/less/import" => '', + ], + ], + ], ]; diff --git a/test/phpunit/FixturesTest.php b/test/phpunit/FixturesTest.php index d958e940..55d4cd64 100644 --- a/test/phpunit/FixturesTest.php +++ b/test/phpunit/FixturesTest.php @@ -42,6 +42,48 @@ class phpunit_FixturesTest extends phpunit_bootstrap { 'lessjs-2.5.3/include-path' => [ 'include-path' => true, // T353147, data-uri() ], + 'lessjs-3.13.1' => [ + // Permanently disabled + 'plugin' => true, // Not supported + 'plugin-preeval' => true, // Not Supported + 'plugin-module' => true, // Not Supported + 'javascript' => true, // Not supported. + + 'calc' => true, // New Feature + + 'variables' => true, + 'functions' => true, + 'functions-each' => true, + 'import-reference-issues' => true, + 'detached-rulesets' => true, + 'import-reference' => true, + 'import-module' => true, + 'extend-selector' => true, + 'mixins-guards' => true, + 'merge' => true, + 'css-3' => true, + 'colors' => true, + 'css-grid' => true, + 'urls' => true, + 'operations' => true, + 'comments2' => true, + 'comments' => true, + 'import-remote' => true, + 'import' => true, + 'css-escapes' => true, + 'css-guards' => true, + 'parse-interpolation' => true, + 'selectors' => true, + 'property-accessors' => true, + 'property-name-interp' => true, + 'permissive-parse' => true, + ], + 'lessjs-3.13.1/include-path' => [ + 'include-path' => true, + ], + 'lessjs-3.13.1/compression' => [ + 'compression' => true, + ], ]; public static function provideFixtures() {